Parasoft-Logo

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

Parasoft-Blog

Erreichen der Codeabdeckungsziele mit TÜV-zertifiziertem GoogleTest & C/C++test CT

Porträtfoto von Miroslaw Zielinski, Direktor Produktmanagement
By Miroslaw Zielinski 9. April 2026 4 min gelesen
9. April 2026 | 4 min gelesen
By Miroslaw Zielinski
Text links: Erreichen von Codeabdeckungszielen mit TÜV-zertifiziertem GoogleTest und C/C++test. Rechts: Grafik eines Computerbildschirms mit grünen und roten horizontalen Blöcken, die C/C++-Code darstellen. Im Vordergrund befinden sich ein GoogleTest-Würfel und das TÜV SÜD-Logo.

Erfahren Sie, wie Sie mit C/C++test CT und dem TÜV SÜD-zertifizierten GoogleTest Codeabdeckungsmetriken überwachen und Abdeckungslücken für sicherheitskritische Software effizient identifizieren und beheben können.

Wichtige Erkenntnisse

  • Sicherheitsstandards wie ISO 26262, DO-178C und IEC 61508 verlangen objektive Nachweise über die Vollständigkeit der Tests durch Rückverfolgbarkeit der Anforderungen und strukturelle Codeabdeckung und fordern eine nahtlose Integration zwischen Unit-Testing-Frameworks, RMS und Abdeckungstools.
  • In realen Projekten mit unvollständigen oder sich entwickelnden Anforderungen müssen die Teams iterativ die Abdeckungslücken analysieren, fehlende Stimuli identifizieren, Testfälle entwickeln und diese Tests nutzen, um die Anforderungen zu verfeinern – ein reaktiver, aber üblicher Arbeitsablauf, den gut integrierte Tools unterstützen können.
  • Unsere Lösung umfasst TÜV SÜD-zertifiziertes GoogleTest mit Dokumentation des funktionalen Sicherheitsprozesses und integriertem Abdeckungsbericht. Sie unterstützt sowohl die lokale Ausführung als auch die Ausführung in CI-Pipelines und optimiert die MC/DC-Analyse durch die Bereitstellung vorab berechneter minimaler Testvektoren für nicht abgedeckte Zustände.
  • Ein MCP-Server stellt KI-Agenten strukturierte Abdeckungsdaten zur Verfügung, sodass Benutzer die automatische Generierung von GoogleTest-Testfällen anfordern können, die auf nicht abgedeckte Szenarien abzielen. Entwickler können diese dann anhand des Systemverhaltens und der Anforderungen überprüfen.
  • Durch die Kombination eines TÜV SÜD-zertifizierten GoogleTest-Frameworks mit fortschrittlicher Abdeckungsanalyse und KI-gestützter Testgenerierung können Teams effizient Lücken identifizieren, fehlende Tests generieren und einen skalierbaren, konformen Verifizierungsworkflow für modernes C++ aufrechterhalten.

Für Teams, die sicherheitskritische Systeme entwickeln, geht es bei der Erfüllung der Codeabdeckungsvorgaben nicht nur um das Ausführen von Tests – es bedarf eines grundlegend integrierten Workflows zwischen Ihrem Unit-Testing-Framework, der Rückverfolgbarkeit der Anforderungen und den Tools zur Codeabdeckung.

Konformitätsanforderungen für Unit-Tests in sicherheitskritischer Software

Unit-Tests sind ein grundlegendes Element von Verifizierungs- und Validierungsprozess (V&V) für eingebettete, sicherheitskritische Software. Alle wichtigen Normen für funktionale Sicherheit fordern objektive Nachweise über die Vollständigkeit der Tests auf Komponentenebene.

Diese Vollständigkeit wird typischerweise durch Berichte zur Rückverfolgbarkeit der Anforderungen und zur strukturellen Codeabdeckung nachgewiesen. Folglich wird jede Ein im Rahmen der Konformitätsprüfung verwendetes Unit-Testing-Framework Der Kontext muss sich nahtlos in das Anforderungsmanagementsystem (RMS) des Projekts und die Codeabdeckungswerkzeuge integrieren.

Ein praktischer Arbeitsablauf zum Schließen von Abdeckungslücken

