Gehen Sie einen schnelleren, intelligenteren Weg zur KI-gestützten C/C++-Testautomatisierung. Erfahren Sie mehr >>
Die Wahl des richtigen Unit-Testing-Frameworks für sicherheitskritische Software und Compliance: Ist GoogleTest eine Option?
Wir untersuchen, wie man ein Unit-Testing-Framework für regulierte Branchen auswählt und GoogleTest in diesem Kontext bewertet. Wir zeigen, wie die geplante TÜV SÜD-zertifizierte Edition von GoogleTest (verfügbar ab Januar 2026) die bestehenden Lücken schließen und so die Zertifizierung vereinfachen und die Compliance-Kosten senken wird.
Wir untersuchen, wie man ein Unit-Testing-Framework für regulierte Branchen auswählt und GoogleTest in diesem Kontext bewertet. Wir zeigen, wie die geplante TÜV SÜD-zertifizierte Edition von GoogleTest (verfügbar ab Januar 2026) die bestehenden Lücken schließen und so die Zertifizierung vereinfachen und die Compliance-Kosten senken wird.
Die Wahl des richtigen Unit-Testing-Frameworks ist für Teams, die sicherheitskritische C- und C++-Software entwickeln, von entscheidender Bedeutung. Standards wie ISO 26262, DO-178C und IEC 61508 fordern die Rückverfolgbarkeit von Anforderungen, die strukturelle Codeabdeckung und die Qualifizierung der Testwerkzeuge, um die Konformität sicherzustellen.
Traditionell setzten Organisationen auf proprietäre Frameworks, die speziell für diese Anforderungen entwickelt wurden. Heute nutzen viele Teams Open-Source-Lösungen wie GoogleTest aus verschiedenen Gründen, die letztendlich die Schulungskosten senken und die Einführung beschleunigen:
Dennoch fehlen GoogleTest allein wesentliche Funktionen zur Einhaltung von Vorschriften. Um sicherheitskritische Anforderungen zu erfüllen, müssen Funktionalität und Dokumentation erweitert werden.
Die Wahl eines Frameworks für Unit-Tests bei sicherheitskritischen Entwicklungsprojekten erfordert ein ausgewogenes Verhältnis zwischen Compliance, Produktivität und Kosten.
Open-Source-Tools sind zwar kostengünstig, bieten aber keinen zertifizierten Support und keine Qualifizierungskits, was in regulierten Umgebungen Risiken birgt. Stellen Sie sich vor, Sie stehen kurz vor der Veröffentlichung Ihres Produkts vor einem Problem mit einem Tool und haben keinen Anbieter, der Ihnen helfen kann.
Proprietäre Frameworks bieten hingegen Compliance-Funktionen und werden mit Herstellersupport geliefert. Allerdings können sie Entwickler durch starre Formate und Konventionen ausbremsen.
Manche kommerzielle Tools zwingen die Benutzer dazu, Tests mit grafischen Oberflächen zu erstellen, was Entwickler wirklich hassen.
Um die richtige Entscheidung zu treffen, müssen Teams die Einhaltung von Vorschriften, die einfache Erstellung von Tests, den Integrationsaufwand und die langfristige Wartbarkeit gegeneinander abwägen. Die folgenden Kriterien verdeutlichen, was bei der Auswahl eines Frameworks zu berücksichtigen ist.
Grab tiefer:
Normen wie ISO 26262 fordern von Unit-Testing-Tools mehr als nur die Durchführung von Tests. Sie müssen Nachweise, Rückverfolgbarkeit und Abdeckungsdaten liefern, die belegen, dass das System die Sicherheitsziele erfüllt.
Ein konformes Unit-Testing-Framework muss Folgendes unterstützen:
Typische Open-Source-Unit-Testing-Frameworks wie GoogleTest bieten die oben genannten Funktionalitäten nicht, mit Ausnahme von Fault-Injection-Tests, die mithilfe von Mocking-Frameworks implementiert werden können.
Codeabdeckung, Rückverfolgbarkeitsberichte und ähnliche Funktionen müssen mit externen Tools hinzugefügt werden.
Die Werkzeugqualifizierung ist ein weiteres wichtiges Thema. Alle Sicherheitsstandards fordern eine Werkzeugqualifizierung. Wenn man diese für ein Open-Source-Werkzeug selbst durchführen muss, ist das ein zeitaufwändiger Prozess.
Viele kommerzielle Tools sind bereits vorzertifiziert, was den Qualifizierungsaufwand vereinfacht. Vergewissern Sie sich, dass Sie einen umfassenden Überblick über die von den Kandidaten-Frameworks angebotene Qualifizierungsunterstützung haben.
In sicherheitskritischen Projekten muss sich das Unit-Testing-Framework nahtlos in moderne Build-Systeme und CI/CD-Pipelines integrieren lassen. Komplexe C++-Projekte setzen häufig auf verteilte Builds mit Tools wie Bazel. Ein Framework, das sich optimal in diese Umgebungen einfügt, reduziert den Wartungsaufwand und beschleunigt die Feedbackzyklen.
Open-Source-Frameworks wie GoogleTest sind in diesem Bereich besonders leistungsstark. Sie verwenden einen schlanken, codezentrierten Ansatz, der proprietäre Formate vermeidet und sich dadurch leichter in bestehende Build- und CI-Automatisierungs-Workflows integrieren lässt.
Diese Flexibilität ist einer der Gründe, warum GoogleTest zum De-facto-Standard bei der Entwicklung großer C++-Projekte, einschließlich ADAS- und autonomer Fahrprojekte, geworden ist.
Erkunden Sie weiter: Ein praktischer Leitfaden zur KI in sicherheitskritischen eingebetteten Systemen »
Viele proprietäre/kommerzielle Frameworks lassen sich nur schwer in komplexe Systeme integrieren. Sie speichern Testressourcen und Konfigurationen in verschiedenen Dateien und erzwingen oft ihre eigene Vorgehensweise beim Erstellen der Test-Binärdatei. Wenn Sie also ein Framework für ein großes und komplexes Projekt auswählen, sollten Sie unbedingt die Kosten für die Build- und CI-Pipeline-Integration berücksichtigen.
Die Schulungskosten sind ein entscheidender Faktor bei der Auswahl eines Unit-Testing-Frameworks. Proprietäre Lösungen erfordern oft, dass Teams herstellerspezifische APIs oder Formate erlernen, was die Einführung verlangsamen und die Onboarding-Kosten erhöhen kann. Dies ist besonders wichtig, wenn das Framework für ein großes Unternehmen ausgewählt wird.
GoogleTest hingegen nutzt Standard-C++-Konstrukte. Da diese vielen Entwicklern bereits vertraut sind, insbesondere in Organisationen mit großen C++-Teams, bietet die Verwendung von GoogleTest folgende Vorteile:
Dadurch entsteht ein erheblicher Vorteil bei kommerziellen Projekten, bei denen Produktivität und Kosteneffizienz streng überwacht werden.
Die langfristigen Kosten von Unit-Tests werden oft weniger durch Tool-Lizenzen als vielmehr durch den Aufwand für die Erstellung und Pflege von Testfällen bestimmt.
Grab tiefer: Entdecken Sie die besten Methoden für Unit-Tests »
Proprietäre Frameworks bieten zwar die Möglichkeit zur automatisierten Testgenerierung, ihre starren, datengetriebenen APIs können das Schreiben und Aktualisieren von Tests für moderne C++-Codebasen jedoch erschweren.
Im Gegensatz dazu verwendet GoogleTest eine übersichtliche, native C++-API, die es vereinfacht, komplexe Testszenarien auszudrücken und langfristig zu pflegen. Dies reduziert den Aufwand und hilft Teams, mit der Weiterentwicklung der Codebasis Schritt zu halten – ein entscheidender Faktor in sicherheitskritischen Projekten, in denen sich Tests parallel zu Anforderungen und Designänderungen weiterentwickeln müssen.
Für Teams mit einer großen Anzahl bestehender Unit-Tests können die Migrationskosten beim Wechsel des Frameworks erheblich sein. Proprietäre Tools verwenden häufig herstellerspezifische Formate oder Skriptsprachen, was die Wiederverwendung bestehender Testfälle erschwert und verteuert.
Wenn Sie bereits eine beträchtliche Anzahl von GoogleTest-Fällen in Ihrem Projekt haben, kann dies ein wichtiger Entscheidungsfaktor sein. Die Anpassung von GoogleTest an die Anforderungen von Sicherheitsstandards kann kostengünstiger sein als die Einführung eines neuen proprietären Frameworks und die Migration aller bestehenden GoogleTests auf das neue Framework.
Wenn Sie bereits Testfälle haben, die mit einem proprietären/kommerziellen Framework erstellt wurden, und einen Wechsel der Tools in Betracht ziehen, kann die Migration der Tests auf ein Framework, das reines C/C++ als Format verwendet, wie beispielsweise GoogleTest, deutlich günstiger sein als die Migration der Tests zwischen zwei verschiedenen proprietären Frameworks.
Entdecken Sie unsere Erfolgsgeschichten: Erfahren Sie, wie Renovo 100 % AUTOSAR C++ 14- und 100 % CERT-Konformität erreicht hat »
Die folgende Tabelle fasst die obigen Überlegungen zusammen und vergleicht GoogleTest mit einem typischen kommerziellen/proprietären Unit-Testing-Framework.
| Kriterium | GoogleTest | Typischer Geschäftsrahmen |
|---|---|---|
| Anforderungsbasiertes Testen und Rückverfolgbarkeitsberichterstattung | Nicht unterstützt, externe Tools erforderlich | Vollständig unterstützt, inklusive Rückverfolgbarkeitsberichten |
| Unterstützung der Codeabdeckung | Nicht enthalten, externe Tools erforderlich | Für den sicheren Gebrauch entwickelt und zertifiziert |
| Fehlerinjektionstests | Möglich über GoogleMock | Vollständig unterstützt und integriert |
| Werkzeugqualifizierung / Zertifizierung | Nicht verfügbar | In der Regel wird eine Zertifizierung mitgeliefert. |
| Integration mit Build-Systemen und CI/CD-Pipelines | Einfach und gut unterstützt | Deutlich komplexer und zeitaufwändiger |
| Kosten für die Erstellung und Pflege von Testfällen | Niedrig | Höher, insbesondere bei komplexem oder templateintensivem C++-Code. |
| Automatische Generierung von Testfällen | Nicht verfügbar | Typischerweise wird dies durch die Generierung grundlegender Eingabe-/Ausgabekombinationen unterstützt. |
| Kosten und Aufwand für die Migration bestehender Tests | Niedrig | Hoch |
Auf den ersten Blick scheint der Vergleich zugunsten kommerzieller, proprietärer Frameworks auszusehen – insbesondere aufgrund ihrer umfassenden Unterstützung sicherheitskritischer Anforderungen. Tatsächlich bieten diese Tools für C-Projekte und kleinere, weniger komplexe C++-Systeme oft eine sofort einsatzbereite, vollständige und konforme Lösung.
Bei großen und komplexen C++-Projekten sieht die Situation jedoch ganz anders aus.
Die Herausforderungen bei der Integration aktuell verfügbarer kommerzieller Frameworks in moderne Build-Systeme, deren Automatisierung in CI/CD-Pipelines und die Bewältigung der höheren Kosten der Testentwicklung können deren Vorteile schnell überwiegen.
In vielen dieser Fälle ist es praktischer, GoogleTest um die fehlenden Funktionen zu erweitern und die Werkzeugqualifizierung nach Bedarf durchzuführen, anstatt den laufenden Aufwand eines proprietären Frameworks mit nicht optimalen Testformaten und begrenzter Entwicklerflexibilität zu tragen.
Dieser Ansatz ist mit dem Aufkommen von … noch praktikabler geworden. Parasoft C/C++Test CT, ein Produkt, das GoogleTest durch Hinzufügen fehlender Funktionen und Vereinfachung des Werkzeugqualifizierungsprozesses für Sicherheitsstandards erweitern soll.
C/C++test CT erweitert die Funktionalitäten von GoogleTest und macht es zu einer vollständigen, sicherheitsbereiten Testlösung für die moderne C++-Entwicklung mit folgenden Merkmalen:
Mit der Version 2025.2 wird C/C++test CT mit einer zertifizierten Edition von GoogleTest ausgeliefert. Die gesamte Toolchain – einschließlich GoogleTest selbst – ist TÜV-zertifiziert für den Einsatz in sicherheitskritischen Entwicklungsumgebungen gemäß ISO 26262, IEC 61508, IEC 62304 und IEC 50716.
Diese Zertifizierung macht eine separate Werkzeugqualifizierung überflüssig, vereinfacht die Einhaltung der Vorschriften erheblich und reduziert den Verwaltungsaufwand.
Die nachstehende Tabelle veranschaulicht, wie C/C++test CT mit GoogleTest eine vollständige und moderne Alternative zu herkömmlichen kommerziellen Frameworks für sicherheitskritische C++-Software bietet.
| Kriterium | GoogleTest mit C/C++test CT | Typischer Geschäftsrahmen |
|---|---|---|
| Anforderungsbasiertes Testen und Rückverfolgbarkeitsberichterstattung | Vollständige Unterstützung, einschließlich Rückverfolgbarkeitsberichten und Weitergabe von Testergebnissen an RMS | Vollständig unterstützt, inklusive Rückverfolgbarkeitsberichten |
| Unterstützung der Codeabdeckung | Voll unterstützt | Eingebaut und für den sicheren Gebrauch zertifiziert |
| Fehlerinjektionstests | Möglich über GoogleMock | Vollständig unterstützt und integriert |
| Werkzeugqualifizierung / Zertifizierung | Mit TÜV-Zertifizierung | In der Regel wird eine Zertifizierung mitgeliefert. |
| Integration mit Build-Systemen und CI/CD-Pipelines | Einfach und gut unterstützt | Deutlich komplexer und zeitaufwändiger |
| Kosten für die Erstellung und Pflege von Testfällen | Niedrig | Höher, insbesondere bei komplexem oder templateintensivem C++-Code. |
| Automatische Generierung von Testfällen | KI-gestützte Schließung von Versorgungslücken | Typischerweise wird dies durch die Generierung grundlegender Eingabe-/Ausgabekombinationen unterstützt. |
| Kosten und Aufwand für die Migration bestehender Tests | Niedrig | Hoch |
Für Teams, die moderne, umfangreiche C++-Anwendungen entwickeln, bietet C/C++test CT mit GoogleTest die ideale Balance zwischen Entwicklerproduktivität, Sicherheitskonformität und einfacher Toolchain. Es schließt die Lücke zwischen der Flexibilität von Open-Source-Frameworks und der Strenge zertifizierter kommerzieller Lösungen – und bietet so einen Weg, der sowohl technisch optimal als auch praktisch effizient ist.
Kurz gesagt: Mit C/C++test CT müssen Sie sich nicht mehr zwischen Entwickleragilität und Sicherheitskonformität entscheiden. Sie erhalten beides.
Beschleunigen Sie Ihre sicherheitskritischen C/C++-Tests noch heute mit einem integrierten, zertifizierten GoogleTest-Unit-Testing-Framework!