Tuesday 5 November 2013

Nederlands Kampioen testen worden met Exploratory Testing

Ja, dat kan iedereen wel!

Voor degene die het nog niet wist, ik ben Nederlands Kampioen testen 2013 geworden. Immune-IT had een NK uitgezet voor dit jaar en iedereen mocht mee doen. Dat liet ik niet aan mij voorbij gaan en heb getracht dit zo professioneel mogelijk aan te pakken. Op mijn manier, met een Exploratory Testing aanpak.

Nederlands Kampioen testen worden met Exploratory Testing
Ja, dat kan iedereen wel?

Ik vraag mij het af als ik zo de geluiden hoor van andere testvakbroeders in het veld. Want Exploratory testing is toch ongestructureerd, informeel, zonder test technieken, puur op gevoel, testen zonder naar documentatie te kijken en veel rammen op het toetsenbord?

Misverstanden
En dat zijn de misverstanden die ik nog veel te vaak hoor en dat moet een keer afgelopen zijn. Exploratory testing is in ieder geval het tegengestelde van wat hierboven vermeldt staat, want dat noem ik eerder monkey testing, error guessing of idiot testing. Exploratory testing is in de definitie zoiets als: "Parallel onderzoek doen, testontwerp en test uitvoer." 

En meer wil ik er niet over kwijt: Huib Schoots heeft een prima artikel geschreven in de TestNetNieuws van dit najaar en hij is er vrij duidelijk over. Dus mocht je wat meer willen weten over wat Exploratory Testing nu écht is. Lees dan zijn artikel in de TestNetNieuws. (pagina 17, let op: de rest van het blad is ook interessant)

Mijn aanpak en het NK
En nu voor degene die het interesseert, mijn aanpak die ik heb gebruikt en hoe het verliep. Een paar zaken waren van tevoren in ieder geval duidelijk:
  1. Een maand voor het NK zou een Functioneel ontwerp gestuurd worden
  2. Aan de hand hiervan kon je eenmalig vragen stellen
  3. De puntentelling ging aan de hand van het aantal bugs die je vond, waarbij bugs die je vond aan de hand van het ontwerp minder waard zijn dan 'onverwachte' bugs.
Het functioneel ontwerp in een mindmap
Eén van de zaken die ik ondertussen heb geleerd is om er voor te zorgen dat je zo goed mogelijk probeert er achter te komen hoe de software in elkaar zit. Het enige document wat je kreeg was een functioneel ontwerp. Voor mij is dan een goede manier om wat ik weet in een mindmap te zetten, gecombineerd met losse bestanden met ideeën samen in een folder. Aan de hand van deze mindmap heb ik mijn vragen geformuleerd en verstuurd. 
Dit is nog een redelijk ingeklapte mindmap. Hij is gemaakt in de software Freemind.
Als je het originele bestand wilt, mail mij dan even.
Vergelijkbare sites
Het is altijd goed om vergelijkbare software te bekijken, dus heb ik wat achtergrond onderzoek gedaan naar vergelijkbare websites om een idee te krijgen waar ik het best kon beginnen. Uiteindelijk kwam ik er achter dat deze site redelijk uniek was. Ik vond één site met vergelijkbare software, heb mij ingeschreven bij de site en wat rondgekeken. De user interface van die site week zo af dat ik daar niet verder in gegaan ben. Omdat de functionaliteit zelf wel goed vergelijkbaar was kreeg ik het idee dat het te testen pakket misschien wel uit dezelfde basis bestond als de website die ik had gevonden. Met dit idee heb ik een kort onderzoek gedaan naar de technische achtergrond van de gevonden site en gezocht naar mogelijke problemen die eventueel konden optreden. Alhoewel ik wel wat geleerd heb, kon ik in ieder geval niet de informatie vinden die ik eigenlijk wilde vinden. Met dit onderzoek ben ik dan ook gestopt.

Checklists
De vragenlijst met de antwoorden van alle deelnemers kwam terug en gaf antwoord op vele vragen. Bij veel vragen stond ook als antwoord: 'Onbekend' of 'niet gespecificeerd'. Deze antwoorden en de bijbehorende vragen kwamen in ieder geval zeker op mijn checklist. Naast mijn mindmap en de vragenlijst had ik ook nog een paar andere checklists klaargezet:

Charters
De avond voor het NK heb ik test ideeën opgeschreven, mijn charters om mee te beginnen. Een charter kan je volledig uitschrijven, waarbij je je doel noteert en welke middelen je gebruikt om dit doel te bereiken. Dit heb ik niet zover uitgewerkt, omdat ik de software nog niet gezien had. De charters waren dus verwerkt in mijn mindmap en de eerste zou zijn: "Eerste onderzoek website", waarachter ik een grote checklist had gezet om diverse punten in de software te controleren. De verdere uitwerking van de rest van de ideeën zou ik dan doen op basis van deze eerste charter. Dit is een principe van Exploratory Testing. Je werkt de opvolgende te onderzoeken onderdelen uit op basis van wat je hebt geleerd in de loop van het traject.

