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:
Låt oss gräva djupare i detta.
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.
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:
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.
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.
Prenumerera för att hålla dig uppdaterad med den senaste branschutvecklingen, inklusive branschinsikter och innovativa lösningsmöjligheter