Infotainment Testing

Sprachbedienung, Smartphone-Kopplung, Web-Radio, Lieblingslieder, Navi – und alles am besten parallel? Kein Problem!

Funktionstests von Infotainment-Systemen sind besonders herausfordernd. Einerseits nimmt der Funktionsumfang unaufhörlich zu. Andererseits fällt den Fahrzeuginsassen während der Bedienung selbst der kleinste Fehler im System auf. Sei es ein Verbindungsabbruch zum Smartphone, der Absturz der Musik-App oder ein Button, der nicht reagiert.

Um den Testaufwand zu beherrschen, haben wir unterschiedliche Engineering-Projekte ins Leben gerufen, die das Infotainment Testing automatisieren.

Testsysteme

Testsysteme von heute für das Infotainment von morgen

 

Weiter- und Neuentwicklungen von Apps im Infotainment-Bereich müssen auch mit älteren Fahrzeugen kompatibel sein, da ein Fahrzeug einen deutlich längeren Produktlebenszyklus als eine App-Version hat. Aufgrund der Vielzahl an eingebetteten Systemen, auf denen die Apps funktionieren müssen, sind neue Funktionalitäten ausgiebig sowohl an Prüfplätzen als auch in realen Fahrzeugen zu testen. Nur so lässt sich ein fehlerfreies Infotainment-System anbieten.

Welches Ziel verfolgt das Projekt?


Vordergründiges Ziel des Projekts ist die Bereitstellung eines autarken Testsystems, das über geeignete Schnittstellen vollautomatisierte Tests neuer Software-Komponenten auf verschiedenen Prüfplätzen ausführt und gleichzeitig mehrere Möglichkeiten zur Auswertung – auch von realen Fahrzeugdaten – bietet. Auf diese Weise erhält die Infotainment-Entwicklung schnell Feedback zu den Neuentwicklungen.

Der gesamte Testprozess von der Planung bis zum Reporting und der Fehlernachverfolgung wird dabei in test.guide dauerhaft nachvollziehbar gespeichert. Ein Testbericht vergleicht alle ausgeführten Tests mit den Anforderungen. Die neue Funktion wird erst freigegeben, wenn sie sowohl die bestehenden Testfälle als auch den neuen Testfall besteht.

Die Herausforderung besteht für uns darin,

  • die Tests auf möglichst vielen (50+) Prüfständen mit unterschiedlichen Umgebungen parallel auszuführen
  • alle Testumfänge für Prüfplätze zu vollautomatisieren
  • eine kontinuierliche Testkette für Apps und Backend zu etablieren
  • Testergebnisse aus Kundenfahrzeugen, Prüfplätzen und Testfahrzeugen in einem System zusammenzuführen

Wie geht ihr beim Testen vor?


Wird eine neue App entwickelt oder eine bestehende erweitert, legt die Entwicklung sowohl einen Testfall für die neue Funktion als auch Randbedingungen fest, die für die Ausführung des Tests benötigt werden. Das Testsystem erkennt sofort den neuen Testfall, der in test.guide gespeichert und in die Ausführungsplanung integriert wird. Werden die Änderungen an der neuen App-Version veröffentlicht, startet das Testsystem automatisch und der Testablauf beginnt.

Mit den von uns entwickelten Schnittstellen und mithilfe der Testanforderungen der App-Entwicklung werden nun die benötigten realen und virtuellen Umgebungen eigenständig gewählt und alle Testfälle, die im Zusammenhang mit dieser App abgelegt wurden, mit ecu.test zur Ausführung gebracht.
Die Komplexität der notwendigen Tests basiert dabei auf den sich permanent ändernden Testobjekten – den Apps, dem Backend sowie den Bedienungsarten der Nutzenden. Daher werden folgende Tests standardmäßig durchgeführt:

  • Bedienungstest: Wie bedienen Nutzende das Infotainment-System?
  • Backend-Test: Kann permanent auf digitale Infrastrukturen/zentrale Server zugegriffen werden?
  • Lasttest: Wie verhalten sich Backend und App bei dauerhafter oder auch unsystematischer Nutzung?
  • Regressionstest: Haben die neuen App-Funktionen Querwirkungen, die in bestehenden Apps zu Fehlern führen?
Tools und Technologien
  • test.guide
  • ecu.test
  • trace.check
  • Jira
  • Confluence
  • Python
  • Groovy/Java

Kennzahlen
  • 6 Mitglieder im Team
  • Verteilung über 2 Standorte
  • FunFact: 500 Songdownloads
    im ConnectedMusic Test

