Entwerfen und Implementieren der Quell-, Fehler- und Qualitätsnachverfolgung

Abgeschlossen

Im DevOps-Kontext bezieht sich Nachverfolgbarkeit auf die Möglichkeit, Änderungen und Aktionen während des gesamten Lebenszyklus der Softwareentwicklung nachzuverfolgen. Dieses Konzept gilt für verschiedene Aspekte dieses Lebenszyklus, einschließlich Änderungen am Quellcode, Fehlerauflösung und Aufrechterhaltung der Qualitätslenkung. Seine Implementierung ist unerlässlich, um die Produktzuverlässigkeit, die Wartbarkeit und die Kundenzufriedenheit zu sichern.

Die Nachverfolgbarkeit von Quellen ermöglicht Entwicklern das Nachverfolgen von Codeänderungen in Zusammenarbeitsszenarios. Die Nachverfolgbarkeit von Fehlern erleichtert das Identifizieren, Priorisieren und Beheben von Quellcodeproblemen. Die Nachverfolgbarkeit der Qualität stellt sicher, dass Software Qualitätsstandards und Benutzererwartungen erfüllt, indem Testaktivitäten, Metriken und Feedback dem Entwicklungsaufwand zugeordnet werden.

Design

Nachverfolgbarkeit ist im Großen und Ganzen toolunabhängig. Die Vorgehensweise hängt jedoch vom Aspekt des Softwareentwicklungs-Lebenszyklus ab, der betrachtet werden soll. Ebenso unterscheiden sich die Ziele und Entwurfsüberlegungen von Quellcode-, Fehler- und Qualitätsnachverfolgbarkeit.

Quellnachverfolgbarkeit beinhaltet die Nachverfolgung des Verlaufs von Codeänderungen, zum Beispiel wer die Änderungen wann und warum vorgenommen hat. Es erleichtert Code Reviews sowie das Debuggen und bietet Einblicke in die Entwicklung der Codebasis im Laufe der Zeit. Aus Designsicht ist diese Funktionalität eng mit Git-Branching und Mergestrategien verzahnt, die die Entwicklungsarbeit organisieren. Entwickler erstellen Featurebranches für neue Arbeit, committen Änderungen an Branches und übermitteln Pull Requests zum Review. Anschließend führen ihre Kollegen Code Reviews durch und genehmigen, sofern kein Korrekturbedarf besteht, die Änderungen, die mit dem Mainbranch gemergt werden sollen.

Die Fehlernachverfolgbarkeit umfasst die Nachverfolgung von Fehlern oder Defekten, die während der Testphase oder in der Produktion gemeldet werden, bis zu ihrer Ursache in der Codebasis. Für die Fehlernachverfolgbarkeit werden häufig auch Informationen wie Details des Fehlerberichts, die Schritte zum Reproduzieren, die betroffenen Komponenten und zugehörige Codeänderungen erfasst. Zu den Zielen gehört die effiziente Priorisierung und Behebung von Fehlern, um Softwaremängel zu beheben.

Die Nachverfolgbarkeit der Qualität umfasst die Nachverfolgung von qualitätsbezogenen Aktivitäten und Artefakten während der gesamten Softwareentwicklung. Dazu gehören das Zuordnen von Qualitätsmetriken, Testfällen, Testergebnissen und anderen Qualitätssicherungsmaßnahmen zu den Anforderungen, User Storys und Codeänderungen. Die Nachverfolgbarkeit der Qualität hilft dabei, die Auswirkungen von Softwareänderungen auf die Softwarequalität zu bewerten und Verbesserungspotenzial zu ermitteln.

Implementieren der Nachverfolgbarkeit

Details zur Implementierung von Nachverfolgbarkeit unterscheiden sich etwas je nach DevOps-Plattform.

Nachverfolgbarkeit der Quelle

Da sowohl GitHub als auch Azure DevOps Git zur Quellcodeverwaltung unterstützen, können verschiedene Methoden zur Nachverfolgbarkeit in beiden Diensten angewendet werden. Daher müssen zur Implementierung der Quellcodenachverfolgbarkeit in beiden Fällen bewährte Methoden wie beschreibende Commitnachrichten, eine klar definierte Branchingstrategie und die Notwendigkeit von Pull Requests für Code Reviews eingeführt werden.

