Parasoft-Logo Suche

Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »

Parasoft-Blog

Wie man die Verifizierungsabdeckung mit GoogleTest und C/C++test CT nachweist

Porträtfoto von Miroslaw Zielinski, Direktor Produktmanagement
By Miroslaw Zielinski Juli 22, 2026 6 min gelesen
Juli 22, 2026 | 6 min gelesen
By Miroslaw Zielinski
Text links: Wie man die Verifizierungsabdeckung mit GoogleTest und C/C++test CT nachweist. Grafik rechts: Mehrere Standarddokumente in einer horizontalen Reihe. Über dem mittleren Dokument befindet sich eine Lupe mit einem Häkchen, das die Konformitätsprüfung anzeigt.

Die Codeabdeckung zeigt zwar, welcher Code ausgeführt wurde, beweist aber nicht, welche Anforderungen tatsächlich überprüft wurden. Lesen Sie weiter, um zu erfahren, wie Sie GoogleTest mit Parasoft C/C++test CT um die Rückverfolgbarkeit von Anforderungen erweitern können – und so die Lücke zwischen bestandenen Tests und dem Nachweis der Konformität schließen.

Wichtige Erkenntnisse

  • Warum reicht die Codeabdeckung für sicherheitskritische Software nicht aus? Die strukturelle Testabdeckung zeigt zwar, welcher Code ausgeführt wurde, die Rückverfolgbarkeit der Anforderungen beweist jedoch, welche spezifizierten Verhaltensweisen verifiziert wurden. Beides ist notwendig, um die Vollständigkeit der Unit-Tests nachzuweisen.
  • Wie fügt man bestehenden GoogleTest-Suites die Rückverfolgbarkeit von Anforderungen hinzu? Indem GoogleTest-Testfälle mit Anforderungs-IDs annotiert werden, die Links in der Versionskontrolle sichtbar bleiben und anschließend Parasoft C/C++test CT verwendet wird, um den XML-Ausführungsbericht zu verarbeiten und die Ergebnisse an Parasoft DTP zu senden.
  • Wie korrelieren Sie Testergebnisse mit externen Anforderungen? Parasoft DTP verbindet sich direkt mit Anforderungsmanagementsystemen wie Jama, Polarion, Codebeamer und DOORS Next, um Anforderungsmetadaten mit den Ergebnissen der Unit-Test-Ausführung abzugleichen, ohne Daten oder manuelle Tabellenkalkulationen zu duplizieren.
  • Welche Verifizierungslücken können durch Rückverfolgbarkeitsberichte aufgedeckt werden? Es hebt ungetestete Anforderungen, Anforderungen hervor, die nur mit fehlgeschlagenen Tests verknüpft sind, und Anforderungen, die mit Tests verbunden sind, die nie ausgeführt wurden – Lücken, die ein Standard-GoogleTest-Bericht nicht aufzeigen kann.
  • Wie skaliert das mit CI-Prozessen und sich ändernden Anforderungen? Da die Rückverfolgbarkeit bei jedem GoogleTest-Lauf aktualisiert wird, erhalten die Teams frühzeitig und kontinuierlich Feedback zu Anforderungsänderungen und Test-Refactoring, wodurch der Wartungsaufwand für manuell aktualisierte Rückverfolgbarkeitsmatrizen entfällt.

Warum die Rückverfolgbarkeit von Anforderungen für GoogleTest in sicherheitskritischer Software wichtig ist

In einem früheren Beitrag haben wir erläutert, wie Teams mit TÜV-zertifiziertem GoogleTest und C/C++test CT – einem C/C++-Softwaretesttool mit zertifizierter GoogleTest-Unterstützung – ihre Ziele hinsichtlich der Codeabdeckung erreichen können . Sie können die strukturelle Codeabdeckung aus GoogleTest-basierten Tests erfassen, Abdeckungslücken analysieren und die erforderlichen Nachweise für die Vollständigkeit der Tests generieren.

Die Codeabdeckung stellt jedoch nur eine Dimension der Vollständigkeit von Unit-Tests dar.

In Projekten, in denen die Einhaltung von Standards für funktionale Sicherheit zwingend erforderlich ist, müssen die Teams zudem eine angemessene Verifizierung der Softwareanforderungen anhand von Testfällen nachweisen. Dies geschieht üblicherweise durch die Dokumentation der Rückverfolgbarkeit von Anforderungen, wodurch die Beziehungen zwischen Anforderungen, Tests und Testergebnissen klar definiert werden.

