Integratietesten. Iedereen kent ze, én iedereen gebruikt ze. Maar wat is nou precies een integratietest?
TMAP® heeft mij geleerd dat integratietesten draaien om het samenbrengen van verschillende applicaties of systemen, om de onderlinge integratie ervan te testen. Dit is soms verwarrend omdat we het vaak ook over end-to-end testen hebben, die bijna hetzelfde doen.
Maar ook de testpiramide spreekt over integratietesten.
In de testpiramide worden deze vaak als middelste laag gepresenteerd. Deze middelste laag wordt geassocieerd met API testen tegen de endpoints van een service, zoals bij componenttesten. Maar ook contracttesten vallen hieronder.
Ik weet niet of anderen hier last van hebben, maar in mijn hoofd zou vanuit de TMAP® terminologie de term ‘integratietesten’ eerder vallen in het bovenste deel van de piramide. Contracttesten kan ik nog een beetje relateren aan integraties, maar componenttesten hebben hier helemaal niets mee te maken.
Maar ik heb me er maar bij neergelegd, blijkbaar zijn integratietesten dus zowel het bovenste deel van de piramide, als ook de middelste laag.
Vervolgens ging ik samenwerken met developers. Opeens kwam ik erachter dat integratietesten ook een variant op de unittest waren. Dit zie je vooral bij het testen van een class die met je data laag communiceert. Je start de class op tegen een in-memory database en met deze test toon je aan dat de class goed werkt als je deze integreert met een database.
De meeste van deze voorbeelden hebben wel met elkaar gemeen dat je een bepaald object probeert te integreren met iets externs. Dus er zit wel een kern van waarheid in. Het nadeel is dat vanuit deze definitie bijna alle testen hieronder vallen. Alleen unittesten zijn nog echt iets anders.
Wacht eens even…
Met de komst van Continuous Integration is het namelijk belangrijk om een set aan testen te definiëren die aantonen dat je code ‘geïntegreerd’ kan worden met de main branch, oftewel een continuous ‘integration test’ set. Alle testen die je in je automatische build gebruikt, zijn in feite dus ook integratietesten! Dus ook unittesten!
Dus hierbij breng ik je de gloednieuwe vernieuwde testpiramide!
Belangrijk bij de inzet van deze testpiramide is dat je dus maar een klein deel gebruik maakt van integratietesten, omdat deze traag en flaky zijn. Daarnaast moet je deze aanvullen met integratietesten, maar je moet vooral focussen op de integratietesten, omdat die snel en stabiel zijn.
Dus mocht iemand je ooit vragen of je gebruik maakt van integratietesten, kun je nu volmondig daarop antwoorden met ‘JA’.
Graag gedaan! En nu kun je dit lekker gaan integreren met je bestaande werkwijze.
Nieuwsgierig geworden en wil je meer weten over testen? Neem dan contact op met Praegus – 085-1305977 / info@praegus.nl of kijk op www.praegus.nl