Team
  • 1 Data-Engineer
  • 1 Softwarearchitekt
  • 1 Automotive-Software-Tester
  • 3 Softwareentwickler
  • 2 Informatik-Studenten

CI/CT

Von Null bis Continuous Testing

 

Früher mussten Steuergeräte unterschiedlicher Domänen kaum miteinander kommunizieren. Das hat sich in Zeiten von Infotainment-Systemen stark verändert. Jetzt müssen Steuergeräte verschiedener Hersteller mit unterschiedlicher Software so in das Gesamtsystem integriert werden, dass die Kommunikation über CAN und Ethernet reibungslos erfolgt. Das erfordert einen enormen Testbedarf in alle möglichen Richtungen. Leider lassen sich hunderte spezifizierte Tests und Prüfstände nicht auf einmal automatisieren.

Welches Ziel verfolgt das Projekt?


Unser Ziel im Projekt ist es, eine Infrastruktur (ecu.test, Jenkins, test.guide) bereitzustellen, mit der auch Testende ohne detailliertes Fachwissen Testfälle automatisieren und kontinuierlich ausführen können.

Der Fokus liegt dabei ganz klar auf Continuous Testing, denn nur so lassen sich nicht deterministische Verhalten und sporadisch auftretende Fehlerwirkungen aufspüren. Strategisch setzen wir auf eine teilautomatisierte Testvariante, die dann Stück für Stück um weitere Automatismen ergänzt wird.

Wir sind der Meinung, dass man Probleme erst einmal selbst erleben muss, bevor man konstruktiv an einer Lösung arbeiten kann. Deshalb nutzen wir im täglichen Testprozess ecu.test und führen dabei auch kontinuierlich automatisierte Funktionstests, wie z. B. die Smartphone-Kopplung mit dem Infotainment-System, direkt mithilfe unseres Jenkins Plug-in für ecu.test aus.

Anhand der in ecu.test integrierten Traceanalyse (trace.check) lässt sich zudem leicht überprüfen, ob alle Zwischenschritte auf der Kommunikationsstrecke erreicht wurden und ob der Testdurchlauf fehlerfrei war.

Wie geht ihr beim Testen vor?


Werden beispielsweise zu einem Infotainment-System Nachrichten nicht schnell genug übertragen, führt das zur Überlagerung von Bildinhalten. Somit bestehen erste manuelle Tests darin, die allgemeine Stabilität des Infotainment-Systems zu überprüfen:

  • Laden beim Starten des Motors alle Funktionen im Menü des Infotainment-Bildschirms?
  • Wie lange dauert es, bis das System bereit zur Bedienung ist?
Solche Tests müssen unzählige Male wiederholt werden und sind nach wie vor fester Bestandteil in der Testdurchführung. Mittlerweile lassen sich diese Funktionstests, wie viele andere auch, automatisieren.

Stoßen wir im Testprozess auf Fehler oder werden neue Komponenten für die Testfallautomatisierung benötigt, ist die enge Zusammenarbeit mit unserer Produkt-Entwicklung von großem Vorteil. Denn durch unsere Arbeit in Kundenprojekten und der Nutzung unserer eigenen Tools können wir Einfluss auf die weitere Entwicklung unserer Produkte nehmen.
Tools
  • test.guide
  • ecu.test
  • trace.guide
  • OpenShift
  • Docker
  • Jenkins
  • Python
  • Sphinx
  • Git
Messdatenanalyse
  • CAN/CAN-FD
  • Automotive Ethernet/SomeIP/VIWI
  • Video (Bild- und Texterkennung)
  • Audio
Team
  • 20 IngenieurInnen, InformatikerInnen und NaturwissenschaftlerInnen für:
    • Automatisierte anforderungsbasierte Tests
    • Automatisierte Stabilitätstests
    • Automatisierte Traceanalysen
    • Cloud-Infrastruktur

Video gefällig?

Infotainment Testing mit ecu.test

 

Jede Menge Fragen erreichen uns zum Thema Infotainment, z. B.:

  • Wie analysiert man elektronische Dashboards?
  • Wie analysiert man Multimedia-Funktionen?
  • Wie beginne ich mit der Analyse der HMI?
  • Wie erhalte ich Zugriff auf das zu testende System?
  • ...

Lukas und André zeigen euch in dem nebenstehenden Video das generelle Vorgehen beim Infotainment Testing mit ecu.test.