Wat is unit testing in softwareontwikkeling

Bo WesdorpMedeoprichter en CTO, Miyagami Praktijk3 min lezen

Unit testing is de praktijk van het controleren van de kleinste testbare onderdelen van een programma, meestal afzonderlijke functies of klassen, in isolatie. Een unit test roept de code aan met bekende invoer en vergelijkt het resultaat met de verwachte uitvoer. Omdat databases en netwerken worden vermeden, wordt de test in milliseconden uitgevoerd en wijst hij bij een fout naar één oorzaak.

Wat telt als een unit

Een unit is het kleinste stuk gedrag dat je op zichzelf kunt controleren. In de meeste codebases is dat een functie, een methode of een kleine klasse. Het woord doet er minder toe dan de grens: een unit test mag geen actieve database, netwerkoproep of andere service nodig hebben om een resultaat te geven.

Hoe ziet een unit test eruit

Een typische unit test bestaat uit drie delen. Je stelt de invoer in, roept de code aan en controleert het resultaat. Een test voor een prijsberekening kan een winkelmandje en een kortingscode meegeven en het totaal controleren. Als het totaal onjuist is, geeft de falende test de naam van de functie waar je naar moet kijken.

Hoe verschillen unit tests van integratietests

Unit tests controleren één onderdeel afzonderlijk. Integratietests controleren of meerdere onderdelen samenwerken, bijvoorbeeld je code en een echte database. End-to-end tests bedienen het hele product zoals een gebruiker dat zou doen.

Unit test Integratietest End-to-end test
Bereik Één functie of klasse Meerdere componenten Heel product
Snelheid Milliseconden Seconden Seconden tot minuten
Afhankelijkheden Vervangen of vermeden Echt of dichtbij echt Echt
Een fout vertelt je Precies waar Welke grens Dat er iets stukging
Typisch aandeel van een suite Grootste Midden Kleinste

Deze vorm wordt vaak de testpiramide genoemd: veel snelle unit tests onderaan, minder trage tests daarboven.

Wat moet je unit testen

Test logica die fout kan gaan: berekeningen, validatieregels, parsing, toestandswijzigingen en randgevallen zoals lege invoer, zeer grote waarden en onverwachte typen. Sla code over die alleen data doorgeeft, en sla tests over die de implementatie regel voor regel herhalen. Een test die bij elke refactoring breekt zonder een echte bug te vangen, kost tijd en beschermt niets.

Wat zijn mocks

Een mock of stub vervangt een afhankelijkheid, zoals een betalingsprovider, zodat de unit afzonderlijk getest kan worden. Gebruik ze bij echte grenzen en houd ze eenvoudig. Veel mocking duidt er vaak op dat de code verstrengeld is, en de test controleert dan de mocks in plaats van het gedrag. Als een afhankelijkheid goedkoop en deterministisch is, gebruik dan de echte.

Hoe helpen unit tests bij AI-geschreven code

Coding agents schrijven code sneller dan iemand die aandachtig kan lezen, waardoor een snelle en betrouwbare testsuite de specificatie wordt waaraan de agent moet voldoen. Goede unit tests vertellen een agent wat correct betekent voor elke functie, en ze vertellen een reviewer snel wanneer een wijziging iets heeft gebroken. Ze vervangen geen oordeel: een agent kan tests schrijven die slagen terwijl ze het verkeerde controleren, daarom zijn testdekking en vertrouwen twee verschillende dingen. Combineer unit tests met zorgvuldige review van AI-gegenereerde code, en gebruik regressietesten om gedrag in de loop van de tijd te beschermen.

Wat dit betekent als je inhuurt

Engineers die tests schrijven naast de feature leveren code op die je veilig kunt aanpassen. In onze vetting werken kandidaten twee sessies van zestig minuten in een echte codebase, één met AI-tools uit en één met hun eigen agents aan, en beide scorecards laten zien hoe ze hun eigen wijzigingen verifiëren. Als je engineers zoekt die testdiscipline inbouwen in hun oplevering, bekijk dan backend engineers, vanaf €5.600 per maand voor een fulltime engineer.

Korte antwoorden

Wat is het verschil tussen unit testing en integratietesting?

Unit tests controleren één functie of klasse in isolatie. Integratietests controleren of meerdere componenten samenwerken, zoals je code en een database.

Hoeveel unit tests zijn genoeg?

Genoeg om logica te dekken die kan falen, inclusief randgevallen. Een dekkingspercentage najagen telt minder dan het testen van gedrag waar je op vertrouwt.

Moet AI-gegenereerde code unit tests hebben?

Ja. Tests geven de agent een definitie van correct en geven reviewers een snel signaal dat een wijziging niets heeft gebroken.

Vervangen unit tests handmatig testen?

Nee. Ze vangen logicafouten snel op, maar exploratieve en visuele controles hebben nog steeds een persoon nodig.

Laten we praten

Ontvang binnen drie dagen een shortlist

Je deelt de rollen en de stack in een kort formulier of in een gesprek van dertig minuten. Binnen drie werkdagen krijg je senior engineers op naam om te beoordelen, elk met beide scorecards, en je kunt binnen vijf werkdagen inhuren.

Beoordeeld opClutch39 beoordelingen
ISO 27001
Gecertificeerd

Plan een afspraak van dertig minuten met Dale

De kalender wordt aangeboden door HubSpot, dat zijn eigen cookies plaatst. Laad hem hier, of boek via de pagina van HubSpot.

Boekingspagina openen