Seien Sie am 30. April dabei: Vorstellung von Parasoft C/C++test CT für kontinuierliche Tests und Compliance-Exzellenz | Registrierung

Anforderungsmanagement und Rückverfolgbarkeitsmatrix

Kopfbild von Ricardo Camacho, Director of Safety & Security Compliance
12. Mai 2023
8 min lesen

Das Hauptanliegen des Anforderungsmanagements besteht darin, sicherzustellen, dass die gesetzten Ziele für die Produktentwicklung erreicht werden. Ohne Rückverfolgbarkeit kann es jedoch schwierig sein, diese gesetzten Ziele zu erreichen. In diesem Beitrag erfahren Sie alles, was Sie über das Anforderungsrückverfolgbarkeitsmanagement wissen müssen.

Ein Eckpfeiler eines rigorosen Softwareentwicklungsprozesses ist Anforderungsmanagement und die Rückverfolgbarkeit dieser Anforderungen an die Implementierung – und anschließend den Nachweis der korrekten Implementierung.

Die Rückverfolgbarkeit der Anforderungen wird von den Autoren definiert. Gotel und Finkelstein, als „die Fähigkeit, die Lebensdauer einer Anforderung sowohl in Vorwärts- als auch in Rückwärtsrichtung zu beschreiben und zu verfolgen (d. h. von ihren Ursprüngen über ihre Entwicklung und Spezifikation bis hin zu ihrer anschließenden Bereitstellung und Verwendung und durch Phasen der fortlaufenden Verfeinerung“) und Iteration in jeder dieser Phasen).“

Das Verfolgen von Anforderungen bedeutet nicht einfach, einen Absatz aus einem Dokument mit einem Codeabschnitt oder einem Test zu verknüpfen. Die Rückverfolgbarkeit muss während der gesamten Entwicklungsphasen aufrechterhalten werden, während sich die Anforderungen in Design, Architektur und Implementierung manifestieren. Betrachten Sie das typische „V“-Diagramm von Software.

Abbildung 1: Das klassische V-Diagramm zeigt, wie die Rückverfolgbarkeit in jeder Entwicklungsphase vorwärts und rückwärts verläuft.

Jede Phase steuert die nachfolgende Phase. Die Arbeitselemente in diesen Phasen müssen wiederum die Anforderungen aus der vorherigen Phase erfüllen. Das Systemdesign richtet sich nach den Anforderungen. Das Systemdesign erfüllt die Anforderungen und so weiter.

Das Requirements Traceability Management (RTM) belegt, dass jede Phase die Anforderungen jeder nachfolgenden Phase erfüllt. Dies ist jedoch nur die Hälfte des Bildes. Keine dieser Rückverfolgbarkeit zeigt, dass die Anforderungen erfüllt werden. Das erfordert Tests.

Abbildung 2: Der andere wichtige Teil der Rückverfolgbarkeit von Anforderungen sind Verifizierungs- und Validierungstests, um die Implementierung der Spezifikation aus der entsprechenden Entwurfsphase nachzuweisen. Die Validierung erfolgt normalerweise am Ende des Entwicklungszyklus während des endgültigen Abnahmetests mit dem Kunden.

In dem in Abbildung 2 gezeigten V-Diagramm überprüft jede Testphase die Erfüllung der Spezifikationen, die mit der entsprechenden Entwurfs- / Implementierungsphase verbunden sind. In diesem Beispiel werden durch Akzeptanztests Anforderungen überprüft, durch Integrationstests das Architekturdesign, durch Komponententests das Moduldesign usw. überprüft. Die Validierung erfolgt normalerweise am Ende des Entwicklungslebenszyklus während der Abnahmetests mit dem Kunden.

Die Rückverfolgbarkeit von Anforderungen erfordert sowohl die Verknüpfung mit der Implementierung und Überprüfung als auch alle damit verbundenen Artefakte aus dem Entwicklungsprozess. Softwareentwicklung in jedem realistischen Maßstab wird viele Anforderungen, komplexes Design und Architektur sowie möglicherweise Tausende von Einheiten und Komponententests haben. Die Automatisierung von RTM beim Testen ist erforderlich, insbesondere für sicherheitskritische Software, die eine Dokumentation der Rückverfolgbarkeit für Zertifizierungen und Audits erfordert.

Anforderungsrückverfolgbarkeitsmatrix

