Vil kunstig intelligens erstatte softwaretestere?

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

Kunstig intelligens vil forandre softwaretest, men den vil ikke gøre testere overflødige (selvom den kan forbedre deres evner). Hvordan kan kunstig intelligens automatisere gentagne opgaver, prioritere tests og hjælpe testere med at gøre testprocesserne mere effektive?

Gør kunstig intelligens softwaretestere overflødige? Sandsynligvis ikke. AI vil snarere gøre softwareudviklere overflødige. Men der er ingen tvivl om, at AI medfører en stor forandring inden for softwaretest. Dette indlæg diskuterer nogle af de ændringer, vi sandsynligvis vil se meget snart.

For længe siden erstattede testautomatisering testere, der udførte robotternes arbejde, dvs. kørte tests, som andre havde designet. Testerne forsvandt ikke. Deres tid blev frigivet til at designe flere og bedre tests og naturligvis automatisere dem. Senere skulle agile metoder og DevOps gøre testeren overflødig, fordi udviklerne ville teste deres kode, mens de byggede den. Det viste sig, at de fleste udviklere foretrak at skrive kode frem for at teste den. Vi lærte også, at man er nødt til at teste hele forretningsprocessen på tværs af applikationsgrænser. Softwaretestere udvidede deres arbejdsområde til eksplorativ testning og end-to-end-test.

Hvordan vil AI forandre softwaretest

AI vil forandre testerens rolle ved at blive en stor hjælp i aktiviteter, som testere ikke udfører særlig godt. AI vil sandsynligvis forme hele testprocessen i stedet for blot at forbedre individuelle opgaver.

Det er karakteristisk for en testers arbejde, at de samme ting udføres flere gange med kun få variationer og en masse ventetid. Testere venter på:

  • en ny version, der skal testes.
  • at de automatiserede testkørsler bliver færdige.
  • en rettelse af en fejl, der forhindrer yderligere testning.
  • Og så videre...

Testere udfører også opgaver, der kræver stor opmærksomhed på detaljer og måske ikke er særligt motiverende, såsom at analysere resultaterne af automatiserede testkørsler, vedligeholde automatiserede tests, der mislykkedes på grund af ændringer i applikationen, eller beregne og rapportere teststatussen. Hvert minut, de bruger på disse vigtige opgaver, venter en anden på testresultater.

Menneskelig softwaretester spiller skak med AI-robotsoftwaretester
Dette billede blev skabt med en simpel prompt ved hjælp af et AI-værktøj

Størstedelen af arbejdet inden for testning er testudførelse. Den er i høj grad automatiseret, men kræver stadig menneskelig indsats; og denne menneskelige indsats forsinker hele testcyklussen. Vi har stadig brug for mennesker til at automatisere de tests, der skal køres af en robot, vedligeholde disse tests, når applikationen ændres, og analysere testresultaterne. Der findes allerede AI-aktiverede testværktøjer, der kan udvælge og prioritere tests baseret på, hvor sandsynligt det er, at de finder fejl, automatisk reparere ødelagte tests eller udfylde fejlrapporter på forhånd. 

Den umiddelbare indvirkning af AI på QA'ere

I den næste bølge af oprettelse af automatiserede tests vil vi se værktøjer, der genererer tests direkte ud fra en beskrivelse af en anvendelsesgenstand eller endnu mere direkte ved at observere en menneskelig tester, der udforsker applikationen. Dette er et stort skridt fra automatiseret testning mod autonom testning. Vi er dog måske ikke helt nået dertil endnu. De fleste applikationer og forretningsprocesser er proprietære, og de data, der er nødvendige for at træne AI'en, er spredt rundt i forskellige softwaretestværktøjer. Derfor vil vi sandsynligvis først se menneskeovervåget testning frem for fuldt autonom testning.

De fleste softwareteams har for få tests snarere end for mange. Ved brug af AI vil størrelsen på testgrundlaget sandsynligvis vokse. Selvom det praktisk talt er gratis at køre automatiserede tests, er hastigheden, hvormed man får testresultater, stadig vigtig. Derfor vil det være en fordel at tilrettelægge regressionskørslerne, så de tests, der med størst sandsynlighed finder fejl, køres først. Hvis AI forstår livscyklusdataene godt nok, kan den se på kodeændringerne og tidligere testresultater, afgøre, hvordan testene skal arrangeres, og dermed accelerere feedbackcyklussen.

Hvis AI er i stand til at udvælge tests baseret på, hvor sandsynligt det er, at de finder fejl, bør den også kunne forudsige, hvor fejlene sandsynligvis vil blive fundet. En menneskelig tester kan også drage fordel af disse oplysninger ved at fokusere den manuelle eksplorative testindsats på disse funktioner.

For mange mennesker er AI synonymt med de funktioner til generering af naturligt sprog, som ChatGPT har demonstreret. Disse funktioner har også deres plads inden for testning. Hvis AI ved, hvordan man opretter en testcase, ved den også, hvordan testudførelsen skal beskrives i en fejlrapport. Det er sandsynligt, at en AI-genereret fejlrapport er lettere at forstå end en rapport, der er skrevet i hast af et menneske, mens det skynder sig videre for at kontrollere den næste testcase.

Ud over fejlrapporter producerer testning en masse kvantitative data om softwarens kvalitet og endda om den proces, der skaber softwaren. Problemet er, at de personer, der arbejder tæt på testningen, og som forstår dataene, ikke har lyst til at forklare dem for dem, der bør forstå dem, mens de, der bør forstå dem, måske ikke har lyst til at lytte. AI kan gøre begge parter og deres ledere en stor tjeneste ved at omdanne teststatistikker til verbale indsigter, konklusioner og anbefalinger. 

Vil AI erstatte QA'ere?

Det er fristende at forestille sig, hvad der er nemmest for AI at erstatte: en tester eller en udvikler. Det er nemmere at generere en test end at generere kode. På den anden side kræver det mere fantasi at generere meningsfulde tests. Kodning omsætter trods alt et krav til kode, der får applikationen til at fungere, mens testning bør omsætte et krav til en eller flere tests, der skal få applikationen til at fejle. 

I større skala er testdesign dog enklere end kodning. At opbygge et stort informationssystem er langt mere udfordrende end at skrive kode til en enkelt funktion. Det er ikke meget vanskeligere at designe tests til et stort informationssystem end at designe tests til en individuel funktion. Det er bare mere arbejde. Testopsætningen kan dog være langt mere udfordrende. 

Det kan for eksempel være en meget kompleks opgave at opsætte og verificere en test, der opretter en ordre i en mobilapp, som behandles i Salesforce og derefter sendes videre til ordreopfyldelse i SAP – selvom selve testscenariet er ret ligetil. Vi får brug for AI-assisterede mennesker såvel som menneskeassisteret AI.

Selv disse små eksempler viser, at tingene allerede vil være meget anderledes i den nærmeste fremtid. AI vil forbedre hastigheden og produktiviteten ved udvikling af software, men vil endnu ikke være i stand til autonomt at udvikle softwaren og sikre dens kvalitet.

Hvis jeg var softwaretester på fuld tid i dag, ville jeg ikke bekymre mig om, at AI tager mit job. Jeg ville bekymre mig om, hvordan jeg kan teste AI.

Er du interesseret i mere information om AI og softwaretest? Så tilmeld dig CTO-klubbens nyhedsbrev for at få alle de seneste tendenser.

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