Bron, bug en kwaliteit traceerbaarheid ontwerpen en implementeren

Voltooid

In de context van DevOps verwijst traceerbaarheid naar de mogelijkheid om wijzigingen en acties bij te houden gedurende de levenscyclus van softwareontwikkeling. Dit concept is van toepassing op verschillende aspecten van die levenscyclus, waaronder wijzigingen in broncode, foutoplossing en het onderhouden van kwaliteitscontrole. De implementatie is essentieel om de betrouwbaarheid, onderhoudbaarheid en klanttevredenheid van producten te waarborgen.

Met broncodetraceerbaarheid kunnen ontwikkelaars codewijzigingen bijhouden in samenwerkingsscenario's. Traceerbaarheid van fouten vereenvoudigt het identificeren, prioriteren en oplossen van problemen met de broncode. Kwaliteit traceerbaarheid zorgt ervoor dat software voldoet aan de kwaliteitsnormen en de verwachtingen van gebruikers door testactiviteiten, metrische gegevens en feedback te koppelen aan ontwikkelingsinspanningen.

Ontwerpen

Op hoog niveau is traceerbaarheid hulpprogrammaagnostisch, maar de manier om deze te benaderen, is afhankelijk van het aspect van de levenscyclus van softwareontwikkeling dat het bedoeld is om te targeten. Op dezelfde manier verschillen doelstellingen en ontwerpoverwegingen tussen broncode, bug en kwaliteit traceerbaarheid.

Met name broncodetracering omvat het bijhouden van de geschiedenis van codewijzigingen, waaronder wie de wijzigingen heeft aangebracht, wanneer deze zijn aangebracht en het doel van de wijzigingen. Het vereenvoudigt codebeoordelingen, foutopsporing en inzicht in de ontwikkeling van de codebasis in de loop van de tijd. Vanuit het oogpunt van het ontwerp is deze functionaliteit nauw verbonden met Git-vertakkings- en samenvoegstrategieën die ontwikkelwerkzaamheden organiseren. Ontwikkelaars maken functiebranches voor nieuw werk, voeren wijzigingen door in hun vertakkingen en verzenden pull-aanvragen voor beoordeling. Op dat moment voeren hun collega's codebeoordelingen uit en keurt hun collega's de wijzigingen goed die moeten worden samengevoegd in de hoofdbranch.

Traceerbaarheid van fouten omvat het traceren van bugs of defecten die tijdens het testen of de productie zijn gerapporteerd naar de hoofdoorzaak in de codebasis. Het is ook vaak afhankelijk van het vastleggen van informatie, zoals de details van het foutenrapport, stappen voor het reproduceren, beïnvloede onderdelen en gerelateerde codewijzigingen. De doelstellingen zijn onder meer het efficiënt prioriteren en oplossen van bugs om tekortkomingen in software op te lossen.

Kwaliteit traceerbaarheid omvat het traceren van kwaliteitsgerelateerde activiteiten en artefacten tijdens het softwareontwikkelingsproces. Dit omvat het koppelen van metrische kwaliteitsgegevens, testcases, testresultaten en andere kwaliteitsgarantieactiviteiten aan vereisten, gebruikersverhalen en codewijzigingen. Kwaliteit traceerbaarheid helpt de impact van softwarewijzigingen op de kwaliteit ervan te beoordelen en gebieden voor verbetering te identificeren.

Traceerbaarheid implementeren

De details van de implementatie van traceerbaarheid verschillen in zekere mate, afhankelijk van het DevOps-platform.

Traceerbaarheid van bron

Omdat gitHub en Azure DevOps Git ondersteunen als bronbeheermechanisme, zijn een aantal technieken voor brontracering van toepassing op beide methoden. Als gevolg hiervan is het implementeren van broncodetraceerbaarheid in beide gevallen het aannemen van best practices, zoals het schrijven van beschrijvende doorvoerberichten, het gebruik van een goed gedefinieerde vertakkingsstrategie en het vereisen van pull-aanvragen voor codebeoordelingen.