Eine Anforderungsrückverfolgbarkeitsmatrix ist ein Dokument, das die Erfüllung von Anforderungen mit einem entsprechenden Arbeitselement veranschaulicht, z. B. einem Komponententest, einem Modulquellcode, einem Architekturdesignelement usw. Die Matrix wird oft als Tabelle dargestellt, die zeigt, wie jede Anforderung von einem entsprechenden Teil des Produkts „abgehakt“ wird. Die Erstellung und Pflege dieser Matrizen wird häufig mit Anforderungsmanagement-Tools automatisiert und bietet die Möglichkeit, sie in vielen Formen visuell und bei Bedarf sogar in Papierform anzuzeigen.

Nachfolgend finden Sie ein Beispiel für eine Anforderungsrückverfolgbarkeitsmatrix von Intland codeBeamer. Es zeigt Anforderungen auf Systemebene, zerlegt in Anforderungen auf hoher und niedriger Ebene, sowie die Testfälle, die sie jeweils überprüfen.

Abbildung 3: Beispiel für eine Rückverfolgbarkeitsmatrix für Anforderungen in Intland codeBeamer.

Warum ist die Rückverfolgbarkeit von Anforderungen erforderlich?

Im einfachsten Sinne ist eine Rückverfolgbarkeit der Anforderungen erforderlich, um genau zu verfolgen, was Sie beim Schreiben von Software erstellen. Dies bedeutet, dass Sie sicherstellen müssen, dass die Software das tut, was sie soll, und dass Sie nur das erstellen, was benötigt wird.

Die Rückverfolgbarkeit dient sowohl dazu, zu beweisen, dass Sie die Anforderungen erfüllt haben, als auch zu identifizieren, was nicht. Wenn es Architekturelemente oder Quellcode gibt, die nicht auf eine Anforderung zurückgeführt werden können, ist dies ein Risiko und sollte nicht vorhanden sein. Die Vorteile gehen über den Nachweis der Implementierung hinaus. Die disziplinierte Rückverfolgbarkeit ist ein wichtiger Einblick in den Entwicklungsfortschritt.

Die Rückverfolgbarkeit ist in Unternehmenssoftwareanwendungen nicht unbedingt streng, obwohl dies der Fall ist sicherlich verbessern. Es ist jedoch eine erforderliche Aktivität in sicherheits- und unternehmenskritischer Software.

Rückverfolgbarkeit von Anforderungen in sicherheitskritischer Software

Anforderungen an sicherheitskritische Software sind der Haupttreiber für Produktdesign und -entwicklung. Diese Anforderungen umfassen funktionale Sicherheit, Anwendungsanforderungen und nicht funktionale Anforderungen, die das Produkt vollständig definieren. Dieses Vertrauen in dokumentierte Anforderungen ist ein gemischter Segen, da schlechte Anforderungen eine davon sind kritische Ursachen von Sicherheitsvorfällen in Software. Mit anderen Worten, die Implementierung war nicht schuld, aber schlechte oder fehlende Anforderungen.

Es ist wichtig zu erkennen, dass viele Anforderungen an sicherheitskritische Software aus Sicherheitsanalysen und Risikomanagement abgeleitet werden. Das System muss natürlich seine beabsichtigten Funktionen erfüllen, aber es muss auch Risiken mindern, um die Verletzungsgefahr deutlich zu reduzieren. Darüber hinaus ist die Rückverfolgbarkeit von entscheidender Bedeutung, um zu dokumentieren und nachzuweisen, dass diese Sicherheitsfunktionen vollständig und korrekt implementiert und getestet wurden.

Automatisierung der bidirektionalen Rückverfolgbarkeit

Das Verwalten von Rückverfolgbarkeitsaufzeichnungen in jeder Größenordnung erfordert eine Automatisierung. Zu den Tools für das Management des Anwendungslebenszyklus gehören Funktionen für das Anforderungsmanagement, die ausgereift sind und in der Regel die Drehscheibe für die Rückverfolgbarkeit darstellen. Integrierte Softwaretest-Tools wie Parasoft vervollständigen die Überprüfung und Validierung von Anforderungen, indem sie eine automatisierte bidirektionale Rückverfolgbarkeit für den ausführbaren Testfall bereitstellen, die das Bestanden- oder Nichtbestanden-Ergebnis enthält und auf den Quellcode zurückgeht, der die Anforderung implementiert.