Die Rückverfolgbarkeit von Anforderungen ermöglicht es Teams, mehrere grundlegende Fragen zu beantworten.

  • Wurden alle relevanten Softwareanforderungen getestet?
  • Welche Testfälle überprüfen eine bestimmte Anforderung?
  • Wie lautete das Ergebnis der einzelnen Tests?
  • Gibt es Anforderungen ohne zugehörige Tests?

Ohne diese Informationen beweist weder eine erfolgreiche GoogleTest-Ausführung noch ein hoher Codeabdeckungsgrad allein, dass das beabsichtigte Softwareverhalten vollständig verifiziert wurde.

In diesem Blog erklären wir, wie Parasoft C/C++test CT das GoogleTest-Framework um die Rückverfolgbarkeit von Anforderungen erweitert und es ermöglicht, Testergebnisse mit Anforderungen zu korrelieren, die in einem externen Anforderungsmanagementsystem verwaltet werden.

Warum Codeabdeckung nicht ausreicht

Die Abdeckung des strukturellen Codes und die Abdeckung der Anforderungen bieten komplementäre Sichtweisen auf die Vollständigkeit der Unit-Tests.

Codeabdeckungsberichte zeigen, welche Teile der Implementierung während der Tests geprüft wurden. Abhängig vom jeweiligen Entwicklungsprozess und dem Sicherheitsintegritätsniveau müssen Teams möglicherweise Kennzahlen wie die Abdeckung von Anweisungen, Verzweigungen, Entscheidungen, Bedingungen oder MC/DC-Anweisungen erfassen.
Anforderungsrückverfolgbarkeitsberichte behandeln eine andere Frage. Anstatt aufzuzeigen, welche Codekonstrukte ausgeführt wurden, zeigen sie, ob das spezifizierte Softwareverhalten verifiziert wurde.

Aus diesem Grund werden bei Compliance-orientierten Projekten typischerweise beide Arten von Nachweisen verwendet:

Zusammen bieten diese Berichte einen umfassenderen Überblick über den Verifizierungsstatus. Teams können so Lücken in den Anforderungen, Tests und der Implementierung identifizieren.

Die Herausforderung der Anforderungsrückverfolgbarkeit mit GoogleTest

GoogleTest wird häufig für Unit-Tests von C- und C++-Software eingesetzt. Es bietet ein vertrautes Framework zum Definieren von Testfällen, Organisieren von Testsuiten, Ausführen von Tests und Generieren von XML-Testergebnissen.

Der GoogleTest-Ausführungsbericht beschreibt jedoch primär die Teststruktur und den Ausführungsstatus. Er zeigt an, welche Tests ausgeführt wurden und ob sie bestanden, fehlgeschlagen oder übersprungen wurden. Er bietet jedoch keinen vollständigen, auf Compliance ausgerichteten Workflow zur Korrelation dieser Ergebnisse mit Anforderungen, die in einem unternehmensweiten Anforderungsmanagementsystem gespeichert sind.

Teams versuchen diese Lücke häufig mit Tabellenkalkulationen, Namenskonventionen, benutzerdefinierten Skripten oder manuell gepflegten Rückverfolgbarkeitsmatrizen zu schließen. Diese Ansätze mögen für kleine Projekte funktionieren, werden aber mit zunehmender Anzahl an Anforderungen, Testfällen, Produktvarianten und Testkonfigurationen immer schwieriger zu handhaben.

Erweiterung von GoogleTest um Anforderungsrückverfolgbarkeit

Parasoft C/C++test CT erweitert den GoogleTest-Workflow um die Unterstützung für die Berichterstellung zur Anforderungsrückverfolgbarkeit. Sie können Testfälle mit Anmerkungen versehen, die deren Bezug zu den Anforderungen kennzeichnen.
Ein einzelner Testfall kann mit einer oder mehreren Anforderungen verknüpft sein. Ebenso können mehrere Testfälle eine einzelne Anforderung überprüfen, wenn unterschiedliche Eingaben, Betriebsmodi, Randbedingungen oder Fehlerszenarien bewertet werden müssen.

Diese Annotationen stellen die erste Verbindung zwischen der Implementierung der Unit-Tests und den Projektanforderungen her. Der Workflow zur Rückverfolgbarkeit der Anforderungen besteht aus drei Hauptphasen.

1. GoogleTest-Testfälle mit Anforderungs-IDs annotieren

Entwickler beginnen damit, GoogleTest-Testfälle den entsprechenden Anforderungskennungen zuzuordnen.

Die Kennungen sollten den im Anforderungsmanagementsystem des Projekts hinterlegten Anforderungen entsprechen.

