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

Eine gute Testplanung ist das A und O

Zu Projektbeginn ist die Testplanung von großer Bedeutung. Diese Aufgabe unterteilt sich in folgende Schritte:

  • Organisatorische Planung (Ressourcenplanung).
  • Technische Planung (Teststrategie).

Man muss häufig feststellen, dass gerade die Planung der Ressourcen von Personal, Zeit und Tools diverse Fettnäpfchen enthält. Werden die Kapazitäten der Mitarbeiter zu knapp kalkuliert, können nicht alle Testaufgaben abgedeckt werden. Oftmals sind auch keine gesonderten Mitarbeiter für die Testaufgaben designiert. Entwickler werden mit der Zusatzaufgabe des Testens betraut, so dass sie ihre eigenen Ergebnisse testen müssen. Ein objektives Testen ist auf diese Weise nicht möglich.

Zur Testplanung gehört ebenfalls die Festlegung der Rollen und Verantwortlichkeiten. Eine unklare Definition führt zu undurchschaubaren Kommunikationswegen und unverständlichen Entscheidungsfindungen. In psychischer Hinsicht kann sie sogar zu Verwirrung und eventuell Motivationsverlust unter den Mitarbeitern führen.

Idealerweise beginnt das Testen mit der Phase der Testspezifikation frühzeitig, d.h, bereits parallel zur Entwicklung. Insbesondere bei Systemtests wird anforderungsbasiert getestet, so dass die Testfälle schon bei Vorliegen der Anforderungen definiert werden können. In Praxisprojekten wird jedoch häufig erst am Ende der Entwicklung mit den Testaktivitäten begonnen. Terminüberschreitungen der vorhergehenden Phasen gehen dann auf Kosten des Testens. Weiterhin führen zeitliche Engpässe oft zu einem ungeplanten Ende der Tests. Statt sinnvoller Überdeckungsmaße, z.B. die Anforderungsüberdeckung bei Systemtests, dient dann die Deadline der Terminabgabe als Testabbruchkriterium.

Die technische Planung zielt auf die Definition einer zweckmäßigen Teststrategie ab. Es wird die Frage beantwortet, welche Testobjekte mit welchen Methoden in welchen Testumgebungen wie intensiv getestet werden. Eine fehlende oder unklare Teststrategie und unzureichende Kenntnis über Testmethoden stellen hier die Fallen dar. Testspezifikationen sind kein Zufallsprodukt, sondern ein Ergebnis systematischer Herangehensweisen.

Auf die Testplanung folgt die Testspezifikation. Um aus den Testergebnissen objektive Aussagen über die Qualität des Testobjekts ableiten zu können, müssen Testfälle auf der Basis der Systemanforderungen definiert werden. Nur auf diese Weise kann die korrekte Umsetzung der Anforderungen unabhängig von der Systementwicklung und -implementierung geprüft werden. Ein Fettnäpfchen in dieser Phase sind fehlende Verbindungen zu den Anforderungen. Dieser Umstand erschwert die Auswertung der Testabdeckung und vor allem auch die Rückverfolgung der Tests zu den Anforderungen. Insbesondere bei Anforderungsänderungen können bei fehlenden Verbindungen die davon betroffenen Tests nur schwer identifiziert werden. Die Verlinkung der Tests zu den Anforderungen sollte möglichst werkzeugtechnisch unterstützt werden.

Ein weiteres Problem in realen Projekten stellt die systematische Herangehensweise bei der Testfallermittlung dar; oftmals fehlen passende Methoden. Für Steuerungen, also offene Regelstrecken, eignet sich z.B. die Klassifikationsbaummethode, die werkzeugtechnisch durch CTE XL unterstützt wird [3]. Bei regelungsintensiven Systemen, z.B. in den Bereichen Fahrdynamik, Energie- oder Motormanagement, sollte die Spezifikation von reaktiven Testfällen möglich sein, deren Ablauf abhängig vom aktuellen Verhalten des Testobjekts definiert wird. Diese berücksichtigen den geschlossenen Regelkreis, bei dem die Ausgänge wieder in den Kreis zurückgeführt werden. Tests prüfen hier meist das Erreichen und Verlassen definierter Zustände und erfordern besondere Methoden der Spezifikation wie das Time Partition Testing (unterstützt durch das Werkzeug TPT [4]).