De eerste testdag
Om negen uur in de ochtend op zaterdag werd de site opengesteld. Ik had ondertussen twee PC's klaar staan. Eén PC voor het 'grote' testwerk, de andere voor checklists en tests ten behoeve van multi-user, browser controle en dat soort zaken. Om 9:00 begon in met mijn eerste charter, waarbij ik systematisch door de functionaliteit van de website heen liep. En ik vond bugs... Veel bugs...

Meer bugs dan ik had verwacht. Mijn aanname dat men een goed stuk software zou neerzetten waar je met écht speurwerk bugs zou moeten vinden was al snel gebroken en eigenlijk kon ik gelijk beginnen met het invoeren van bugs in het systeem wat daar voor was klaargezet. Dit ben ik dan ook gaan doen. Alles wat ik tegenkwam ben ik gaan loggen. Hierbij hield ik wél in de gaten dat ik nog steeds gestructureerd door de software heen ging met de checklist in mijn mind-map om er in ieder geval voor te zorgen dat ik niet teveel verdwaalde en onderdelen zou vergeten. Natuurlijk werd het in de loop de tijd steeds lastiger om nieuwe bugs te vinden, als je de duidelijke eenmaal had gevonden, maar op zich kon ik genoeg bugs vinden, waardoor het niet nodig was om de charters verder in detail uit te werken. 

Invoeren van bugs
Het invoeren van bugs was zeker net zoveel werk als het bijeen schrapen van deze bugs, maar ook daar moet je niet in de valkuil vallen dat je bugs dubbel gaat invoeren. Het gestructureerd doorlopen aan de hand van de mindmap zorgde er in ieder geval voor dat ik zaken niet dubbel bekeek en dat ik focus kon houden. Ook zorgde ik voor veel screenshots die de meldingen begeleidden, een plaatje zegt meer dan 1000 woorden...

Meer dan 80 screenshots had ik verzameld in de loop van de twee dagen. 
Overigens gewoon met MS-Paint bewerkt. 
Met die tool kan ik net zo snel werken als enig andere screenshot software.

De loop van de twee dagen
Mijn focus was in eerste instantie niet op het functioneel ontwerp, gezien daar de minste punten te verdienen waren, maar ik heb het ontwerp wel gebruikt als checklist naast de mindmap. Ook de vragenlijst heb ik gebruikt als checklist. De meeste bugs 'verschil met fo' had ik daarmee al wel te pakken, maar ik denk dat ik veel meer 'onverwachte' bugs had. Aan het einde van de dag had ik al veel gecontroleerd en nog veel punten openstaan voor de volgende dag. 
Einde eerste dag, met veel zaken op done, maar nog veel te doen.
  • Gezien het hier niet om ging om als eerste een bug te vinden was dit geen probleem voor mij
  • Tussendoor heb ik pauze genomen om geconcentreerd te blijven. Het was wel moeilijk om dat te doen, het voelt aan als verloren tijd, maar heeft mij uiteindelijk wel geholpen in mijn concentratie om even de deur uit te stappen.
  • In de tussentijd had ik meer ideeën opgeschreven en een extra checklist gemaakt met 66 punten waar ik nog op wilde controleren. Die checklist was opgebouwd aan de hand van de eerder genoemde vragenlijst en opmerkingen die ik zelf tijdens het testen had toegevoegd.
En de tweede dag ging ik verder met bovenstaande proces, totdat het 16:00 uur werd. Nog een uur en het zou afgelopen zijn. Iemand gooide de server om door met tooling een aanval te doen hoorde ik achteraf. Hiermee was de database weggevallen, waardoor je ingevoerde zaken niet meer kon terugvinden. De user interface werkte nog wel, maar de software bewaarde geen informatie meer. Het laatste uur van deze tweede dag heb ik dus wel kunnen door testen en heb nog bevindingen gevonden op de user interface zelf.

Hoofdpijn en last van mijn arm
Beide dagen had ik aan het eind van de dag lichte hoofdpijn. Aan het einde van de eerste dag heb ik nog wel een analyse uitgevoerd en ideeën uitgewerkt voor de tweede dag. Aan het einde van de tweede dag was ik klaar voor wat ontspanning. Ik heb nog een paar dagen last gehad van mijn rechter-arm, maar met wat training en rustig aan doen is dat niet écht een probleem geworden. Donderdag 31 oktober kreeg ik te horen dat ik gewonnen had en ben met een iMac en een heuse titel naar huis gegaan met een zeer tevreden gevoel. Exploratory testing op een persoonlijke manier met een professionele aanpak levert wat op... En niet alleen in dit NK, maar ook in mijn dagelijks werk natuurlijk.

Meer informatie over Chickenwings Test Consultancy op www.chickenwings.nl

Friday 1 November 2013

Nederlands kampioen software testen!


"Rob van Steenbergen is de eerste Nederlands kampioen softwaretesten geworden. Tijdens het TestNet najaarsevenement werden de prijzen van het door Immune-IT georganiseerd NK Software testing 2013 uitgereikt. Rob ging er met de eerste prijs vandoor, een iMac."

Lees het bericht op Testnieuws.nl







Meer informatie over Chickenwings Test Consultancy op www.chickenwings.nl