Im Idealfall beginnen die Teams mit klar definierten, eindeutigen Anforderungen und einer vollständigen Testspezifikation. Die Implementierung erfolgt gemäß diesen Anforderungen, und Codeabdeckungsberichte liefern objektive Belege für die Vollständigkeit der Verifizierung auf Quellcodeebene.

Teams erreichen dieses Ideal in der Praxis selten. Oft beginnen sie die Implementierung und Testentwicklung mit unvollständigen oder sich ändernden Anforderungen.

In einigen Fällen können formale Anforderungen gänzlich fehlen – beispielsweise wenn V&V- und Sicherheitsprozesse nachträglich auf eine bestehende Codebasis angewendet werden, die ursprünglich nicht im Rahmen eines funktionalen Sicherheitsrahmens entwickelt wurde.

In solchen Situationen erfolgen Entwicklung, Anforderungsdefinition und Testerstellung parallel. Dieser Workflow zwingt die Teams dazu:

  • Analysiere iterativ die in den Codeabdeckungsberichten identifizierten Lücken.
  • Ermitteln Sie, welche Eingabereize oder Ausführungsszenarien fehlen, um unentdeckten Code auszuführen.
  • Die Anforderungen werden kontinuierlich auf Basis des beobachteten Systemverhaltens verfeinert.

Eine Abdeckungslücke kann auf toten Code, einen fehlenden Testfall oder eine unvollständige oder undefinierte Anforderung hinweisen.

In allen Fällen ist es entscheidend zu verstehen, warum eine bestimmte Codekonstruktion ungedeckt bleibt. Bei relativ einfachen Metriken wie der Zeilenabdeckung ist diese Analyse oft unkompliziert. Komplexere Kriterien wie MC/DC (modifizierte Bedingungs-/Entscheidungsabdeckung) können die Ursachenanalyse jedoch deutlich erschweren.

Dies ist zwar alles andere als der ideale Arbeitsablauf, in der Praxis beginnt der Prozess jedoch oft mit der Identifizierung einer Abdeckungslücke, gefolgt von der Analyse der fehlenden Reize, die erforderlich sind, um den nicht abgedeckten Code auszuführen.

Auf Grundlage dieser Analyse erstellen die Entwickler einen Testfall, um das bisher ungetestete Verhalten abzudecken.

Der so entstandene Testfall bildet die Grundlage für ein besseres Systemverständnis und dient als Leitfaden für nachfolgende Verfeinerungen und Anforderungsdefinitionen.

Gut integrierte Unit-Testing-Tools können diesen Prozess unterstützen, indem sie Details über Abdeckungsmängel liefern und in einigen Fällen bei der Generierung der ersten Testfälle helfen, um die oben beschriebenen Anforderungsverfeinerungen voranzutreiben.

Wie C/C++test CT die Analyse von Abdeckungslücken vereinfacht

Parasoft C/C++Test CT Bietet eine TÜV-zertifizierte Distribution von GoogleTest mit integrierter Codeabdeckungsanalyse, was die Analyse von Abdeckungslücken deutlich vereinfacht. Zudem beinhaltet es KI-basierte Funktionen zur automatisierten Testfallgenerierung.

Teams können ihre GoogleTest-Testsuiten ausführen und die Codeabdeckung sowohl lokal als auch innerhalb von CI-Pipelines mit C/C++test CT erfassen.

Viele Teams schätzen die Möglichkeit, vor dem Commit von Änderungen eine ausgewählte Teilmenge der GoogleTest-Testfälle lokal auszuführen und anschließend die vollständige Testsuite in der CI-Pipeline zu nutzen. Die Ergebnisse der Testabdeckung können dann direkt aus der CI-Pipeline abgerufen und in der IDE analysiert werden, was einen effizienten Feedback-Loop ermöglicht. Für Teams, die Visual Studio Code verwenden, bietet C/C++test CT optimierte Unterstützung für diesen Workflow.

Grafik, die den Ablauf von Pull Requests für die Ausführung von GoogleTest-Unit-Tests und die Codeabdeckungsergebnisse für die Berichterstattung darstellt.

Sobald die Abdeckungsberichte vorliegen, folgt die Lückenanalyse. C/C++test CT vereinfacht diesen Prozess, insbesondere bei anspruchsvolleren Abdeckungskriterien wie MC/DC.

