Agile, Testadvies, Testautomatisering

In een Agile-setting is snelle en herhaalbare testautomatisering onmisbaar. Ten onrechte wordt echter vaak gedacht dat álles geautomatiseerd kan worden terwijl automatisering pas werkt wanneer het gedrag van de software zo helder is dat tests geautomatiseerd kunnen worden. Om dit gedrag helder te krijgen kun je exploratief testen inzetten. Het legt onbekend systeemgedrag bloot waarna geautomatiseerde testen dat wat bekend en wenselijk is, kunnen gaan testen.

Sneller schakelen

Vroeger had je weken om je tests voor te bereiden, uit te voeren en er iets van te vinden. Dat kan en hoeft niet meer. Omdat de softwareontwikkeling en het ontwikkelproces veel sneller gaan. Exploratory testen biedt uitkomst hierbij omdat je sneller kunt schakelen: de testscripts hoef je niet meer van tevoren nauwkeurig uit te denken. Je bedenkt ze als tester tijdens de testuitvoering. Dat klinkt eenvoudig, maar er zijn wel een aantal spelregels aan exploratory testen verbonden om te voorkomen dat we lukraak aan de slag gaan en zomaar wat testen. Stel bijvoorbeeld altijd vooraf testdoelen op en werk deze uit tijdens het testen. Een Mnemonic/Charter geeft richting en houvast aan de specificatie en uitvoering van exploratory testing. Volgende week vertel ik in hoe je in zeven stappen structuur aanbrengt in je exploratory testen.

Fouten op onverwachtse plaatsen

Vaak geeft Exploratory testen gelijk antwoord op de vraag of het product geaccepteerd wordt. Ook spoor je met exploratory testen fouten op die anders door de mazen van het net zouden glippen: formele testspecificatietechnieken zijn immers gericht op het vinden van bepaalde fouten. Maar vaak zitten de fouten in de software op onverwachte plaatsen. Met Exploratory testen richt je je als tester minder op het vinden van bepaalde fouten en meer op het vinden van fouten in het algemeen. Wel vraag je je als tester bij iedere gevonden fout af of deze uniek is of ook op andere plaatsen kan voorkomen. Naast een aanvulling op het testen vanuit testscripts, is exploratory testen ook een goede aanvulling op testautomatisering. Omdat je automatische tests fouten over het hoofd zien wanneer zij zelf een bug bevatten.

"Vroeger had je weken om je tests voor te bereiden, uit te voeren en er iets van te vinden. Dat kan en hoeft niet meer."

Time-box test tips

Een van mijn favoriete manieren om exploratory testen in te zetten, is time-box testen. Als tester ga je dan gedurende een vastgestelde tijd in een afgesloten ruimte geconcentreerd testen. Je gaat beschrijven en ervaren, zonder vooraf helemaal vast te leggen hoe je gaat testen. Enkele tips om dit goed op te zetten:

  • Leg duidelijk je doelstellingen vast.  Bijvoorbeeld ‘ik wil na een uur weten hoe deze functionaliteit werkt’. Door de doelstellingen goed te kiezen, wordt voorkomen dat testers dezelfde zaken dubbel testen.
  • Zorg voor een afgesloten ruimte waar je niet uit je concentratie wordt gehaald.
  • Test gedurende een vastgestelde tijd de functionaliteit en meld de geconstateerde bevindingen; wat kwam je tegen?
  • Je kunt beknopt vastleggen wat je hebt getest in de beschikbare tijd. Maar houd de hoeveelheid testdocumentatie zo klein mogelijk. Gebruik een charter als format.
  • Leg vast wat je doet en ziet. Geef na de tests een terugkoppeling waarin je vermeldt wat je gezien hebt en wat je advies is. Vermeld ook naar welke punten je nog meer wilt kijken.
  • Hoe je zaken vastlegt, is vrij naar de persoon die het vastlegt. Dat past natuurlijk helemaal binnen het exploratory idee. Maak met elkaar wel goede afspraken over hoe je zaken vastlegt. Dat maakt het makkelijker om anderen (ook niet IT-ers) te laten testen.

Voor wie

Exploratory kan door alles en iedereen worden opgezet en uitgevoerd. Sterker nog een (eind)gebruiker kan waarschijnlijk nog beter exploratory testen opzetten en uitvoeren dan de tester. Dit komt doordat de gebruiker precies weet hoe hij wil dat een bepaald product zich gedraagt. Dit gedrag kan ook anders zijn dan door de tester gespecificeerd. Of het kan zijn zoals gespecificeerd, maar toch niet hetgeen wat de gebruiker wil.

Situaties waarbij exploratory testen niet geschikt is

Er zijn situaties waarin exploratory testen niet geschikt is: bijvoorbeeld wanneer de klant hoge eisen stelt aan de aantoonbaarheid en vastlegging van testen, zoals bij ‘life-critical’ software. Of bij het testen van een batch waarbij de testresultaten niet direct beschikbaar zijn. Ook in situaties die veel voorbereiding vergen – zoals het testen van ingewikkelde berekeningen, performancetesten, het testen van beveiliging of het testen van ‘usability’ – is exploratory testen niet de meest voor de hand liggende testtechniek om te gebruiken. Je wilt de nodige voorbereidingen immers liever ruim vóór het uitvoeren van de tests treffen, omdat je anders onnodig veel tijd kwijt bent tijdens het uitvoeren van je tests.

 

 

Schrijf je in voor
de nieuwsbrief

werkenbij overall

Werken bij Bartosz?

Vincent Verhelst

Geïnteresseerd in Bartosz? Dan ga ik graag met jou in gesprek. We kunnen elkaar ontmoeten met een kop koffie bij ons op kantoor. Of tijdens ontbijt, lunch, borrel of diner op een plek die jou het beste uitkomt. Jij mag het zeggen.

Mijn Paarsz