Virtuell starten

Feedback von
Beginn an

In Zeiten, in denen sich Fahrzeuge mehr und mehr über Software definieren und die Funktionsvielfalt signifikant ansteigt, müssen zusätzliche Testmethoden etabliert werden. Denn Software-Fehler, die erst während der Testphase an physischen Prototypen gefunden werden, kosten besonders viel Zeit, Geld und Nerven. Häufig stellt sich dann die Frage: Hätte man die Fehler nicht schon früher finden und beheben können?

Wir sagen ja. In vielen Fällen können die Testaktivitäten bereits in virtuellen Testumgebungen stattfinden. Auf Software- und Modell-Ebene sogar gleich von Beginn an und bei jeder Änderung durch die Funktionsentwicklung. Dafür werden variantenreiche und szenarienbasierte Testfälle entwickelt, die automatisiert und mithilfe skalierbarer Infrastruktur ausgeführt werden – mit dem Ziel, neue Fahrzeugfunktionen schnell zur Marktreife zu bringen.

Show content

Continuous Testing in der Cloud

Mit der stetig wachsenden Zahl an softwaregesteuerten Funktionen im Fahrzeug verändert sich auch der notwendige Testprozess. Mehr und mehr kommen virtuelle Umgebungen in der Funktionsentwicklung von Steuergeräten zum Einsatz, denn nur so lassen sich die komplexer werdenden Fahrzeugfunktionen mit hoher Variantenvielfalt und schnellem Feedback testen. Immer wichtiger wird es auch, die große Auswahl der Testszenarien frühzeitig in den Entwicklungsprozess zu integrieren. Nur so lässt sich die Fehlerrate in realen Produktionsumgebungen minimieren. Damit steigen die Ansprüche an Testwerkzeuge und Testdesign gleichermaßen. ...

Um den Testprozess bei der Entwicklung von Automobil-Software (z. B. mit MATLAB/Simulink) so komfortabel wie möglich zu gestalten, haben wir uns folgende Ziele gesetzt:

1. Wir befähigen die Funktionsentwicklung dazu, Tests auf komfortable Weise selbst erstellen und ausführen zu können.

2. Wir entwickeln für unsere Kundinnen und Kunden generische Tests, um unerwünschte Auswirkungen von Änderungen automatisiert aufzudecken.

3. Wir etablieren Continuous Testing in der Cloud.


Wir unterstützen die Funktionsentwicklung bei der einfachen Testfallerstellung auf Modellebene, indem wir eine spezielle grafische Benutzungsoberfläche (GUI) für MATLAB/Simulink zur Verfügung stellen. Damit können Testfälle für einzelne Komponenten (Unit-Tests) basierend auf vorgefertigten Templates selbst erstellt und ausgeführt werden. Diese Tests decken vor allem funktionale Anforderungen ab. Werden sie bei jeder Änderung wiederholt und dabei auftretende Fehler sofort behoben, tragen sie erheblich zur Sicherstellung der korrekten Funktion bei.

Wir entwickeln kundenspezifische Lösungen zur Erstellung und kontinuierlichen Ausführung von generischen Testfällen. Dieser Ansatz lässt sich automatisiert auf viele verschiedene Testobjekte anwenden und ist besonders dort nützlich, wo Testobjekte beispielsweise durch manuell erstellte Tests nicht hinreichend getestet werden oder eine höhere strukturbezogene Testabdeckung erwünscht ist. Die Stimulation der Eingangssignale wird dabei automatisch generiert – stets angepasst an das jeweilige Testobjekt. Fragestellungen wie „Sind die Änderungen in der Signalantwort gewollt? Treten unbeabsichtigte Querwirkungen auf?“ sind dabei grundlegend. Ziel ist es, unerwünschte Auswirkungen von Änderungen auf das Bestandsverhalten in einzelnen Varianten zu ermitteln. Von Vorteil ist hierbei, dass virtuelle MiL-Tests unabhängig von Hardware-Konfigurationen sind. Das ermöglicht die Nutzung von einheitlich konfigurierten Testumgebungen. Allein durch Variieren der Parameter lässt sich somit eine breite Modell- und Variantenvielfalt abdecken. Wenn sichergestellt werden kann, dass diese Tests vor der Integration bereits bestanden sind, ist die Grundlage für eine hohe Software-Qualität geschaffen.

Damit das Testen nicht als Last, sondern als Unterstützung wahrgenommen wird, werden diese Tests nach jeder Modelländerung bzw. mit jeder neuen Testfallspezifikation automatisiert im Hintergrund ausgeführt. Dieser aus der „klassischen“ Software-Entwicklung bekannte Continuous-Testing-Ansatz kann durch die Virtualisierung der Tests auch auf die Entwicklung im Automotive-Sektor übertragen werden. Innerhalb der spezifischen IT-Landschaft unserer Kundinnen und Kunden entwickeln wir eine passende Automatisierungslösung. Dafür kommt auch ein Jenkins-Server zum Einsatz, der die Testausführung koordiniert. Die eigentliche Ausführung der Tests erfolgt auf einer Cloud-Infrastruktur. Der Jenkins-Server verteilt die Testaufträge an die freien Ressourcen in der Cloud. Da die Ressourcen hier durch den Cloud-Betreiber bereitgestellt werden, kann die Rechenleistung für die virtuellen Tests kurzfristig fast beliebig auf den tatsächlichen Bedarf skaliert werden. Bei dieser Lösung müssen keine physischen Rechner oder virtuellen Maschinen mehr einzeln bereitgestellt, eingerichtet und gewartet werden. Stattdessen gibt es ein zentrales Abbild, das die Basis für alle Cloud-Instanzen darstellt.