Der folgende Screenshot veranschaulicht ein Beispiel für die MC/DC-Abdeckungsergebnisse für eine bestimmte Entscheidung innerhalb einer Funktion.

Screenshot von Parasoft C/C++test CT, der ein Beispiel für MC/DC-Abdeckungsergebnisse für eine bestimmte Entscheidung innerhalb einer Funktion zeigt.

Ein Beispiel für MC/DC-Abdeckungsergebnisse für eine spezifische Entscheidung innerhalb einer Funktion in Parasoft C/C++test CT.

Wie dargestellt, liefern die Ergebnisse eine detaillierte Aufschlüsselung der abgedeckten und nicht abgedeckten Bedingungen innerhalb der Entscheidung sowie eine Tabelle mit dem vorab berechneten minimalen Satz von Testvektoren, der für eine vollständige 100%ige Abdeckung erforderlich ist. Dieser minimale Satz ist besonders wertvoll, da er Entwickler auf die spezifischen Bedingungskombinationen hinweist, die zur Erfüllung der MC/DC-Anforderungen geprüft werden müssen.

Erstellen und Generieren fehlender GoogleTest-Testfälle

Sobald die Lücken in der Codeabdeckung identifiziert sind, werden üblicherweise ein oder mehrere Testfälle entwickelt, die den nicht abgedeckten Code testen. So können die Teams beurteilen, ob Aktualisierungen oder Anpassungen der Anforderungen notwendig sind. Wie bereits erwähnt, handelt es sich dabei zwar um einen reaktiven Arbeitsablauf, er ist aber in vielen Projekten gängige Praxis.

Diese Testfälle können manuell auf Basis der von C/C++test CT bereitgestellten Abdeckungsanalysen erstellt oder automatisch mithilfe der verfügbaren Tool-Unterstützung generiert werden.

C/C++test CT beinhaltet einen MCP-Server, der KI-Agenten strukturierte Abdeckungsdaten zur Verfügung stellt. Für fortgeschrittene Metriken wie MC/DC enthalten diese Daten detaillierte Informationen über fehlende Testvektoren, die erforderlich sind, um alle Bedingungen innerhalb einer gegebenen Entscheidung vollständig abzudecken.

Mit dem MCP-Server von C/C++test CT können Benutzer unter anderem den KI-Agenten bitten: „Generiere GoogleTest-Testfälle, um Abdeckungslücken in der Datei <> zu schließen.“

Die untenstehende Grafik zeigt eine vereinfachte Darstellung des Datenflusses zwischen der Coverage-Engine, dem MCP-Server und dem KI-Agenten.

Grafik, die den Datenfluss zwischen einer Coverage-Engine, einem MCP-Server und einem KI-Agenten zeigt, mit einem Screenshot von C/C++test CT im Hintergrund.

Vereinfachter Datenfluss zwischen Coverage-Engine, MCP-Server und KI-Agent

Mithilfe dieser strukturierten Eingabe können KI-Agenten automatisch GoogleTest-Testfälle für bisher nicht abgedeckte Szenarien generieren. Dies trägt zu einer verbesserten Testabdeckung bei und reduziert gleichzeitig den Entwicklungsaufwand. Entwickler können die generierten Tests anschließend überprüfen und deren Relevanz hinsichtlich des Systemverhaltens sowie bestehender oder noch zu definierender Anforderungen bewerten.

Fazit

Durch die Kombination eines TÜV-zertifizierten GoogleTest-Frameworks mit fortschrittlicher Abdeckungsanalyse und KI-gestützter Testgenerierung optimiert C/C++test CT den Weg zu vollständiger Codeabdeckung und Compliance. Es ermöglicht Teams, die mit modernem C++ entwickeln, Testlücken zu identifizieren, fehlende Tests zu generieren und einen effizienten, skalierbaren Verifizierungs-Workflow aufrechtzuerhalten.

Erfahren Sie, wie Ihr Team seine Ziele hinsichtlich der Codeabdeckung mit C/C++test CT erreichen kann, das in den einzigen TÜV-zertifizierten GoogleTest integriert ist.

Demo anfordern