Utforma och implementera käll-, bugg- och kvalitetsspårning

Slutförd

Inom ramen för DevOps avser spårbarhet möjligheten att spåra ändringar och åtgärder under hela livscykeln för programvaruutveckling. Det här konceptet gäller för olika aspekter av livscykeln, inklusive ändringar av källkod, felmatchning och upprätthållande av kvalitetskontroll. Implementeringen är viktig för att säkerställa produktens tillförlitlighet, underhållsbarhet och kundnöjdhet.

Med källspårning kan utvecklare spåra kodändringar i samarbetsscenarier. Buggspårning underlättar identifiering, prioritering och lösning av problem med källkoden. Kvalitetsspårning säkerställer att programvara uppfyller kvalitetsstandarder och användarnas förväntningar genom att länka testaktiviteter, mått och feedback till utvecklingsarbetet.

Designa

På hög nivå är spårbarhet verktygsoberoende, men sättet att hantera det beror på vilken aspekt av livscykeln för programvaruutveckling det är avsett att rikta in sig på. På samma sätt skiljer sig mål och designöverväganden mellan källkod, bugg och kvalitetsspårning.

I synnerhet innebär källspårningsbarhet att spåra kodändringarnas historik, inklusive vem som gjorde ändringarna, när de gjordes och syftet med ändringarna. Det underlättar kodgranskningar, felsökning och förståelse av utvecklingen av kodbasen över tid. Från designsynpunkt är den här funktionen nära knuten till Git-förgrenings- och sammanslagningsstrategier som organiserar utvecklingsarbete. Utvecklare skapar funktionsgrenar för nytt arbete, genomför ändringar i sina grenar och skickar pull-begäranden för granskning. Vid den tidpunkten genomför deras kollegor kodgranskningar och godkänner när de har slutfört ändringarna som ska sammanfogas till huvudgrenen.

Buggspårning innebär spårning av buggar eller defekter som rapporterats under testning eller produktion tillbaka till rotorsaken i kodbasen. Den förlitar sig också ofta på att samla in information, till exempel information om felrapporter, steg för att reproducera, berörda komponenter och relaterade kodändringar. Syftet är bland annat att prioritera och lösa buggar effektivt för att åtgärda programvarubrister.

Kvalitetsspårning omfattar spårning av kvalitetsrelaterade aktiviteter och artefakter under hela programutvecklingsprocessen. Det handlar om att länka kvalitetsmått, testfall, testresultat och andra kvalitetssäkringsaktiviteter till krav, användarberättelser och kodändringar. Kvalitetsspårning hjälper till att bedöma effekten av programvaruändringar på dess kvalitet och identifiera förbättringsområden.

Implementera spårning

Information om implementering av spårbarhet skiljer sig i viss utsträckning beroende på DevOps-plattformen.

Källspårning

Eftersom både GitHub och Azure DevOps stöder Git som källkontrollmekanism gäller ett antal metoder för källspårning för båda. Därför innebär implementering av källkodsspårning i båda fallen att anta metodtips som att skriva beskrivande incheckningsmeddelanden, använda en väldefinierad förgreningsstrategi och kräva pull-begäranden för kodgranskningar.

Det finns dock också vissa skillnader mellan dem. Implementering av källspårning i GitHub-lagringsplatser omfattar vanligtvis användning av funktioner som grenskyddsregler för att framtvinga kodgranskningsprocesser och se till att ändringar granskas innan de slås samman. GitHubs integrering med Problem gör det möjligt att länka kodändringar till motsvarande problem, vilket ger spårbarhet mellan kodändringar och projektkrav. Azure DevOps erbjuder avdelningsprinciper och pull-begäranden för att framtvinga kodkvalitetskontroller och länka ändringar till arbetsobjekt, vilket möjliggör spårning mellan kodändringar och användarberättelser eller uppgifter. Dessutom ger Azure DevOps mer omfattande integrering med sitt system för spårning av arbetsobjekt, vilket möjliggör djupare spårnings- och rapporteringsfunktioner jämfört med GitHubs problemspårning.

Buggspårning

I Azure DevOps underlättas spårning av buggar via Azure Boards, där buggar spåras som arbetsobjekt och kan länkas till kodändringar, incheckningar och pull-begäranden. Med Azure Boards kan du skapa anpassade arbetsflöden för felhantering, definiera tillstånd som New, Active, Resolved och Closed, vilket ger insyn i buggens livscykel. Dessutom erbjuder Azure DevOps omfattande integrering mellan buggar och andra arbetsobjekt, vilket möjliggör spårbarhet mellan buggar och användarberättelser, uppgifter och epos.

I GitHub förlitar sig buggspårningsbarheten på integreringen mellan problem och kodändringar, där buggar som rapporteras som problem kan länkas till incheckningar och pull-begäranden. GitHub Actions erbjuder möjligheten att implementera anpassningsbara arbetsflöden, inklusive de som rör buggspårning. Med GitHub Actions kan du definiera arbetsflöden som automatiserar processer som utlöses av händelser på din GitHub-lagringsplats, till exempel skapande eller ändring av problem. På så sätt kan du skapa anpassade arbetsflöden för att hantera buggar, till exempel definiera tillstånd, tilldela uppgifter och automatisera åtgärder baserat på specifika villkor. Även om GitHub Actions ger flexibilitet i arbetsflödesautomation kräver de vanligtvis mer arbete och anpassning jämfört med de inbyggda funktionerna i Azure Boards i Azure DevOps.

Kvalitetsspårning

I Azure DevOps kan kvalitetsspårning hanteras med hjälp av testplaner, vilket gör det möjligt för team att organisera, köra och spåra testfall. Testplaner ger omfattande kvalitetsmått, inklusive testfallspassfrekvenser, testkörningsresultat och rapporter om testtäckning. Dessutom erbjuder Azure DevOps integrering med kodtäckningsverktyg för att mäta testtäckning och identifiera områden i kodbasen som kräver ytterligare testning.

GitHub erbjuder liknande funktioner via GitHub Actions, vilket gör det möjligt för team att automatisera olika typer av tester, till exempel enhetstester, integreringstester och slutpunkt till slutpunkt-tester. Även här ger GitHub Actions flexibilitet när det gäller att konfigurera testarbetsflöden och integrera med testverktyg från tredje part, men de tenderar att kräva ytterligare konfiguration för att uppnå samma nivå av omfattande kvalitetsmått och rapportering av testtäckning som Azure DevOps-testplaner.