Unit Testen versus Integratie Testen

De meeste software bedrijven maken al gebruik van Unit Testen. Benieuwd naar de verschillen en in wat voor scenario je welke vorm van Testing gebruikt? In deze blog zullen we je aan de hand van voorbeelden laten zien, wanneer je Unit Testen gebruikt en kiest voor Integratie Testen. Doe er dus je voordeel mee!


Unit Testen

Om je geheugen op te frissen zullen we beiden Testen eerst verder toelichten. We beginnen met ‘Unit Testen.’ De term geeft het eigenlijk al aan: Unit Testen worden gebruikt om een unit van een code te testen. Daarbij wordt het kleinste mogelijke stukje code dat van nut is getest. Dit is in praktijk meestal een methode. Bij een methode verwacht je een vaste output bij een bepaalde input. Dit concept is wat Unit Tests testen. Een Unit Test is voornamelijk bedoeld voor programmeurs; zij kunnen hiernaar kijken en begrijpen de uitkomst van de test. Het doel van Unit tests is om te bewijzen dat de unit correct is in ieder omstandigheid.

 

Integratie Testen

Een breder begrip vormen Integratie Testen. Dat wil zeggen dat je meerdere componenten met elkaar samen gaat testen. Integration Testen worden toegepast om te bewijzen dat de componenten samen met elkaar kunnen werken. In tegenstelling tot bij Unit Testen zijn de uitkomsten van Integratie Testen voor buitenstaanders wel interessant, omdat deze makkelijker te begrijpen zijn. Voorbeelden van Integratie Testen zijn:

 

  •   Een web client testen die met de backend praat.

  •   Het testen van een component die praat met de database.

 

De belangrijkste verschillen tussen Unit Testen en Integratie Testen

De begrippen Unit Testen en Integratie Testen zijn nu duidelijk. In de onderstaande tabel staan de verschillen tussen beiden testvormen op een rijtje:

Unit Testen versus Integratie Testen

 Beiden Testen toepassen

Integration Testen zijn vaak moeilijker te schrijven. Daarom is het belangrijk om verschillende en kwalitatief goede Unit Tests te hebben. In de praktijk is dit ook vaak het geval. Wanneer je genoeg unit tests hebt geschreven kun je ervan uit gaan dat de componenten het doen. Verder hoef je in deze situatie ook niet opnieuw door middel van Integration Testen uit te voeren, waardoor je je kunt focussen op de interactie tussen de componenten.

 

Daarnaast is het belangrijk om Unit Testen en Integration Testen met elkaar te combineren.
Als twee componenten veel met elkaar communiceren en het over belangrijke complexe data gaat, kun je niet zonder Integratie tests, want je moet kunnen garanderen dat de dataoverdracht tussen de componenten goed verloopt en dat fouten goed worden afgehandeld. Je kunt je voorstellen dat dit meer tijd kost om te schrijven dan een unit test, maar op deze manier wordt wel op de juiste manier de integratie tussen beiden componenten getest. Dit wordt ook wel de interactie genoemd. Daarnaast is investeren in Unit Testen en Integratie Testen een goed idee om het product schaalbaar te houden voor de toekomst. De meeste programmeurs gebruiken hierin de volgende opzet, wanneer het gaat om Testen:

  • Unit Testen (80%)

  • Integratie Testen (10%)

  •     Systeem Testen (10%)

 

Unit testing versus integration testing.jpg


Learning: zorg dat Unit Testen niet op elkaar afhankelijk zijn!

In deze blog delen we tot slot nog een learning. Het volgende gaat namelijk in de praktijk vaak mis: dat Unit Tests op elkaar afhankelijk zijn. Hierbij doet de volgende situatie zich voor: één unit test data verandert en de andere unit gaat deze data vervolgens gebruiken. Een unit test moet namelijk onafhankelijk van elkaar kunnen runnen. Het is de bedoeling dat één stuk code getest wordt en als deze afhankelijk is van een ander gaat het al snel mis. Houdt hier dus rekening mee bij de opzet van een Unit Test.

 

Dit blogartikel heeft je inzichten gegeven in de verschillen tussen Unit Testen en Integratie Testen. Met welke vorm van Testing ga jij binnenkort aan de slag? Kun je hier wel wat hulp bij gebruiken? Neem dan vrijblijvend contact met ons op.