Parasoft lässt sich in marktführende Anforderungsmanagement- und agile Planungssysteme wie Intland CodeBeamer, Polarion von Siemens, Atlassian Jira, CollabNet VersionOne und TeamForge integrieren.

Wie in der Abbildung unten gezeigt, ist jedes der Testautomatisierungstools von Parasoft (C / C ++ - Test, Test, dotTEST, SOAtest und Selenisch) unterstützen die Verknüpfung von Tests mit in diesen Systemen definierten Arbeitselementen (z. B. Anforderungen, Stories, Fehler, Testfalldefinitionen). Die Rückverfolgbarkeit wird durch Parasofts . verwaltet zentrales Berichts- und Analyse-Dashboard (Parasoft-DTP).

Abbildung 4: Parasoft bietet bidirektionale Rückverfolgbarkeit von Arbeitselementen bis hin zu Testfällen und Testergebnissen – sowohl die Anzeige von Rückverfolgbarkeitsberichten mit Parasoft DTP als auch die Rückmeldung der Ergebnisse an das Anforderungsmanagementsystem.

Parasoft DTP korreliert die eindeutigen Kennungen des Managementsystems mit statischen Analyseergebnissen, Codeabdeckung und Testergebnissen aus Einheiten-, Integrations- und Funktionstests. Die Ergebnisse werden in den Rückverfolgbarkeitsberichten von Parasoft DTP angezeigt und an das Anforderungsmanagementsystem zurückgesendet. Sie bieten vollständige bidirektionale Rückverfolgbarkeit und Berichterstellung als Teil der Rückverfolgbarkeitsmatrix des Systems.

Die Rückverfolgbarkeitsberichte in Parasoft DTP sind hochgradig anpassbar. Das folgende Bild zeigt eine Anforderungsrückverfolgbarkeitsmatrixvorlage für in Jira verfasste Storys, die auf Testfälle, statische Analyseergebnisse, Quellcodedateien und manuelle Codeüberprüfungen zurückgreifen.

Abbildung 5: Matrixvorlage für die Rückverfolgbarkeit von Anforderungen von Parasoft DTP, integriert in Altassian Jira.

Die bidirektionale Korrelation zwischen Testergebnissen und Arbeitselementen bildet die Grundlage für die Rückverfolgbarkeit der Anforderungen. Parasoft DTP fügt eine Test- und Codeabdeckungsanalyse hinzu, um die Vollständigkeit des Tests zu bewerten. Die Aufrechterhaltung dieser bidirektionalen Korrelation zwischen Anforderungen, Tests und den Artefakten, die diese implementieren, ist ein wesentlicher Bestandteil der Rückverfolgbarkeit.

Vorteile der automatisierten Rückverfolgbarkeit

Die automatisierte Rückverfolgbarkeit bietet Softwareentwicklungsteams mehrere Vorteile. Im Folgenden wird genauer untersucht, wie Automatisierung die Rückverfolgbarkeit in der Softwareentwicklung verbessern kann.

  1. Verbessert das Anforderungsmanagement. Die automatisierte Rückverfolgbarkeit vereinfacht und rationalisiert das Anforderungsmanagement, indem sie einen klaren und systematischen Ansatz zur automatischen Verknüpfung von Anforderungen mit Designdokumenten, Code und Testfällen bietet und es so einfacher macht, den Fortschritt der Anforderungen von der Entstehung bis zur Implementierung zu verfolgen. Dadurch wird sichergestellt, dass alle Anforderungen ordnungsgemäß berücksichtigt werden, wodurch menschliche manuelle Fehler und das Risiko, kritische Funktionen zu übersehen, reduziert werden.

Darüber hinaus ermöglicht die automatisierte Rückverfolgbarkeit eine effektive Auswirkungsanalyse, sodass Stakeholder die Auswirkungen von Änderungen an Anforderungen verstehen und fundierte Entscheidungen treffen können.

  1. Erleichtert die Zusammenarbeit im Team. Die automatisierte Rückverfolgbarkeit erleichtert die Zusammenarbeit zwischen Teams. Wenn Anforderungen mit Designentscheidungen, Code und Tests verknüpft werden, können Stakeholder die Auswirkungen von Änderungen und Modifikationen visualisieren. Diese visuelle Darstellung hilft bei produktiven Diskussionen und ermöglicht es den Beteiligten, fundierte Entscheidungen über die Priorisierung, den Umfang und die Kompromisse der Anforderungen zu treffen. Dies fördert die aktive Teilnahme und zieht den Input aller relevanten Parteien heran, was zu einem besseren Konsens über die Anforderungen des Projekts führt.

