Schwerpunkte

Zertifizieren von Systemen

Mit dem richtigen Tool zum Erfolg

07. April 2021, 08:00 Uhr   |  Von Michael Wittner

Mit dem richtigen Tool zum Erfolg
© YARUNIV Studio | Shutterstock

Das Zertifizieren von sicherheitskritischen Systemen erfordert umfangreiche Tests. Ein Tool-gestützter Testprozess kann den Zeit- und Kostenaufwand für die Zertifizierung inklusive der erforderlichen Dokumentation jedoch erheblich reduzieren. Wie das geht, zeigt Razorcat.

Um ein System für sicherheitsrelevante Anwendungen zu validieren und zu zertifizieren, muss ein Entwickler den Nachweis erbringen, dass die Anforderungen (Requirements) korrekt in Systemfunktionen umgesetzt wurden. Gleichzeitig gilt es zu prüfen, ob die Funktionen das tun, was sie tun sollen. Für diesen Nachweis sind Tests für das zu testende System (System under Test, SUT) auf verschiedenen Stufen erforderlich: angefangen beim Unit-Test auf der untersten Stufe bis nach oben zum Integrations- und Systemtest. Um nicht-technische Anforderungen zu validieren, können Testingenieure ebenfalls manuelle Testmethoden wie Reviews einsetzen.

VxV Matrix
© Razorcat

Bild 1. Überblick über den Testprozess.

Einen Überblick über den Testprozess und die beteiligten Elemente zeigt Bild 1. Das Zuweisen von Prüfwerkzeugen zu den jeweiligen Anforderungen erfolgt in der Verifikations- und Validationsmatrix (VxV). Basierend auf der Planungsaktivität kann der Entwickler den Fortschritt im Laufe des Erstellens und Ausführens des Tests – bezogen auf die verknüpften Anforderungen – ganz einfach messen. Nach jedem Testzyklus liefern die bereitgestellten Berichte den jeweils aktuellen Status darüber, inwieweit die Requirements abgedeckt sind.

Innerhalb eines Testzyklus werden jeweils neue Tests definiert, mit den relevanten Anforderungen verknüpft, ausgeführt und ausgewertet. Testingenieure müssen die Ergebnisse aller Testaktivitäten über den gesamten Prozess erfassen und speichern. So ist es möglich, die nötigen Berichte zu erstellen und die Ergebnisse mit den verknüpften Requirements nachzuverfolgen. Mit der integrierten Testumgebung „ITE“ von Razorcat können Anwender alle An­­forderungen importieren und verwalten, die passenden Werkzeuge auswählen und Testkampagnen planen.

Festlegen der Prüfmittel

Grundlage aller Zertifizierungen sind exakt definierte Requirements für das SUT. In der Regel sind diese in einem oder mehreren Dokumenten strukturiert. Sie sind mithilfe von detaillierteren »Unter«-Anforderungen weiter zu verfeinern und mit den jeweiligen Hauptanforderungen zu verknüpfen. Anforderungen, die von externen Tools stammen, werden in die ITE importiert. So können Anwender Änderungen erkennen sowie Verknüpfungen zu anderen Elementen des Testprozesses verwalten.
Im Anschluss an den Import oder die Definition der Anforderungen erfolgt eine der wichtigsten Aufgaben des Test­ingenieurs: die Auswahl der am besten geeigneten und effektivsten Testwerkzeuge – oder Tools – als Prüfmittel (Test Means) für jedes einzelne Requirement. Anwender setzen die Tools auf den verschiedenen Teststufen wie Unit-, Integrations- und Systemtest ein. Unter Umständen sind mehrere Prüfmittel zu verwenden, um den Nachweis einer einzelnen Anforderung zu erbringen. Anschließend weist der Testingenieur in der VxV-Matrix die Prüfmittel den einzelnen Anforderungen zu. So legt der Nutzer fest, welche Testwerkzeuge oder Prüfmethoden für das Validieren im Einzelnen zu verwenden sind.

Die richtige Sprache finden

