Sicherheitskritische Systeme

Kann man GoogleTest vertrauen?

2. Juni 2026, 14:08 Uhr | Autor: Ricardo Camacho, Redaktion: Irina Hübner
Zertifiziertes GoogleTest sorgt für kontinuierliche Zuverlässigkeit.
© Parasoft

GoogleTest hat sich branchenübergreifend zum Standard-Framework für Unit-Tests in den Sprachen C und C++ entwickelt. Es ist einfach zu handhaben, flexibel und funktioniert selbst in komplexen Embedded-Umgebungen zuverlässig. Bei der Entwicklung sicherheitskritischer Systeme gibt es jedoch Hürden.

Diesen Artikel anhören

Die eigentliche Frage ist nicht, ob ­Entwicklerteams GoogleTest verwenden. Entscheidend ist, ob die Entwickler dem Test-Framework auf dem Niveau vertrauen können, das für die Zertifizierung, die Auditierung sowie die Gewährleistung ­missionskritischer Sicherheit erforderlich ist. Denn in regulierten Umgebungen reicht es zum Erreichen des Ziels nicht einfach nur aus, die Tests zu bestehen. Vielmehr kommt es darauf an, nachweisen zu können, dass der Testprozess voll­ständig, nachvollziehbar und zuverlässig ist.

Was bedeutet Vertrauen bei sicherheitskritischer Software?

In den meisten Softwareprojekten basiert Vertrauen auf informellen Vereinbarungen. Wenn Tests bestanden werden und sich das System wie erwartet verhält, arbeiten die Teams zuversichtlich weiter. Bei sicherheitskritischen Systemen reicht das jedoch nicht aus. Vertrauen muss aktiv aufgebaut werden. Es muss durch Nachweise demonstriert werden, die einer genauen Prüfung durch Auditoren, Gutachter und Zertifizierungsstellen standhalten. Das bedeutet, nicht nur zu zeigen, dass Tests durchgeführt wurden, sondern auch, dass diese ausreichend waren, korrekt auf die Anforderungen abgestimmt und in der Lage, Fehler zu erkennen.

Im Rahmen von »C/C++test CT« bietet Parasoft eine vom TÜV Süd zertifizierte Version von GoogleTest an, die es erlaubt, das Framework in sicherheitskritischen Entwicklungsabläufen einzusetzen.

Im Rahmen von »C/C++test CT« bietet Parasoft eine vom TÜV Süd zertifizierte Version von GoogleTest an, die es erlaubt, das Framework in sicherheitskritischen Entwicklungsabläufen einzusetzen.

© Parasoft

An dieser Stelle stoßen viele Teams an die Grenzen von Open-Source-Testframeworks. GoogleTest eignet sich hervorragend zur Durchführung von Tests und bietet eine leistungsstarke und aussagekräftige Möglichkeit zur Validierung der Funktionalität. Doch die bloße Ausführung beantwortet keine tiefergehenden Fragen der Verifizierung. Es zeigt nicht, ob alle kritischen Pfade geprüft wurden, ob jede Anforderung verifiziert werden konnte oder ob die Ergebnisse in einer für die Konformität geeigneten Form darstellbar sind. Ohne diese Nachweise lässt sich nur schwer Vertrauen begründen, selbst wenn die zugrunde liegenden Tests fundiert sind.

Kluft zwischen Testen und Verifizierung

In der sicherheitskritischen Entwicklung gibt es einen subtilen, aber wichtigen Unterschied: Während Unit-Tests eine Tätigkeit darstellen, sind Verifizierungen eine Sammlung von Nachweisen. Viele Teams gehen fälschlicherweise davon aus, dass sie die Verifizierungsziele bereits erfüllen, nur weil sie Unit-Tests durchführen. In Wirklichkeit sind Unit-Tests jedoch nur ein Teil eines viel größeren Ganzen. Verifizierung erfordert Struktur. Sie verlangt eine Rückverfolgbarkeit zwischen Anforderungen und Tests. Sie benötigt Einblick in die Code­abdeckung, um Vollständigkeit zu gewährleisten. Und sie bedarf einer Dokumentation, die überprüft, auditiert und genehmigt werden kann.

