Wanneer er binnen het vakgebied testen wordt gesproken over automatisering, dan worden er regelmatig twee soorten automatisering door elkaar gebruikt. Te weten “geautomatiseerd testen” en “testautomatisering”. Deze termen lijken veel op elkaar maar betekenen toch iets anders.
- Geautomatiseerd testen
Hier onder verstaan we het geautomatiseerd uitvoeren van testgevallen, testscripts en resultaat beoordeling. - Testautomatisering
Bij testautomatisering gaat het niet alleen om de testuitvoering, maar het geautomatiseerd ondersteunen van alle verschillende processen binnen testen. Er zijn verschillende componenten betrokken bij testautomatisering zoals, de te testen applicatie, tools voor testuitvoering, testmanagement tools (voor bijvoorbeeld het bewaren van testcases en screenshots), testomgeving, test data, interfaces tussen de verschillende tools, functies, testscripts, resultaten etc. Hierbij is het belangrijk dat de verschillende componenten met elkaar kunnen communiceren.
Doelstellingen van testautomatisering kunnen onder andere zijn:
- Testen efficiënter maken
- Verhoging en verbreding van de functionele dekking
- Verlagen van de testkosten
- Uitvoeren van testen die handmatig niet kunnen worden uitgevoerd
- Verkleinen van de doorlooptijd van testuitvoering
- Realiseren van een snellere terugkoppeling van de testresultaten
Een testautomatiserings architectuur speelt een belangrijke rol bij het realiseren van de genoemde doelstellingen. Als er geen goed ontworpen testautomatiserings architectuur is, kan dit leiden tot:
- vertraging in de testautomatisering
- vertraging van het uitvoeren van complexe testcases
- verhoging van de kosten voor het testen
Wat is een testautomatiserings architectuur eigenlijk?
Het komt in de praktijk voor dat organisaties voor testautomatisering starten met een testtool als bijvoorbeeld Selenium of Fitnesse. In die situatie wordt er invulling gegeven aan het geautomatiseerd testen en een klein beetje aan testautomatisering.
Om een goede invulling te kunnen geven aan testautomatisering is een testautomatiserings architectuur nodig. De realisatie van een testautomatiserings archtitectuur (TAA) kan met behulp van een Testautomatiserings Framework (TAF).
Door ISTQB is een generieke testautomatiserings architectuur (gTAA) ontwikkeld die als basis kan dienen voor het ontwikkelen van een specifieke TAA.
De gTAA is opgedeeld in de volgende vier horizontale lagen:
- Test generatie
Deze laag ondersteunt het handmatig of geautomatiseerd ontwerpen van logische testgevallen. - Test definitie
Deze laag ondersteunt het definiëren van fysieke testgevallen, testdata, testscripts, etc. - Testuitvoering
Deze laag ondersteunt de testuitvoering, logging en rapportage. - Test koppelvlakken
Deze laag voorziet in de benodigde software om vanuit de testuitvoering te kunnen communiceren met de te testen applicatie via GUI, API’s, services, etc.
Daarnaast onderkent de gTAA:
- Configuratie Management
Het gaat hierbij niet alleen om configuratie management voor het te testen systeem maar ook voor:- Test modellen
- Testontwerp, inclusief de testgevallen, testdata en test bibliotheken
- Testscripts
- Testtools
- Test interfaces met de te testen applicatie en de verschillende tools
- Simulatoren en emulatoren voor de te testen applicatie
- Testresultaten en testrapporten
- Test Management
De TAA moet het test management kunnen ondersteunen. Logging en resultaten moeten makkelijk of geautomatiseerd kunnen worden geëxtraheerd.
Het is niet noodzakelijk om alle lagen te implementeren. In de praktijk zal er vaak gekozen worden voor een bottom-up implementatie.
Meer informatie over de gTAA kun je lezen in de syllabus van ISTQB over testautomatisering.
Het opzetten en implementeren van een TAA is geen sinecure en vraagt om zowel technische kennis als test kennis. Het is aan te bevelen dit als een project uit te voeren. Hierbij is het goed om de planning voor de implementatie van de verschillende componenten, van de TAA, goed af te stemmen met de planning van het testen zelf. De TAA hoeft niet helemaal klaar te zijn op het moment dat de testers beginnen met de voorbereiding.