Um das Ausführen einer bestimmten Anforderung zu prüfen, sind zunächst alle relevanten Testaspekte zu ermitteln. So sind alle Anforderungsfunktionen mit Tests abzudecken. Ein Testprogramm für ein komplexes System besteht daher aus vielen Definitionen. Sie sind mit den zu testenden Requirements zu verknüpfen. Testdefinitionen in rein textlicher Form haben einen Nachteil: Sobald eine Testreihe vorhanden ist, ist es schwer, die Unterschiede in verschiedenen Tests mit ähnlichen Zielvorgaben auseinanderzuhalten. Insbesondere beim Weiterentwickeln und Erweitern bestehender Tests aufgrund neuer Anforderungen sind systematische Ansätze zum Erstellen von Testfällen, beispielsweise die Klassifikationsbaummethode, unbedingt empfehlenswert.

Klassifikationsbaum
© Razorcat

Bild 2. Klassifikationsbaum für den Test einer Flugzeugkomponente.

Wie Tests mithilfe der Klassifikationsbaummethode auf einem hohen Abstraktionsniveau zu erstellen sind, zeigt Bild 2. Jedoch legt die Testdefinition lediglich den groben Rahmen für das Initialisieren und die nötigen Tests auf dem entsprechenden Prüfmittel fest. Im Beispiel sei es ein Systemprüfstand in der Flugzeugindustrie. Die exakte Abfolge der einzelnen Prüfschritte ist in der Testdefinition noch nicht festgelegt. Aufgabe des Testingenieurs ist es, eine sinnvolle und fehlersensitive Testprozedur zu schreiben, die alle Aspekte der Testdefinition abdeckt. Es kann sinnvoll sein, einen Satz von Initialbedingungen (Initial Conditions) für alle möglichen Startszenarien des zu prüfenden Systems festzulegen.

Sie sind dann für alle anwendbaren Testdefinitionen zu verwenden. Zum Beschreiben der Tests bietet sich eine Spezifikationssprache wie Check Case Definition Language (CCDL) von Razorcat an. Sie gewährleistet eine volle Echtzeitfähigkeit aller Testfunktionen. Gleichzeitig ist die Sprache für den Test­ingenieur gut lesbar und für externe Auditoren ohne weiteres Training leicht verständlich. CCDL besteht aus wenigen syntaktischen Elementen in natürlichsprachlicher Form, die einfach zu erlernen sind. Die Sprache bietet die Möglichkeit, sowohl komplexe chronologische Abläufe als auch ereignisbasierte Reaktionen in einer Testprozedur zu formulieren. Anwender können erwartete Reaktionen des Prüflings pa­­rallel zum Ablauf der Stimulationen in der Testprozedur spezifizieren und auswerten. Ein Verknüpfen mit den Anforderungen kann direkt an den einzelnen Kommandos der Testprozedur mithilfe spezieller Syntaxelemente erfolgen.

CCDL-Testprozedur
© Razorcat

Bild 3. Beispiel einer CCDL-Testprozedur.

Ein Beispiel für eine Prozedur zum Test einer Sicherheitsfunktion  einer Flugzeugkomponente zeigt Bild 3 – hier sind wichtige CCDL-Syntaxelemente zu sehen. Der Anwender stimuliert das SUT, und der Testablauf wartet anschließend darauf, dass das SUT im normalen Modus arbeitet. Sobald der Moment erreicht ist, ist ein Sensorfehler zu simulieren und zu prüfen, ob das SUT den Fehler erkennt und entsprechend reagiert. Das Beispiel zeigt die Stärke der CCDL-Sprachelemente: Die Trigger-Bedingung definiert den Zeitpunkt, ab dem das SUT im normalen Betriebsmodus arbeitet. Basierend auf dem Trigger-Zeitpunkt wird die Fehlerbedingung eingestellt (»when«-Ausdruck) und parallel dazu die erwartete Systemreaktion des SUT geprüft (mit dem »within«-Ausdruck). Der Operator »=>« prüft, ob das Signal genau einmal innerhalb des vorgegebenen Intervalls auf den angegebenen Wert wechselt.

Entsprechend dem in der Prozedur de­finierten Ablauf ist das SUT in genau festgelegten Zeitzyklen zu stimulieren und zu prüfen. Trigger-Bedingungen mit optionalem zeitlichem Versatz erlauben genau definierte Zeitintervalle für das Prüfen des SUT unter Echtzeitbedingungen. In einer Zertifizierungskampagne führte das Ver­wenden von CCDL zu einer höheren Produktivität gegenüber herkömmlichen Tests mit Python.

Seite 1 von 2

1. Mit dem richtigen Tool zum Erfolg
2. Ergebnisse automatisch auswerten

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Das könnte Sie auch interessieren

Verwandte Artikel

Razorcat