Fehlen diese Elemente, kompensieren Teams dies oft, indem sie eigene Prozesse rund um GoogleTest aufbauen. Sie exportieren Ergebnisse, schreiben Skripte, verknüpfen Tests manuell mit Anforderungen und erstellen Berichte für Audits. Dieser Ansatz kann funktionieren, bringt jedoch Ineffizienzen und Risiken mit sich. Manuelle Prozesse sind nur schwer skalierbar und wartungsintensiv. Zudem sind sie anfällig für Inkonsistenzen. Noch wichtiger ist, dass sie es erschweren, die Frage zu beantworten, die jeder Prüfer letztendlich stellt: »Woher wissen Sie, dass diese Anforderung vollständig verifiziert wurde?«

Um dieser Herausforderung zu begegnen, überdenken Unternehmen die ­Nutzung von GoogleTest in sicherheitskritischen Arbeitsabläufen. Anstatt GoogleTest als eigenständiges Framework zu behandeln, wird es in ein umfassenderes Verifizierungs-Ökosystem integriert, das die fehlenden Ebenen an Einblicken und Nachweisen ergänzt.

Testautomatisierung mit »C/C++test CT«: Frühzeitiges und regelmäßiges Testen sowie Vertrauen in die Ergebnisse sind der Schlüssel zum Erfolg.

Testautomatisierung mit »C/C++test CT«: Frühzeitiges und regelmäßiges Testen sowie Vertrauen in die Ergebnisse sind der Schlüssel zum Erfolg.

© Parasoft

Durch die Erweiterung von GoogleTest um eine automatisierte Codeabdeckungsanalyse erhalten Teams beispielsweise Einblick darin, wie gründlich ihre Tests den Code abdecken. Durch die Etablierung der Anforderungsverfolgbarkeit können sie Tests direkt mit der Systemabsicht verknüpfen und so sicherstellen, dass jede Anforderung validiert wird. Und durch die Erstellung strukturierter, konformitätsgerechter Berichte können sie ihre Verifizierungsergebnisse in einer Form präsentieren, die den regulatorischen Erwartungen entspricht.

Bemerkenswert ist, dass in der Branche zunehmend zertifizierte Implementierungen weit verbreiteter Open-Source-Frameworks aufkommen. So bietet Parasoft im Rahmen seiner Lösung »C/C++test CT« etwa eine vom TÜV Süd zertifizierte Version von GoogleTest an, die es ermöglicht, das Framework in sicherheitskritischen Entwicklungsabläufen einzusetzen, die auf regulierte Branchen wie die Automobilindustrie, die industrielle Automatisierung, den Schienenverkehr und Medizinprodukte ausgerichtet sind. Dieser Ansatz verringert den Aufwand für den Nachweis der Zuverlässigkeit von Werkzeugen und ermöglicht es den Teams, sich stärker auf die Verifizierungsergebnisse zu konzentrieren. Die Transformation ändert nichts daran, wie Entwickler Tests schreiben, doch sie verändert die Bedeutung der Tests. Es handelt sich nicht mehr nur um einfache Funktionsprüfungen, sondern sie entwickeln sich zu messbaren, überprüfbaren Nachweisen im Verifizierungsprozess.

Warum findet dieser Wandel gerade jetzt statt?

Zwei sich verstärkende Faktoren treiben die Notwendigkeit dieser Entwicklung voran. Einerseits werden Embedded-Systeme immer komplexer. Software spielt eine immer größere Rolle bei der Bestimmung des Systemverhaltens. Dadurch nehmen sowohl die Bedeutung als auch die Genauigkeit von Verifikationsmaßnahmen zu. Standards entwickeln sich weiter, die Erwartungen steigen und die Kosten eines Ausfalls bleiben sehr hoch. Andererseits beschleunigen sich die Entwicklungspraktiken. Unternehmen führen CI/CD-Pipelines ein, steigern den Automatisierungsgrad und drängen auf schnellere Produktveröffentlichungen. Open-Source-Tools wie GoogleTest spielen bei diesem Wandel eine zentrale Rolle, da sie Geschwindigkeit, Flexibilität und eine hohe Entwicklerproduktivität ermöglichen. Die Herausforderung besteht darin, beide Realitäten in Einklang zu bringen und sowohl schneller voranzukommen als auch mehr nachzuweisen. GoogleTest erfüllt das Bedürfnis nach Geschwindigkeit. Ohne zusätzliche Funktionen hinterlässt es jedoch eine Lücke bei der Fähigkeit, Vollständigkeit und Konformität nachzuweisen.

