Hva skal testere bruke tiden sin på når regresjonen automatiseres?
I et innlegg på Medium (https://medium.com/@g_stalheim/det-automasjon-faktisk-fjerner-kjedelige-tester-ikke-testere-cb1e448deecf) skrev jeg at testautomatisering ikke fjerner behovet for testere, men behovet for å bruke tid på de mest repeterende testene. Automatisering tar det forutsigbare. Det som kan gjentas. Det som sjelden endrer seg. Det som maskiner er bedre på enn oss. Poenget mitt var ikke at manuelt arbeid er uviktig, men at mennesker bør bruke tiden sin der de faktisk skaper mest verdi.
Det leder ganske naturlig til neste spørsmål: Hva skal testere bruke tiden sin på når regresjonen automatiseres?
For hvis vi mener alvor når vi sier at automasjon frigjør tid og kapasitet, må vi også være tydelige på hva den tiden skal brukes til. Ellers blir testautomatisering fort bare et effektiviseringstiltak på papiret, i stedet for en faktisk investering i bedre kvalitet. I den forrige teksten skrev jeg at testere bidrar med innsikt, vurderingsevne, forståelse av risiko og evnen til å stille spørsmål andre ikke tenker på. Det er nettopp her jeg mener det viktigste arbeidet begynner når regresjonstestene i større grad går automatisk.
Regresjonstesting er viktig. Den gir trygghet for at noe som fungerte i går, fortsatt fungerer i dag. Men den er også ofte repetitiv. Mange av testene følger de samme stegene, sjekker de samme flytene og har som mål å avdekke om noe kjent har sluttet å virke. Det er nødvendig arbeid, men ikke alltid det klokeste stedet å bruke mesteparten av den menneskelige kapasiteten i et team. Når disse testene blir automatisert, frigjøres ikke bare tid. Det frigjøres også oppmerksomhet. Mental kapasitet. Rom til å løfte blikket.
Utforskende tester
Noe av det første jeg tenker at testere bør bruke mer tid på, er utforskende testing. Automatiserte tester sjekker først og fremst det vi allerede vet at vi vil sjekke. De er gode på å bekrefte det forventede. Men de oppdager ikke nødvendigvis det uventede.
- De følger scriptet.
- De undrer seg ikke.
- De prøver ikke noe litt rart bare for å se hva som skjer.
- De stopper ikke opp fordi noe “føles feil”.
Det gjør mennesker. Og det er nettopp derfor utforskende testing fortsatt er så viktig. I utforskende testing bruker testeren erfaring, intuisjon, systemforståelse og nysgjerrighet til å lete etter svakheter, rare kombinasjoner, uklare grenser og konsekvenser ingen hadde tenkt på på forhånd. Det er ofte her de mest interessante funnene ligger.
Risiko og prioritering
Et annet område der testere skaper stor verdi, er risikoanalyse og prioritering. Ikke alt kan testes like mye, og ikke alt bør testes likt. Når vi får mer hjelp av automatisering til å dekke den stabile regresjonen, får vi også bedre mulighet til å bruke menneskelig vurdering på det som faktisk er mest usikkert eller mest kritisk.
- Hvor er konsekvensene størst hvis noe går galt?
- Hvilke endringer påvirker mest?
- Hvilke deler av løsningen er mest sårbare?
- Hvilke områder er teknisk komplekse, dårlig forstått eller ekstra viktige for brukerne?
God testing handler ikke om å teste mest mulig. Det handler om å bruke testinnsatsen smartest mulig. Og det krever mennesker som forstår både produktet og risikoene rundt det. Det gjør testere.
Tidlig involvering
Jeg mener også at testere bør bruke mer tid tidligere i utviklingen. Altfor ofte blir testing fortsatt koblet til det som skjer etter at noe er bygget. Men mange av de viktigste kvalitetsbidragene skjer lenge før koden er ferdig. Testere kan
- Stille spørsmål til krav
- Peke på uklarheter
- Utfordre antakelser
- Hjelpe teamet med å se scenarier de ellers ikke ville tenkt på.
De kan bidra til at løsningen blir lettere å teste, lettere å forstå og mer robust før den i det hele tatt når et testmiljø. Når automatisering tar unna mer av det repeterende etterpå, bør det også gi rom for mer involvering tidligere. Det er ofte der verdien er størst.
Testdesign
Gode tester oppstår ikke av seg selv, og de oppstår i hvert fall ikke fordi vi har valgt et verktøy. Automatisering gir bare verdi dersom det er gode testideer bak. Noen må tenke gjennom
- Hva som faktisk er viktig å sjekke
- Hvilke scenarier som bør dekkes
- Hvilke data som trengs
- Hvilke avhengigheter som finnes
- Hvor risikoen for feil er størst.
En dårlig test blir ikke bedre av å automatiseres. Den blir bare raskere kjørt.
Derfor tror jeg noe av det viktigste testere kan bruke mer tid på, er nettopp å forbedre kvaliteten på testgrunnlaget: scenarier, dekning, testdata og forståelsen av hvordan systemet faktisk brukes.
Kvalitetssamarbeid i team
Jeg tror også testere kan få en enda tydeligere rolle i samarbeidet om kvalitet i teamet. Kvalitet oppstår ikke i en pipeline. Den oppstår i samarbeid mellom mennesker som bygger, utfordrer, vurderer og forbedrer løsningen sammen. Dette er et poeng jeg mener ikke kan gjentas for ofte.
Når testere slipper å bruke uforholdsmessig mye tid på manuell regresjon, får de bedre mulighet til å bidra i diskusjoner, løfte observasjoner, stille vanskelige spørsmål og hjelpe teamet med å se helheten. Ikke bare om noe virker, men om det virker godt nok, er forståelig nok, robust nok og trygt nok. Testere ser ofte sammenhenger på tvers. De ser konsekvenser. De ser friksjon. Og de kan bidra til at kvalitet blir noe hele teamet eier, ikke bare noe som sjekkes på slutten.
Manuell testing forsvinner ikke
Samtidig er det viktig å understreke at dette ikke betyr at manuell testing forsvinner. Ikke alt bør automatiseres, og ikke alt lar seg redusere til et script. Noen vurderinger krever fortsatt menneskelig skjønn. Noen typer feil oppdages best gjennom utforsking, observasjon og erfaring. Noen risikoer blir bare synlige når et menneske ser systemet i bruk og forstår sammenhengen det fungerer i. Målet med automatisering er derfor ikke å fjerne manuell testing, men å bruke den mer målrettet. Å la maskinene ta det forutsigbare, slik at mennesker kan bruke mer tid på det komplekse.
For meg er dette kanskje noe av det viktigste poenget i hele diskusjonen om testautomatisering. Gevinsten er ikke bare at vi får kjørt flere tester raskere. Gevinsten er at vi kan bruke mer av testfagets styrke der den faktisk betyr mest
- I spørsmålene
- I vurderingene
- I nyansene
- I risikoarbeidet
- I det å forstå hvordan løsningen faktisk oppleves og hva som kan gå galt når den møter virkeligheten.