Gör artificiell intelligens programvarutestare överflödiga? Förmodligen inte. AI kommer snarare att göra programvaruutvecklare överflödiga. Men det råder ingen tvekan om att AI innebär en stor förändring inom programvarutestning. Det här inlägget diskuterar några av de förändringar vi sannolikt kommer att se inom kort.
För länge sedan ersatte testautomatisering testare som utförde robotarnas arbete, det vill säga körde tester som någon annan hade utformat. Testarna försvann inte. Deras tid frigjordes för att utforma fler och bättre tester och, naturligtvis, automatisera dem. Senare skulle agila metoder och DevOps göra testaren överflödig eftersom utvecklarna skulle testa sin kod medan de byggde den. Det visade sig att de flesta utvecklare föredrog att skriva kod framför att testa den. Vi lärde oss också att man behöver testa hela affärsprocessen över applikationsgränserna. Programvarutestare utökade sitt område till explorativ testning och testning från början till slut.
Hur kommer AI att förändra programvarutestning
AI kommer att förändra testarens roll genom att bli ett stort stöd i aktiviteter som testare inte utför särskilt bra. AI kommer sannolikt att forma hela testprocessen snarare än att bara förbättra enskilda uppgifter.
Det är kännetecknande för en testarens arbete att samma saker utförs flera gånger med liten variation och mycket väntan. Testare väntar på:
- en ny version att testa.
- att de automatiserade testkörningarna ska slutföras.
- en korrigering av ett fel som hindrar fortsatt testning.
- Och så vidare...
Testare utför också uppgifter som kräver stor noggrannhet och kanske inte är särskilt motiverande, till exempel att analysera resultaten från automatiserade testkörningar, underhålla automatiserade tester som misslyckats på grund av ändringar i applikationen eller beräkna och rapportera teststatusen. Varje minut de lägger på dessa viktiga uppgifter väntar någon annan på testresultat.

Den största delen av arbetet inom testning är testkörning. Den är till stor del automatiserad men kräver fortfarande mänskliga insatser; och dessa mänskliga insatser bromsar hela testcykeln. Vi behöver fortfarande människor för att automatisera de tester som ska köras av en robot, underhålla dessa tester när applikationen ändras och analysera testresultaten. Det finns redan AI-aktiverade testverktyg som kan välja ut och rangordna tester baserat på hur sannolikt det är att de upptäcker fel, automatiskt reparera trasiga tester eller förifylla felrapporter.
Den omedelbara påverkan av AI på kvalitetssäkrare
I nästa våg av skapande av automatiserade tester kommer vi att se verktyg som genererar tester direkt från en beskrivning av ett användningsfall eller ännu mer direkt genom att observera en mänsklig testare som utforskar applikationen. Det här är ett stort steg från automatiserad testning mot autonom testning. Vi är kanske inte riktigt där ännu. De flesta applikationer och affärsprocesser är proprietära, och de data som behövs för att träna AI:n är utspridda i olika programvarutestverktyg. Därför kommer vi sannolikt först att se mänskligt övervakad testning snarare än helt autonom testning.
De flesta programvaruteam har för få tester snarare än för många. Med hjälp av AI kommer omfattningen av testtillgångarna sannolikt att växa. Även om det i praktiken är kostnadsfritt att köra automatiserade tester är hastigheten med vilken man får testresultat fortfarande viktig. Därför vore det fördelaktigt att ordna regressionstestkörningarna så att de tester som med störst sannolikhet upptäcker fel körs först. Om AI förstår livscykeldata tillräckligt väl kan den granska kodändringarna och tidigare testresultat, avgöra hur testerna ska ordnas och därmed påskynda återkopplingscykeln.
Om AI kan välja ut tester baserat på hur sannolikt det är att de upptäcker fel bör den också kunna förutsäga var felen sannolikt kommer att hittas. En mänsklig testare kan också ha nytta av denna information genom att fokusera manuella explorativa testinsatser på dessa funktioner.
För många människor är AI en synonym för den kapacitet att generera naturligt språk som demonstreras av ChatGPT. Även den kapaciteten har en plats inom testning. Om AI vet hur man skapar ett testfall vet den också hur man beskriver testkörningen i en felrapport. Det är sannolikt att en AI-genererad felrapport är lättare att förstå än en rapport som en människa hastigt har skrivit medan hen skyndar sig att kontrollera nästa testfall.
Utöver felrapporter genererar testning stora mängder kvantitativa data om programvarans kvalitet och till och med om processen som skapar programvaran. Problemet är att de personer som arbetar nära testningen och förstår data inte bryr sig om att förklara den för dem som borde förstå, medan de som borde förstå kanske inte bryr sig om att lyssna. AI kan göra båda parter och deras ledare en stor tjänst genom att omvandla teststatistik till insikter, slutsatser och rekommendationer i ord.
Kommer AI att ersätta kvalitetssäkrare?
Det är frestande att föreställa sig vad som är lättare för AI att ersätta: en testare eller en utvecklare. Det är lättare att generera ett test än att generera kod. Å andra sidan kräver det mer fantasi att generera meningsfulla tester. Kodning omvandlar trots allt ett krav till kod som får applikationen att fungera, medan testning bör omvandla ett krav till ett eller flera tester som ska få applikationen att gå sönder.
I stor skala är testdesign ändå enklare än kodning. Att bygga ett stort informationssystem är mycket mer utmanande än att skriva kod för en enskild funktion. Att utforma tester för ett stort informationssystem är inte mycket svårare än att utforma tester för en individuell funktion. Det kräver bara mer arbete. Testkonfigurationen kan däremot vara mycket mer utmanande.
Att konfigurera och verifiera ett test som skapar en order i en mobilapp, som behandlas i Salesforce och sedan skickas vidare för orderuppfyllelse i SAP, är till exempel en mycket komplex uppgift – även om själva testscenariot är ganska enkelt. Vi kommer att behöva AI-assisterade människor såväl som människostödd AI.
Även dessa små exempel visar att saker och ting kommer att vara mycket annorlunda redan inom en nära framtid. AI kommer att förbättra hastigheten och produktiviteten i utvecklingen av programvara, men kommer ännu inte att kunna bygga programvaran och säkerställa dess kvalitet autonomt.
Om jag vore programvarutestare på heltid i dag skulle jag inte oroa mig för att AI tar mitt jobb. Jag skulle oroa mig för hur jag kan testa AI.
Intresserad av mer information om AI och programvarutestning? Då kan du prenumerera på CTO Clubs nyhetsbrev för att få ta del av de senaste trenderna.
