Anforderungsmanagement und Rückverfolgbarkeitsmatrix
Von Ricardo Camacho
9. April 2020
6 min lesen
Zum Abschnitt springen
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.
Sehen Sie die umfassendste Entwicklungstestlösung für C und C ++ in Aktion.
Versuchen Sie den Parasoft C / C ++ - Test
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 Architekturentwurfselement usw. Die Matrix wird häufig als Tabelle angezeigt, die zeigt, wie jede Anforderung von einem entsprechenden Teil des Produkts „abgehakt“ wird. Das Erstellen und Verwalten dieser Matrizen erfolgt häufig mit Anforderungsmanagement-Tools, mit denen sie visuell in vielen Formen und bei Bedarf sogar in gedruckter Form angezeigt werden können.
Unten finden Sie ein Beispiel für eine Matrix zur Rückverfolgbarkeit von Anforderungen von Intland codeBeamer. Es zeigt Anforderungen auf Systemebene, die in Anforderungen auf hoher und niedriger Ebene zerlegt sind, sowie die Testfälle, die die einzelnen Anforderungen ü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 wissen, dass viele Anforderungen an sicherheitskritische Software aus Sicherheitsanalysen und Risikomanagement abgeleitet werden. Das System muss natürlich die beabsichtigten Funktionen ausführen, aber es muss auch die Risiken mindern, um die Verletzungsgefahr erheblich zu verringern. Um zu dokumentieren und nachzuweisen, dass diese Sicherheitsfunktionen vollständig und korrekt implementiert und getestet wurden, ist die Rückverfolgbarkeit von entscheidender Bedeutung.
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 eine bidirektionale Rückverfolgbarkeit von Arbeitselementen zu Testfällen und Testergebnissen. Dabei werden sowohl Rückverfolgbarkeitsberichte mit Parasoft DTP angezeigt als auch Ergebnisse an das Anforderungsmanagementsystem zurückgemeldet.
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 in hohem Maße anpassbar. Das folgende Bild zeigt eine Matrixvorlage für die Rückverfolgbarkeit von Anforderungen für in Jira verfasste Storys, die auf Testfälle, statische Analyseergebnisse, Quellcodedateien und manuelle Codeüberprüfungen zurückgeführt werden.
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.
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 der Anforderungen zu skalieren. Parasoft-Tools lassen sich in erstklassige Anforderungsmanagement-Tools integrieren, um die Rückverfolgbarkeit in die Ergebnisse der Testautomatisierung zu unterstützen und die Überprüfung und Validierung der Softwaretests abzuschließen.
Sehen Sie die umfassendste Entwicklungstestlösung für C und C ++ in Aktion.
Versuchen Sie den Parasoft C / C ++ - Test