Vil kunstig intelligens erstatte programvaretestere?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

AI vil forandre programvaretesting, men den vil ikke gjøre testere overflødige (selv om den kan forbedre ferdighetene deres). Hvordan kan AI automatisere repetitive oppgaver, prioritere tester og hjelpe testere med å gjøre testprosessene mer effektive?

Gjør kunstig intelligens programvaretestere overflødige? Sannsynligvis ikke. Det er mer sannsynlig at kunstig intelligens gjør programvareutviklere overflødige. Men det er ingen tvil om at kunstig intelligens innebærer en stor endring i programvaretesting. Dette innlegget diskuterer noen av endringene vi sannsynligvis vil se ganske snart.

For lenge siden erstattet testautomatisering testere som utførte robotarbeid, det vil si å kjøre tester som var utformet av noen andre. Testerne forsvant ikke. Tiden deres ble frigjort til å utforme flere og bedre tester og, selvsagt, automatisere dem. Senere skulle smidige metoder og DevOps gjøre testeren overflødig fordi utviklerne skulle teste koden mens de bygde den. Det viste seg at de fleste utviklere foretrakk å skrive kode fremfor å teste den. Vi lærte også at man må teste hele forretningsprosessen på tvers av applikasjonsgrenser. Programvaretestere utvidet arbeidsområdet sitt til utforskende testing og ende-til-ende-testing.

Hvordan vil kunstig intelligens forandre programvaretesting

Kunstig intelligens vil forandre testerens rolle ved å bli en god hjelper i aktiviteter testere ikke utfører særlig godt. Kunstig intelligens vil sannsynligvis forme hele testprosessen, i stedet for bare å forbedre enkeltoppgaver.

Det som kjennetegner en testers arbeid, er at de samme tingene blir gjort flere ganger med liten variasjon og mye venting. Testere venter på:

  • en ny versjon å teste.
  • at de automatiserte testkjøringene skal bli ferdige.
  • en feilretting for en feil som hindrer videre testing.
  • Og så videre...

Testere utfører også oppgaver som krever mye oppmerksomhet på detaljer og kanskje ikke er særlig motiverende, som å analysere resultatene fra automatiserte testkjøringer, vedlikeholde automatiserte tester som mislyktes på grunn av endringer i applikasjonen, eller beregne og rapportere teststatusen. Hvert minutt de bruker på disse viktige oppgavene, venter noen andre på testresultater.

Menneskelig programvaretester spiller sjakk med AI-robotprogramvaretester
Dette bildet ble laget med en enkel oppfordring ved hjelp av et AI-verktøy

Hoveddelen av arbeidet i testing er testkjøring. Den er i stor grad automatisert, men krever fortsatt menneskelig innsats; og denne menneskelige innsatsen forsinker hele testsyklusen. Vi trenger fortsatt mennesker til å automatisere testene som skal kjøres av en robot, vedlikeholde disse testene når applikasjonen endres, og analysere testresultatene. Det finnes allerede AI-aktiverte testverktøy som kan velge og prioritere tester basert på hvor sannsynlig det er at de oppdager feil, reparere ødelagte tester automatisk eller forhåndsutfylle feilrapporter. 

Den umiddelbare virkningen av kunstig intelligens på QAs

I den neste bølgen av oppretting av automatiserte tester vil vi se verktøy som genererer tester direkte fra en beskrivelse av et bruksområde, eller enda mer direkte ved å observere en menneskelig tester som utforsker applikasjonen. Dette er et stort skritt fra automatisert testing mot autonom testing. Vi er kanskje ikke helt der ennå. De fleste applikasjoner og forretningsprosesser er proprietære, og dataene som trengs for å trene den kunstige intelligensen, er spredt rundt i forskjellige programvaretestverktøy. Derfor vil vi sannsynligvis først se menneskeovervåket testing, snarere enn fullstendig autonom testing.

De fleste programvareteam har for få tester snarere enn for mange. Ved bruk av kunstig intelligens vil omfanget av testressursene sannsynligvis vokse. Selv om det i praksis er gratis å kjøre automatiserte tester, er hastigheten på å få testresultater fortsatt viktig. Derfor vil det være fordelaktig å organisere regresjonskjøringene slik at testene som mest sannsynlig oppdager feil, kjøres først. Hvis den kunstige intelligensen forstår livssyklusdataene godt nok, kan den se på kodeendringene og tidligere testresultater, avgjøre hvordan testene skal organiseres og dermed akselerere tilbakemeldingssyklusen.

Hvis kunstig intelligens er i stand til å velge tester basert på hvor sannsynlig det er at de oppdager feil, bør den også kunne forutsi hvor feilene sannsynligvis vil bli funnet. En menneskelig tester kan også dra nytte av denne informasjonen ved å rette den manuelle utforskende testinnsatsen mot disse funksjonene.

For mange mennesker er kunstig intelligens et synonym for funksjonene for generering av naturlig språk som demonstreres av ChatGPT. Disse funksjonene har også sin plass i testing. Hvis kunstig intelligens vet hvordan man oppretter et testtilfelle, vet den også hvordan testkjøringen skal beskrives i en feilrapport. Det er sannsynlig at en AI-generert feilrapport er enklere å forstå enn en rapport som er skrevet i all hast av et menneske som prøver å gå videre til neste testtilfelle.

I tillegg til feilrapporter produserer testing mye kvantitative data om kvaliteten på programvaren og til og med om prosessen som skaper programvaren. Problemet er at personer som arbeider tett på testing og forstår dataene, ikke bryr seg om å forklare dem til dem som bør forstå dem, mens de som bør forstå dem, kanskje ikke bryr seg om å lytte. Kunstig intelligens kan gjøre begge parter og lederne deres en stor tjeneste ved å omdanne teststatistikk til muntlig innsikt, konklusjoner og anbefalinger. 

Vil kunstig intelligens erstatte QAs?

Det er fristende å forestille seg hva som er enklest for AI å erstatte: en tester eller en utvikler. Det er enklere å generere en test enn å generere kode. På den annen side krever det mer fantasi å generere meningsfulle tester. Når alt kommer til alt, omformer programmering et krav til kode som får applikasjonen til å fungere, mens testing bør omforme et krav til én eller flere tester som skal få applikasjonen til å feile. 

I stor skala er imidlertid testdesign enklere enn programmering. Å bygge et stort informasjonssystem er langt mer utfordrende enn å skrive kode for én enkelt funksjon. Det er ikke mye vanskeligere å utforme tester for et stort informasjonssystem enn å utforme tester for en individuell funksjon. Det er bare mer arbeid. Testoppsettet kan imidlertid være langt mer utfordrende. 

Det kan for eksempel være en svært kompleks oppgave å sette opp og verifisere en test som oppretter en ordre i en mobilapp, som behandles i Salesforce og deretter sendes videre til SAP for ordreoppfyllelse – selv om selve testscenarioet er ganske rett frem. Vi vil trenge mennesker med støtte fra AI, så vel som AI med støtte fra mennesker.

Selv disse små eksemplene viser at ting allerede i nær fremtid vil bli svært annerledes. AI vil forbedre hastigheten og produktiviteten ved utvikling av programvare, men vil ennå ikke være i stand til å bygge programvaren og sikre kvaliteten på egen hånd.

Hvis jeg var heltidsansatt programvaretester i dag, ville jeg ikke bekymret meg for at AI skulle ta jobben min. Jeg ville bekymret meg for hvordan jeg kan teste AI.

Interessert i mer informasjon om AI og programvaretesting? Da kan du melde deg på CTO Clubs nyhetsbrev for å få med deg alle de nyeste trendene.

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author:

You may also like