Schnellere Konformität mit MISRA C 2023

Automatisierte Testverifikations- und Validierungsmethoden

28. Oktober 2023, 8:00 Uhr | Autor: Ricardo Camacho, Redaktion: Irina Hübner
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Schrittweises Vorgehen

Die anfängliche Überprüfung des bestehenden Codes mit einem statischen Analysewerkzeug führt in der Regel zu Tausenden von Verstößen, insbesondere beim Einsatz eines Standardsatzes von Regeln. Anstelle die Neuentwicklung zu stoppen, um sich auf das Beheben aller gefundenen Verstöße zu konzentrieren, ist es wichtig, einen Arbeitsablauf einzurichten, um die Verstöße im Laufe der Zeit zu beheben, ohne den Entwicklungsprozess zu unterbrechen oder die Qualität der Software zu beeinträchtigen.  

Hier sind die wichtigsten Empfehlungen für den erstmaligen Einsatz von statischen Analysetools in einem Projekt:

  • Baselining: Nach dem ersten Scan des Codes sollten alle anfänglichen Verstöße als »später zu beheben« markiert und als Baseline gesetzt werden. Von diesem Zeitpunkt an ist die Richtlinie »keine neuen Verstöße erlaubt« einzuhalten, wenn bestehender Code aktualisiert und/oder neuer Code entwickelt wird.
  • Deadline: Die Entwicklung setzt eine Deadline. Danach müssen alle Verstöße für jede geänderte Übersetzungseinheit (einzelne Quelldatei) behoben werden. Alle unveränderten Übersetzungseinheiten fallen automatisch unter die tatsächlich übernommene Codedefinition aus dem MISRA-Konformitätsdokument.
  • Priorisierung nach Schweregrad: Der Entwickler behebt alle für das ihm zugewiesene Modul obligatorischen Feststellungen. Im Laufe der Zeit wird er, wenn es die Zeit erlaubt, alle erforderlichen Verstöße auf der Grundlage einer vom Teamleiter festgelegten Priorität bearbeiten. Um aus diesem Priorisierungsprozess zu lernen, nutzt Parasoft künstliche Intelligenz und maschinelles Lernen.
Parasoft DTP mit dem Berichts- und Analyse-Dashboard, das den Konformitätsstatus aufzeigt
Bild 3. Parasoft DTP mit dem Berichts- und Analyse-Dashboard, das den Konformitätsstatus aufzeigt.
© Parasoft

Bei den beschriebenen Ansätzen ist die ständige Überwachung des Fortschritts und des Status der Projektkonformität über ein zentrales Dashboard wichtig. Vorteilhaft hierfür ist ein vorkonfiguriertes Tool, wie das Reporting Dashboard von Parasoft, das den Konformitätsstatus aufzeigt (Bild 3).

Kompetenz und Schulung der Mitarbeiter

Entwickler können viele Fehler in der Software vermeiden, indem sie sinnvolle Beschränkungen für die Verwendung der Sprache einführen. Dies führt zu einem einheitlichen Stil, der als Disziplin in Softwareprojekten wertvoll ist. Weil die Sprachen C und C++ so vielseitig sind, können Entwickler Code schreiben, der unbeabsichtigt fehlerhaft und möglicherweise gefährlich sein kann.

Es ist relativ einfach, dass sie Code schreiben, der die Anforderungen des Sprachstandards erfüllt, aber dennoch zu unerwünschtem Verhalten und Programmabstürzen führen kann. Natürlich ist es wichtig, diese potenziellen Probleme zu erkennen. Aber das Ziel von MISRA ist es, Probleme zu verhindern, anstatt sie nur zu identifizieren. Ein Compiler findet einige dieser Probleme, aber die Nutzung eines speziellen Analysewerkzeugs ist effektiver.

Der MISRA-Standard unterstreicht, dass die Einhaltung von Programmierregeln nur eine Komponente einer erfolgreichen Softwareentwicklung ist. Die Entwickler müssen jedes Programmierprojekt in ein diszipliniertes technisches Umfeld integrieren, das methodische Entwicklungsabläufe und bewährte Validierungswerkzeuge umfasst.

Das Fachwissen und die Ausbildung des Entwicklungspersonals sind Schlüsselfaktoren, die die Softwareunternehmen häufig vernachlässigen, die aber von den Prüfern bei der Beurteilung der Produktreife oft an erster Stelle genannt werden. Auch die MISRA-Richtlinien betrachten die Kompetenz der Mitarbeiter als wichtigen Bestandteil der MISRA-Konformität. In der Praxis ist die Schulung für ein erfahrenes Team relativ kurz. Ein paar Tage können wochenlange Nacharbeit, Qualitätsprobleme und verpasste Projekttermine verhindern.

