DevOps8 redenen om te beginnen met unit tests

Unit testingMet unit tests controleer je of het kleinst testbare onderdeel van je code doet wat je verwacht dat het doet. Met een unit test controleer je bijvoorbeeld een methode of een functie. Je kunt daarmee snel testen of alle losse onderdelen doen wat ze zouden moeten doen. Je complete unit test suite moet snel blijven, zodat niemand het vervelend vindt om ze te draaien.

Het lijkt soms aantrekkelijk om twee methodes of functies samen te testen in één test. Je test tenslotte twee onderdelen met slechts één test, twee vliegen in één klap? Maar wat als de test fout gaat, zit die fout dan in de eerste, de tweede of in beide units? Of zit de fout in de integratie tussen die twee units? Of misschien is de test zelf wel fout. Zonder dat de losse units zelf ook getest worden, geeft zo’n falende test meer uitzoekwerk.

Daarom starten met unit tests

Met unit testen kunnen fouten in een vroeg stadium ontdekt worden. Juist het feit dat je potentiële fouten snel kunt vinden heeft veel voordelen. Er zijn verschillende redenen om te starten met het maken van unit testen. Hieronder staan er acht beschreven.

1. Het is makkelijker dan je denkt

Veel teams zien er tegenop om te beginnen met unit testen. Vooral teams die werken aan een bestaande applicatie zonder unit tests. Omdat unit tests zo’n klein onderdeel van je code testen, is het ook eenvoudig om ermee te starten. Begin klein en schrijf een unit test voor de code die je vanaf nu aanpast.

2. Unit tests zorgen voor minder bugs

Fouten worden snel gevonden. Unit testen worden snel na het ontwikkelen uitgevoerd, doorgaans nog voordat de applicatie geïnstalleerd is en getest kan worden door een tester. Hiermee vind je fouten veel sneller en voorkom je bugs in productie.

3. Code aanpassen met meer vertrouwen

Het refactoren van je code wordt eenvoudiger, sneller en minder foutgevoelig. Als je nieuwe functionaliteit toevoegt aan je code, zul je onderdelen tegenkomen die je aan moet passen of moet herschrijven. Als je voor deze onderdelen al unit testen hebt, kun je eenvoudig controleren of de functie nog steeds doet wat het moet doen. Als dat niet het geval is, moet je zorgen dat de testen weer werken. Het risico dat iets niet meer werkt nadat je iets anders hebt aangepast wordt een stuk kleiner.

Doordat je alle onderdelen test, kun je met veel meer vertrouwen bestaande code aanpassen. Hierdoor wordt het makkelijker om je applicatie snel te veranderen om nieuwe functionaliteit toe te voegen.

4. Unit tests kunnen dienen als documentatie

Unit testen kunnen dienen als documentatie van je code. Een unit test beschrijft hoe de code zou moeten werken. Door de unit testen te bekijken, leer je wat het gedrag van de code zou moeten zijn. Dit kan waardevol zijn voor andere developers, maar ook voor jezelf. Bijvoorbeeld als je na enkele maanden opnieuw naar je code kijkt.

5. Debuggen wordt makkelijker

Doordat je iedere unit test uitvoert bij iedere build, zie je snel waar de fout zit. De fout zal waarschijnlijk in de laatste aanpassing zitten, de vorige keer slaagde die unit test nog. Debuggen van code gaat daardoor makkelijker.

6. De kwaliteit van code wordt beter

Het toepassen van unit tests leidt tot betere kwaliteit code doordat je ieder onderdeel controleert. Daarnaast dwingt het schrijven van unit tests je om beter na te denken over je code. Doordat je vooraf beter nadenkt over wanneer de code wel of juist niet meer zou moeten werken, kun je ook de randgevallen opzoeken en testen. Hierdoor wordt de kwaliteit van je code beter.

7. Extra stimulans

Unit testen kunnen je een snelle visuele stimulans geven. De meeste unit test tools werken met groene en rode vinkjes. Het zal de meeste developers in ieder geval een goed gevoel geven als je na een aanpassing meteen groene vinkjes krijgt.

8. Je kunt meer waarde opleveren

Unit testen zelf is geen doel, maar een middel om je doel te bereiken. Als je meer waarde wilt leveren aan je klant of eindgebruikers, kun je unit testen toevoegen om je te helpen dit doel te halen. Bovenstaande punten zijn allemaal redenen die het samen mogelijk maken om meer waarde voor je klant op te leveren.

Conclusie en tips

Tot slot nog twee tips. Ten eerste, maak er geen doel van om zoveel mogelijk unit testen te schrijven. Tien goede, snelle en betrouwbare unit tests zijn veel waardevoller dan 100 tests die moeilijk te onderhouden en onbetrouwbaar zijn. Een unit test vervangt ook geen ander type tests, maar is een waardevolle aanvulling op je andere tests.

Ten tweede, begin nu direct. Starten met unit testen lijkt vaak een hele opgave, maar zoals je hierboven hebt kunnen lezen kan het je veel voordelen opleveren. Unit testen zijn ook een essentieel onderdeel binnen de DevOps practices.

Heb je hulp nodig bij het verbeteren van je DevOps proces? Of wil je weten waar je het beste kunt starten? Kijk dan bij ons DevOps Program.

Mike Beemsterboer, DevOps Consultant