Wat is verkennend testen?
Wat is verkennend testen?
Verkennend testen is een vorm van softwaretesten waarbij testgevallen niet van tevoren worden gemaakt, maar waarbij testers het systeem ter plekke controleren. Ze kunnen ideeën noteren over wat ze moeten testen voordat de test wordt uitgevoerd. De focus van verkennend testen ligt meer op testen als een ‘denkactiviteit’.
Exploratory Testing wordt veel gebruikt in Agile-modellen en draait helemaal om ontdekken, onderzoeken en leren. Het benadrukt de persoonlijke vrijheid en verantwoordelijkheid van de individuele tester.
Waarom verkennend testen?
Bij scripted testing ontwerpt u eerst testcases en gaat u later over tot testuitvoering. Exploratory testing is daarentegen een gelijktijdig proces van testontwerp en testuitvoering, allemaal tegelijkertijd.
Testuitvoering via scripts is meestal een niet-nadenkende activiteit waarbij testers de teststappen uitvoeren en de daadwerkelijke resultaten vergelijken met de verwachte resultaten. Dergelijke testuitvoeringsactiviteiten kunnen worden geautomatiseerd en vereisen niet veel cognitieve vaardigheden.
Hoewel de huidige trend bij het testen van software erop gericht is om aan te dringen automatisering, verkennend testen is een nieuwe manier van denken. Automatisering heeft zijn grenzen
Verschillen tussen scripttests en verkennende tests
Scripttesten | Verkennend testen |
---|---|
Gestuurd vanuit eisen | Gestuurd vanuit eisen en verkennend tijdens het testen |
Bepaling van testgevallen ruim vooraf | Bepaling van testgevallen tijdens het testen |
Bevestiging van testen met de vereisten | Onderzoek van systeem of applicatie |
Benadrukt voorspellingen en besluitvorming | Benadrukt aanpassingsvermogen en leren |
Betreft bevestigde tests | Betreft onderzoek |
Gaat over het controleren van tests | Gaat over het verbeteren van testontwerp |
Net als bij het houden van een toespraak: je leest voor uit een concept | Alsof je een gesprek voert – het is spontaan |
Het script heeft de controle | De geest van de tester heeft de controle |
Verkennende testtechnieken
- Het zijn geen willekeurige tests, maar ad-hoctests met als doel bugs te vinden
- Is gestructureerd en nauwgezet
- Is cognitief (denkend) gestructureerd vergeleken met de procedurele structuur van gescripte tests. Deze structuur komt van Charter, time boxing etc.
- Is zeer leerzaam en beheersbaar
- Het is geen techniek maar een aanpak. Welke acties u vervolgens uitvoert, wordt bepaald door wat u momenteel doet
Hoe u verkennende tests uitvoert
Hieronder volgt een stapsgewijs proces voor het uitvoeren van exploratief testen, ook wel sessiegebaseerd testmanagement (SBTM-cyclus) genoemd:
Stap 1) Maak een bugtaxonomie (classificatie)
- Categoriseer veelvoorkomende soorten fouten die in eerdere projecten zijn aangetroffen
- Analyseer de oorzaakanalyse van de problemen of fouten
- Vind de risico's en ontwikkel ideeën om de applicatie te testen.
Stap 2) Testcharter
- Test Charter zou moeten suggereren
- wat te testen
- hoe het getest kan worden
- Waar moet naar gekeken worden
- Testideeën vormen het startpunt van verkenningstesten
- Testcharter helpt bepalen hoe de eindgebruiker het systeem kan gebruiken
Stap 3) Tijd Box
- Bij deze methode werken twee testers minimaal 90 minuten samen
- Er mag geen onderbroken tijd zijn tijdens deze sessie van 90 minuten
- Timebox kan met 45 minuten worden verlengd of verkort
- Deze sessie moedigt testers aan om te reageren op de reactie van het systeem en zich voor te bereiden op de juiste uitkomst
Stap 4) Revbekijk resultaten
- Evaluatie van de gebreken
- Leren van de testen
- Analyse van dekkingsgebieden
Stap 5) Nabespreking
- Compilatie van de uitvoerresultaten
- Vergelijk de resultaten met het charter
- Controleer of er aanvullende tests nodig zijn
Best practice verkennend testen
Tijdens de verkennende uitvoering moet het volgende gebeuren:
- De missie van het testen moet heel duidelijk zijn
- Houd aantekeningen bij over wat er getest moet worden, waarom het getest moet worden en de beoordeling van de productkwaliteit
- Het volgen van vragen en problemen die tijdens verkennende tests naar voren zijn gekomen
- Het is beter om de testers te koppelen voor effectief testen
- Hoe meer we testen, hoe groter de kans dat we de juiste testgevallen uitvoeren voor de vereiste scenario's
Het is erg belangrijk om een document te nemen en het volgende te controleren
- Testdekking – Of we aantekeningen hebben gemaakt over de dekking van testgevallen en de kwaliteit van de software hebben verbeterd
- Risico’s – Welke risico’s moeten worden afgedekt en welke zijn allemaal belangrijk?
- Testuitvoeringslogboek – Opnames over de testuitvoering
- Problemen/query's – Maak aantekeningen over de vraag en problemen op het systeem
Slimmer verkennend testen ontdekt meer fouten in minder tijd.
Voor- en nadelen van verkennend testen
Voordelen
Nadelen
- Dit testen is puur afhankelijk van de vaardigheden van de tester
- Beperkt door domeinkennis van de tester
- Niet geschikt voor Lange uitvoeringstijd
Uitdagingen van verkennend testen
Er zijn veel uitdagingen bij verkennend testen en deze worden hieronder uitgelegd:
- Het leren gebruiken van de applicatie of het softwaresysteem is een uitdaging
- Replicatie van een mislukking is moeilijk
- Het kan een uitdaging zijn om te bepalen of er hulpmiddelen moeten worden gebruikt
- Het kan moeilijk zijn om te bepalen welke testgevallen het beste kunnen worden uitgevoerd
- Het rapporteren van de testresultaten is een uitdaging, omdat het rapport geen geplande scripts of cases bevat om te vergelijken met het daadwerkelijke resultaat of de uitkomst
- Documentatie van alle gebeurtenissen tijdens de uitvoering is moeilijk vast te leggen
- Bij verkennend testen zijn er geen vaste testcases om uit te voeren, waardoor het lastig is om te bepalen wanneer je moet stoppen.
Wanneer verkennend testen gebruiken?
Verkennend testen kan op grote schaal worden gebruikt wanneer
- Het testteam bestaat uit ervaren testers
- Vroege iteratie is vereist
- Er is een kritische toepassing
- Er kwamen nieuwe testers bij het team
Conclusie
Bij Software Engineering worden verkennende tests uitgevoerd om de beperkingen van scripttests te overwinnen. Het helpt bij het verbeteren Testgeval suite. Het leeft in op leren en aanpassingsvermogen.