Artificiell intelligens (AI) har förändrat och kommer att fortsätta förändra kvalitetssäkringen, vilket innebär att vi som testare måste vara beredda. AI-drivna testverktyg kommer att automatisera repetitiva uppgifter, förutse problem och förbättra effektiviteten och noggrannheten. Det frigör mer tid för kreativa uppgifter, men ställer samtidigt nya krav på testaren. De som har förmågan att arbeta med AI-baserade system och dra nytta av testning med AI kommer att vara efterfrågade. Testautomatisering i framtiden handlar inte om att ställa testare mot AI, utan snarare om hur man testar med hjälp av AI.
Här är några sätt på vilka testare kan dra nytta av AI i sitt arbete.
Med AI är det möjligt att generera testfall på olika sätt, och en vanlig metod är att använda maskininlärning (ML). Maskininlärning är en typ av AI som gör det möjligt för datorer att lära sig av data utan att vara uttryckligen programmerade. Vid testning kan maskininlärning användas för att lära sig mer om programvaran och dess beteende. Genom att analysera koden kan AI identifiera potentiella felkällor. Dessa felkällor kan sedan användas för att generera testfall som är utformade för att upptäcka potentiella fel innan de uppstår.
En annan gren av AI som gör det möjligt för interaktionen mellan människor och datorer att efterlikna naturligt språk så mycket som möjligt är naturlig språkbehandling (NLP). Användningen av NLP innebär att testare inte behöver lära sig nya regler eller syntax för olika programmeringsspråk. Att skapa och underhålla testskript kan vara en långdragen och tidskrävande process, men med skriptlös automatisering via NLP skrivs skripten på naturligt språk, och en av fördelarna är den låga inlärningskurvan. Detta till skillnad från de flesta automatiseringsverktyg som kräver någon form av programmeringskunskap. En ytterligare fördel är ökad förståelse och läsbarhet, vilket gör det möjligt för alla roller inom teamet att granska testfallen efter behov. Eftersom vanlig engelska kan användas blir det möjligt för alla i teamet att skapa testfall, och produktägare eller projektledare kan kliva in och öka testtäckningen och kvaliteten.
Genom att analysera användardokumentation och krav kan AI identifiera potentiella användarscenarier. Dessa användarscenarier kan sedan användas för att generera testfall som simulerar hur användarna kommer att använda programvaran. Eftersom maskininlärning lär sig av tidigare testkörningar, analyserar resultat och hittar viktiga mönster, blir det möjligt att identifiera repetitiva eller mindre viktiga testfall och förbättra testsuiten.
Krav som att leverera en enhetlig användarupplevelse oavsett om en användare har Firefox på sin bärbara dator eller Chrome på sin smartphone är inte ovanliga. Dessutom finns det ett växande behov för användare att få tillgång till applikationer på olika enheter, såsom surfplattor och bärbara enheter. För testare kan detta innebära ett orimligt stort antal testfall för användargränssnittet på alla webbläsare och enheter. Det gör det omöjligt att hålla jämna steg, och behovet av visuell AI-verifiering kan bli en lämplig lösning.
Visuell AI-testning innebär att man genererar, analyserar och jämför bilder för att upptäcka eventuella förändringar i pixelvärden, så kallade ”visuella skillnader”. En testkörare behövs för att köra visuella tester i kombination med ett ramverk för webbläsarautomatisering för att efterlikna användarbeteende. Skärmdumpar tas vid angivna tidpunkter och används som förväntade resultat vid framtida jämförelser. Under testkörningen utlöser eventuella förändringar en skärmdump som jämförs med referensbilden. Vid avvikelser markeras testet som misslyckat och en automatisk rapport genereras för granskning av kvalitetssäkringen.
AI-driven testautomatisering kan vara självläkande, vilket innebär att den kan anpassa sig till förändringar i programvaran eller testmiljön utan att manuellt ingripande krävs. Detta är värdefullt i agila utvecklingsmiljöer där förändringar sker ofta. Misslyckade tester upptäcks under testprocessen, och många misslyckas på grund av bristfällig underhållning. Detta innebär att kvalitetsavdelningen lägger tid på att åtgärda testfel som istället kunde ha använts till att åtgärda programvarufel. Manuellt underhåll av testerna kan också fördröja produktutvecklingen och lanseringen. Självläkande testautomatisering minskar (eller till och med eliminerar) behovet av manuellt underhåll av testerna. Detta leder till färre misslyckade tester och en mer aktuell bild av teststatusen.
Alltför ofta misslyckas tester på grund av ändringar av objekt eller deras egenskaper i användargränssnittet. Det är här den AI-drivna självläkande funktionen kommer väl till pass. Objekt kan identifieras även efter att deras egenskaper har ändrats, vilket effektivt eliminerar behovet av att modifiera skriptet.
I stället för att testet misslyckas redigerar AI:n automatiskt skriptet så att det passar de nya objektegenskaperna. Den självläkande funktionen hämtar, utvärderar, väljer ut och redigerar skriptet efter behov på en bråkdel av en sekund. Detta sparar tid och lägger till ytterligare ett automatiseringslager för att ytterligare minska behovet av manuella ingrepp.
AI är under utveckling och har stor potential att ta över testarens ”traditionella” uppgifter, såsom att skapa, köra och underhålla testfall. AI har förmågan att analysera stora datamängder och bidra med omfattande testscenarier som leder till högre täckningsgrad och bättre identifiering av potentiella buggar. Noggrannheten och hastigheten ökar, vilket leder till färre buggar och snabbare lanseringar. Den nya eran av AI-baserad testning leder till ökad produktivitet och avlastar testaren. I framtiden kommer testare inte ”bara” att vara testare, utan bör utvecklas till strategiska tänkare med en djup förståelse för både de tekniska aspekterna och verksamhetens krav.
Det kan verka som om testaren kommer att ersättas i framtiden, men de mänskliga färdigheterna bör inte underskattas. AI är bara så bra som den data den har tränats på och kan inte ersätta mänsklig intuition eller kreativitet. Visst är det lovande när det gäller att automatisera repetitiva uppgifter, men AI kan inte ersätta det kritiska tänkandet och de problemlösningsförmågor som testaren besitter. AI kan inte bidra med den emotionella intelligens som krävs för att förstå produkten ur ett användarperspektiv och sätta sig in i användarupplevelsen. Denna begränsning innebär att AI kan missa fel som leder till en negativ inverkan på användarupplevelsen. Framtiden för kvalitetssäkring ligger i att hitta rätt balans mellan AI och mänsklig testning, där AI-baserade verktyg hjälper testaren att utföra uppgifter mer effektivt och noggrant. Testare som är villiga att lära sig om AI och satsa på AI-drivna testverktyg kommer att ha goda förutsättningar att lyckas i framtidens testautomatisering.