Han har själv innehaft roller som testledare, strateg och head of QA och arbetar idag som konsult på större QA-uppdrag samt föreläser på yrkeshögskoleprogrammet QA Engineer på Nackademin. Under de år han har arbetat med området har QA-rollen förändrats i grunden. Från att ofta ha uppfattats som ett sista kontrollsteg i utvecklingskedjan handlar modern kvalitetssäkring nu mer om riskbedömning, analys och systemförståelse.
Det innebär att QA inte bara ska verifiera att enskilda funktioner fungerar. Rollen handlar också om att förstå hur system beter sig över tid, planera testningen på ett strukturerat sätt och upptäcka risker innan de når användarna.
Just planeringen blir central när AI och automatisering gör det möjligt att producera mer kod på kortare tid. För företag kan det innebära snabbare leveranser och högre utvecklingstakt. Men det innebär också att komplexiteten ökar. Mer kod ska förstås, granskas, testas och sättas in i ett större sammanhang.
– Utvecklarna får större och större kodmängder att hantera och har sämre koll på helheten. Ofta är de dessutom pressade att skapa automatiserade testfall, säger Pablo Garcia.
När kodproduktionen accelererar räcker det inte att bara mäta hur snabbt nya funktioner kan tas fram. Organisationen måste också ha förmåga att bedöma kvalitet, förstå risker och se till att systemen fungerar stabilt innan de släpps.
Vilka är de största kvalitetsriskerma när utvecklare i allt större utsträckning använder AI-verktyg för att generera kod?
– Det finns flera olika kvalitetsrisker när man använder AI för att generera kod. För det första är AI snabb på att skriva kod, men koden skapas utifrån AI:s förståelse av vad man ska använda koden till. En människa är bättre på att förstå vad koden egentligen ska användas till. Därför måste en utvecklare granska all AI-kod och därefter genomföra gedigna enhetstester, som om de är genererade av AI, även måste granskas och testas. Om man inte säkerställer att koden uppfyller förväntningarna utan bara släpper ogranskad kod så skapas det exponentiellt fler fel än utvecklargenererad kod, då AI skapar mycket mer kod på samma tid.
– För det andra så använder många AI som en junior medarbetare i sitt kodskapande. Om man inte lär upp juniorer så att de sedan kan bli seniorer, vad ska vi då göra när seniorerna pensionerar sig? Många får snabbt en övertro på AI och ser det som AI skapar som något magiskt, men övertron övergår snabbt i problem (och ibland katastrof) när man sparkar flera duktiga programmerare och de första stora buggarna hittas i produktion.
Hur måste QA-arbetet förändras när koden inte längre är skriven av en människa?
– Väldigt lite. Klart att man även måste använda AI i QA-arbetet, till exempel för den grundläggande testdesignen, men för att ha en optimerad testprocess behövs erfarna QA som kan skapa en effektiv testdesign och förändra den samt testprocessen så snart det behövs. Idag misstar man sig ofta genom att tro att snabb och noggrann testning är automatiserad, detta är helt fel.
Kostnadsfritt nyhetsbrev
Få den senaste uppdateringarna direkt i inkorgen.
– Optimerad testning är en testning som baserar sig på en testdesign där man vet vad man behöver testa, vad man inte behöver testa, hur man ska testa det man testar. Därefter kan man ta ett medvetet beslut om vad som ska automatiseras och inte. Det gedigna testarbetet som en utbildad och erfaren testare gör behövs lika mycket nu, om inte ännu mer, i utvecklingsteamen
Vilka slags felaktigheter ser du att AI-genererad kod oftast riskerar att skapa?
– Den vanligaste felaktigheten är att utvecklare inte granskar och testar AI-koden tillräckligt, vilket sedan leder till allvarliga fel i produktion som utvecklaren inte kan lösa. Att kunna förvalta kod snabbt kräver att utveckarna är mer noggranna än tididgare med sina enhetstester.
Behöver vi nya verktyg och arbetsmetoder för att upptäcka AI-misstagen?
– Nja, å ena sidan måste vi backa tillbaka till den tiden då utvecklare verkligen tog ansvar för sin kod och kände till styrkor och svagheter i koden och i sin egen kompetens. Med den kunskapen kan vi styra den stora kodmängd som AI skapar för att skapa bra nytta och effekt. AI är ett “nytt” verktyg och man ska använda det för sådant den är bra på, som att snabbt generera stora mängder kod, men sedan ska vi ha kontroll på den.
– Om man därtill säger att “AI gör inga fel”, den gör ju bara som den blir tillsagd, så ser man ansvarsfrågan tydligare och utvecklaren måste ha kontroll över sin kod. Jag vill även berätta att jag på konferenser sett över 100 talare som berättar hur bra och fantastisk AI är, men den bästa föreläsningen på länge var en spanjor som föreläste i Madrid om “Vad AI _inte_ kan hjälpa dig med”.
Finns det en risk att AI gör utvecklingsteamen fartblinda och att man mäter produktivitet i antal kodrader och leveranstakt?
– Ja absolut, precis som “Code Libraries” och utvecklarramverk gjorde att utvecklare kunde utveckla mycket snabbare. Vi såg redan då att utvecklarna tappade kontrollen över koden. Extreme programming gjorde samma sak, snabbare kod och sämre kontroll. Det kanske är dags att mäta nytta och effekt istället för kodradsantal och snabba feedbackloopar.