Exploratory testen wordt vaak verward met error guessing er zijn echter toch wel erg grote verschillen. Deze verschillen heb ik beschreven in mijn eerdere post: Testontwerptechniek: Error Guessing (EG)
Wat is Exploratory testen?
Exploratory testen is het simultaan leren,ontwerpen en uitvoeren van tests. De tester kan hierbij de informatie gebruiken die wordt verkregen tijdens het uitvoeren van de test om betere testgevallen op te stellen.
Bij het gebruik van exploratory testen ligt het ontwerp en het uitvoeren van de test erg dicht bij elkaar, mede hierdoor is het vastleggen van testgevallen niet echt nodig. Echter een belangrijk verschil van exploratory testen ten opzichte van ad-hoc of ongestructureerd testen is dat bij exploratory testen wel degelijk een testontwerp wordt gemaakt.
Voor het bepalen wat er getest moet worden maakt de tester gebruik van de meest toepasselijke basistechnieken, dit stel hoge eisen aan de tester omdat hij veel basistechnieken moet kunnen toepassen zonder elke techniekstap expliciet uit te werken.
Wat zijn de stappen die doorlopen worden
Wanneer je bezig gaat met exploratory testen zijn er een aantal stappen gebruikelijk voor het uitvoeren van deze testmethode.
Stap 1: Bedenk in je hoofd hoe het product volgens jou functioneel zou moeten werken.
Stap 2: Maak 1 of meer tests die bewijzen dat het product niet zo werkt als je je had voorgesteld in stap 1
Stap 3: Voer je gemaakte tests uit en analyseer de uitkomst
Stap 4: bepaal hoe de uitkomst zich verhoudt tegen jou idee van hoe het product zou moeten functioneren
Stap 5: Herhaal dit proces (stap 1 t/m 4) totdat bewezen, of juist niet bewezen is dat het product voldoet aan jou gedachte hoe het product zou moeten werken. Doordat je het gemaakte product beter leert kennen tijdens stap 3 en 4 zul je naarmate je langer aan het testen bent steeds weer nieuwe te testen situaties bedenken.
Als alternatief kan er ook voor gekozen worden om stap 1 over te slaan en gewoon direct het product te gaan gebruiken. Hiervoor moet de tester echter nog meer domeinkennis hebben om dit goed uit te kunnen voeren.
Wanneer gebruik maken van Exploratory testen
Eigenlijk maakt elke tester in een mindere of meerdere mate wel gebruik van exploratory testen. Wanneer een tester tijdens het uitvoeren van een testscript iets in het systeem tegen komt wat er anders uitziet, of anders werkt als verwacht zoekt hij uit of dit terecht is. Dit is een vorm van explorerend testen.
Exploratory testen kan door de grote vrijheid van de techniek toegepast worden in vele situaties, enkele situaties waar Exploratory testen een goed alternatief is zijn:
- Wanneer de tester die het toepast veel materiekennis heeft.
- Wanneer de kosten die besteed mogen worden aan test minimaal zijn.
- Wanneer er weinig gedocumenteerde testbasis is.
- Als aanvulling op andere technieken.
- Wanneer er te weinig tijd beschikbaar is om tests voor te bereiden.
Er zijn uiterraad ook situaties te benoemen wanneer exploratory testen niet de juiste testtechniek is om toe te passen, bijvoorbeeld:
- Wanneer het leveren van bewijslast van de uitgevoerde testen (en de verslaglegging daarvan) van groot belang is.
- Wanneer je functionaliteit aan het testen bent die bij falen grote schade aan kan richten.
- Wanneer het testteam bestaat uit onervaren testers (zowel bij onervarenheid in het te testen product, als onervarenheid in testen als een vak).
- Wanneer testen niet alleen moeten kunnen worden uitgevoerd door de maker van de test.
- Wanneer je testen moet uitvoeren die voor een groot deel bestaand uit voorbereiding, een voorbeeld hiervan kan zijn wanneer je een stuk functionaliteit wilt testen die een lastige berekening uit moet voeren.
Wat is de link tussen Exploratory testen en Scrum
Exploratory testen is een techniek die vaak in verband wordt gebracht met de Scrum werkwijze. Dit is niet zo vreemd als je bedenkt hoe het scrum proces werkt.
Exploratory testen is een goed alternatief wanneer er weinig testbasis beschikbaar is en er weinig tijd is om tests voor te bereiden. Dit zijn allebei zaken waar je als tester vaak tegenaan loopt in een scrum proces. De tester heeft tevens veel materiekennis nodig, binnen een scrum proces kan deze kennis ook gemakkelijk gehaald worden binnen de andere disciplines waar je mee samen werkt.
Het is in veel gevallen wel aan te raden om naast Exploratory testen andere meer gestructureerde testontwerptechnieken te gebruiken.