Indem die Anforderungsreferenzen nahe an der Testimplementierung platziert werden, wird die Beziehung während der Entwicklung sichtbar und ermöglicht die Verwaltung über dieselben Überprüfungs- und Versionskontrollprozesse wie beim Testcode.

2. Verarbeitung der GoogleTest-Ausführungsergebnisse mit C/C++test CT

Verwenden Sie GoogleTest, um die annotierten Tests auszuführen und einen XML-Ausführungsbericht mit den Testergebnissen zu generieren.

C/C++test CT liest den XML-Bericht, der sowohl die Testausführungsergebnisse als auch die Anforderungsannotationen enthält, und sendet diese Informationen an Parasoft DTP, eine Reporting-Plattform.
DTP verbindet sich mit Ihrem RMS, importiert die relevanten Anforderungsdaten und generiert den Rückverfolgbarkeitsbericht.

Sie können diesen Workflow in Ihren lokalen Entwicklungsprozess oder, noch besser, in eine Continuous-Integration-Pipeline integrieren.

3. Testergebnisse mit Anforderungen in Parasoft DTP korrelieren

DTP stellt eine Verbindung zum Anforderungsmanagementsystem der Organisation her, beispielsweise Jama, Polarion, Codebeamer oder DOORS Next, und ruft Informationen über die referenzierten Anforderungen ab.
DTP korreliert anschließend die Anforderungsdatensätze mit den von C/C++test CT erhaltenen Unit-Test-Ergebnissen.

Diese Korrelation kombiniert Informationen aus zwei Quellen:

  • Anforderungsdefinitionen und Metadaten aus dem ursprünglichen Anforderungsmanagementsystem
  • Testen Sie Beziehungen und Ausführungsergebnisse aus dem GoogleTest-Workflow

Dadurch können Sie den Verifizierungsstatus analysieren, ohne die vollständige Anforderungsdefinition im Testquellcode zu duplizieren oder Testergebnisse manuell in das Anforderungsmanagementsystem zu übertragen.

Das Anforderungsmanagementsystem bleibt die maßgebliche Quelle für Anforderungsinformationen, während DTP eine konsolidierte Sicht auf die Beziehungen zwischen Anforderungen und Testnachweisen bietet.

Prozessablaufdiagramm, das zeigt, wie die Rückverfolgbarkeit von Anforderungen mit GoogleTest und Parasoft C/C++test CT erreicht werden kann.

Identifizierung von Lücken in der Anforderungsprüfung

Sobald die Informationen miteinander verknüpft sind, können Rückverfolgbarkeitsberichte Lücken aufzeigen, die in einem Standard-GoogleTest-Bericht schwer zu erkennen sind.

Der Bericht kann beispielsweise folgende Anforderungen aufzeigen:

  • Keine zugehörigen Unit-Tests
  • Nur im Zusammenhang mit fehlgeschlagenen Tests
  • Bezieht sich auf Tests, die nicht ausgeführt wurden

Diese Ergebnisse unterstützen sowohl die tägliche Entwicklung als auch die formalen Compliance-Aktivitäten.
Die Rückverfolgbarkeitsberichterstattung ersetzt nicht das technische Urteilsvermögen. Vielmehr liefert sie objektive Daten, die die Prüfer auf Zusammenhänge hinweisen, die einer weiteren Analyse bedürfen.

Wie Rückverfolgbarkeit Teams bei der Verwaltung von Anforderungsänderungen hilft

Anforderungen und Testreihen bleiben selten statisch.

Anforderungen können hinzugefügt, geändert, aufgeteilt, ersetzt oder entfernt werden. Testfälle können umbenannt, refaktoriert, parametrisiert oder in kleinere Tests unterteilt werden. Produktvarianten können zudem unterschiedliche Teilmengen von Anforderungen und Tests erfordern.

Da C/C++test CT die Rückverfolgbarkeitsinformationen im Rahmen des regulären GoogleTest-Ausführungsablaufs verarbeitet, können Berichte bei jeder Ausführung der Testsuite aktualisiert werden. Dies reduziert die Abhängigkeit von Rückverfolgbarkeitsmatrizen, die separat vom Quellcode verwaltet werden und schnell veralten können.

Kontinuierliche Rückverfolgbarkeit ermöglicht zudem frühzeitiges Feedback. Warten Sie nicht auf ein formelles Audit oder einen Release-Meilenstein, um fehlende Zusammenhänge aufzudecken. Überprüfen Sie die Abdeckung der Anforderungen während der gesamten Entwicklung.

