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

Abgeschlossen

Im Kontext von DevOps bezieht sich die Rückverfolgbarkeit 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 an Quellcode, Fehlerauflösung und Aufrechterhaltung der Qualitätskontrolle. Die Implementierung ist unerlässlich, um die Produktzuverlässigkeit, die Wartbarkeit und die Kundenzufriedenheit sicherzustellen.

Die Quellablaufverfolgung ermöglicht Entwicklern das Nachverfolgen von Codeänderungen in Zusammenarbeitsszenarien. Die Fehlerablaufverfolgung erleichtert das Identifizieren, Priorisieren und Beheben von Problemen mit dem Quellcode. Die Qualitätsablaufverfolgung stellt sicher, dass Software Qualitätsstandards und Benutzererwartungen erfüllt, indem Testaktivitäten, Metriken und Feedback zu Entwicklungsbemühungen verknüpft werden.

Entwurf

Auf einer höheren Ebene ist die Rückverfolgbarkeit tool-agnostisch, doch die Herangehensweise hängt von dem Aspekt des Softwareentwicklungslebenszyklus ab, auf den sie abzielen soll. Ebenso unterscheiden sich Ziele und Entwurfsüberlegungen zwischen Quellcode, Fehler und Qualität der Rückverfolgbarkeit.

Insbesondere umfasst die Rückverfolgbarkeit der Quelle das Nachverfolgen des Verlaufs von Codeänderungen, einschließlich der Personen, die die Änderungen vorgenommen haben, wann sie vorgenommen wurden, und den Zweck der Änderungen. Es erleichtert Codeüberprüfungen, Debugging und das Verständnis der Entwicklung der Codebasis im Laufe der Zeit. Aus gestalterischer Sicht ist diese Funktionalität eng mit den Git-Branching- und -Merging-Strategien verbunden, die die Entwicklungsarbeit organisieren. Entwickler erstellen Funktionszweige für neue Arbeit, übernehmen Änderungen an ihren Zweigen und übermitteln Pull-Anforderungen zur Überprüfung. Zu diesem Zeitpunkt führen ihre Peers Codeüberprüfungen durch und genehmigen nach erfolgreichem Abschluss die Änderungen, die mit der Hauptzweigung zusammengeführt werden sollen.

Die Fehlerablaufverfolgung umfasst das Zurückverfolgen von Fehlern oder Defekten, die während des Tests oder der Produktion zu ihrer Ursache in der Codebasis führen. Es basiert häufig auch auf der Erfassung von Informationen wie den Details des Fehlerberichts, den Schritten zum Reproduzieren, betroffenen Komponenten und verwandten Codeänderungen. Zu den Zielen gehört die effiziente Priorisierung und Behebung von Fehlern, um Softwaremängel zu beheben.

Die Qualität der Rückverfolgbarkeit umfasst die Ablaufverfolgung von qualitätsbezogenen Aktivitäten und Artefakten während des gesamten Softwareentwicklungsprozesses. Dazu gehören das Verknüpfen von Qualitätsmetriken, Testfällen, Testergebnissen und anderen Qualitätsüberprüfungsaktivitäten mit Anforderungen, Benutzergeschichten und Codeänderungen. Die Qualitätsablaufverfolgung hilft dabei, die Auswirkungen von Softwareänderungen auf seine Qualität zu bewerten und Bereiche zur Verbesserung zu identifizieren.

Implementieren der Rückverfolgbarkeit

Details zur Rückverfolgbarkeitsimplementierung unterscheiden sich je nach DevOps-Plattform teilweise.

Rückverfolgbarkeit der Quelle

Da sowohl GitHub als auch Azure DevOps Git als Versionskontrollsystem unterstützen, gelten für beide verschiedene Techniken zur Rückverfolgbarkeit von Quellcode. Als Ergebnis umfasst die Implementierung der Rückverfolgbarkeit von Quellcode in beiden Fällen die Einführung bewährter Methoden wie das Schreiben beschreibender Commit-Nachrichten, die Verwendung einer klar definierten Verzweigungsstrategie und das Anfordern von Pull Requests für Codeüberprüfungen.

