In het huidige Agile werken ligt de nadruk bij testen heel sterk op testautomatisering. Daarbij wordt voorbijgegaan aan het feit dat computers alleen maar datgene doen wat ze is opgedragen. Vooral in applicaties met sterke menselijke interactie ontstaat er in de samenwerking tussen mens en applicatie een grote mate van onvoorspelbaarheid die niet direct met testautomatisering te vangen is. Met alleen geautomatiseerde tests is er een grote kans dat we belangrijke bugs missen omdat we er niet op testen, omdat we ze niet verwachten! Er mist dus nog een belangrijke component in de agile teststrategie.
ECHT goed testen ontstaat als je naast geautomatiseerd testen, het product ook onderzoekt op onbekend/niet gespecificeerd gedrag en het bewust uitdaagt om ongewenst gedrag te vertonen. Door het product kundig te onderzoeken kun je het product ECHT leren kennen en ook productgedrag ontdekken waarvan je niet weet dat je het niet weet, maar dat zomaar erg ongewenst kan zijn! Dit is het terrein van de creatieve, menselijke tester, dit is het vakgebied exploratory testen.
Maar hoe doe je dat nu, goed exploratory testen? Hoe zorg je dat het meer is dan “Op zijn Jan Boeren Fluitjes (JBF) testen” of “Monkey testing”. Hoe zorg je dat je alle van belang zijnde onderzoeksdoelen identificeert, hoe zorg je dat het onderzoek planbaar wordt en ook echt resultaat oplevert?
Bij exploratory testen geef je jezelf de vrijheid om te onderzoeken hoe het product kan werken door experimenten uit te voeren op het product. Eigenlijk zoals een kind de wereld leert ontdekken door nieuwsgierig te zijn en veel vragen te stellen en dingen uit te proberen. Om een goede onderzoeksdekking te bereiken is het, anders dan bij JBF testen, noodzakelijk om, voordat je begint, na te denken over welke zaken je wilt gaan onderzoeken. Met andere woorden, wat zou je allemaal aan het product kunnen onderzoeken, van welke zaken zou je meer willen weten, wat zijn je onderzoeksdoelen of, op zijn Engels je “test goals”.
Na de creatieve test goals fase heb je, als het goed is, een grote hoeveelheid mogelijke onderzoeksdoelen geïdentificeerd. Maar, net als bij wetenschappelijk onderzoek, zijn de factoren tijd en budget beperkend voor wat je kunt doen. Het is dus goed om stil te staan bij waar de nadruk van het testen moet liggen, welk testdoel is het belangrijkst en moet het eerst worden uitgevoerd? Waar zitten de grootste risico’s op waardevermindering voor de klant? Dit noem we de “Focus” stap.
Als we de testdoelen weten en de focus bepaald hebben, rest nog een laatste stap voordat we aan de slag kunnen. We moeten nadenken over de aanpak, de “Approach”. Op welke wijze gaan we het onderzoek uitvoeren? Wat hebben we ervoor nodig? Welke testomgeving? Welke testdata? Welke testaccounts? Welke tools? Moeten we afhankelijkheden stubben of mocken? Als je hier niet van tevoren over nadenkt en onvoorbereid begint met exploratory testen, is de kans groot dat je tegen beperkende factoren aanloopt die je plannen dwarsbomen.
Door exploratory testen eerst te refinen met behulp van de drie stappen Goals-Focus-Approach, start je op een goede wijze. Natuurlijk zul je tijdens het uitvoeren van je onderzoek nieuwe testdoelen ontdekken, deze voeg je toe aan je Goals, dat is de kracht van exploren. Maar hierin zit ook een ontsporingsrisico! Voordat je het weet buig je af naar de nieuw geïdentificeerde onderzoeksdoelen en verlies je de oorspronkelijke doelen en de bepaalde focus uit het oog.
Het is dus belangrijk om bij elk nieuw geïdentificeerd testdoel even stil te staan bij de focus die het nieuwe testdoel moet hebben. Is het zo belangrijk dat je het meteen moet oppakken of kan het later? Of is het alleen maar leuk, maar zit het in de onbelangrijke niches van het product? En, als het een nieuw en belangrijk testdoel is, is het maar de vraag of je dat testdoel kunt uitvoeren met de beschikbare middelen. Je zult dus ook weer even stil moeten staan bij de Approach van het nieuwe testdoel.
Op deze wijze ondersteunt GFA je bij het exploratory testen en zorgt het ervoor dat je exploratory testen van hoge kwaliteit is en resultaat oplevert binnen de beschikbare tijd en/of het beschikbare budget.
Wil je de leren hoe je op een efficiënte en creatieve manier testideeën genereert, hoe je focus bepaalt en nadenkt over de juiste approach? Ben je geïnteresseerd in hoe GFA in de praktijk werkt? Volg dan onze training exploratory testen. Tijdens deze training gaan we dieper in op de GFA methodiek en leer je hem toepassen door het doen van veel praktische oefeningen op een echt, werkend product gemaakt met Lego Mindstorms©.
Wim ten Tusscher, testexpert en trainer