Er zijn echter ook enkele verschillen tussen deze. Het implementeren van brontraceerbaarheid in GitHub-opslagplaatsen omvat doorgaans het gebruik van functies zoals vertakkingsbeveiligingsregels om processen voor codebeoordeling af te dwingen en ervoor te zorgen dat wijzigingen worden gecontroleerd voordat ze worden samengevoegd. Dankzij de integratie van GitHub met problemen kunnen codewijzigingen aan de bijbehorende problemen worden gekoppeld, waardoor tracering tussen codewijzigingen en projectvereisten mogelijk is. Azure DevOps biedt vertakkingsbeleid en pull-aanvraagbeleid voor het afdwingen van codekwaliteitscontroles en het koppelen van wijzigingen aan werkitems, waardoor tracering tussen codewijzigingen en gebruikersverhalen of -taken mogelijk is. Daarnaast biedt Azure DevOps uitgebreidere integratie met het systeem voor het bijhouden van werkitems, waardoor de traceerbaarheid en rapportagemogelijkheden van GitHub beter kunnen worden vergeleken met het bijhouden van problemen van GitHub.

Traceerbaarheid van fouten

In Azure DevOps wordt de tracering van fouten mogelijk gemaakt via Azure Boards, waar bugs worden bijgehouden als werkitems en kunnen worden gekoppeld aan codewijzigingen, doorvoeringen en pull-aanvragen. Met Azure Boards kunt u aangepaste werkstromen maken voor foutbeheer, statussen definiëren zoals Nieuw, Actief, Opgelost en Gesloten, zodat u inzicht hebt in de levenscyclus van de bug. Daarnaast biedt Azure DevOps uitgebreide integratie tussen bugs en andere werkitems, waardoor tracering tussen bugs en gebruikersverhalen, taken en epics mogelijk is.

In GitHub is de tracering van fouten afhankelijk van de integratie tussen problemen en codewijzigingen, waarbij fouten die als problemen worden gerapporteerd, kunnen worden gekoppeld aan doorvoer- en pull-aanvragen. GitHub Actions biedt de mogelijkheid om aanpasbare werkstromen te implementeren, met inbegrip van werkstromen met betrekking tot fouttracering. Met GitHub Actions kunt u werkstromen definiëren die processen automatiseren die worden geactiveerd door gebeurtenissen in uw GitHub-opslagplaats, zoals het maken of wijzigen van problemen. Hiermee kunt u aangepaste werkstromen maken voor het beheren van bugs, waaronder het definiëren van statussen, het toewijzen van taken en het automatiseren van acties op basis van specifieke voorwaarden. Hoewel GitHub Actions flexibiliteit biedt in werkstroomautomatisering, vereisen ze doorgaans meer inspanning en aanpassing in vergelijking met de ingebouwde functies van Azure Boards in Azure DevOps.

Kwaliteit traceerbaarheid

In Azure DevOps kan de traceerbaarheid van de kwaliteit worden beheerd met testplannen, waarmee teams testcases kunnen organiseren, uitvoeren en bijhouden. Testplannen bieden uitgebreide metrische gegevens over kwaliteit, waaronder testcasepasspercentages, testuitvoeringsresultaten en testdekkingsrapporten. Daarnaast biedt Azure DevOps integratie met hulpprogramma's voor codedekking om de testdekking te meten en gebieden van de codebasis te identificeren waarvoor extra tests zijn vereist.

GitHub biedt vergelijkbare functionaliteit via GitHub Actions, waardoor teams verschillende soorten tests kunnen automatiseren, zoals eenheidstests, integratietests en end-to-endtests. GitHub Actions biedt hier ook flexibiliteit bij het instellen van testwerkstromen en het integreren met testhulpprogramma's van derden, maar ze vereisen meestal aanvullende configuratie om hetzelfde niveau van uitgebreide metrische kwaliteitsgegevens en testdekkingsrapportage als Azure DevOps-testplannen te bereiken.