Es gibt jedoch auch einige Unterschiede zwischen ihnen. Die Implementierung der Quellablaufverfolgung in GitHub-Repositorys umfasst in der Regel die Verwendung von Features wie Branch-Schutzregeln, um Codeüberprüfungsprozesse zu erzwingen und sicherzustellen, dass Änderungen vor dem Zusammenführen überprüft werden. Die Integration von GitHub mit Problemen ermöglicht das Verknüpfen von Codeänderungen mit entsprechenden Problemen, was die Rückverfolgbarkeit zwischen Codeänderungen und Projektanforderungen ermöglicht. Azure DevOps bietet Zweigrichtlinien und Pullanforderungsrichtlinien zum Erzwingen von Codequalitätsprüfungen und Verknüpfen von Änderungen an Arbeitsaufgaben, wodurch die Rückverfolgbarkeit zwischen Codeänderungen und Benutzergeschichten oder Aufgaben ermöglicht wird. Darüber hinaus bietet Azure DevOps eine umfassendere Integration mit seinem System zur Nachverfolgung von Arbeitsaufgaben, was eine tiefere Rückverfolgbarkeit und Berichterstellungsfunktionen im Vergleich zur Problemverfolgung von GitHub ermöglicht.

Fehlernachverfolgbarkeit

In Azure DevOps wird die Fehlerablaufverfolgung über Azure Boards erleichtert, bei denen Fehler als Arbeitsaufgaben nachverfolgt werden und mit Codeänderungen, Commits und Pullanforderungen verknüpft werden können. Azure Boards ermöglicht das Erstellen benutzerdefinierter Workflows für die Fehlerverwaltung, das Definieren von Zuständen wie "Neu", "Aktiv", "Aufgelöst" und "Geschlossen" und bietet Einblicke in den Lebenszyklus des Fehlers. Darüber hinaus bietet Azure DevOps eine umfassende Integration zwischen Bugs und anderen Arbeitsaufgaben und ermöglicht die Rückverfolgbarkeit zwischen Bugs und Benutzergeschichten, Aufgaben und Epics.

In GitHub basiert die Fehlerablaufverfolgung auf der Integration zwischen Problemen und Codeänderungen, bei denen Fehler, die als Probleme gemeldet wurden, mit Commits und Pullanforderungen verknüpft werden können. GitHub-Aktionen bieten die Möglichkeit, anpassbare Workflows zu implementieren, einschließlich derjenigen im Zusammenhang mit der Fehlerablaufverfolgung. Mit GitHub-Aktionen können Sie Workflows definieren, die Prozesse automatisieren, die durch Ereignisse in Ihrem GitHub-Repository ausgelöst werden, z. B. die Erstellung oder Änderung von Problemen. Auf diese Weise können Sie benutzerdefinierte Workflows zum Verwalten von Fehlern erstellen, z. B. Status definieren, Aufgaben zuweisen und Aktionen basierend auf bestimmten Bedingungen automatisieren. Während GitHub-Aktionen Flexibilität in der Workflowautomatisierung bieten, erfordern sie in der Regel mehr Aufwand und Anpassung im Vergleich zu den integrierten Features von Azure Boards in Azure DevOps.

Qualität der Rückverfolgbarkeit

In Azure DevOps kann die Qualitätsablaufverfolgung mithilfe von Testplänen verwaltet werden, mit denen Teams Testfälle organisieren, ausführen und nachverfolgen können. Testpläne bieten umfassende Qualitätsmetriken, einschließlich Testfallpassraten, Testlaufergebnisse und Testabdeckungsberichte. Darüber hinaus bietet Azure DevOps die Integration mit Codeabdeckungstools, um die Testabdeckung zu messen und Bereiche der Codebasis zu identifizieren, die zusätzliche Tests erfordern.

GitHub bietet ähnliche Funktionen über GitHub-Aktionen, sodass Teams verschiedene Arten von Tests automatisieren können, z. B. Komponententests, Integrationstests und End-to-End-Tests. Darüber hinaus bietet GitHub-Aktionen Flexibilität beim Einrichten von Testworkflows und der Integration in Testtools von Drittanbietern, erfordern jedoch in der Regel zusätzliche Konfiguration, um das gleiche Maß an umfassenden Qualitätsmetriken und Testabdeckungsberichte wie Azure DevOps-Testpläne zu erzielen.