Utforskande testning

2008-09-16 Artikelbanken Test Läst 7870 gånger

Utforskande testning är en testteknik utan i förväg skrivna testfall. Testaren utformar testfallen samtidigt som de exekveras och samtidigt som han använder och lär sig systemet. Vid utforskande testning finns det inga exakta förväntade resultat utan testaren måste hela tiden utifrån sina egna erfarenheter och kunskaper bedöma om systemets svar och beteende är korrekt. Arbetet blir därigenom roligare och mer stimulerande för testaren. Begreppet utforskande testning, eller exploratory testing på engelska, myntades av Cem Kaner och James Bach i början av 1990-talet.

En vanlig analogi som används för att förklara fördelarna med utforskande testning är att lägga pussel. Att lägga pussel är att utföra ett stort antal testfall för att till slut nå målet; den färdiga bilden. Vem skulle komma på tanken att skriva testfall för detta?

Man skulle kunna säga att all systemtestning till viss del är utforskande. Det är nästan aldrig möjligt att skriva helt fullständiga testfall med fullständigt entydiga resultat eller att skriva testfall som täcker in all funktionalitet fullständigt. Testaren måste alltid till viss del göra egna bedömningar under testgenomförandet.

Utforskande testning har vissa likheter med men skall inte förväxlas med ad hoc-testning. Ad hoc-testning utförs ofta helt utan underlag och är enbart ett sätt att leta efter fel. Vid ad hoc-testning är det ofta svårt att återskapa hittade fel att hålla ordning på vad som testats.

För att strukturera arbetet vid utforskande testning bör man bryta ner systemet i överblickbara delar och noggrant föra en logg över vad man gör. Ofta börjar man med att göra en övergripande lista över testområden istället för att göra testspecifikationer med testfall. Listan (som ofta kallas test chart) innehåller information om vad som ska testas i ett system, hur detta i stora drag skall utföras och vilka resultat man kan förvänta sig. Man kan med fördel fastställa hur lång tid testerna får ta. Vid utforskande testning är det bra att följa en uttänkt strategi. För en windowsapplikation skulle en sådan strategi t ex kunna vara att testa alla menyer från vänster till höger.

När passar utforskande testning?

Om man har tillgång till erfarna och kompetenta testare kan man alltid använda sig av utforskande testning. I vissa situationer passar det dock särskilt bra. Om krav och specar är ofullständiga kan det t ex vara omöjligt att skriva testfall. Då kan en erfaren testare med kunskap om systemet ändå göra ett bra testjobb genom att använda principerna för utforskande testning.

Utforskande testning är inte ett sätt att spara tid men om tidplanen är pressad kan det vara ett sätt att snabbt komma igång med testexekveringen och därigenom tidigt rapportera fel och ge annan feedback till utvecklarna. System tenderar också att bli immuna mot testfall. Vid upprepade tester minskar chansen att hitta nya fel för varje gång testerna genomförs. I detta läge kan utforskande testning vara en bra teknik att ta till för att hitta nya angreppssätt.

Utforskande testning passar även bra vid installationstester, det vill säga tester av en ny installation i syfte att snabbt kontrollera om installationen lyckats så att det går att fortsätta testa. Vid dagliga byggen och dagliga tester kan utforskande testning användas innan scriptade tester (det vill säga tester med hjälp av testfall) börjar utföras samt för djupare felsökning kring kända problemområden. Utforskande testning kan vara ett bra sätt att introducera nya testare för ett system och teknikerna från utforskande testning kan användas för att improvisera kring scriptade tester.

Fördelar med utforskande testning

Det finns flera fördelar med utforskande testning. Kortare tid går åt till förberedelser och man kommer snabbare igång med testexekveringen. Detta leder till att fel kan rapporteras tillbaka till utvecklarna snabbare. Förhoppningsvis hittar man också de allvarliga felen snabbare.

En annan fördel är att utforskande testning ger stora möjligheter att anpassa och förbättra arbetet när man börjar lära sig systemet och dess svagheter. Man kan fokusera på områden där det verkar finnas problem. För testaren blir arbetet också roligare och mer stimulerande.

När man upprepar utforskande testning kommer testfallen inte att utföras på exakt samma sätt vilket ökar chansen att nya fel hittas. System blir annars lätt immuna mot gamla testfall.

Nackdelar med utforskande testning

Naturligtvis finns det också vissa nackdelar. Det är svårare, men absolut inte omöjligt, att hålla reda på vad som testats. Det är viktigt med bra ordning och reda när man testar utforskande. Testledarens roll blir därför mycket viktig.

Utforskande testning ställer också större krav på testarens kompetens, erfarenhet och skicklighet än scriptad testning. Tekniken bygger på att testaren förstår systemet väl, vilket man i och för sig lär sig under utforskandet.

När man upprepar utforskande testning kommer testfallen inte att utföras på exakt samma sätt vilket gör det svårare att reproducera sekvenser som leder till fel och svårare att verifiera att buggar har blivit rättade.

En annan nackdel är att testfall inte skrivs och granskas i förväg. Man missar då en chans att redan under testdesignen hitta motstridiga krav eller att förhindra att felaktiga lösningar implementeras.

 

KONTAKTA OSS

Har du frågor? Vill du ha hjälp med områden inom kravhantering och test?
Hör av dig till oss! Vi hjälper dig gärna. 

Kontakt 

Dela artikeln