Verifikation über den gesamten Lebenszyklus hinweg

Vector-Tools für jede Phase, von der statischen Analyse bis zur Zertifizierung

Embedded Software-Teams, die nach ISO 26262, DO-178C, IEC 61508 und IEC 62304 arbeiten, führen in jeder Entwicklungsphase Aktivitäten zur Verifikation durch. Die wirtschaftlichen Zusammenhänge sind klar: Fehler, die bei der statischen Analyse entdeckt werden, kosten nur einen Bruchteil dessen, was Fehler kosten, die erst bei der Integration entdeckt werden, und Fehler, die bei der Integration entdeckt werden, kosten wiederum nur einen Bruchteil dessen, was Fehler kosten, die erst im Einsatz entdeckt werden. Statische Analyse, Unit- und Komponententests, Integrationstests, Abdeckungsmessung und Rückverfolgbarkeitsnachweise (Traceability) dienen jeweils einer speziellen Phase. Wenn ein Projekt die Auditphase erreicht, sollten die entsprechenden Nachweise bereits vorliegen.

Die Überprüfung beginnt an der Quelle

Der kostengünstigste Zeitpunkt, um einen Fehler zu entdecken, ist vor Beginn der Tests. Bei der statischen Codeanalyse wird der Quellcode untersucht, ohne ihn auszuführen. So werden Verstöße gegen Codierrichtlinien und -standards, Typfehler, Null-Pointer-Dereferenzierungen und Sicherheitslücken bereits beim Schreiben des Codes erkannt. Durch die Integration in die Build-Pipeline erhalten Entwickler sofortiges Feedback, wodurch verhindert wird, dass sich Fehler im Laufe des Projekts anhäufen.

Unit-Tests: Überprüfen Sie jede Komponente

Sobald der Code geschrieben ist, wird durch Unit-Tests überprüft, ob sich jede Funktion, jedes Modul, jede Klasse oder jede Komponente isoliert betrachtet korrekt verhält. Jeder Testfall wird auf der Grundlage einer spezifischen Anforderung erstellt, automatisch ausgeführt und hinsichtlich der strukturellen Abdeckung gemessen, wodurch die von Sicherheitsstandards geforderte bidirektionale Rückverfolgbarkeit (Traceability) hergestellt wird.

VectorCAST automatisiert die Erzeugung und Verwaltung von Unit-Test-Umgebungen für C, C++ und Ada, unterstützt sowohl die Ausführung auf dem Host als auch auf dem Zielsystem und generiert die von Sicherheitsstandards geforderten Coverage-Daten und Rückverfolgbarkeitsnachweise.

Integrationstests: Überprüfung der Schnittstellen

Nachdem die einzelnen Units und Komponenten verifiziert wurden, wird im Rahmen der Integrationstests überprüft, ob die Schnittstellen zwischen ihnen korrekt funktionieren. In dieser Phase werden Annahmen bezüglich der Modulgrenzen getestet, die Kopplung zwischen den Komponenten überprüft und das Verhalten auf Systemebene wird sichtbar. Die Messung der Test- und Codeabdeckung wird in dieser Phase fortgesetzt, häufig unter Verwendung von VectorCAST/QA, um die integrierte Software unabhängig vom Compiler zu instrumentieren.

Abdeckung, Rückverfolgbarkeit und Nachweise

Vector-Tools messen die strukturelle Abdeckung gemäß den von den jeweiligen Standards vorgeschriebenen Stufen, angefangen bei der Statement- und Branchabdeckung auf niedrigeren Integritätsstufen bis hin zu MC/DC auf ASIL D und DO-178C DAL A. Jedes Testergebnis ist mit der Anforderung verknüpft, deren Erfüllung es nachweist, und jeder Abdeckungsbericht wird in einem Format generiert, das von den Zertifizierungsstellen geprüft wird.

Kontinuierliche Überprüfung

Eine kontinuierliche Überprüfung bedeutet, dass jeder Commit geprüft wird, nicht nur die Builds, welche zur Überprüfung markierten sind. PC-lint Plus führt eine statische Analyse direkt während der Code-Erstellung durch. VectorCAST führt gezielt nur die von Änderungen betroffenen Tests erneut aus, anstatt jedes Mal die gesamte Testsuite auszuführen. Squore überwacht die kumulativen Auswirkungen dieser Durchläufe, setzt Quality Gates durch und deckt Trends auf, bevor diese zu Risiken für das Release werden.

Speziell für diese Umgebung entwickelte Tools

Die Verifikations-Tools von Vector sind für die Entwicklung sicherheitskritischer Embedded-Systeme konzipiert. Sie sind nach den von ihnen unterstützten Standards zertifiziert, lassen sich in nahezu jede Build- und CI-Umgebung integrieren und liefern Nachweise in den von Prüfern und Auditoren geforderten Formaten.