Dies ist besonders wertvoll in dynamischen Entwicklungsumgebungen, in denen Implementierung, Anforderungsverfeinerung und Testentwicklung häufig parallel ablaufen.

Kombination von Anforderungsrückverfolgbarkeit und Codeabdeckung

Die Rückverfolgbarkeit von Anforderungen gewinnt noch mehr an Wert, wenn sie zusammen mit den im ersten Teil dieser Serie besprochenen Codeabdeckungsfunktionen analysiert wird.

Betrachten wir eine Anforderung, die mit einem bestandenen Test verknüpft ist. Aus Anforderungssicht scheint die Anforderung verifiziert zu sein. Eine Strukturabdeckungsanalyse kann jedoch zeigen, dass der zugehörige Test nicht alle relevanten Zweige oder Bedingungen in der Implementierung abdeckt.

Umgekehrt kann eine Funktion eine vollständige strukturelle Abdeckung erreichen, während die Rückverfolgbarkeitsanalyse zeigt, dass kein Test explizit mit der Anforderung verknüpft wurde, die das erwartete Verhalten der Funktion definiert.

Diese beiden Beweismittelformen helfen den Teams, die Vollständigkeit der Verifizierung aus beiden Richtungen zu untersuchen.

  • Von den Anforderungen zu den Tests → Wurde jede Anforderung überprüft?
  • Von Tests zu Anforderungen → Hat jeder Compliance-relevante Test einen definierten Zweck?
  • Von Tests zu Code → Welche Implementierungsstrukturen wurden angewendet?
  • Von unentdecktem Code zu Anforderungen → Ist das ungetestete Verhalten erforderlich, unbeabsichtigt oder unerreichbar?

Diese kombinierte Analyse unterstützt einen systematischeren Verifizierungsprozess und liefert stärkere Belege für Überprüfungen, Bewertungen und Audits.

Unterstützung der Compliance, ohne den Entwicklungsworkflow zu ersetzen

Ein wichtiger Vorteil dieses Ansatzes ist, dass die Teams GoogleTest als ihr Unit-Testing-Framework beibehalten können.

Entwickler müssen weder etablierte Testsuiten aufgeben noch ein separates, proprietäres Testdefinitionsformat einführen, nur um Rückverfolgbarkeitsberichte zu generieren. Stattdessen bietet C/C++test CT die für die Compliance-orientierte Entwicklung erforderlichen Berichts- und Integrationsfunktionen.

GoogleTest bleibt das Framework zur Definition und Ausführung von Unit-Tests. C/C++test CT verarbeitet die Ausführungsdaten und Anforderungsannotationen. Parasoft DTP integriert diese Ergebnisse mit Informationen aus dem ursprünglichen Anforderungsmanagementsystem und stellt die konsolidierte Rückverfolgbarkeitsansicht bereit.

Rückverfolgbarkeit, die mit Ihrem GoogleTest-Workflow funktioniert

Für sicherheitskritische Software sind eine erfolgreiche Testausführung und eine ausreichende strukturelle Codeabdeckung zwar notwendige, aber nicht hinreichende Nachweise. Die Teams müssen außerdem nachweisen, dass die Softwareanforderungen mit geeigneten Testfällen verknüpft und durch die aktuellen Testergebnisse belegt sind.
C/C++test CT erweitert das GoogleTest-Framework um die Funktion der Anforderungsrückverfolgbarkeitsberichterstattung.

  • Entwickler versehen GoogleTest-Testfälle mit Anforderungskennungen.
  • C/C++test CT verarbeitet den XML-Ausführungsbericht und veröffentlicht die Ergebnisse an Parasoft DTP.
  • DTP stellt eine Verbindung zum Anforderungsmanagementsystem der Organisation her, um Anforderungsinformationen mit den Ergebnissen von Komponententests zu korrelieren.

Durch die Integration der Rückverfolgbarkeit in den bestehenden GoogleTest- und CI-Workflow können Teams:

  • Überprüfungslücken frühzeitig erkennen.
  • Reduzierung des manuellen Berichtsaufwands.
  • Sorgen Sie für konsistente Nachweise bei Compliance-Prüfungen.

In Kombination mit der strukturellen Codeabdeckungsanalyse bietet dieser Ansatz eine umfassendere und skalierbarere Grundlage für den Nachweis der Vollständigkeit von Unit-Tests in sicherheitskritischen C- und C++-Projekten.

Erfahren Sie, wie Ihr Team die Verifizierungsabdeckung mit C/C++test CT, integriert mit dem einzigen TÜV-zertifizierten GoogleTest, nachweisen kann.

Demo anfordern