Richtiges Testen automobiler Steuergeräte-Software Fettnäpfchen vermeiden

Eine Automatisierung der Testdurchführung bringt Vorteile

Je komplexer das zu entwickelnde System ist, je mehr Varianten zu testen sind und je häufiger mit Anforderungsänderungen zu rechnen ist, desto notwendiger ist es, Tests zu automatisieren. Mit der Komplexität des Systems steigt die Anzahl der erforderlichen Testfälle, die bei manueller Durchführung sehr zeitaufwendig wären. Anforderungsänderungen erfordern Regressionstests, die das System nach seiner Modifikation auf Korrektheit prüfen. Eine komplette Neuerstellung der Testspezifikation und manuelles Durchführen wären hier sehr zeitaufwendig.

In einem Projekt, bei dem die Software eines Bordnetzsteuergeräts in einer HiL-Umgebung getestet werden sollte, zeigte sich deutlich der Vorteil der Testautomatisierung. Auch bei eigentlich kleineren Steuerfunktionen wie dem Außenlicht steigerte sich die Anzahl der Testfälle auf ca. 5000 Testsequenzen. Ein manuelles Testen dieser Funktion würde einen extrem hohen Personal- und Zeitaufwand bedeuten. Der Zeitaufwand wurde durch die Automatisierung und die so mögliche Durchführung der Tests im 7×24-Stunden-Batch-Betrieb auf ca. eine Woche reduziert, der Personalaufwand der Testdurchführung beschränkte sich auf das Konfigurieren und Anstoßen der Tests.

Testdokumentation: mehr als nur die Speicherung des Test-Endberichts

Die Dokumentation der Tests stellt eine wichtige, doch oft ungeliebte und daher vernachlässigte Aufgabe dar. Zur Testdokumentation gehören nicht nur der Endbericht mit den Testergebnissen, sondern alle Artefakte, die während der Testaktivitäten entstehen. Dies begründet die Herausforderung der Testdokumentation: Verwaltung aller Testartefakte und damit ihre Strukturierung, Speicherung und Versionierung. Ein häufiger Fehler, der die Qualität der Testaktivitäten beeinträchtigt, ist das Chaos bei der Verwaltung der Artefakte. Daten sind schwer zu finden oder die Release-Stände der Artefakte sind nicht nachzuvollziehen und inkonsistent. Als Lösung für die Probleme sind hier zwei Aspekte zu nennen:

  • Ein Informationsmodell.
  • Ein Versionsmanagement.

Im Gegensatz zu einem Prozessmodell liefert ein Informationsmodell eine statische Sicht auf die Systementwicklung, indem es die Objekte der Entwicklungsartefakte, ihre Attribute und deren Zusammenhänge in Form von Relationen beschreibt. In Entwicklungsprojekten ist man meist auf die Aktivitäten, d.h. auf den Prozess konzentriert und das Informationsmodell wird vernachlässigt. Dieses ist jedoch für die Strukturierung der Artefakte und eine klare Übersicht der Testdokumentation während und am Ende des Entwicklungsprozesses eine unabdingbare Voraussetzung (Bild 2).

Während eines Entwicklungsprojektes entstehen unzählige Versionen der Entwicklungsartefakte – z.B. der Anforderungen, des implementierten Software-Codes und der Testspezifikationen. Eine werkzeuggestützte Versionsverwaltung ist hier notwendig, um die Übersicht über die laufenden Änderungen zu behalten, diese nachvollziehen zu können und Release-Stände eines Projektes zu archivieren.