Sinnvoller Weg in die Zukunft

Auf Open-Source-Tools zu verzichten, ist nicht die Lösung. Das würde vielmehr bedeuten, viele Vorteile zu verlieren, auf die moderne Entwicklungsteams angewiesen sind. Der richtige Weg ist es, diese Tools weiterzuentwickeln. Durch die Kombination von GoogleTest mit Tools, die Abdeckungsanalyse, Rückverfolgbarkeit und Berichterstellung bieten, können Unternehmen die Arbeitsabläufe beibehalten, die von ihren Entwicklern geschätzt werden, und gleichzeitig die Anforderungen an die sicherheitskritische Entwicklung erfüllen.

In einigen Fällen wird dieser Ansatz durch den Einsatz zertifizierter Toolchains, in denen GoogleTest als Teil einer umfassenderen Compliance-Lösung integriert und validiert ist, weiter gestärkt. Durch diesen Ansatz können Teams ihre Verifizierungsprozesse standardisieren, den manuellen Aufwand reduzieren und die Konsistenz projektübergreifend verbessern. Zudem sorgt er für einen besseren Überblick über den Testfortschritt, sodass Lücken sich frühzeitig erkennen und beheben lassen, bevor sie zu Audit-Befunden werden. Vor allem aber lässt sich das Testen auf diese Weise sowohl intern als auch gegenüber externen Prüfern selbstbewusst verteidigen.

Vertrauen muss bewiesen werden

GoogleTest hat sich bereits als grundlegendes Werkzeug in der Entwicklung von Embedded-Software etabliert. Seine weitverbreitete Nutzung zeugt von seiner Effektivität und Zuverlässigkeit auf Entwicklerebene. In sicherheitskritischen Systemen muss das ­Vertrauen jedoch auch über das Entwicklungsteam hinaus bestehen. Es muss sichtbar, messbar und nachweisbar sein.

Wenn GoogleTest in einem strukturierten Verifizierungs-Framework zum Einsatz kommt, das Einblicke in die Testabdeckung, Rückverfolgbarkeit und Compliance-Berichterstattung erlaubt, entwickelt es sich von einem Testwerkzeug zu einer wertvollen Ressource für die Verifizierung. Die Bereitstellung dieses Frameworks als Teil einer zertifizierten Lösung stärkt das Vertrauen zusätzlich, da sie den Erwartungen regulierter Branchen gerecht wird. Dieser Wandel verändert alles. Das Testen wird zu mehr als nur einem Kontrollpunkt. Die Verifizierung wird zu mehr als nur einer Formalität. Und Vertrauen wird zu etwas, das man mit voller Überzeugung demonstrieren kann.

Für viele Unternehmen stellt sich nicht mehr die Frage, ob sie GoogleTest einsetzen sollen, sondern wie sie es effektiv in Umgebungen nutzen können, in denen strenge Verifizierungsanforderungen und Konformitätserwartungen nicht verhandelbar sind. Diese Lücke zu schließen, verlangt mehr, als nur Tools hinzuzufügen. ­Benötigt wird ein ganzheitlicher Ansatz, der das Testen in einen strukturierten, evidenzbasierten Prozess verwandelt, ohne die Arbeitsabläufe zu stören, auf die sich Ent­wickler verlassen.

Das Ergebnis ist eine umfassendere Teststrategie, die die Produktivität der Entwickler mit der Integrität der Verifizierung in Einklang bringt. Denn beim Erfolg sicherheitskritischer Software geht es nicht nur darum, Tests zu schreiben. Vielmehr geht es darum, mit voller Überzeugung nachweisen zu können, dass die Software einsatz­bereit ist.

Der Autor

Ricardo Camacho
ist Director of Product Strategy, Embedded & Safety Compliance bei Parasoft.

Anbieter zum Thema

zu Matchmaker+

Lesen Sie mehr zum Thema