Die Testergebnisse werden zentral in TEST-GUIDE verwaltet und in verschiedenen Ansichten dargestellt. Alle Nutzenden können durch individuelle Benachrichtigungseinstellungen konfigurieren, ob und in welchen Fällen eine E-Mail gewünscht ist.
Team
  • 4 Software-Entwickler
  • 1 Teammaster
  • 1 OKR-Master
  • Standort Dresden
Show content

Co-Simulation als Integrationsplattform

Moderne Fahrzeuge basieren auf Technologien, die Fahrerlebnisse im digitalen Zeitalter angenehm und vor allem sicher machen. Dafür werden Fahrzeugfunktionen entwickelt, die nicht nur das Fahrzeug selbst betreffen, sondern die auch eine intensive Interaktion mit dessen Umwelt einschließen. Diese hochgradig komplexen und vernetzten Funktionen erfordern schon im frühen Entwicklungsstadium eine Absicherung durch Tests, um den gestellten Anforderungen zu genügen. Doch herkömmliche Verfahren können in den bestehenden Entwicklungsmodellen den notwendigen Testumfang nicht mehr garantieren. Mithilfe von Simulationen lässt sich der heterogene Testprozess anders als der manuelle physische Test deutlich beschleunigen, einfach parallelisieren und die Reproduzierbarkeit von Testszenarien kann sichergestellt werden. Zudem entfällt die Notwendigkeit, mit einem fertigen Produkt testen zu müssen. ...
Sinnvoll ist daher die Idee, auf Co-Simulationen bereits während der Funktionsentwicklung zu setzen. Bei Co-Simulationen werden verschiedene Teilsimulationen gekoppelt und für eine Gesamtsimulation zusammengeführt. Speziell für uns bedeutet das, die Fahrzeugumgebung in verschiedene Detaillierungsstufen zu virtualisieren und mit dem Testobjekt zu verbinden. Anschließend lassen sich Fahrzeugfunktionen innerhalb vielfältiger realistischer Szenarien testen. Dabei können die virtualisierten Funktionen gemäß dem Anwendungsfall in den jeweils am besten geeigneten Software-Tools modelliert und anschließend zusammengefügt werden. Je nach Detaillierungsgrad dieser Modelle kann so bereits eine sehr große Bandbreite von Tests abgedeckt werden.

Doch was tun, wenn die einzelnen Modelle eigentlich nicht darauf ausgelegt sind, miteinander zu kommunizieren? Dann ist eine Co-Simulationsplattform die richtige Wahl. Denn sie kann genau das – die einzelnen Subsysteme (Testobjekt, Testumgebungssimulationen) miteinander verbinden. Der Austausch der Simulationsergebnisse aus den verschiedenen Modellierungswerkzeugen (MATLAB/Simulink, CarMaker, Silver, VEOS etc.) und Viewern erfolgt über ein standardisiertes Kommunikationsprotokoll. Die Co-Simulationsplattform gibt dabei den richtigen Takt vor, sodass alle Simulationen mit einem gemeinsamen Verständnis über die aktuelle Uhrzeit zusammenarbeiten können. Die Simulationen selbst können auf verschiedenen Maschinen (Linux, Windows, Cloud) in Abhängigkeit der benötigten Infrastruktur ausgeführt werden.

Von Vorteil ist, dass die gekapselten Subsysteme testfallspezifisch ausgetauscht und lose wieder gekoppelt werden können. So entsteht ein Co-Simulationssystem, das skaliert und dynamisch arbeiten kann.
Wir setzen unsere Kompetenzen in den unterschiedlichsten Ebenen des Gesamtsystems ein – in Software-Entwicklung, Systemaufbau und Test. Auf diese Weise konstruieren wir für unsere Kundinnen und Kunden vollständige Co-Simulationssysteme, nehmen diese in Betrieb und unterstützen auch bei der fortführenden Integration.

Schon bei der grundlegenden Entscheidung zur passenden Systemarchitektur können wir helfen und entwickeln genau abgestimmte Interfaces für die relevanten Modellierungswerkzeuge der kundenspezifischen Plattformen. Mit ECU-TEST integrieren wir zudem ein modernes Werkzeug zur Testautomatisierung und führen automatisierte Tests der speziellen Co-Simulationsverbünde durch. So lässt sich das reibungslose Zusammenspiel der einzelnen Komponenten koordinieren und sicherstellen.

Bestehende Synergien zwischen diesen einzelnen Bereichen identifizieren wir und führen die gewonnen Erkenntnisse agil in den Entwicklungsprozess zurück. Genaugenommen feilen wir aber kontinuierlich am Gesamtsystem, um es Schritt für Schritt zu verbessern.
Kennzahlen
  • Verteilung über 3 Standorte
  • Zeilen Code: zu viele alle
  • Regelmäßige Webmeetings pro Woche: mindestens 8
  • Favorite Buzzwords: Virtuelles Testen, Co-Simulation
Team
  • 4 SystemService
  • 2 Integratoren
  • 5 Software-Entwickler
  • 1 für alle(s)
  • 1 OKR-Masterin
Technologien/Tools