Testen is een van de belangrijkste onderdelen in het proces van software ontwikkeling, maar is tevens hetgene dat het vaakst wordt vergeten of wordt overgeslagen vanwege tijdgebrek. Dit komt voornamelijk omdat het testen van software vaak wordt gezien als een handmatig klusje dat pas wordt uitgevoerd aan het einde van het proces, als het product volledig ontwikkeld is. Vaak is het dan zo dat er vanwege tijdgebrek geen tijd meer over is om alles goed te testen of het testen wordt maar half uitgevoerd.
Een oplossing voor dit probleem wordt beschreven in de XP (Extreme Programming) methode, namelijk het 'Test First' principe. Dit houdt in dat je alvorens te beginnen met programmeren nadenkt over hoe de software moet werken en hoe je dit kan testen. Vervolgens schrijf je dan eerst een zogenaamde unittest om een functie te testen (automatisch) en vervolgens ga je de functie implementeren.
De theorie klinkt allemaal leuk en aardig, maar werkt dit in de praktijk ook zo goed?
Uit mijn ervaring hiermee kan ik je zeggen dat als je dit eenmaal gedaan hebt, je meteen overtuigd bent van de kracht van deze oplossing. Je gaat hierdoor veel beter nadenken over hoe een functie moet werken en wat de invoer en uitvoer moet zijn. Kortom, de kwaliteit van je code verbetert hierdoor. Daarnaast is een ander voordeel natuurlijk ook dat je tijdens het ontwikkelproces verschillende keren de automatische tests kan uitvoeren om te kijken of de code nog werkt. Als bijvoorbeeld een functie aangepast wordt, kan meteen gecontroleerd worden of alles nog naar behoren werkt.
Naast unittests die een functie of een stuk code testen is het ook mogelijk om webtests te maken. Hiermee simuleer je een website bezoeker en kun je ook automatisch klikken en formulieren invullen. Ook deze tests worden automatisch uitgevoerd simpelweg door het runnen van een script. Webtests zijn zeer geschikt om software te testen die voornamelijk html code genereert. Webtests worden in tegenstelling tot unittests pas aan het einde van het ontwikkeltraject opgezet. Afhankelijk van de software die wordt geschreven kan er gekozen worden voor het maken van unittests, webtests of een combinatie.
Voor een van onze klanten, de Provincie Zeeland, zijn we dit nu in de praktijk aan het brengen. De Provincie Zeeland heeft software om o.a. vergunningaanvragen via de website af te kunnen handelen. Je moet dit zien als een heel groot formulier dat in verschillende pagina's wordt opgedeeld. Aan het einde van het formulier, na het invullen van alle pagina's, krijgt de invuller de mogelijkheid om de vergunningaanvraag te versturen. Via email wordt de Provincie Zeeland op de hoogte gesteld dat er een nieuwe aanvraag is binnengekomen. We zijn deze software nu aan het refactoren en tegelijkertijd automatische tests aan het maken. Hierdoor kunnen we de werking van onze software blijven garanderen, niet alleen nu maar ook in de toekomst.