Modellbasiertes Testen eines Fahrerassistenzsystems

Projektdetails 
Kompetenzfeld:

Fahrerassistenzsysteme

Leistungsbereich:

Softwareentwicklung

Branche:

Automobil

Methode/Werkzeug:

Softwareentwicklung in C++ / UML / Python

Entwicklung
Fahrerassistenzsysteme

Modellbasiertes Testen eines Fahrerassistenzsystems

Ausgangssituation:

Mit der steigenden Komplexität von Fahrerassistenzsystemen wird der Aufwand für die Absicherung der Software immer größer. Um sowohl die Testabdeckung zu steigern als auch die begrenzten Kapazitäten des Fahrversuchs optimal zu nutzen, wird eine Möglichkeit gesucht, eine möglichst hohe Testabdeckung der Softwaretests bereits auf Simulationsebene zu erreichen.

Projektauftrag:

Es soll eine Software-in-the-Loop Simulation erstellt werden, welche die Eingangssignale (Sensor- und Fahrzeugdaten) emuliert. Dabei sollen die Tests auch bei >10^5 Testfällen durch geeignete Verwaltung und automatisierte Auswertung beherrschbar bleiben.

Umsetzung:

Bei der Programmierung der Simulationssoftware in C++ wurden ein Sensor- und ein Fahrzeugmodell umgesetzt. Die Bereitstellung von Testschritten und automatisierten Prüfpunkten als Abstraktionsebene für die modellbasierte Testfallverwaltung wurde auf Basis von UML Diagrammen realisiert. In die Simulation wurde eine Schnittstelle zum Testmanagementsystem sowie zur Messung der Testabdeckung integriert.

Lösung:

Die Beschreibung von Testsituationen als UML Diagramme zur Testfallgenerierung schafft auf wenigen Seiten eine Übersicht über eine sonst nicht beherrschbare Anzahl von Testfällen. Die automatisierte Auswertung sowie Anbindung an das Testmanagementsystem ermöglichen eine Ausführung aller Tests mit minimalem Zeitaufwand. Durch die so erreichte hohe Codeabdeckung werden bei Parameter- oder Softwareänderungen unerwünschte Begleiterscheinungen mit hoher Zuverlässigkeit schon bei der Entwicklung entdeckt. Fahrversuche können auf Basis dieser Daten gezielt auf kritische Kombinationen von Softwareversion und Fahrsituation ausgewählt werden.