Handmatig of automatisch testen? Allebei!!

Auteur: Rik Marselis Rik@Marselis.eu ● @rikmarselis

Redactie: Henk Johan Kwakkel

Allereerst wens ik jou en je dierbaren een heel gelukkig, gezond en succesvol 2021! Tijdens de kerstvakantie zag ik op het wereldwijde web een discussie over handmatig of automatisch testen langskomen. Dit was zeker niet de eerste keer en het zal ook vast niet de laatste zijn. Graag wil ik een duit in het zakje doen en je wat ideeën en bespiegelingen over dit onderwerp meegeven zodat je jouw mening nog wat meer kunt funderen.

Om de beeldvorming over handmatig of automatisch testen te starten kijk ik graag eerst even naar de betekenis van ‘testen’. Volgens het in 2020 vernieuwde TMAP is de definitie van testen: ‘Testing consists of verification, validation and exploration activities that provide information about the quality and the related risks, to establish the level over confidence that a test object will be able to deliver the pursued business value’ (bron: https://www.TMAP.net/page/tmap-glossary-online).

Het doel is dus informatie verzamelen, zodat betrokkenen vertrouwen kunnen opbouwen dat een IT-product waarde voor de organisatie en de gebruikers zal hebben.

Dat verzamelen van informatie doe je door activiteiten op het gebied van verificatie, validatie en exploratie. En voor deze drie activiteiten kunnen we de relatie naar handmatig en automatisch testen mooi leggen. Daarbij focus ik op het voorbereiden en uitvoeren van testgevallen (testen omvat natuurlijk nog veel meer).

Verificatie draait om het vergelijken van het testobject met de beschreven eisen. Aangezien de eisen dan dus duidelijk zijn, is dit een activiteit die zich goed leent voor automatisering (als je de testen tenminste vaker dan één keer van plan bent uit te voeren, zoals bij een regressietest, want anders is het meestal de investering niet waard).

Validatie heeft tot doel om vast te stellen of het testobject doet wat de organisatie en de gebruikers nodig hebben. Het lastige daarbij is dat de gebruikers niet altijd even goed hebben gespecificeerd wat ze nodig hebben, bijvoorbeeld omdat het voor hen zo logisch is dat ze het niet eens vertellen, maar soms ook omdat ze eigenlijk zelf ook niet weten wat ze nodig hebben. Daardoor is validatie veel lastiger te automatiseren, want je moet eerst onderzoeken wat er nou eigenlijk nodig is. Bij validatie gaat het ook vaker om progressietesten (het testen van nieuwe delen en wijzigingen) die, als het goed is, niet vaak herhaald hoeven te worden. Dus de vraag is of automatiseren de moeite waard is.

Bij exploratie ga je kijken wat er mogelijk is met het testobject, met name de dingen die niet vooraf beschreven of verwacht zijn. Bijvoorbeeld door te kijken wat er gebeurt als je niet-gespecificeerde acties uitvoert. Het meest treffende voorbeeld hiervan is security-testen waarbij je onder andere probeert om dingen te doen die niet de bedoeling zijn. Dit soort onderzoek is creatief intellectueel werk en kan dus niet geautomatiseerd worden. Exploratory testen is het meest sprekende voorbeeld van dit soort exploratie en wordt ook vaak als voorbeeld voor handmatig testen gebruikt.

Nu hoor ik mensen (vaak projectleiders en andere mensen die testen vooral goedkoop willen houden) wel eens verkondigen: ‘alle testen moeten geautomatiseerd worden’.

Dat kan volgens mij dus niet. Bij regressietesten kun je best een hoge automatiseringsgraad nastreven, maar zelfs daarbij is het verstandig om ook regelmatig nog wat exploratie te doen, want een testtool is ook maar een tool en ziet niet alles. Maar voor progressietesten is het naar mijn mening echt niet mogelijk om alles te automatiseren, simpelweg omdat er te veel onduidelijkheden en onzekerheden zijn. En juist daarbij komen de kennis en ervaring van de kwaliteitsbewuste IT-er te pas.

Eén onderwerp dat in ieder geval nog heel lang handmatig werk blijft, is het onderzoeken van de testresultaten, met name waar het werkelijke resultaat verschilt van het verwachte resultaat. Bij dit ‘topic’ (dat niet voor niets als apart topic is gedefinieerd in het nieuwe TMAP boek ‘Quality for DevOps teams’ en op https://www.tmap.net/page/introduction-qa-testing-topics) gaat het om het uitzoeken hoe het komt dat er een verschil is. En dat uitzoeken is typisch mensenwerk.

Dit alles gezegd hebbende; een pleidooi voor (meer) gebruik van testtools is heel legitiem!

Volgens mij is er namelijk een groot verschil tussen ‘automatisch testen’ en ‘automatisering toepassen bij het testen’. Je hebt de keuze uit een enorm scala aan tools die verschillende onderdelen van het testwerk makkelijker/sneller/goedkoper/leuker maken. Dus automatisering is zeker verstandig (sterker nog, ik blijf me verbazen hoe weinig tools de gemiddelde tester blijkt te gebruiken). En dat varieert van simpelweg het gebruik van een bevindingenbeheertool (het automatiseren van je bevindingenadministratie) tot een op kunstmatige intelligentie gebaseerd tool dat via de GUI op alle knoppen drukt om te checken of de applicatie normaal reageert.

Maar ook het gebruik van een testdatamanagementtool om je testbestanden op orde te krijgen/houden, is een vorm van testautomatisering.

Mijn conclusie is simpel: goed testen vergt menselijk vernuft, efficiënt testen vergt gebruik van tools. Dus een verstandige tester gebruikt diverse tools en zal altijd ook nog handmatig testtaken blijven doen.

Veel succes en plezier met verificatie, validatie en exploratie, al of niet geautomatiseerd!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *