DevOpsExploratory Testing

Exploratory Testing

Exploratory TestingVSTS

In de huidige wereld van organisaties die zich snel moeten kunnen aanpassen verandert de manier van softwareontwikkeling. Begrippen als Agile en Scrum zijn inmiddels niet meer weg te denken, net als DevOps en Continuous Delivery. Door een Agile aanpak te hanteren zijn organisaties in staat om te reageren op een snel veranderende omgeving. Dit betekent een andere manier van werken voor software developers, maar zeker ook voor de discipline van software testers.

Traditioneel wordt voor elk stukje functionaliteit dat gerealiseerd moet worden één (of meerdere) test cases geschreven. Deze test cases worden vervolgens door een tester uitgevoerd, om zo te verifiëren of de gebouwde functionaliteit voldoet aan de gestelde specificaties. De test cases worden opgenomen in een test repository, zodat deze opnieuw gebruikt kunnen worden voor bijvoorbeeld een regressietest.
Met de transformatie naar Agile en Continuous Delivery blijkt een dergelijke aanpak echter niet houdbaar. Om snel te kunnen reageren is het van vitaal belang dat gebouwde functionaliteit ook snel in productie genomen kan worden. Natuurlijk moet deze functionaliteit dan ook getest zijn. Om dit te kunnen realiseren speelt testautomatisering een grote rol. Ook is het van vitaal belang om de kennis en kunde van testers in te zetten op een manier waarop deze de meeste waarde oplevert. Dit is waar “Exploratory Testing” belangrijk wordt.

Exploratory Testing als aanpak

Bij Exploratory Testing is het doel om de kennis, tijd, ervaring, vrijheid en creativiteit van de tester optimaal in te zetten om de kwaliteit van het eindproduct te verhogen. In plaats van de losse activiteiten van test-ontwerp en test-uitvoering, worden bij Exploratory Testing test-ontwerp, test-uitvoering en analyse van de resultaten gezien als parallelle activiteiten tijdens het hele project. Daarbij bepaalt de tester zelf welke onderdelen van de applicatie de meeste aandacht vereisen en welke tests hij daarop uitvoert. In plaats van vooraf vastgelegde test cases uit te voeren, wordt bij Exploratory Testing gewerkt op basis van een testsessies. De resultaten van zo’n sessie kunnen vervolgens leiden tot één of meerdere bugs. Eventueel kan op basis hiervan ook een test case gedefinieerd worden.
De belangrijkste voordelen van deze aanpak zijn dat er minder voorbereiding nodig is en de belangrijkste bugs zullen eerder gevonden worden. Bovendien is Exploratory Testing vaak uitdagender voor de tester, vanwege het beroep dat gedaan wordt op zijn/haar kennis en creativiteit.
Een nadeel van deze aanpak is dat het lastig kan zijn voor een developer om gevonden bugs te reproduceren. Er staat immers niet vast welke stappen er genomen zijn tijdens de uitvoering van een test.
Om dit probleem te ondervangen zijn er diverse tools beschikbaar om een Exploratory Testing sessie op te nemen. Eén daarvan is de Exploratory Testing browser extensie van Microsoft.

Exploratory Testing met Visual Studio Team Services

 Exploratory Testing Browser Extensie

De Exploratory Testing browser extensie is verkrijgbaar in de Visual Studio marketplace en is geïmplementeerd als een extensie voor Google Chrome (support voor Microsoft Edge volgt binnenkort).
Via de extensie kun je heel eenvoudig een Exploratory Testing sessie starten. De Exploratory Testing extensie neemt alle acties die een tester tijdens de sessie uitvoert op. Daarnaast kun je tijdens de sessie screenshots en annotaties opnemen, of zelfs een video maken van je acties.
Wanneer een tester op een bug stuit, klikt hij/zij eenvoudigweg op “Create Bug”. De tester geeft een korte beschrijving van de bug en klikt op “Save”. Daarbij wordt gecheckt of er reeds soortgelijke bugs bekend zijn, zodat voorkomen wordt dat issues die al bekend zijn nogmaals gemeld worden.

Creatie workitem

De extensie creëert vervolgens een work item in Visual Studio Team Services / TFS. In het work item worden automatisch de stappen die leidden tot het probleem en een samenvatting van de systeemconfiguratie van de tester opgenomen. Hierdoor wordt het voor developers veel eenvoudiger om het probleem te analyseren en snel een oplossing te ontwikkelen.
Naast het aanmaken van bugs is het ook mogelijk om vanuit de Exploratory Testing sessie een test case aan te maken. De test case bevat dan automatisch de stappen die uitgevoerd zijn tijdens de sessie, inclusief screenshots. Op deze manier kun je heel snel hele duidelijke test cases definiëren.

 

 

Mobile

Mobile Exploratory Testing

Alhoewel de Exploratory Testing extensie een extensie voor een webbrowser is, ben je niet beperkt tot het testen van webapplicaties. Via integratie met Perfecto Mobile is het mogelijk om ook mobiele apps te testen, op zowel Android, iOS als Windows Mobile. Ook hierbij worden de stappen van de tester automatisch opgenomen en in eventuele aangemaakte bugs of test cases geplaatst.

Mobile Apps testen

Op deze manier kan een mobiele app heel eenvoudig op een heel scala aan mobiele devices, operating systems & schermgroottes getest worden. Dit zonder dat je daarbij daadwerkelijk zélf over deze devices hoeft te beschikken.

Conclusie

In de wereld van Agile & Continuous Delivery zal exploratory testing een steeds belangrijkere rol gaan innemen ten opzichte van “traditioneel” test-ontwerp en test-uitvoering. Eén van de belangrijkste aandachtspunten bij exploratory testing is het reproduceren van bugs. Het gebruik van geschikte tools kan hierbij aanzienlijk helpen. Wanneer je gebruik maakt van Visual Studio Team Services / TFS is de Exploratory Testing browser extensie van Microsoft een krachtig hulpmiddel, vanwege de eenvoudige integratie met VSTS / TFS. Naast het testen van webapplicaties, kun je deze extensie ook gebruiken voor het testen van mobiele apps op zowel iOS, Android als Windows Mobile door middel van integratie met Perfecto Mobile.