Darüber hinaus identifiziert die automatisierte Rückverfolgbarkeit Abhängigkeiten und Auswirkungen zwischen verschiedenen Komponenten der Software. Wenn Änderungen an einer Komponente vorgenommen werden, ermöglicht die Rückverfolgbarkeit den Stakeholdern daher, schnell die damit verbundenen Anforderungen, Designentscheidungen und Tests zu identifizieren, die möglicherweise betroffen sind. Dieses Wissen über Abhängigkeiten und Auswirkungen fördert die Zusammenarbeit, indem es sicherstellt, dass alle relevanten Parteien sich der möglichen Konsequenzen von Änderungen bewusst sind.

  1. Verbessert die Qualitätssicherung. Die automatisierte Rückverfolgbarkeit verbessert die Qualitätssicherungsbemühungen während des gesamten Softwareentwicklungslebenszyklus erheblich. Wenn die Rückverfolgbarkeit automatisiert ist, ermöglicht sie die automatische Verknüpfung von Anforderungen mit Testfällen, was wiederum sicherstellt, dass alle Anforderungen angemessen durch entsprechende Testfälle abgedeckt werden.

Da Testfälle automatisch auf Grundlage der nachverfolgten Anforderungen generiert werden, verringert sich das Risiko, dass Testszenarien fehlen, was häufig der Fall ist, wenn Testfälle manuell erstellt werden. Dank der automatisierten Rückverfolgbarkeit werden jedoch alle erforderlichen Testszenarien direkt aus den Anforderungen abgeleitet, wodurch das Risiko fehlender Testszenarien verringert wird.

  1. Optimiert Wartungs- und Fehlerbehebungsprozesse. Wartung und Fehlerbehebung sind inhärente Aspekte der Softwareentwicklung. Durch die automatisierte Rückverfolgbarkeit werden diese Prozesse effizienter und effektiver. Wenn beispielsweise Probleme oder Fehler auftreten, ermöglicht die Rückverfolgbarkeit Entwicklern, schnell die spezifischen Anforderungen, Designentscheidungen oder Codekomponenten zu identifizieren, die mit dem Problem verbunden sind. Dies beschleunigt den Fehlerbehebungsprozess und spart wertvolle Zeit und Ressourcen.

Darüber hinaus trägt die automatisierte Rückverfolgbarkeit auch dazu bei, die Lösungsschritte zu dokumentieren, was zukünftige Wartungsarbeiten erleichtert und die Wahrscheinlichkeit wiederkehrender Probleme verringert.

  1. Beschleunigt die Einhaltung gesetzlicher Vorschriften und die Prüfung. Die Einhaltung von Vorschriften und Standards ist ein entscheidender Aspekt der Softwareentwicklung, und die automatisierte Rückverfolgbarkeit hilft Unternehmen, die Einhaltung gesetzlicher Anforderungen nachzuweisen.

Die automatisierte Rückverfolgbarkeit bietet einen klaren Prüfpfad für Entscheidungen, Aktionen und Änderungen, die während des Softwareentwicklungsprozesses vorgenommen wurden. Dies macht Compliance-Audits reibungsloser und unkomplizierter, da alle notwendigen Informationen sofort verfügbar und nachvollziehbar sind.

Werkzeuge zur Rückverfolgbarkeit von Anforderungen

Zur Erleichterung der Rückverfolgbarkeit von Anforderungen stehen mehrere Tools zur Verfügung, die Funktionen zum Verknüpfen, Verfolgen, Verwalten und Analysieren der Beziehungen zwischen Anforderungen bereitstellen. Zu den beliebten Tools zur Rückverfolgbarkeit von Anforderungen gehören die folgenden.

  1. Parasoft. Bietet Testfälle für Anforderungsrückverfolgbarkeitsmanagementfunktionen über sein zentrales Berichts- und Analyse-Dashboard, Parasoft DTP. Neben Parasoft DTP sind Parasoft Selenic, Parasoft SOAtest, Parasoft C/C++test, Parasoft Jtest und Parasoft DotTest weitere Tools innerhalb des Parasoft-Ökosystems, die Rückverfolgbarkeitsfunktionen bieten. Diese Tools können Benutzer unterstützen, indem sie die Rückverfolgbarkeit zwischen Anforderungen und Testfällen und bei Bedarf bis hin zu den Quelldateien vervollständigen. . Mit diesen Tools können Sie die Testabdeckung für jede Anforderung einfach verfolgen, die Auswirkungen auf die Qualität schneller beurteilen und Analysen und Berichte zu Anforderungstests bereitstellen.

