Exploratory Testing, in het Nederlands Exploratief Testen (ET), is een aanpak voor het testen. Tijdens het uitvoeren van de test bepaalt de tester wat de inhoud en het doel van de testgevallen is. ET is, zeker bij agile systeemontwikkeling, een veelvuldig toegepaste aanpak.

Exploratory Testing als deel van het testproces

Exploratiory testing (ET) is door Cem Kaner al in 1984 bedacht [Kaner 2008]. ET is een vorm van testen, waarbij de tester zijn testen tijdens de testuitvoering ontwerpt. De informatie die de tester bij de uitvoering verkrijgt, gebruikt hij om nieuwe, betere testgevallen te ontwerpen. TMap-Next noemt ET een testtechniek. Anderen zeggen daarentegen dat ET een aanpak is, waarbij je  testontwerptechnieken als grenswaardeanalyse of equivalentieklassen toepast. Samen met James Bach definieert Cem Kaner ET als een mindset, niet een testmethode maar eerder  “…een manier om over en tijdens het testen na te denken” [Kaner 2004]. Al met al heeft ET een belangrijke plaats in het testproces ingenomen.

Het gebruik van ET

Het woord ‘exploratief’ geeft aan dat bij deze testaanpak het onderzoeken, proberen en uitvinden belangrijk zijn. Bij ET ligt het uit te voeren testscenario niet geheel vast; de tester krijgt de opdracht om een bepaald gebied van het systeem te testen. Deze opdracht noemen we ‘charter’. Binnen die opdracht kan de tester zelfstandig bepalen welke testgevallen en welke delen van het systeem belangrijk zijn. Daarbij bepaalt de tester hoe de testgevallen worden uitgevoerd.

Reactief testen

De kracht van ET ligt erin dat de tester, meer dan bij een vooraf opgesteld scenario, tijdens de testuitvoering kan reageren en voortborduren op situaties die ontstaan. Deze situaties kunnen zowel verwacht als onverwacht voorkomen. Dat is een belangrijk voordeel boven het testen volgens een vooraf opgesteld scenario. In zo’n scenario liggen alle uit te voeren testsituaties vast en wordt verwacht dat de tester zich daaraan houdt.

Het proces van Exploratief Testen

Voor het succesvol toepassen van ET geldt een aantal voorwaarden:

  • er is een gedegen voorbereiding van de test, waarbij de scope en beschikbare tijd worden bepaald en de opdracht aan het testteam wordt beschreven;
  • een tester en een productspecialist voeren, als team achter één computer, de test op de juiste wijze uit;
  • voor elk testgeval legt de tester tijdens de uitvoering de inhoud, de verwachte en de daadwerkelijke uitkomst vast. Deze informatie is belangrijk bij een hertest of regressietest;
  • de tester legt elke bevinding vast in de bevindingenregistratie;
  • na afloop van de, vooraf vastgestelde, testtijd vindt een evaluatie plaats van het resultaat van de uitgevoerde test;
  • Na afloop van het gehele testproces vindt een evaluatie plaats van het proces als geheel met als doel van de uitkomsten te leren.

Wanneer aan deze voorwaarden is voldaan, biedt ET een belangrijke aanvulling op de overige geplande tests.

Wanneer ET toepassen?

ET toepassen als enige testaanpak binnen een testproces heeft niet de voorkeur. Hiervoor zijn verschillende redenen aan te dragen:

  • Testers en productspecialisten hebben veelal een ‘voorkeursgebied’. Hierdoor zijn zij geneigd steeds dezelfde zaken te testen, waardoor zij mogelijk belangrijke zaken vergeten te testen.
  • Door het reactieve karakter van ET kan de tester van het testdoel worden afgeleid, vergeten waar hij gebleven was en steeds verder afdwalen.

Echter, deze nadelen vormen ook de voordelen. Juist door dat ‘voorkeursgebied’ en de kennis van het systeem voelt een productspecialist aan wanneer in een bepaald deel van het systeem mogelijk fouten verborgen zitten. In de praktijk zien we dat ET op 2 gebieden een waardevolle aanvulling is:

  • op het scenario-gebaseerd testen;
  • als testaanpak bij agile systeemontwikkeling.

Scenario-gebaseerd testen

Bij scenario-gebaseerd testen volgt de tester een vooraf bepaald scenario met testgevallen. Als een tester tijdens het uitvoeren van het scenario op onverwacht situaties stuit, kan hij besluiten om de werking van het systeem verder met ET te onderzoeken en testen. Voorwaarde is dan wel dat de tester, na deze uitstap, teruggaat naar het scenario en vanaf dat punt het scenario verder volgt.

Agile systeemontwikkeling.

Bij agile systeemontwikkeling testen we zo vroeg mogelijk, liefst geautomatiseerd (zie ook Agile testen). Dat betekent dat de eindgebruiker, gedurende de sprint, het testen grotendeels overlaat aan de leden van het ontwikkelteam. Dit team richt zich primair op de technische en functionele werking van de software. Voor de feitelijke acceptatie van de software en inpassing in de omgeving van de organisatie, is bredere kennis noodzakelijk. Hier is de kennis van de eindgebruiker en productspecialist belangrijk. Voor de uiteindelijke acceptatie van de software kan worden besloten om die productspecialist, samen met een tester, volgens ET het opgeleverde sprintresultaat te laten testen.

Als we Exploratory Testing op de juiste wijze inzetten, biedt het een belangrijke bijdrage aan het leveren van software die niet alleen goed werkt, maar ook de juiste functionaliteit biedt.

Menu