Artikel

Automatiserad defekt triaging

Ytterligare ett steg mot automatisering av testlivscykeln

Ajit Rajshekar,

Associate Director - Intelligent Automation

Publicerad: oktober 4, 2022

Effektiv testning är en viktig fas i mjukvaruutvecklingsprocessen. För att förbättra det har företag börjat övergå till extrem testautomatisering. CI/CD-pipelinen (integration/kontinuerlig leverans) möjliggör högre automatiseringstäckning, vilket maximerar effektiviteten i hela processen. Utmaningar kvarstår dock. Software Development Engineer in Test (SDET) behöver ofta hjälp med att sålla bland automatiseringsrapporter och loggar och med att felsöka testresultaten. Med tanke på tekniska framsteg kan ingenjörer nu få hjälp via en ny automatiserad lösning för triaging av defekter. Denna lösning/tillvägagångssätt är en del av ett koncept som kallas testlivscykelautomatisering, vilket avsevärt minskar mänskliga fel. Dessutom hjälper det företag att leverera buggfria applikationer till sina användare.

Den här artikeln är den sista delen i en tredelad serie om detta ämne. Den första artikeln, "Självläkande testautomatisering – ett steg mot automatisering av testlivscykeln", publicerades i juli 2021, och den andra, "Automatiserat effektbaserat testval och prioritering", publicerades i mars 2022.

Även när testerna blir automatiserade kan underordnade aktiviteter (som skriptunderhåll, påverkansanalys och defekttriaging) lämnas kvar. Den ihållande manuella karaktären hos dessa aktiviteter kan sakta ner mjukvaruutvecklingen. Ett behov kvarstår för automatisering som utförs under hela testlivscykeln och som påskyndar livscykeln för mjukvaruutveckling (SDLC). Lyckligtvis har ökningen av tekniker för artificiell intelligens/maskininlärning (AI/ML) och programmeringsfunktioner skapat ett paradigmskifte för att omfatta automatisering av testlivscykeln och inte bara hålla sig till testautomatisering. Nu kan automationsingenjörer fokusera enbart på att skapa nya testskript.

Behovet av automatiserad defekttriaging (ADT)

Inom en värld av testlivscykelautomatisering väcker automatiserad defekttriaging (ADT) intresse och kunderna lägger märke till det. De flesta automationsingenjörer och SDETs följer en tredelad process:

  1. Identifiera de testskript som misslyckades.
  2. Analysera testskriptfel manuellt.
  3. Kategorisera problem enligt deras verkliga orsaker till misslyckande.

Den här metoden är rimlig när testvolymmetrin är låg eller när testkörningen är sällsynt. Det är dock lätt att föreställa sig ett scenario där många automatiserade testskript måste köras dagligen. Automationsingenjörerna kan bli överväldigade och behöver en automatiserad mekanism som kan hjälpa till med defekttriaging och loggning.

Hur fungerar automatiserad defekttriaging (ADT)?

Bild 1: Arbetsflöde för en ADT

ADT-lösningen använder en AI/ML-modell för att automatiskt kategorisera misslyckade testskript i fördefinierade kategorier baserat på testkörning och felmönster. Det hjälper till att identifiera misslyckade körningsrotorsaker och föreslår rekommenderade åtgärder baserat på kunskap från tidigare körningar.

Den består av följande steg:

Steg 1: Sortering av testresultat för körning av skript

Oavsett vilket testautomatiseringsramverk som används - oavsett om det är baserat på verktyg med öppen källkod som selen / omfattningsreporter eller på kommersiella off-the-shelf (COTS) -verktyg som UFT - måste testresultaten samlas in på en allmänt tillgänglig plats för ADT-agenten.

Steg 2: Övervakning via ADT-agent

Agenten avsöker kontinuerligt rapporterna och testkörningsresultatstackspårningen för att samla in alla resultat och flytta dem till en databas.

Steg 3: Automatiserad defekttriaging (ADT)

ADT-lösningen hämtar de data som ADT-agenten skickar till en databas. Efter den första dataförberedelsen matas data in i en klassificerarmodell, vilket hjälper till att fastställa orsaken till felet. Testfelet klassificeras baserat på resultatbeskrivningen och genom mönstermatchning med historiska data. Den här klassificeringen avgör om felet berodde på ett konfigurationsfel, testinfrastrukturfel eller ett produktfel. Om klassificeringsmodellen när som helst inte kan klassificera defekten automatiskt på grund av lågt förtroende, kommer människan i loopen (HITL) in i bilden för att hjälpa till med arbetsflödet.

Steg 4: Avduplicering av defekter

När orsaken till felet har fastställts övergår den till avdupliceringen av defekten, och modellen försöker identifiera liknande predikatfel som redan finns i defekthanteringsverktyget. Om klassificeringsmodellen inte kan lyckas på grund av lågt förtroende kommer människan i loopen in i bilden för att hjälpa till med arbetsflödet.

Steg 5: Loggning av defekter

Defektloggning är det sista steget i processen och stänger loopen. Lösningen bör uppdatera den befintliga defekten om en dubblett hittas, eller så bör den logga en ny defekt i defekthanteringsverktyget.

 

Viktigaste fördelarna:

Utdata från ADT-lösningen är omfattande, eftersom det förbättrar följande processer:

  • Klassificering av testfel
  • Grundorsaksanalys av defekterna 
  • Rekommendation av lösningssteg 
  • Identifiering av dubbla defekter 
  • Skapande av en sammanfattning av testfel, inklusive information om detaljgranskning 
  • Tillhandahållande av varningar/meddelanden till sakkunniga om kritiska brister som är mycket allvarliga. Detta möjliggör snabba och beslutsamma åtgärder 

De rättanpassade, populära klassificeringsalgoritmerna kan användas för olika klassificeringsmodeller. Dessutom bör ett konceptbevis (PoC) utföras på befintliga data för att bestämma rätt algoritm. ADT-teamet bör arbeta med kvalitetssäkringsteamet (QA) för att träna om modellen regelbundet och prioritera defekterna. ADT-lösningen hjälper till att minska triage-arbetet med testskriptfel med en betydande marginal. I en sprintmodell med en hög nivå av DevOps-automatisering finns det ett konstant tryck på testingenjörerna att utföra kontinuerlig testning inom sprinten och att göra det effektivt. Flaskhalsar inom den manuella feltriageringsprocessen förbrukar små och medelstora företags bandbredd - ofta när de borde fokusera på testning. Den här effekten förstoras när det finns tusentals automatiserade skript. Det vore klokt av företag att investera i en lösning som adresserar dessa utmaningar.

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.

Relaterat innehåll