Ein Auto ist mittlerweile komplexer als ein Flugzeug. Assistenzsysteme und der Wunsch nach autonomen Fahrzeugen stellt immer höhere Ansprüche an die Sicherheit und Zuverlässigkeit elektronischer Systeme in Autos. Das Projekt EMBEET hat neue Wege für die Modellierung und Testung eingebetteter Systeme (Embedded Systems) beschritten, die Entwicklungszeiten und -kosten deutlich verringern können.
Embedded Systems sind eigenständige und fertig in Produkte eingebaute elektronische Systeme, die autonom arbeiten (müssen) – zum Beispiel die Steuerelektronik in Autos, aber auch von Herzschrittmachern. Im Rahmen des „Eurostars“-Projekts „Embedded Model-Based Environment for Engineering and Test“ (EMBEET) haben die Wiener LieberLieber Software GmbH, das Austrian Institute of Technology und die slowakische CNS Soft gemeinsam neue Wege der Software-Modellierung für diese mechatronischen Bauteile mit integriertem Mikrorechner beschritten. Besonderes Augenmerk lag dabei auf der Testung des Softwarecodes, denn diese ist in der Entwicklung von Embedded Systems sehr aufwändig.
Funktionale Sicherheit
„In den Haupteinsatzbereichen von Embedded Systems, etwa im Automotive-Bereich, spielt die ‚funcional safety‘ (funktionale Sicherheit) eine wesentliche Rolle, und sie wird auch in einschlägigen Normen und Vorschriften immer strenger eingefordert“, erklärt Konrad Wieland, Geschäftsführer von LieberLieber Software. „Damit stehen Themen wie die Testabdeckung, also das Auffinden aller möglichen Testfälle, und automatisierte Testdurchführung im Mittelpunkt. Da es schwierig ist, alle erforderlichen Testfälle zu finden, zu definieren und in die Analyse einzubeziehen, wächst der Aufwand dahinter laufend.“ Konrad Wieland nennt ein Beispiel: „Was soll im Auto am Monitor angezeigt werden, wenn die Rückwärtskamera aktiv ist und gleichzeitig ein Anruf über die Freisprechanlage reinkommt? Legt sich der Anruf über das Kamerabild?“ – Solche Situationen müssen von der Steuerzentrale des Fahrzeugs berücksichtigt werden. In der Software des eingebetteten Systems muss ein Modell hinterlegt sein, welche Abläufe und Prioritäten in jeder Sekunde des Fahrens zu gelten haben. Wieland: „Um aber die Anforderungen rund um automatisiertes Fahren erfüllen zu können, fahren Versuchsfahrzeuge heutzutage Millionen von Kilometern ab, um auch ganz selten auftretende Sicherheitsfälle überhaupt zu finden und in die Software aufnehmen zu können.“
Millionen Zeilen Code
Die Anweisungen für die Abläufe werden traditionellerweise Zeile für Zeile als Softwarecode in Embedded Systems eingeschrieben. Jedoch verlangen die komplexen Modelle in Fahrzeugen, die Millionen Zeilen Code erfordern, nach neuen Wegen der Modellierung. Hier hat das Projekt EMBEET angesetzt: Mit dem Forschungstestfallgenerator MoMuT des Austrian Institute of Technology wurden im Rahmen von EMBEET nicht nur Testfälle produziert, sondern sie konnten auch automatisch und gezielt mutiert werden.
„Die Testfallgenerierung wurde bei EMBEET erstmals durch bewusste Veränderung – also Mutation – des Modells angereichert“, erklärt Konrad Wieland. „Durch die Mutation eines Modells lässt sich die Qualität der Testfälle nachweisen. Man kann zum Beispiel absichtlich Fehler im Code einbauen und zeigen, dass zumindest ein Testfall diesen Fehler bemerkt; oder man verändert den Code gezielt so, dass kein Testfall etwas bemerkt und zeigt dadurch blinde Flecken in den Testfällen auf. Auf diese Weise lässt sich die Qualität von Testfällen beurteilen.“
Erstmals eine automatisierte Testumgebung auf Modellebene
Was das Vorgehen beim Projekt EMBEET einzigartig macht, ist der Umstand, dass die Ergebnisse der Testläufe automatisch in den Code zurückgespielt und im Modell visualisiert werden konnten. Wieland: „Bis dato sind uns keine Versuche bekannt, eine derart umfassende und vollkommen automatisierte Testumgebung auf Modellebene zu realisieren, die noch dazu das Debugging – also die Fehlerbehebung – im Embedded-Systems- und Hochsicherheitsbereich verknüpft.“
Damit wurden im Projekt EMBEET die Grundzügen für eine integrierte modellbasierte Entwicklungsumgebung (IMDE) geschaffen, die mehrere bisher getrennte Entwicklungskomponenten in Einem abdeckt: Modellüberprüfungen in Echtzeit, automatische Testerzeugung, On-Target-Debugging und Visualisierung der Testqualität. Auf diese Weise haben die EMBEET-Projektpartner einen Weg gefunden, der es erheblich vereinfacht, Testfälle zu erstellen, die Ergebnisse in einer neuen Modellversion zu verwerten und den ganzen Ablauf automatisch zu überwachen und dokumentieren. Dadurch können die Entwicklungs- und vor allem Testkosten von Embedded Systems deutlich gesenkt werden. Wieland: „Für den Einsatz in der Praxis bedarf es Anpassungen an die jeweiligen Ausgangsbedingungen, um optimale Einsparungen zu erbringen. Die Komponenten von EMBEET lassen sich daher kostenschonend mit verschiedenen am Markt befindlichen Modelleditoren für Embedded Systems verknüpfen, die in den Entwicklungsumgebungen bei den Zielkunden in Verwendung sind.“