Die Kosten für Safety-kritische Großprojekte steigen Jahr für Jahr, wobei gerade die Softwareentwicklung einen zunehmenden Anteil des Budgets aufwendet. Notwendigen Tests und Qualitätsprüfungen bilden hier einen der größten Kostenpunkte. Shift-Left-Tests unter Verwendung von Automatisierung können hier Kosten, Risiken und Zeitplan senken.
Bei der „shift-left“-Bewegung geht es darum, kritische Testverfahren an einen früheren Punkt im Entwicklungszyklus zu verlagern. Dieser Begriff findet sich vor allem in Agile-, Continuous- und DevOps-Initiativen. Der frühzeitige Einsatz automatisierter Tests erlaubt eine entsprechend rasche, weniger arbeitsaufwändige Fehlerbehebung.
(Bild: Pixabay)
Es ist nicht überraschend, dass die meisten Fehler gleich zu Beginn eines Projekts entstehen. Entdeckt und behoben werden die meisten Fehler während der Testphase. Aber bis zu 20% werden erst während des Betriebs, nach dem Verkauf und Auslieferung des Produkts, gefunden (vgl. Bild 2). Für zertifizierte Systeme bedeutet dies entweder einen extrem teuren Zyklus aus Fehlerbehebung, Test und erneuter Zertifizierung oder provisorische Lösungen des Problems durch den Betreiber.
Werden Fehler in der Software frühzeitig behoben, ist das am kostengünstigsten. Mit zunehmender Projektdauer steigen die Kosten für Fehlererkennung und -beseitigung exponentiell an. Während des Betriebs, nach der Auslieferung des Produkts an den Kunden, sind die Kosten am höchsten – ohne Berücksichtigung von Schäden an der eigenen Marke oder der Haftung für Sicherheitsvorfälle vor Ort. Hier bietet „Shift Left“ bzw. das Vorverlegen der erkannten und behobenen Mängel in eine frühere Phase des Lebenszyklus Abhilfe.
Jedes sicherheitskritische Projekt besteht zu einem großen Teil aus Tests. Um die Sicherheits- und Qualitätsziele zu erreichen ist eine Automatisierung unbedingt notwendig. Nachfolgende Beispiele zeigen, wie die Automatisierung von Testtools moderne Softwareentwicklungsmethoden unterstützt und die Test- und Dokumentationsproduktivität erhöht.
Support für Agile und CI/CD-Pipelines
Ein wichtiger Bestandteil jeder iterativen Entwicklungsmethode ist die Testautomatisierung, weil Testsuiten bei jeder neuen Iteration eines Moduls, einer Komponente usw. ausgeführt werden. Testautomatisierung unterstützt diese Methoden mit wiederholbaren automatisierten Tests und liefert für jeden Test Berichte auf verschiedenen Ebenen und kumulative Ergebnisse über einen bestimmten Zeitraum.
Diese Werkzeuge sind auch für die Zusammenarbeit mit CI-Prozessen konzipiert, indem sie in die Nachverfolgung von Arbeitselementen, das Anforderungsmanagement, Build-Systeme und Source-Repository-Dienste integriert werden. Dynamische Analysetools sind von entscheidender Bedeutung, um schwer erkennbare Laufzeitfehler aufzudecken. Die statische Analyse spielt eine wichtige Rolle bei der Erkennung von Fehlern vor Beginn der Tests.
Support für Software-Inspektionen
Inspektionen sind eine der bewährtesten Methoden, um Fehler in einem frühen Stadium des Entwicklungslebenszyklus zu beheben, da nicht nur der Quellcode sondern alles geprüft wird. Viele Fehler sind buchstäblich in das System eingebaut. Werkzeuge spielen in dieser Phase eine weniger wichtige Rolle, erhöhen aber die Effektivität von Code-Reviews.
Automatisierte Komponententests, dynamische Fehlererkennung und statische Analyse verbessern die Fehlererkennung in den frühen Programmierphasen eines Projekts enorm. Die Ergebnisse automatisierter Tests können in Code-Reviews präsentiert werden, was die Abhängigkeit von manueller Fehlererkennung verringert und mehr Zeit zum Aufdecken fehlerhafter Anforderungen und Designentscheidungen lässt.
Höhere Testproduktivität
Manuelle Tests sind mühselig und lassen sich nicht auf einfache Weise wiederholen. Die Ergebnisse lassen sich ad hoc erfassen, aber trotz „richtiger“ Ergebnisse kann ein Fehler übersehen werden. Die notwendige Code-Abdeckung, die je nach Sicherheitsstandards und Kritikalität des Projekts variiert, ist schwer zu verfolgen.
Durch Testautomatisierung wird das Testen nicht nur wesentlich einfacher und wiederholbarer, sondern die Berichtsfunktionen fortschrittlicher Testtools liefern auch wichtige Managementinformationen über den Status des Projekts. Das Hinzufügen einer dynamischen Analyse, bei der der Code während der Ausführung analysiert wird, um schwierige Laufzeitfehler zu erkennen, und einer statischen Analyse, bei der der Code vor der Ausführung analysiert wird, kann die Fehlererkennungsfähigkeit von Testtools erheblich verbessern.
Automatisierung der Konformität mit Programmierstandards
Viele sicherheitskritische Projekte erfordern Quellcode-Standards. Unabhängig vom Standard ist manuelle Durchsetzung der Konformität immer mühsam und fehleranfällig.
Statische Analysewerkzeuge eignen sich ideal für die Durchsetzung, und hoch entwickelte Werkzeuge erkennen sogar Fehler, die über Formatverletzungen hinausgehen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Ein Großteil der Arbeit bei der Erlangung von Software-Sicherheitszertifizierungen entfällt auf die Dokumentation von Prozessen, Validierung und Verifizierung. Hier reduziert die Testautomatisierung den Aufwand für die Dokumentation von Testergebnissen und für die Analyse der Testabdeckung deutlich.
Verbesserung von Qualität, Sicherheit und Zuverlässigkeit
Auch bei strengen Testverfahren können kritische Fehler übersehen werden. Die Codeabdeckung allein reicht nicht aus, um z. B. bei Sicherheitsangriffen oder Multithread-Code ein korrektes Verhalten zu gewährleisten. Statische Analysetools können Fehler im Quellcode erkennen, ohne dass ein spezifischer Test ausgeführt werden muss, und Fehler wie z.B. Sicherheitslücken finden, die mit Unit- oder Systemtests nur schwer zu entdecken sind.
Dynamische Analysewerkzeuge sind in der Lage, Fehler im ausgeführten Code während des Testens zu erkennen, die sich in den Testergebnissen widerspiegeln können, wie etwa ein langsames Speicherleck. Fuzzing und Penetrationstests während der Systemtests können Fehler aufdecken, die unter normalen Betriebsbedingungen übersehen werden. Das Aufspüren von Fehlern und Schwachstellen mit modernen Werkzeugen reduziert Kosten und Risiken und eliminiert viele der rund 20% an Fehlern, die in die Fertigung gelangen.
Eine wichtige Strategie zur Produktivitätssteigerung ist im Übrigen die Wiederverwendung von sogenannter Legacy-Software. Im Idealfall können bereits zertifizierte Komponenten verwendet werden, um die Entwicklungskosten für diese Untereinheiten zu senken. Eine Automatisierung der Bewertung von Legacy-Software mit statischen und dynamischen Analysewerkzeugen senkt das Risiko bei der Verwendung dieser Komponenten.
Auswirkungen der Shift-Left-Tests
Es ist klar, dass etwas geschehen muss, um die in Bild 2 dargestellten Probleme zu lösen. Zu viele Fehler werden zu Beginn des Lebenszyklus eingebracht und bleiben unentdeckt. Und zu viele verbleiben im Produkt, wenn es hergestellt wird und in die Hände der Kunden gelangt, oder etwa in Flugzeugen oder Autos.
Die Einführung moderner Entwicklungsmethoden, die Wiederverwendung von Komponenten, der Einsatz von COTS und Open Source sowie die Automatisierung von Tools sind wichtige Schritte zur Verbesserung der Entwicklungsproduktivität. In einem Entwicklungsprozess, in dem hoch entwickelte Werkzeuge zum Einsatz kommen, in dem das Testen früher erfolgt, und mehr Fehler früher im Lebenszyklus erkannt und behoben werden, sind Komponententests äußerst effektiv und tragen dazu bei, dass weniger Fehler in die Produktion gelangen (siehe Bild 4).
Bild 3 hat bereits gezeigt, dass die Kosten in jeder Entwicklungsphase erheblich ansteigen. Bild 5 zeigt im Vergleich dazu eine Gegenüberstellung der Kosten für die Fehlerbehebung bei der traditionellen Methode im Vergleich zur in Bild 4 vorgestellten "Shift-Left"-Methode: Es ist kostengünstiger, die Fehlerbehebung vorzuziehen, als sie zu einem späteren Zeitpunkt durchzuführen. In der hier dargestellten Situation beträgt der Gesamtkostenunterschied etwa 40% zugunsten des „Shift-Left“-Ansatzes.
Zertifizierte Toolchains und Support bei der Qualifizierung
Der Einsatz automatisierter Werkzeuge in sicherheitskritischen Projekten setzt Vertrauen in die Werkzeuge selbst voraus. Der Hersteller des Produkts muss darauf vertrauen können, dass die zum Programmieren der Software verwendeten Prozesse und Tools die Anforderungen des Standards erfüllen. Tool-Anbieter können dazu beitragen, indem sie die Tools vor dem Verkauf an die Hersteller nach Sicherheitsstandards zertifizieren lassen oder, falls dies nicht möglich ist, Unterstützung bei der Qualifizierung anbieten. Sie können dann die Zertifizierungsnachweise des Toolanbieters für ihren eigenen Zertifizierungsantrag verwenden und sparen Aufwand. So ist beispielsweise Parasoft C/C++test vom TÜV SÜD für die Entwicklung Safety-relevanter Software nach IEC 61508 und ISO 26262 zertifiziert.
Bei einigen Softwaresicherheitsstandards, wie DO-178C, erfolgt die Zertifizierung auf Systemebene und einzelne Tools und Software werden nicht unabhängig zertifiziert. In diesen Fällen bietet der Werkzeughersteller Qualifizierungspakete und Unterstützung in Form von Dokumentation und Professional Services an, wodurch sich die Kosten und der Aufwand für die Qualifizierung der Werkzeuge für den Einsatz im Projekt deutlich senken lassen.
Shift-Left-Strategie zur Kostenkontrolle
Zweifellos steckt sicherheitskritische Software in einer Kostenkrise. Neue sicherheitskritische Großprojekte werden in der Entwicklung so teuer, dass sie möglicherweise nicht mehr rentabel sind. Die Programmierung sicherheitskritischer Software verlangt moderne Methoden, und diese Maßnahmen müssen die Anzahl der Fehler reduzieren, die erst spät im Softwareentwicklungszyklus entdeckt werden.
Durch Shift-Left sind enorme Kosteneinsparungen möglich. Bei der Verbesserung der Testeffizienz und der Testergebnisse spielt die Testautomatisierung eine Schlüsselrolle. Sie ist ein wichtiger Bestandteil eines modernen Ansatzes für die Entwicklung sicherheitskritischer Software. (sg)