Motivation
Sicherheitskritische eingebettete Systeme werden in der heutigen Gesellschaft immer bedeutender, wie es z.B. am zukünftigen Markteintritt autonomer Fahrzeuge zu sehen ist. Dies geht einher mit der steigenden Komplexität der Systeme und der zugrundeliegenden Entwicklungsprozesse. Die dafür notwendige Qualitätssicherung erfordert ca. 50 % der Projektressourcen. Grundlage eines solchen Entwicklungsprozesses ist die Spezifikation der Anforderungen. Entsprechend dieser Spezifikation wird das sicherheitskritische eingebettete System entworfen. Für jede Anforderung wird ein funktionaler Test durchgeführt, um die korrekte Implementierung zu überprüfen. Zusätzliche strukturelle Tests zeigen an, ob während der funktionalen Tests alle Bereiche des Programmcodes ausgeführt wurden. Ist dies nicht der Fall, muss untersucht werden, warum das so ist: Fehlen Tests? Wurde Code implementiert, zu dem es keine Anforderungsspezifikation gibt? Gibt es andere Ursachen? Diese strukturellen Tests sind wichtig und vorgeschrieben, um die Vollständigkeit der funktionalen Tests und damit die Sicherheit des Systems überprüfen zu können. Sie erfordern einen tiefen Einblick in die laufende Software und werden bisher aus technischen Gründen üblicherweise nur auf der Low-Level-Ebene durchgeführt.
Ziele und Vorgehen
Im Projekt CoCoSI wird eine prototypische Softwarelösung entwickelt und evaluiert, mit der strukturelle Tests auch im Rahmen funktionaler High-Level-Tests ausgeführt werden können. Ein wesentliches Ziel besteht darin, die Überdeckung einzelner Kriterien aus den verschiedenen Teststufen, insbesondere die Anforderungs- und Programmcode-Überdeckung, schon in höheren Stufen, d.h. im Integrations- bzw. Systemtest, zu messen und zu überprüfen. Diese Messung der Testabdeckung (Code Coverage) soll so realisiert werden, dass durch die Instrumentierung keine Änderungen an Programmcode, Schnittstellen und Architektur verursacht werden. Eine weitere Herausforderung besteht darin, den angestrebten Ansatz für komplexe Testartefakte, d.h. Software-Gesamtsysteme oder Teilsysteme, skalierbar auszulegen. Die neue Testlösung wird anhand industrieller Fallstudien aus den Bereichen Luftfahrt und autonomes Fahren validiert.
Innovationen und Perspektiven
Die Messung der strukturellen Abdeckung für funktionale High-Level-Tests ermöglicht fundierte Aussagen über deren Vollständigkeit. Falls die strukturelle Abdeckung in einem High-Level-Test nachgewiesen wurde, ist der Aufwand für die Entwicklung entsprechender Low-Level-Tests nicht mehr erforderlich. Dies spart Zeit und Kosten im Entwicklungsprozess. Die angestrebte Softwarelösung hat damit das Potenzial, die Testbarkeit sicherheitskritischer eingebetteter Systeme deutlich zu verbessern und diese Systeme sicherer und zuverlässiger zu machen. Diese Lösung in Form eines innovativen Entwicklungswerkzeugs soll insbesondere in den für Deutschland sehr wichtigen Zukunftsbereichen „Industrie 4.0“ sowie „Verteilte Systeme“ zum Einsatz kommen.