Artikel

Automatiserat effektbaserat testval och prioritering

Ajit Rajshekar,

Associate Director - Intelligent Automation

Effektiva tester är avgörande för hela mjukvaruutvecklingsprocessen. Men testarkitekterna och små och medelstora företag behöver ofta hjälp med att välja det optimala testet för deras regressionsbehov.

 

Tack vare tekniska framsteg kan de få den hjälpen i en ny lösning som heter Automated Impact-Based Test Selection and Prioritering . Lösningen eller tillvägagångssättet är en del av ett koncept som kallas "testlivscykelautomation", vilket avsevärt minskar risken för mänskliga fel. Detta i sin tur hjälper företag att leverera buggfria applikationer till sina användare.

Jag skrev om detta koncept i juli 2021 i ett blogginlägg som introducerade konceptet självläkande testautomatisering, som använder algoritmer för att fixa fläckiga tester utan mänsklig inblandning. Här är ett utdrag: 

 

Under de senaste åren har en idé fått fäste i testbranschen. Även om själva testerna är automatiserade, är de kringaktiviteter som går in i hela testets livscykel, som skriptunderhåll, konsekvensanalys, defekttriaging, etc., fortfarande extremt manuella. Att förlita sig på manuella processer tenderar att sakta ner mjukvaruutvecklingsprocessen. Därför ser vi nu ett paradigmskifte i filosofin för att omfatta "testlivscykelautomation" och inte bara "testautomation." Uppkomsten av AI/ML-tekniker parat med programmeringsmöjligheter är långt för att hjälpa denna utvecklande filosofi.

Målet är alltså att automatisera under hela testets livscykel. Detta påskyndar SDLC-processen eftersom automationsingenjörer kan fokusera på att skapa nya skript, på optimerad testning och spendera mindre tid på att underhålla de gamla.

Utforska dragningskraften med effektbaserat testval och prioritering

Idag kommer vi att undersöka effektbaserat testval och prioritering, en annan kugg i hjulet för testlivscykelautomatisering som väcker stort intresse. Denna testlösning ger de små och medelstora testföretagen en bättre arsenal för att begränsa mänskliga fel och förbättra applikationernas kvalitet.

När vi pratade med våra kunder inom Virtusa insåg vi några uppenbara problem:

  • Företag som antar kontinuerliga integrations-/testningspipelines utför fortfarande manuellt, effektbaserat testval.
  • Företag vill optimera sina testinsatser samtidigt som de maximerar effekten av tester i varje sprint.
  • Företag måste upptäcka den oprövade källkoden i varje sprint.
  • Intressenter vill ha en instrumentpanel som visar denna information på ett automatiserat sätt.

Låt oss gräva djupare i detta.

Aktuella utmaningar för automationsteamet

Aktuella utmaningar för automationsteamet
Aktuella utmaningar för automationsteamet

 

Det här diagrammet illustrerar en typisk sprintcykel: Utvecklare skapar funktionerna för sprintens krav, och SDET:erna (programvaruutvecklingsingenjörer i tester) skapar sina automatiserade testskript. Varje byggnad inkluderar en konsekvensanalys för att bestämma regressionssviten; testsviten körs mot byggnaden. Defekter loggas, och eftersläpningen går tillbaka till nästa sprint.

För närvarande kör företag vanligtvis en standardregressionssvit mot varje byggnad. Därefter väljer små och medelstora företag manuellt extra tester som ska läggas till regressionssviten. Nackdelen med detta tillvägagångssätt är att det beror på erfarenheterna hos de små och medelstora företagen – inte den förändring som ställts in för det bygget.

Den har också många manuella steg som slösar tid och ansträngning i varje sprint. Och, ännu viktigare, det är benäget att göra mänskliga fel. Å andra sidan kan företag köra hela testsviten som en regression för att vara säkra på bygget. Återigen, detta lägger till tid och ansträngning för hela testprocessen.

Hur effektbaserat testval och prioritering fungerar

Image
Image

 

Effektbaserat testval och prioritering är en intelligent lösning som lär sig och utvecklar en källkod för att testa kartläggning. Den här metoden använder profiler och tillämpar heuristik från historisk data för att generera testsviten baserat på commit-data som ingår i varje byggnad.

Den består i första hand av fyra huvudsteg:

  1. Källkod för kartläggning av testfall. Verktyget använder en mjukvaruagent under testfall eller testskriptkörning. Agenten försöker mappa testfallen till källkodsfilerna, med hjälp av profiler för att instrumentera applikationens bytekod och lagra den i en datasjö.
  2. Testa prioriteringsheuristik. Från historiska testkörningsposter och defektposter tillämpas vissa testprioriteringsheuristiker för att bestämma testfallen med högre prioritet. Detta är ett framväxande område inom datavetenskap, känt som MSR — gruvprogramvara.
  3. Härled commit ändringar. Efter att builden har genererats skapar agenten en lista över alla tillagda/ändrade/borttagna filer och skjuter in den i testsvitgeneratorn.
  4. Testa svitgenerator. Med hjälp av den genererade ändringsuppsättningen försöker verktyget bestämma den korrekta effektbaserade sviten baserat på kodchurn och en prioriterad lista över testfall med hjälp av historiska data.

Dessa testprioriteringsheuristiker kan förfinas ytterligare för att inkludera vissa algoritmer för förstärkt inlärning (RL) för att hjälpa till att förfina den prioriterade listan med testfall. Detta görs genom att välja och prioritera testfall enligt deras varaktighet, tidigare senaste exekvering och felhistorik under ledning av en belöningsfunktion inbyggd i algoritmen.

Viktiga fördelar med effektbaserat testval och prioritering

Fördelarna med denna process är enkla: Den hjälper testteam att välja den optimala regressionstestsviten baserat på kodändringar. Detta förbättrar i sin tur produktkvaliteten och effektiviserar kundupplevelsen. Det datadrivna tillvägagångssättet för konsekvensanalys gör den immun mot mänskliga fel, vilket leder till betydande besparingar i tid för att fastställa testregressionssviten. Detta är avgörande för att lag ska kunna testa frekventa byggen.

Testlivscykelautomatisering är positionerad för att vara en av de viktigaste störande innovationerna som förändrar hur testning utförs under det kommande decenniet. Användningen av AI/ML-tekniker kommer att vara en katalysator och primär tillväxtmotor inom mjukvarutestområdet.

 

Ajit Rajshekar

Ajit Rajshekar

Associate Director - Intelligent Automation

Ajit Rajshekar är en testarkitekt med över 15 års kvalitetsteknisk erfarenhet, främst inom produktteknikområdet (medicinsk utrustning). Hans intressen inkluderar att utforska och använda nya metoder/verktyg för testautomatisering och kognitiv intelligens (AI/ML) vid testning.

Påskynda din tid att marknadsföra med smart automatisering

 

Virtusa intelligent automatisering hjälper till att driva SDLC-omvandling

Relaterat innehåll