Sie sind hier: HomeMobile Solutions

Connected Car: Vernetztes Fahren funktioniert nur mit zuverlässiger Software

Die Vernetzung von Fahrzeugen untereinander und mit ihrer Umgebung setzt sich schrittweise durch. In zwei Jahren sollen es schon über zwölf Millionen auf deutschen Straßen unterwegs sein. Um eine hohe Softwarequalität bei der Kommunikation sicherzustellen, bedarf es jedoch umfangreicher Tests.

Connected Car Bildquelle: © cheskyw - 123RF

Elektronische Assistenten sollen das Autofahren angenehmer und sicherer machen. Passive Systeme wirken ab dem Zeitpunkt einer Kollision, aktive sollen helfen, Unfälle zu vermeiden. Für mehr Komfort sorgen Funktionen wie Abstandstempomat, Antiblockiersystem, elektronische Stabilitätskontrolle, Traktionskontrolle, Notbremsassistent sowie Fahrbahn- und Umfelderkennung. Viele dieser technischen Hilfen sind auf Sensoren angewiesen, die in Echtzeit das Geschehen in der Umgebung eines Fahrzeugs erkennen und den Fahrweg sowie die Geschwindigkeit abhängig davon entsprechend anpassen.

Auf einen Blick: die zentralen Bestandteile beim Risiko- und Anforderungs-basierten Testen. Bildquelle: © CGI

Auf einen Blick: die zentralen Bestandteile beim Risiko- und Anforderungs-basierten Testen.

Softwarequalität im Connected Car gewährleisten

Die in den Kommunikationsprozessen des Ecosystems Connected Car – Backend-Server, OBUs, Displays – eingesetzte Software muss höchsten Sicherheits- und Qualitätsansprüchen genügen. Die gesamte Software rund um Assistenzsysteme und teilautonomes Fahren bedürfen umfangreicher Testaktivitäten, denn die Fahrer erwarten ein zuverlässiges Funktionieren in allen Situationen. Arbeitet die Embedded Software der automobilen Services nicht mit den umliegenden Systemen erwartungsgemäß zusammen, hat der Fahrzeughersteller mit massiven Imageverlusten zu kämpfen.

Die Qualitätssicherung der Fahrzeugkommunikationssoftware erfolgt daher parallel mit der Fahrzeugentwicklung. In diesem Umfeld arbeiten viele Hersteller mit IT-Dienstleistern wie CGI zusammen. Zum Einsatz kommen dabei innovative Verfahren wie Hardware-in-the-Loop (HIL) oder Software-in-the-Loop (SIL). Um die Hardware- und Software-Integration von Komponenten und Teilsystemen zu testen, wird kein fertiges Fahrzeug benötigt. Bei HIL genügen Teilkomponenten und SIL kommt ohne Fahrzeughardware aus. Entwicklungsbegleitende, vollständig automatisierte Tests stellen kontinuierlich die Release-Fähigkeit der Software fest. Damit kann die Stabilität einer Anwendung viel öfter und vor allem früher im Entwicklungsprozess beurteilt werden, sodass potenzielle Fehler schneller und häufiger erkannt werden.

CGI setzt in diesem Umfeld auf Risiko- und Anforderungs-basiertes Testen (Risk- and Requirements-based Testing, RRBT). Dazu wird die Software funktional untergliedert und für jedes Teilprodukt erfolgt eine Risikobewertung im Hinblick auf die Einsatzszenarien. Bei der Einbindung in die Build-Umgebung gilt das Prinzip des Failfast-Ansatzes, bei dem ein Fehlschlag dazu führt, dass die weiteren Prozess-Schritte nicht mehr ausgeführt werden. Das Gesamtrisiko ergibt sich aus dem Produkt der Fehler-Eintrittswahrscheinlichkeit und den zu erwartenden Auswirkungen des Fehlers. Für beide Größen sind geeignete Kriterien zu definieren. Durch eine Skalierung und Gewichtung erfolgt eine Quantifizierung. Als Ergebnis der Risikobewertung lässt sich jeder Softwarebaustein einer Risikoklasse, beispielsweise hoch, mittel, niedrig, zuordnen.

Eine weitere wichtige Randbedingung erfolgreicher Testautomatisierung ist die Organisation der Projektteams. Die Erfahrung zeigt, dass cross-funktionale Teams, die alle Bereiche wie Test, Softwareentwicklung und Release-Management behandeln, die beste Lösung sind. Bessere Kommunikation und Zusammenarbeit sowie eine gleichmäßigere Wissensverteilung unter den Mitarbeitern sind die Folge. Kurze Wege und regelmäßiger Austausch vermeiden zeitintensive Kommunikationsschleifen zwischen Bug-Eröffnung, Test-Verifizierung und Bug-Behebung. Daher ist es beim Beginn des Projekts empfehlenswert, eine gemeinsame Arbeitsgrundlage mit einem einheitlichen Vorgehensmodell wie Scrum oder Kanban sowohl für die Entwicklung als auch das Testen zu finden.

Fazit

Moderne Technologien wie agile Entwicklung, Continuous Delivery und DevOps sind nach Aussage aller Befragten das Mittel zum Zweck, um Software kontinuierlich und automatisiert zu testen und bereitzustellen – und dabei immer für die bestmögliche Qualität zu sorgen. Ein Großteil von Unternehmen halten den parallelen Einsatz agiler Entwicklung und Continuous Delivery für die beste Lösung, um die einzelnen Schritte im Software-Entwicklungs-Lebenszyklus effektiv zu verzahnen.

Aber nicht jeder Automatisierungsgrad ist für alle Projekte sinnvoll, organisatorische Rahmenbedingungen müssen bei der Entscheidung berücksichtigt werden. Unternehmen sollten aber auf jeden Fall ein automatisiertes Deployment anstreben. Damit kann sich das Projektteam auf die Kernaufgabe der Anwendungsentwicklung konzentrieren. Die manuelle Bereitstellung von Test- und Produktivsystemen lenkt von der Hauptsache ab, ist im Nachhinein schwer nachvollziehbar und nicht wiederholbar, meist schlecht dokumentiert und somit nicht effizient genug. Schnelle Feedback-Zyklen und definierte organisatorische Zuständigkeiten sind nicht zuletzt auf dem Weg zu einem erfolgreichen Continuous-Deployment-Prozess unverzichtbar.

Peter Gitzel ist Engagement Manager bei CGI