Steuergeräte-Software-Entwicklung Mit Varianten-Management erfolgreich zum Ziel

Teaserbild

Methoden aus dem Varianten-Management sind für die Testspezifikation von großer Bedeutung. Durch eine Erweiterung des CTE XL können Parameter und Formeln für die Testspezifikation verwendet und eine variantenabhängige Ausführung codiert werden. Aus solchen allgemeinen variantenübergreifenden Testspezifikationen lassen sich anschließend ausführbare Testspezifikationen für konkrete Varianten generieren. Diese Vorgehensweise erleichtert nicht nur die Spezifikation und Verwaltung der Testspezifikation, sondern reduziert auch den Aufwand für die Wartung der Testspezifikationen durch bessere Lesbarkeit und Verständlichkeit.

Steuergeräte-Software stellt nicht nur durch ihre zunehmende Komplexität hohe Herausforderungen an die Methoden und Prozesse in der Fahrzeugentwicklung, sondern auch durch ihre Variantenvielfalt: In vielem ähnlich, doch im Detail unterschiedlich. In ihren groben Funktionen verhalten sie sich meist gleich, fahrzeugabhängig sind jedoch ihre Differenzen in vielen Fällen entscheidend. Für die Software-Entwicklung existieren bereits geeignete Konzepte und Technologien, um die Entwicklung von Varianten zu erleichtern, wie die Verwendung von Parametern und Variationspunkten sowie Bibliotheken, Modularisierung und Spezialisierung. Im Bereich des Testens haben sich solche Ansätze allerdings noch nicht durchgesetzt. Zwar gibt es in der standardisierten Testspezifikationssprache TTCN-3 Konzepte hierfür, doch noch kommen zumeist andere Spezifikationsmöglichkeiten zum Einsatz.

Das Fehlen solcher Ansätze nötigt den Entwickler jedoch zur Erstellung einer vollständigen Testspezifikation für jede einzelne Variante und damit zu einer starken Belastung der Ressourcen nebst Fehleranfälligkeit. Konzepte des Varianten-Managements sollten daher auch mehr in der Phase der Testspezifikation Berücksichtigung finden, um den Testprozess zu optimieren. Die Grundidee dabei ist, gemeinsame Merkmale der Testspezifikationen von Produktvarianten zentral zu verwalten und aus ihnen methodisch und werkzeugunterstützt spezielle Testspezifikationen zu konfigurieren. Dieser Artikel kann keine vollständige Lösung für das Testen von Varianten anbieten, vielmehr stellt er dar, wie ein kleiner Baustein einer Lösung – parametrierbare Tests – sich mit Hilfe des weit verbreiteten Testdaten- Editors CTE XL erstellen lässt.

Forderung nach parametrierbaren Testspezifikationen

Eine Testspezifikation enthält eine genaue Beschreibung der auszuführenden Testfälle. Neben den Eingabe- und erwarteten Ausgabedaten sind darin auch die Vorbedingungen beschrieben, die beispielsweise das zu testende System in einen bestimmten Zustand fahren oder auch Restriktionen der Testausführungsumgebung, wie Verzögerungszeiten, beim Senden von Signalen berücksichtigen. Um die Testspe zifikation automatisch auf der Testausführungsumgebung laufen lassen zu können, müssen in ihr konkrete Signalnamen und deren konkrete Werte Verwendung finden (siehe Bild 1).

Weiterhin sind Zeitangaben wie z.B. Wartezeiten bis zur Ausführung des nächsten Testschrittes notwendig. Ohne den Einsatz passender Methoden des Varianten-Managements müsste der Anwender für jede Variante eine eigene Testspezifikation erstellen. Dies würde zu einer Vielzahl von Testartefakten führen, die nicht leicht zu verwalten wäre. Darüber hinaus wären sie aufgrund der Verwendung von konkreten Werten schwer nachvollziehbar und eine Wartung der Testspezifikation somit eine diffizile Angelegenheit. Das Konzept parametrierbarer Testspezifikationen lässt sich hier als ein Baustein zur Lösung einsetzen. Denn Signal-Werte und -Zeiten unterscheiden sich typischerweise von Fahrzeug zu Fahrzeug. Außerdem finden sich fahrzeugabhängige Signal-Werte in vielen Applikationsbereichen – im Energie-Management beispielsweise gibt es unterschiedliche Schwellwerte für die Erkennung einer Ober- oder Unterspannung oder es sind fahrzeugabhängige Helligkeitseinstellungen für das Innenlicht zu realisieren. Allerdings unterscheiden sich die Fahrzeugvarianten aus temporärer Sicht oftmals in ihren Verzögerungs- und Reaktionszeiten.

Die Lastenhefte beschreiben heutzutage Werte und Zeiten bereits als Variablen, die in der Software-Entwicklung auch eine derartige Umsetzung finden. Daher ist es naheliegend, diese auch als Parameter in der Testspezifikation zu verwenden. Beim Übergang von Software-Tests auf den Hardware-in-the-Loop-Stand lässt sich die Software im Verbund mit der Hardware testen. Die Software ist dann meist über einen Bus (CAN, LIN etc.) mit den anderen Steuergeräten und Hardware-Komponenten verbunden. Folglich erfolgen die Eingaben nicht mehr direkt durch die Software, sondern über den jeweiligen Bus. Im Allgemeinen bedeutet dies, dass nicht mehr die Modell- oder C-Code-Variablennamen verwendbar sind, sondern die entsprechenden Klemm- oder Bus- Namen. Anstatt die Testspezifikation mit den speziellen konkreten Werten oder Zeiten zu versehen, sind hier geeignete Parameter für Signalnamen, Werte und Zeiten einzusetzen. Diese lassen sich dann später für eine bestimmte Fahrzeugvariante mit konkreten Werten belegen.