Gehen Sie einen schnelleren, intelligenteren Weg zur KI-gestützten C/C++-Testautomatisierung. Erfahren Sie mehr >>
Anforderungsmanagement und Rückverfolgbarkeitsmatrix
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.
Zum Abschnitt springen
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, den Lebenszyklus einer Anforderung zu beschreiben und zu verfolgen, sowohl vorwärts als auch rückwärts (d. h. von ihrem Ursprung über ihre Entwicklung und Spezifikation bis hin zu ihrer späteren Bereitstellung und Verwendung und durch Perioden der fortlaufenden Verfeinerung und Iteration in jeder dieser Phasen).“
Das Nachverfolgen von Anforderungen bedeutet nicht einfach, einen Absatz aus einem Dokument mit einem Codeabschnitt oder einem Test zu verknüpfen. Die Nachverfolgbarkeit muss während der gesamten Entwicklungsphase gewährleistet sein, während sich Anforderungen in Design, Architektur und Implementierung manifestieren. Betrachten Sie das typische V-Diagramm einer 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.
Eine Anforderungsverfolgungsmatrix ist ein Dokument, das die Erfüllung von Anforderungen anhand eines entsprechenden Arbeitselements veranschaulicht, beispielsweise eines Unit-Tests, eines Modul-Quellcodes, eines Architektur-Designelements usw. Die Matrix wird häufig als Tabelle dargestellt und zeigt, wie jede Anforderung durch einen entsprechenden Teil des Produkts „abgehakt“ wird. Die Erstellung und Pflege dieser Matrizen erfolgt häufig automatisiert mit Anforderungsmanagement-Tools und ermöglicht die visuelle Darstellung in verschiedenen Formen und bei Bedarf auch in Papierform.
Unten ist eine Beispiel für eine Anforderungsrückverfolgbarkeitsmatrix von Intland CodeBeamer. Es zeigt Systemanforderungen, zerlegt in High-Level- und Low-Level-Anforderungen, sowie die Testfälle, die diese jeweils überprüfen.

Abbildung 3: Beispiel für eine Rückverfolgbarkeitsmatrix für Anforderungen in Intland codeBeamer.
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 bei Unternehmenssoftware nicht unbedingt streng geregelt, obwohl sich dies sicherlich verbessert. Bei sicherheitskritischer und unternehmenskritischer Software ist sie jedoch eine zwingende Voraussetzung.
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.
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.
Die automatisierte Rückverfolgbarkeit bietet Softwareentwicklungsteams mehrere Vorteile. Im Folgenden wird genauer untersucht, wie Automatisierung die Rückverfolgbarkeit in der Softwareentwicklung verbessern kann.
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.
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.
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.
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.
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.
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.
Darüber hinaus kann Parasoft die Fehlerentstehung automatisieren und so eine umfassende Feedbackschleife in Ihrem Entwicklungsworkflow etablieren. Es unterstützt Sie außerdem bei der Einhaltung gesetzlicher Vorschriften wie ISO 26262, DO-178C, IEC 62304, IEC 61508 und EN 50716 / EN 50128.
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
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.