De haalbaarheid van ‘Automatiseer al het testen’

In deze tijden van agile en DevOps hoor je steeds vaker uitspraken zoals: ‘automatiseer al het testen’; ‘100% test automatisering’ en ‘maak zo veel mogelijk gebruik van testtooling’. Nou kun je alleen checks automatiseren, voor echt testen heb je toch echt menselijke intelligentie nodig maar dat is een andere discussie. Ik heb de laatste tijd veel nagedacht over de vraag of je alles kunt automatiseren en gekeken wat anderen hierover zeggen. En ik ben tot de conclusie gekomen dat 100% testautomatisering niet kan en dat als mensen dat roepen ze eigenlijk weinig van testen begrijpen. Hoe ben ik tot die conclusie gekomen? En wat zijn mijn bronnen daarbij?

De eerste reden waarom ‘automatiseer al het testen’ onzin is komt uit de briljante blog ‘Implication of emphasis on automation in CI’ door Martin Jansson (http://thetesteye.com/blog/2017/03/implication-of-emphasis-on-automation-in-ci/). Jansson geeft aan dat het niet zinvol is om alle tests te automatiseren. Hij begint ermee te benoemen dat het aantal testgevallen die je kunt doen oneindig is. Een deel van deze oneindig grote set gevallen is zinvol om te doen. Van de zinvolle tests zijn er een aantal tests die je één keer wil doen, die moet je vooral niet automatiseren. Misschien dat je de test waarvan je van plan bent om deze meerdere keren uit te voeren zou willen automatiseren maar sommige testen zijn eenvoudigweg niet te automatiseren, bijvoorbeeld omdat de uitkomst alleen door een mens is te beoordelen. Sommige van de tests die je dan overhoudt zijn te duur om te automatiseren, een paar keer handmatig uitvoeren is eenvoudigweg goedkoper. Kortom: van alle tests die je kan en wil doen zijn er slechts een deel technisch en economisch geschikt om te automatiseren. Dan hou je toch nog wel veel niet-te-automatiseren tests over.

De tweede reden waarom ‘automatiseer al het testen’ onzin is zit hem erin dat testen veel meer is dan het uitvoeren van testgevallen. Dit argument werd door Michael Bolton op treffende wijze naar voren gebracht op TestIstanbul 2017. Want hoe kun je evaluatie, leren, exploreren, experimenteren, modeleren, bestuderen van de specificaties, observeren van het product, het trekken van conclusies, vragen stellen, risico assessments en prioritering, analyse van de dekking, patroonherkenning, besluitvorming, ontwerp van de testomgeving, ontwikkeling van testcode, gezond verstand, toolselectie, het maken van test-aantekeningen, voorbereiden van simulaties, onderzoeken van bevindingen, bouwen van relaties, overleg met product owners en ontwikkelaars, ontdekken van nieuwe informatie door het spontaan door het systeem gaan, maken van managementrapporten, maken van zinvolle bevindingenrapporten, analyseren van complexe situaties, bouwen van een testteam en het oplossen van conflicterende informatie automatiseren? (Deze opsomming is gebaseerd op een mail gestuurd van Michael Bolton aan mijn collega Adrian Canlon.) En o ja, hoe automatiseer je het maken van tests. Kortom: testen is veel meer dan het uitvoeren van tests. Of zoals Ilari Henrik Aegerter het op kernachtig zei op Heisenbug Sint Petersburg 2017: ‘You cannot automate human sensemaking’. En testen blijft toch vooral mensenwerk.

Maar ik denk dat het sterkste argument tegen ‘Automatiseer al het testen’ komt van Stephen Jannaway op de Test Automation Day 2017. Toen hij het over de ‘100% test automation’ had zei hij: Don’t forget why you test in the first place’. En volgens mij testen we om informatie over een (geautomatiseerd) systeem te geven aan de relevante belanghebbenden. Dat moeten we zo efficiënt en effectief mogelijk doen. En tools kunnen in sommige situaties het testen absoluut efficiënter en effectiever maken. Maar test automatisering is een middel, geen doel!

Kortom: je kan (en wil) niet alle tests automatiseren, testen bestaat uit veel meer activiteiten die niet te automatiseren zijn, en tools zijn hulpmiddelen. Dat we meer (en vooral beter) kunnen en moeten automatiseren staat voor mij als een paal boven water, er is nog veel winst te behalen met de inzet van tooling. Maar goed testen blijft toch vooral mensenwerk.

Jan Jaap Cannegieter

Jan Jaap heeft meer dan 20 jaar ervaring in ICT, vooral op het gebied van testen, requirements en procesverbetering. Daarnaast heeft hij een aantal boeken en artikelen in deze vakgebieden gepubliceerd en spreekt hij regelmatig op (internationale) conferenties.

Volg me op LinkedIn.