Parasoft-Logo

WEBINAR

Optimieren Sie die Einhaltung von ISO 26262 und ISO 21434 durch automatisierte Tests

In der Automobilindustrie befasst sich ISO 26262 mit der Softwaresicherheit in der Produktentwicklung und beschreibt verschiedene Testmethoden, um die Lieferung sicherer Fahrzeuge sicherzustellen. Ebenso müssen viele Organisationen die von ISO 21434 empfohlenen Softwaresicherheits- und Verifizierungsanforderungen erfüllen.  

Grundlegende Verifizierungsmethoden wie statische Analyse, Unit-Tests, strukturelle Codeabdeckung und Anforderungsrückverfolgbarkeit können zeit- und arbeitsintensiv sein. Entdecken Sie, wie Sie diese Methoden im natürlichen Workflow der Softwareentwicklung automatisieren können, um Arbeitskosten zu senken, die Markteinführungszeit zu verkürzen, die Codequalität zu verbessern und die Einhaltung von ISO 26262 kombiniert mit einem nachhaltigen Materialprofil. ISO 21434 funktionale Sicherheitsstandards.  

Key Take Away

  • Integration ist der Schlüssel: Sie können Cybersicherheitsanforderungen in Ihre vorhandenen Sicherheitsprozesse integrieren und so die Verwaltung beider Prozesse vereinfachen.
  • Kontinuierliche Prüfung: Die Einführung kontinuierlicher Testverfahren in Ihrer CI-Pipeline ist für große Automobilhersteller eine bewährte Methode.
  • Vorteile der Automatisierung: Durch die Automatisierung von Tests wie statischer Analyse, Komponententests und Codeabdeckung werden die Arbeitskosten gesenkt, die Markteinführungszeit verkürzt und die Codequalität verbessert.
  • Werkzeugangelegenheiten: Mit den richtigen Werkzeugen, wie GoogleTest für Unit-Tests und deren Integration mit Abdeckungs- und Rückverfolgbarkeitslösungen, ist von entscheidender Bedeutung.

Das V-Modell und die Testebenen

ISO 26262, insbesondere Teil 6 für die Softwareentwicklungverwendet ein V-Modell. Dieses Modell zeigt auf der linken Seite verschiedene Entwicklungsphasen (Anforderungen, Design, Implementierung) und auf der rechten Seite die entsprechenden Testphasen (Unit-Tests, Integrationstests, Systemtests). Obwohl das V-Modell ein empfohlener Prozess ist, handelt es sich nicht um eine Entwicklungsmethodik wie Waterfall oder Agile.

Auch ISO 21434 verwendet einen ähnlichen V-Modell-Ansatz für Entwicklung und Verifizierung und betont die Notwendigkeit, Sicherheitsfunktionen auf verschiedenen Ebenen zu testen. Dies bedeutet Unit-Tests von Verschlüsselungsfunktionen, Integrationstests von Boot-Prozessen und Systemtests von Kommunikationsprotokollen, um einen sicheren Datenaustausch zu gewährleisten.

Erfahren Sie Best Practices zur Beschleunigung der ISO 21434-Konformität mit automatisierten Tests.

Verbinden von Sicherheits- und Schutztests

ISO 21434 besagt, dass Cybersicherheit in bestehende Prozesse integriert werden sollte. Da viele in der Automobilindustrie bereits mit ISO 26262 vertraut sind, ist die Integration von Sicherheit einfacher. Dabei arbeiten Systemingenieure häufig eng mit Sicherheitsingenieuren zusammen, um Anforderungen zu definieren und Gefahrenanalysen für die Sicherheit sowie Bedrohungsanalysen für die Sicherheit durchzuführen.

Beide Standards erfordern ähnliche Überprüfungsmethoden:

  1. Anforderungsbasiertes Testen: Direkte Verknüpfung von Tests mit Sicherheitsanforderungen.
  2. Statische Analyse: Überprüfen des Codes auf mögliche Probleme, ohne ihn auszuführen.
  3. Dynamische Analyse: Beinhaltet Unit-, Integrations- und Systemtests.
  4. Codeabdeckung: Sicherstellen, dass Tests den Code ausreichend ausführen. Aus Sicherheitsgründen sind Metriken wie die Modified Condition/Decision Coverage (MCDC) wichtig, da sie über die einfache Anweisungs- oder Zweigabdeckung hinausgehen.

