In de meeste projectteams gaan testers pas aan het werk als er een werkende app is. Dan pas geven testers hun 'oordeel' over de functionaliteit als waren zij de gebruikers van het systeem. Maar dat is veel te laat, betoogt Viktor Clerc van Xebia Test Automation.

Vanaf het begin continu testen

Viktor schetst de gang van zaken in veel traditionele en agile projecten. Eerst worden daarin door de product owner de eisen zo scherp mogelijk in beeld gebracht. Daarna gaan de ontwikkelaars bouwen, en pas als er een werkend stuk functionaliteit beschikbaar is, wordt de tester erbij gehaald. Die moet dan gaan testen op basis van wat er van tevoren aan eisen op schrift is gesteld. "Maar dan kan hij er zomaar achter komen dat de eisen helemaal niet zo duidelijk zijn", zegt Viktor. "Bovendien kan zo'n tester het nooit goed doen. Óf hij vindt geen fouten en dan heeft hij geen toegevoegde waarde, óf hij zorgt voor vertraging en dan is hij alleen de boodschapper van slecht nieuws."

Volgens Viktor moet het radicaal anders. De tester moet er vanaf het begin bij zijn, al op het moment dat met de klant de eisen worden geformuleerd. "Hij kan er dan direct met een testmind naar kijken en er scherpe en kritische vragen bij stellen. Het is bijvoorbeeld voor een app noodzakelijk dat "je geld kunt overmaken", maar dat is heel algemeen geformuleerd. Een tester gaat daar samen met de product owner voorbeelden bij bedenken. Geld overmaken moet ook kunnen van een ABN AMRO-rekening naar een ING-rekening. En als het op zaterdag of zondag gebeurt, wat dan? Of als er een negatief bedrag wordt ingevuld? Dat is het soort praktische vragen dat een tester stelt." De tester is volgens Viktor dus niet afwachtend. Hij is zelfs de katalysator voor het gesprek.

Het DNA van de tester

Een tester begint meteen met het maken van testgevallen. En daarmee helpt hij volgens Viktor Clerc direct de ontwikkelaars, omdat zij nu beter weten wat er gebouwd moet worden. "Het zit in het DNA van de ontwikkelaar dat hij zegt: 'Cool, dat ga ik bouwen.' In het DNA van de tester zit juist dat hij direct vragen stelt. Hij is nieuwsgierig en zet mensen aan het denken. Als je dat samenbrengt, dan weet de ontwikkelaar beter wat hij gaat bouwen, dan weet de tester precies wat hij moet gaan testen met als resultaat dat de product owner meer vertrouwen heeft. Die 'early dialog' heeft dus heel veel voordelen!"

Daarna is het zaak om te blijven nadenken over wat er volgende week gedaan moet worden. Is dat al concreet genoeg gemaakt? Er moet vervolgens gezamenlijk een werkvoorraad worden gecreëerd. De tests worden ook door de tester en de ontwikkelaar samen opgesteld. Viktor: "De teamleden hebben een gezamenlijk doel, ze hebben namelijk allemaal een gedeelde drang naar kwaliteit. Softwareontwikkeling wordt zo een samenspel tussen volwassen testers en volwassen ontwikkelaars." De grenzen tussen die twee rollen gaan ook vervagen, denkt Viktor. "Ontwikkelaars moeten zorgen dat door hen ontwikkelde code testbaar is, en testers moeten meer affiniteit krijgen met ontwikkeling en tools. Zo wordt de ontwikkelaar kwaliteitbewuster, en wordt de tester technischer."

Tools voor automatisch testen

Er zijn op dit moment heel veel testtools die dit proces faciliteren. Allereerst helpen ze de tester met het uitschrijven van de testgevallen, met als resultaat uitgeschreven scenario's in voor de business begrijpelijke taal. De testgevallen worden vervolgens besproken met de business, wat dan weer extra voorbeelden kan opleveren. Wat als er bijvoorbeeld een negatieve geboortedatum wordt ingevuld? En nog zoveel mogelijk andere rampscenario's.

Verder zijn er tools voor het daadwerkelijke testen. De verschillende scenario's kunnen daardoor heel snel worden doorlopen. "In plaats van in een half uur door 5 testgevallen heen te gaan, gebeurt dat met deze tools in twee seconden", stelt Viktor. "En dus kun je veel meer en veel vaker gaan testen."

Uitbouwen in sprints

In de eerste week van het project heeft het team bijvoorbeeld twee tests gemaakt, en die mislukken natuurlijk allebei omdat er nog niets gebouwd is. "Die staan op rood omdat ik bijvoorbeeld nog geen cent kan overmaken van de Bahama's naar Kenia", zo legt Viktor het in een voorbeeld uit. "En dus weet de ontwikkelaar precies waar het programma wat hij gaat ontwikkelen aan moet voldoen. Hij wil die test op groen hebben."

"In de volgende sprint maakt de tester nog twee tests en past hij mogelijk een van de eerste twee aan. Want de tester blijft kritisch kijken naar wat er getest moet worden", gaat Viktor verder. "En dat gaat weer allemaal in scenario's die allemaal afgetimmerd moeten worden. "Hoe doet mijn systeem het in verschillende browsers? Dat zijn minstens weer vier lichten die op groen moeten."

Veilig gevoel in het Walhalla

Het voordeel van op deze manier testen is volgens Viktor heel duidelijk. Ten eerste weet je vanaf het begin precies waar je staat en wat je nog moet doen. "Je hebt heel duidelijke acceptatiecriteria", zegt hij. "Bij handmatig testen moet de tester pas na het bouwen bepalen hoe hij functioneel moet testen, en dus zit hij met zijn handen in het haar. En dan gaat hij maar voor 'goed genoeg', want ook hij voelt de druk om de applicatie op tijd af te hebben. Maar met automatisch testen weet iedereen vanaf het begin altijd waar hij staat."

"Daarnaast weet je het ook direct als er iets kapot gaat", voegt Viktor daar aan toe. "Als je iets toevoegt en een eerdere test gaat op rood, dan weet je precies waar je iets stuk hebt gemaakt. Je houdt dus automatisch over heel de software de vinger aan de pols." Als lichtend voorbeeld wijst hij daarbij op bol.com, dat het volgens hem vrij goed voor elkaar heeft. "Daar draaien ze dagelijks 6000 testen voor alle onderdelen van de website. Dat doen ze 's nachts en automatisch, dus er hoeft ook niemand zijn bed voor uit. Maar het geeft wel een heel veilig gevoel. Dat is het walhalla, en dat zouden veel meer organisaties moeten nastreven."

Hands on

Viktor Clerc wil de visie van Xebia Test Automation van de daken schreeuwen. "Maar niemand hoeft ons op ons woord te geloven. We nodigen de buitenwereld uit om te komen kijken hoe we het doen." Xebia organiseert regelmatig hands-on sessies, waarbij testers en ontwikkelaars in een demo-opstelling aan de slag kunnen. Alle consultants van Xebia Test Automation begeleiden dit en zo delen zij hun passie. "Hier kan iedereen uit eigen ervaring komen zien dat we gelijk hebben", zegt Viktor zelfverzekerd.

Ben je nieuwsgierig naar automatisch testen en wil jij op 30 maart een hands-on sessie livestream bijwonen, kijk dan op de website van Xebia