Darüber hinaus kann Parasoft auch die Fehlererstellung automatisieren, was dabei hilft, eine umfassende Feedbackschleife innerhalb Ihres Entwicklungsworkflows einzurichten. Es hilft auch bei der Einhaltung gesetzlicher Vorschriften sowie von Standards wie ISO 26262, DO-178C, IEC 62304, IEC 61508 und EN 50128.

  1. Codebeamer. Bietet allen Beteiligten eine zentrale Software-Anforderungsmanagementplattform für die effiziente Zusammenarbeit. Benutzer tauschen Ideen aus. Sie steuern und protokollieren Änderungen und identifizieren, verwalten und verfolgen Anforderungen über den gesamten Anwendungslebenszyklus hinweg. Dies führt zu einer Reduzierung von Kosten, Risiken und Lieferzeiten in der Produktentwicklung.
  2. Jama Connect. Ermöglicht Teams die Erfassung, Verwaltung und Nachverfolgung von Anforderungen während des gesamten Entwicklungsprozesses. Es bietet Funktionen zum Erstellen und Verwalten von Rückverfolgbarkeitsverknüpfungen zwischen Anforderungen, Designdokumenten, Testfällen und anderen Artefakten. Das Tool bietet außerdem Echtzeiteinblick in den Status von Anforderungen und den damit verbundenen Artefakten.
  3. Polarion-Anforderungen. Ein kollaboratives Anforderungsmanagement-Tool, das eine durchgängige Rückverfolgbarkeit unterstützt. Es ermöglicht Benutzern, Anforderungen zu definieren und zu verwalten, sie mit anderen Projektartefakten zu verknüpfen und ihren Implementierungsstatus zu verfolgen. Das Tool bietet Rückverfolgbarkeitsmatrizen, Wirkungsanalysen und anpassbare Berichte, um ein effektives Rückverfolgbarkeitsmanagement zu ermöglichen.

Verwalten des Workflows für die Fehler- / Problemerstellung

Parasoft DTP hilft auch dabei, die Erstellung von Fehlern und Problemen in neue Arbeitselemente zu integrieren. Testautomatisierung und statische Analyse erzeugen eine Menge Daten, die verbraucht werden müssen. Tools zur Verwaltung dieser Daten sind wichtig, um die Arbeitselemente zu priorisieren und zu verhindern, dass die Tools das Team überfordern.

Mithilfe der unten gezeigten Verstöße und Test-Explorer in Parasoft DTP kann das Team nach der Prüfung von Testfehlern und Verstößen gegen statische Analysen effizient neue Arbeitselemente erstellen. Die Kombination aus Rückverfolgbarkeit und dreifacher Erstellung von Problemen / Fehlern bietet eine vollständige Rückkopplungsschleife für einen Workflow.

Abbildung 6: Erstellen eines neuen Fehlers in VersionOne beim Testen von Testfehlern in Parasoft DTP

Zusammenfassung

Die Rückverfolgbarkeit von Anforderungen ist ein wesentlicher Bestandteil des Anforderungsmanagements in der Softwareentwicklung. Der Grad der Formalität bei der Rückverfolgbarkeit variiert je nach Anwendungstyp, die Praxis ist jedoch bei sicherheitskritischer Software unbedingt erforderlich.

Die bidirektionale Rückverfolgbarkeit ist wichtig, damit Anforderungsmanagement-Tools und andere Lifecycle-Tools die Ergebnisse korrelieren und an den Anforderungen und den zugehörigen Workitems ausrichten können.

Die Komplexität moderner Softwareprojekte erfordert eine Automatisierung, um die Rückverfolgbarkeit von Anforderungen zu skalieren. Parasoft-Tools sind für die Integration mit den besten Anforderungsmanagement-Tools konzipiert, um die Rückverfolgbarkeit von Testautomatisierungsergebnissen zu unterstützen und die Verifizierung und Validierung von Anforderungen durch Softwaretests abzuschließen.

Moderne Analytik für moderne Softwaretests