Waarom unit testen?

ICTscripters maakt gebruik van cookies. Door het gebruiken en browsen naar onze site gaat je automatisch akkoord met het gebruik van cookies. Klik hier voor meer informatie

  • Ik maak gebruik van unit tests 7
    1.  
      Ja (6) 86%
    2.  
      Nee (1) 14%
    3.  
      Ik ga er naar kijken na het lezen van dit blog. (0) 0%
    Veel programmeurs hebben wel eens van unit testing gehoord alleen haten het om tests te schrijven. Waarom haten programmeurs het schrijven van unit tests? Waarom haten ze het om eerst tests te schrijven alvorens ze beginnen met programmeren? In dit blog wil ik jullie overtuigen / een discussie aanboren waarom je juist wel moet testen.

    De meeste softwareontwikkelaars hebben nooit tests geschreven of het überhaupt geprobeerd om tests te schijven. Ze komen vaak met de excuses: "We hebben geen tijd om unit tests te schrijven" of "Unit testing maken je code niet beter / bullet-proof". Dit zijn excuses / argumenten die ontstaan uit een angst of een verandering die in jouw filosofie niet klopt.

    Toch wil ik hier enkele voordelen opschrijven die ik ervaar, voor iedereen die de sprong durft te maken om eens te kijken naar unit tests.

    1. Unit tests bewijzen dat jouw code echt werkt. - Dit betekent dat je minder bugs krijgt. Wat niet betekend dat unit tests jouw eigen systeem kunnen vervangen alleen dat dit wel een hele goeie aanvulling is.

    2. Je kan jouw design aanpassen en verbeteren zonder functies te slopen. - Het refractoren van bestaande code is een stuk makkelijker. Omdat je tests niet veranderen maar je code dynamisch is (meer functionaliteiten toevoegen/verwijderen) loop je snel bij 1 wijziging tegen bugs aan. Unit tests geven hierin een duidelijk overzicht.

    3. Unit tests laten een proces zien. - Je hoeft geen maanden te wachten om een klant te laten zien. Je kan zo zelfs progressie laten zien aan een klant wanneer je geen werkend systeem hebt. Je kan dus duidelijker een verantwoording afleggen naar je klant i.p.v. te zeggen "Ik ben er mee bezig en ik heb al een groot deel van de code geschreven. Maar... ik kan nog niks laten zien".

    4. Unit tests vormen een stuk voorbeeld code - Wanneer je een softwarepakket aflevert aan klanten die vervolgens een eigen ontwikkelteam erop zetten kun je makkelijk refereren naar unit tests als documentatie. Dit scheelt zeeën van tijd met het schrijven van eigen documentatie.

    5. Test-first tests laten jouw nadenken over de code. - Test-first oftewel het schrijven van een test voordat je gaat programmeren laten jouw nadenken over hoe je tot een oplossing moet komen van een bepaald probleem.

    6. Het is sneller dan programmeren zonder tests - Omdat je veel tijd kwijt bent met kleine wijzigingen om soms maar één functionaliteit werkend te krijgen ben je zonder tests veel langer bezig dan met. Zoals al een aantal keer hierboven gezegd vermijd je bugs en is het veel makkelijker te zien hoe je bugs moet fixen.

    7. Het maakt programmeren leuker! - Dit klinkt natuurlijk gek want wie vindt het nou leuk om tests te schrijven... Toch maakt het programmeren leuker omdat je kan zien dat jouw code werkt ondanks je misschien geen werkend systeem hebt.

    Zelfs met deze 7 redenen zijn er veel organisaties of jijzelf die doorgaan op hun oude werkwijzen. Ikzelf merk dat unit tests mij heel erg helpen om mijn code te verbeteren en minder fouten te maken.

    Hoe denken jullie daarover?
    Dit was mijn spreekbeurt, zijn er nog vragen?

    1,740x gelezen

Reacties 3

  • Luc -

    5. Test-first tests, je hebt ook nog test driven development (TDD) javacodegeeks.com/2012/12/the-…t-driven-development.html

    • M.Beers -

      Dat klopt, al gaat dit over unit testen in zijn algemeen. Test-first is handig om software structuur te bedenken en TTD om te refactoren en beter te maken door zijn drie fases...

  • DirkZz -

    Mee eens, en als het even kan de unittests ook van te voren schrijven. Ik merk zelf dat mijn public api hierdoor qua benaming sterker wordt. Het testen van code is in het begin even vervelend om te doen en even doorbijten, maar het betaald zich snel terug.

    Naast unittesten is het mijn inziens ook belangrijk om zinnige integratie testen te hebben. Zodat je naast de losse blokjes ook de algehele werking kunt afkaderen.