Je ziet het vaker gebeuren. Een organisatie komt tot de conclusie dat het testen sneller en vaker moet.
Dan wordt er ook vaak gekozen om de testen dan maar te automatiseren en dat doen ze dan met een tool die iemand wel kent en het zo de organisatie in loodst. Want ja, testautomatisering is dé Silver Bullet en De Heilige Graal!
De organisatie vindt zichzelf dan klaar om te gaan automatiseren dus gaat men aan de slag. Wat er dan vaak gebeurt, is dat het testautomatiseringstraject niet slaagt, het is gedoemd om te mislukken … herkenbaar?
Om testautomatisering goed te kunnen implementeren moet men zich afvragen wat testautomatisering is én welke randvoorwaarden ervoor gelden.
Allereerst dus: wat is testautomatisering? Testautomatisering ondersteunt de testers in het herhaaldelijk geautomatiseerd uit kunnen voeren van checks en is ondersteunend aan het software development proces.
Om dit zo goed mogelijk te kunnen doen, moeten er doelen worden gesteld. Om deze doelen te kunnen bereiken, moet er eerst een Proof of Concept (PoC) worden opgesteld. In deze PoC wordt onder andere gekeken naar:
Het resultaat van de PoC moet er uiteindelijk toe leiden dat er een verantwoorde keuze uit het grote oerwoud van tooling gemaakt kan worden om mee te gaan automatiseren, naast de aanpak die ook zeer zeker niet onbelangrijk is. De keuze qua tooling voor testautomatisering is dus méér dan het simpel naar binnen loodsen van een tool.
Wanneer de PoC succesvol is uitgevoerd, kan men aan de slag. Het goed implementeren van testautomatisering gebeurt door dit op te zetten met een architectuur die past binnen de bestaande organisatie en/of project. Testautomatisering moet daarbinnen passen en als zodanig worden opgebouwd. Hierbij moet men denken aan een goede architectuur qua tooling die op elkaar aansluit, maar ook de code moet goed worden opgezet. Want denk eraan: testautomatiseringscode = development. Hiervoor zijn coding skills nodig!
En wanneer er een goede architectuur is opgezet, moet deze natuurlijk ook onderhouden worden. Wijzigingen in de organisatie of project kunnen leiden tot wijzigingen in de testautomatiseringsarchitectuur. Er moet dan ook kennis in de organisatie aanwezig zijn om dit op de juiste manier te doen.
Naast het opleiden van testautomatiseringsspecialisten die kunnen coderen, moeten ook de testers worden opgeleid in het maken van geautomatiseerde testen, waarbij zij ook gebruik moeten kunnen maken van de tooling. De testers moeten ook rekening houden met het feit dat het globaal beschrijven van testgevallen, gebruik maken van altijd dezelfde testdata en interpreteren van uitkomsten niet meer kan wanneer je gaat automatiseren. Testen die je gaat automatiseren moeten herhaaldelijk uitgevoerd kunnen worden. Hiervoor is het noodzakelijk dat alle teststappen die nodig zijn voor het aansturen van het te testen systeem exact beschreven zijn én dat alle controlepunten expliciet zijn vastgelegd met de verwachte uitkomsten.
Ook is het van belang wáár de geautomatiseerde testen worden uitgevoerd. Het liefst wordt dit in een alleen voor testautomatisering aangewezen testomgeving uitgevoerd. Om testen herhaaldelijk uit te kunnen voeren kan ook een rollback na elke testrun worden uitgevoerd of er wordt voor de testrun nieuwe testdata ingeladen. Zelf testdata aanmaken en gebruiken zonder dat anderen daar last van hebben, is ook een mogelijke aanpak. En eventueel kan er via queries steeds de gewenste data voor aanvang van een test worden opgehaald. Welke aanpak het beste past is natuurlijk afhankelijk van de mogelijkheden.
Wanneer er bij implementatie van testautomatisering rekening is gehouden met voorgaande punten is de organisatie voldoende klaar om aan de slag te gaan met de automatisering van de testen zodat deze herhaaldelijk kunnen worden uitgevoerd.
Missie geslaagd!
Dit artikel is een samenvatting van de presentatie die Erik Haartmans gaf tijdens de Polteq Conferentie op 7 juni 2018.