Kart som underlag. Mac, vintage kamera, vintage kompass, modellfly og pass oppå kartet - Denise Jans
14.10.2020

Utforskende testing - som å oppdage Amerika hver dag!

En programvaretester er ikke akkurat Kristoffer Columbus, men noen likhetstrekk mellom å oppdage nye kontinenter og en testers hverdag er der. Vi starter med et utgangspunkt for hva vi ønsker å vite mer om, og derfra gjelder det å ha sansene med seg. Men hva kjennetegner utforskende testing?

Først og fremst handler utforskende test om å fange opp de sidene ved et system eller en applikasjon som vi ikke ville ha observert på samme måte gjennom de oppsatte testtilfellene våre. Mens vi i scenariobasert testing setter opp tester i forkant av kjøringene for å kunne ha en synlig dokumentasjon på hvordan vi har vurdert krav og resultater, så vil vi i utforskende testing heller være åpne for det som dukker opp underveis.

En av mange oppskrifter

Det er mange måter å legge til rette for utforskende testing på. Mange av dem har til felles at de poengterer at utforskende testing ikke skal være en målløs og strukturløs øvelse. En måte å gjøre dette på er denne:

La oss bruke test av en side for innlogging som eksempel på en slik fremgangsmåte i praksis. De scenariobaserte testene ville nok ha dekket det meste av brukernavn og passordhåndtering, og kanskje tilogmed ha testet for grenseverdier og spesialtegn. En utforskende test kunne her ha satt for seg å teste for risikoen at ukjente får tak i data de ikke skal ha tilgang til ved å utnytte mangler ved denne funksjonaliteten. Vi kan da for eksempel sette opp et charter hvor vi skal forsøke å hente ut data ved hjelp av alle tenkelige hjelpemidler, og vi setter av 1 time til dette. Underveis noterer testeren hva som er gjort, tanker om hva som eventuelt kan gjøres og funn.

Utforskende test er av mange sett som en metode for å «bli kjent med» applikasjonen, mer enn det de oppsatte testscriptene vil være. Derfor er det ofte sagt at holdningen er først og fremst å lære seg mer om systemet, fremfor å avsjekke forventninger man allerede har.

Men virker det?

Et viktig kriterie for om utforskende testing er vellykket eller ikke vil være om man kunne ha fått informasjonen eller funnet feil gjennom det faste løpet med scenariobaserte tester og testteknikker. Derfor er utforskende testing ofte benyttet av testere som har lite tid eller lite tilgang på dokumentasjon om systemet. Fremfor å bruke tiden på å skrive ned testene basert på antakelser og forventninger, vil en utforskende test heller forsøke å fange de viktigste egenskapene ved applikasjonen på kort tid. Selv om man ikke rekker å dekke mye, vil man på den korte tiden likevel kunne ha nok informasjon til å peke på områder som bør få mer oppmerksomhet før man produksjonssetter. Etter hvert som automatisering har blitt mer vanlig, har også utforskende test økt i popularitet – nettopp for å kunne å få et bedre totalbilde av kvaliteten.

I tillegg til at testeren må ha erfaring med domenet og/eller testing for å kunne være trygg på hvilke veier man skal velge underveis i utforskingene, så krever denne metoden også at man noterer godt. I utforskende testing skriver man testen underveis.

Med denne friheten kommer også et stort ansvar.

Vil du oppdage mer?

Litteraturen om utforskende testing begynner å bli rik, og noen tips til lesing for å komme i gang er:

Michael Bolton og James Bach er to velkjente kursholdere og talsmenn for utforskende testing. Deres blogger og nettsider er også rike på anbefalinger, tips til heuristics og metode generelt:

Ønsker du en mer en hands-on erfaring med utforskende testing, har SOCO Academy et introduksjonskurs i eksplorativ test hvor deltakerne tester en applikasjon veiledet av Frans Dijkman.