Automatisierung der Compliance mit CI/CD

Viele Automobilhersteller setzen auf Continuous Integration (CI) und Continuous Delivery (CD). Diese Pipelines helfen, die Softwarebereitstellung vorherzusagen, Anforderungsänderungen zu verwalten und von der Qualitätssicherung gemeldete Probleme zu reduzieren. Der Schwerpunkt liegt auf der Automatisierung im großen Maßstab.

Frameworks wie GoogleTest sind für Unit-Tests in C++ beliebt. Sie sind einfach zu verwenden, verfügen über eine klare Syntax und lassen sich gut in Build-Systeme wie CMake integrieren. Um den größtmöglichen Nutzen zu erzielen, können diese Frameworks jedoch mit Tools erweitert werden, die strukturelle Codeabdeckung und Anforderungsrückverfolgbarkeit ermöglichen.

Ein typisches Workflow-Beispiel

So könnte ein optimierter Arbeitsablauf aussehen:

  1. Entwicklung von Feature-Zweigen: Entwickler arbeiten in einem separaten Zweig an neuem Code, der oft mit Anforderungen in Tools wie Jira verknüpft ist.
  2. Lokale Tests: Entwickler testen ihren Code lokal mit GoogleTest und ihrer containerisierten Toolchain.
  3. Pull-Anfrage: Es wird eine Pull-Anfrage erstellt, die eine automatisierte Pipeline auslöst.
  4. Automatische Tore: Diese Pipeline enthält Qualitätskriterien für Tests, beispielsweise zur Codeabdeckung. Werden diese Kriterien nicht erfüllt (z. B. unzureichende MCDC-Abdeckung), schlägt der Pull Request fehl.
  5. Analyse und Korrekturen: Entwickler analysieren die Pipeline-Berichte (häufig auf GitHub Pages veröffentlicht oder über IDE-Erweiterungen angezeigt), um Lücken zu identifizieren und fehlende Testfälle hinzuzufügen.
  6. Verschmelzen: Sobald alle Probleme behoben sind und die Pipeline erfolgreich ist, wird der Code in den Hauptzweig integriert.
  7. Hauptzweigleitung: Durch das Zusammenführen wird eine weitere Pipeline ausgelöst, die den stabilen Zweig überwacht und die Ergebnisse an ein Berichtssystem wie Parasoft DTP sendet, um aggregierte Analysen und Compliance-Berichte zu erhalten.

Kostenüberlegungen

Beim Vergleich von Open-Source-Tools mit kommerziellen Lösungen spielen mehrere Kostenfaktoren eine Rolle:

  • Anschaffungskosten: Open-Source-Tools scheinen zunächst möglicherweise günstiger zu sein.
  • Qualifikationsaufwand: Kommerzielle Tools sind häufig vorzertifiziert, wodurch der Qualifizierungsaufwand für Ihr Team reduziert wird.
  • Integrationskosten: Die Implementierung von Tools, die sich problemlos in automatisierte Arbeitsabläufe integrieren lassen (wie etwa Befehlszeilentools), ist kostengünstiger.
  • Schulungskosten: Open-Source-Tools erfordern möglicherweise keine umfangreiche Schulung, wenn die Entwickler bereits mit ihnen vertraut sind.
  • Testfallerstellung: Frameworks, die die Erstellung von Testfällen vereinfachen, wie beispielsweise GoogleTest, können sehr effizient sein.
  • Erreichen der Abdeckungsziele: Tools, die Hinweise und detaillierte Berichte zum Erreichen einer höheren Abdeckung liefern, insbesondere MCDC, können den Aufwand und die Kosten erheblich reduzieren.

Durch die Automatisierung von Verifizierungsmethoden und deren Integration in Ihren Entwicklungsworkflow können Sie die Arbeitskosten effektiv senken, Ihre Markteinführungszeit verkürzen, die Codequalität verbessern und die Einhaltung von ISO 26262 und ISO 21434 sicherstellen.