Es gibt jedoch auch einige Unterschiede zwischen beiden Diensten. Um die Quellennachverfolgung in GitHub-Repositorys zu implementieren, müssen in der Regel Features wie Branchschutzregeln eingesetzt werden, um Code Reviews zu erzwingen und sicherzustellen, dass Änderungen vor dem Mergen geprüft werden. Die GitHub-Integration mit Issues ermöglicht das Zuordnen von Codeänderungen zu den entsprechenden Issues, was die Nachverfolgung zwischen Codeänderungen und Projektanforderungen ermöglicht. Azure DevOps bietet Branch- und Pull-Request-Richtlinien zum Erzwingen von Code Reviews und Verknüpfen von Änderungen an Arbeitselementen, was die Nachverfolgung zwischen Codeänderungen und User Storys oder Aufgaben ermöglicht. Darüber hinaus bietet Azure DevOps mit seinem System zur Nachverfolgung von Arbeitselementen eine umfassendere Integration, da es eine präzisere Nachverfolgung und Berichterstellung als die Issuenachverfolgung von GitHub ermöglicht.

Nachverfolgbarkeit von Fehlern

In Azure DevOps wird die Fehlernachverfolgung über Azure Boards bereitgestellt. In diesem Dienst werden Fehler als Arbeitselemente nachverfolgt und mit Codeänderungen, Commits und Pull Requests verknüpft. Azure Boards ermöglicht das Erstellen benutzerdefinierter Workflows für die Fehlerverwaltung mit Status wie „Neu“, „Aktiv“, „Gelöst“ und „Geschlossen“ und bietet so Einblicke in den Lebenszyklus des Fehlers. Darüber hinaus bietet Azure DevOps eine umfassende Integration von Fehlern mit anderen Arbeitselementen und ermöglicht so die Nachverfolgung zwischen Fehlern und User Storys, Aufgaben und Epics.

In GitHub basiert die Fehlernachverfolgung auf der Integration von Issues mit Codeänderungen, damit als Problem gemeldete Fehler Commits und Pull Requests zugeordnet werden können. GitHub Actions bietet die Möglichkeit, anpassbare Workflows zu implementieren, einschließlich derjenigen im Zusammenhang mit der Fehlernachverfolgung. Mit GitHub Actions können Sie Workflows definieren, die durch Ereignisse in Ihrem GitHub-Repository ausgelöste Prozesse automatisieren, z. B. die Erstellung oder Änderung von Issues. Auf diese Weise können Sie benutzerdefinierte Workflows zum Verwalten von Fehlern erstellen, um z. B. Status zu definieren, Aufgaben zuzuweisen und Aktionen auf Basis bestimmter Bedingungen zu automatisieren. Obwohl GitHub Actions Flexibilität bei der Workflowautomatisierung bietet, erfordert der Dienst in der Regel mehr Aufwand und Anpassung als die in Azure DevOps integrierten Features von Azure Boards.

Nachverfolgbarkeit der Qualität

In Azure DevOps kann die Qualitätsnachverfolgung mithilfe von Test Plans verwaltet werden. Mit diesem Angebot können Teams Testfälle organisieren, ausführen und nachverfolgen. Test Plans bietet umfassende Qualitätsmetriken, einschließlich Testfall-Erfolgsquoten, Testlaufergebnisse und Testabdeckungsberichte. Darüber hinaus bietet Azure DevOps die Integration mit Code-Coverage-Tools, um die Testabdeckung zu messen und Bereiche der Codebasis zu identifizieren, die zusätzliche Tests erfordern.

GitHub bietet ähnliche Funktionen über GitHub Actions, mit denen Teams verschiedene Testtypen wie Komponententests, Integrationstests und End-to-End-Tests automatisieren können. Auch hier bietet GitHub Actions zwar Flexibilität beim Einrichten von Testworkflows und der Integration mit Drittanbieter-Testtools, erfordert in der Regel jedoch zusätzliche Konfiguration, um das gleiche Maß an umfassenden Qualitätsmetriken und Testabdeckungsberichten wie Azure DevOps Test Plans zu erzielen.