Heutzutage enthalten Fahrzeuge viele verschiedene Steuerelemente im Armaturenbrett. Gleichzeitig verfügen sie über ausgereifte Infotainment-Systeme. Funktionen für das vernetzte Fahrzeug (Connected Car), darunter Sprachbefehle, Einparkhilfe und automatisches Bremsen, befanden sich vor wenigen Jahren noch in unerreichbarer Ferne. Unfall-Benachrichtigungen, Geschwindigkeits- und Sicherheitswarnungen sowie die Möglichkeit für den Fahrer, intuitiv mit dem Auto zu interagieren, sind heute Realität.

Moderne Fahrzeuge enthalten eine Vielzahl vernetzter Funktionen, die einen kontinuierlichen Anstieg der Software-Komplexität mit sich bringen. Um Fehler speziell beim autonomen Fahren zu vermeiden, muss die Software hohe Qualitätsmerkmale aufweisen.

Moderne Fahrzeuge enthalten eine Vielzahl vernetzter Funktionen, die einen kontinuierlichen Anstieg der Software-Komplexität mit sich bringen. Um Fehler speziell beim autonomen Fahren zu vermeiden, muss die Software hohe Qualitätsmerkmale aufweisen. Vector Software

Als Google 2014 die Gründung der Open Automotive Alliance (OAA) bekannt gab, erlebte die Initiative für das vernetzte Auto eine erhebliche Dynamik. Die OAA ist eine Gruppe führender Automobilhersteller und Technologiefirmen, die gemeinsam die Vision von sichererer Technologie in Fahrzeugen teilen.

Doch auch die Fahrzeugkäufer sollten den Sicherheitsnutzen dieser neuen Technologie annehmen. Viele Kunden stehen den Möglichkeiten des autonomen Fahrens jedoch noch skeptisch gegenüber, sodass es ihnen schwer fällt, auf die automatisierten Funktionen zu vertrauen. Fahrzeuge haben sich in kurzer Zeit von einfachen mechanischen Geräten hin zu anspruchsvollen computergesteuerten Maschinen entwickelt, bei denen Embedded-Software alle Hauptsysteme kontrolliert. Heute stellt sich die Frage, ob die Autofahrer schon bereit sind, die Kontrolle über das Steuer aus der Hand zu geben und autonomer Fahrzeugtechnologie zu vertrauen.

Eckdaten

Parallel zum ständig steigenden Umfang der Software im Automobil erhöht sich das Risiko von Software-Fehlern. Damit Automobilhersteller das Thema autonomes Fahren von Grund auf richtig angehen und ihren Kunden Vertrauen in die Qualität und Sicherheit der Fahrzeuge vermitteln können, sind bestimmte Spielregeln bei der Software-Entwicklung einzuhalten. Nur so lässt sich erreichen, dass Autofahrer schon bald das Steuer aus der Hand geben.

Sowohl die Verbraucher, als auch die Fahrzeughersteller finden das Potenzial der V2V-Kommunikation (Fahrzeug zu Fahrzeug) und schließlich autonome Fahrzeuge gleichermaßen spannend. Betrachtet man, wie schnell diese Fahrzeuge auf die Straße gebracht werden sollen, stellt sich die Frage, ob ausreichend Informationen über die Qualität des Codes dieser Fahrzeuge vorhanden sind.

Fehlerhafte Software ist noch immer der Grund für viele Probleme in Fahrzeugen. 50 % der Rückrufe erfolgen aufgrund von Software-Fehlern. Die Software in einem durchschnittlichen Auto umfasst zwischen 10 und 20 Millionen Codezeilen. Nimmt man den Durchschnittswert der Embedded-Industrie von fünf bis zehn latenten Fehlern pro Tausend Codezeilen, wird deutlich, dass ein durchschnittliches Auto zwischen 50.000 und 100.000 Fehlern aufweist. Unter Berücksichtigung dieser Statistik benötigen die Automobilhersteller verbesserte Entwicklungsprozesse, die vertrauenswürdige Software hervorbringen und so das Vertrauen der Kunden in die Technologie des vernetzten Fahrzeugs stärken.

Software-Prozessoptimierung

Oberstes Ziel der Prozessoptimierung muss die Qualitätsverbesserung sein. Zur Verbesserung der Qualität bedarf es einer Qualitätskultur, die alle Teammitglieder mit einbezieht. Viel zu oft erfolgt eine Einteilung der Software-Teams in isolierte kleine Gruppen von Anforderungsschreibern, Entwicklern und Testern. Wenn Anforderungen Mehrdeutigkeiten aufweisen, regeln die Entwickler diese Mehrdeutigkeiten durch das Aufstellen von Vermutungen. Tester erstellen Tests mit anderen Annahmen und zu viele Fehler zeigen sich oft erst Monate nach dem Einfügen des Fehler.

Die Testsprache sprechen

Der beste Weg zur Verbesserung der Qualität ist es, Feedback-Schleifen zwischen den Teammitgliedern zu verkürzen und sicherzustellen, dass eine einheitliche Sprache für Teammitglieder bei der Zusammenarbeit gegeben ist. Um technische Anforderungen zu definieren oder Fehler zu beschreiben, ist die menschliche Sprache ungeeignet. Viel besser geeignet ist die Kommunikation über Testfälle.

Anforderungen sollten als Datentabellen vorliegen, die Folgendes beschreiben: Voraussetzungen, zulässige Eingabebereiche, Erwartungswerte für gültige Eingaben, wie die Verarbeitung von Eingaben außerhalb der Bereiche erfolgt und Nachbedingungen sowie ein Testfall.

Codeänderungen sollten die Entwickler nur in Begleitung von Tests akzeptieren, um so den Anforderungen zu entsprechen, die Richtigkeit zu beweisen und vollständige Codeabdeckung der Codeänderung zu ermöglichen.

Fehler sollten von automatisierten Tests beschrieben werden, da diese den Fehler demonstrieren können. Jede andere Möglichkeit zur Definition von Fehlern wird unter den gleichen Mehrdeutigkeiten leiden wie Anforderungen an die menschliche Sprache und somit das Ergebnis zur Folge haben, dass Fehler innerhalb des Teams einen Status, wie zum Beispiel nicht wiederholbar, benötige weitere Informationen oder funktioniert wie vorgesehen, einnimmt.

Eine Methode, bei der sowohl das Testen, als auch QA am Ende des Entwicklungszykluses stattfinden, ist nicht akzeptabel, wenn die Software für das Wohl des Menschen verantwortlich ist. Softwarequalität muss in der Verantwortung aller Teammitglieder liegen.

Fazit

Das Automobil gilt als komplexestes elektronisches Gerät. Es beinhaltet sechs Mal mehr Codezeilen als ein kommerzielles Flugzeug (Boeing 787) und doppelt so viele Programmzeilen wie der Teilchenbeschleuniger LHC (Large Hadron Collider) am Europäischen Kernforschungszentrum CERN bei Genf.

In den entwickelten Ländern verbringt jeder Mensch durchschnittlich mehr als eine Stunde pro Tag im Auto. Da das Wohlergehen so vieler Menschen von einem System im Auto abhängt, müssen die Automobilhersteller Systeme entwickeln, die so robust wie möglich sind. Bei autonom fahrenden Autos ist der Einsatz erheblich höher, da die ersten Versionen unter immenser Beobachtung von Konsumenten und Behörden stehen werden. Die Hersteller, die das Thema autonomes Fahren richtig angehen und den Kunden Vertrauen in die Qualität und Sicherheit ihrer Fahrzeuge vermitteln können, dürften die Branche künftig dominieren.