Am besten ist es, die Schulung zu Beginn des Projekts durchzuführen und einen Schulungstermin festzulegen, an dem alle Entwickler ihre Teilnahme bestätigen. Am Ende des Projekts sollte das Entwicklungsteam in der Lage sein, Folgendes nachzuweisen:

  • Die Mitarbeiter, die Abweichungen genehmigen, kennen die mit der Verletzung verbundenen Risiken und sind darin geschult, diese zu erkennen.
  • Die Mitarbeiter sind darin geschult, die statischen Analyse- und Entwicklungstools vor ihrem Einsatz richtig zu konfigurieren und zu verwenden.

Tool-Qualifizierung

Eine weniger offensichtliche Komponente der MISRA-Konformität, die oft bis zum Ende des Projekts vernachlässigt wird, ist die Qualifizierung der im Produkt eingesetzten Entwicklungstools und der Nachweis ihrer Eignung für den Zweck gemäß dem relevanten Sicherheitsstandard sowie die Begründung, wie das Team zu dieser Schlussfolgerung gekommen ist.

Die Toolqualifizierung muss bereits bei der Toolauswahl beginnen. Lohnenswert ist, ein von einer Organisation wie dem TÜV SÜD zertifiziertes Entwicklungstool einzusetzen, das den Aufwand für die Toolqualifizierung erheblich reduziert. Parasoft C/C++test ist vom TÜV SÜD für die funktionale Sicherheit nach IEC 61508, ISO 26262 und IEC 62304 sowohl für Host- als auch für Embedded-Zielanwendungen zertifiziert. Es ebnet den Weg für eine rationalisierte Qualifizierung der statischen Analyse, der Unit-Tests und der Abdeckungsanforderungen für die sicherheitskritischen Standards.

In vielen Fällen ist eine Toolqualifizierung erforderlich, allerdings variiert die Methode, wie sie durchgeführt wird, je nach dem Risiko, das mit dem Werkzeugfehler verbunden ist, und je nach dem Grad der Softwarekritikalität. Softwareteams müssen die Kosten für die Toolqualifizierung berücksichtigen, wenn sie kommerzielle, freie und Open-Source-Tools evaluieren. Einige Standards, wie zum Beispiel DO-178C, bieten eine sinnvolle Anleitung für die Anforderungen an die Toolqualifizierung.

Qualification Kits reduzieren manuellen Aufwand

Traditionell war die Toolqualifizierung mit einem erheblichen Aufwand an manueller Arbeit, Tests und Dokumentation der Entwicklungswerkzeuge verbunden, um ein Zertifizierungsaudit zu bestehen. Dieser dokumentationsintensive Prozess erfordert eine manuelle Interpretation und Vervollständigung und ist zeitaufwendig und anfällig für menschliche Fehler.

Dem greift die Automatisierung des Prozesses mithilfe von Qualification-Kits entgegen. Indem sie den Anwender durch einen intuitiven Arbeitsablauf führen, reduzieren sie den Arbeitsaufwand drastisch. Mit seinem Qualification-Kit und Zertifizierungen für spezifische Sicherheitsstandards und deren Anforderungen eröffnet Parasoft Vorteile wie beispielsweise:

  • Automatische Beschränkung des Qualifizierungsumfangs auf die Teile des verwendeten Werkzeugs
  • Automatisieren der für die Qualifizierung notwendigen Tests so weit wie möglich
  • Manuelle Tests so effizient wie möglich handhaben und die Ergebnisse neben den automatisierten Tests integrieren
  • Automatisches Erstellen einer revisionssicheren Dokumentation, die genau angibt, was qualifiziert wurde, nicht mehr und nicht weniger!

Es gibt kein Patentrezept, mit dem sich die Einhaltung von MISRA in sicherheitskritischen Projekten leicht erreichen lässt. Durch die Einführung des MISRA-Compliance:2020-Rahmens und die Anwendung eines praktischen, schrittweisen Ansatzes mit einem klar definierten Ziel vor Augen können Softwareentwicklungsteams die Konformität jedoch ohne größere Unterbrechung ihres Entwicklungsprozesses erzielen. Auch wenn die Konformität mit viel Aufwand verbunden ist, trägt die Automatisierung doch wesentlich dazu bei, die mühsamen manuellen Prozesse zu reduzieren.

 

Der Autor

 

Ricardo Camacho von Parasoft
Ricardo Camacho von Parasoft.
© Parasoft

 

Ricardo Camacho ist Director of Safety & Security Compliance bei Parasoft.

 

 


  1. Automatisierte Testverifikations- und Validierungsmethoden
  2. Schrittweises Vorgehen

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Parasoft

Weitere Artikel zu Safety und Security

Weitere Artikel zu Automotive

Weitere Artikel zu Entwicklung und Test