Varianten im Testprozess Komplexe Embedded-Software-Testszenarien beherrschen
Anbieter zum Thema
Tool-gestützte Tests helfen, bei variantenreichen Embedded-Systemen die Qualität sicherzustellen und so auch die funktionale Sicherheit der Produkte zu gewährleisten.

Um die Entwicklung variantenreicher Produkte effizient und kostengünstig zu bewältigen, greift man in der Softwareentwicklung auf Produktlinien zurück. Produktlinien sind vergleichbar mit den Entwicklungsplattformen im Fahrzeugbau und umfassen mehrere individuelle Ausprägungen eines Softwareprodukts, die jeweils unterschiedliche Anforderungen erfüllen.
Durch gezielte und organisierte Wiederverwendung gemeinsamer Produktartefakte als Basis für unterschiedliche Varianten der Produktlinie können Ressourcen und Entwicklungskosten gespart werden.
Der wesentliche Zweck der Entwicklung von Produktlinien ist es, die Software unterschiedlichen Bedürfnissen anpassen zu können. Die konzeptionelle Entwicklung einer Produktlinie muss zwei wesentliche Aspekte berücksichtigen:
- 1. Die Beschreibung der Variabilität einer Produktlinie
- 2. Die Unterteilung in Domain und Application Engineering
Die Variabilität einer Produktlinie beschreibt die Gesamtheit der Funktionen eines Softwareprodukts, die durch Selektion an unterschiedliche Kundenbedürfnisse angepasst werden können.
Domain Engineering stellt ein Konzept zur systematischen Wiederverwendung von Softwareartefakten in der Entwicklung dar. In der Domain Analyse werden Gemeinsamkeiten und Unterschiede in den entwickelten Systemen identifiziert. Darauf aufbauend können auf der Ebene des Domain-Designs die konstanten und variablen Komponenten einer Produktlinie definiert werden. Im Application Engineering erfolgt nun die Entwicklung der je individuellen Endprodukte durch den Einsatz der entwickelten Softwareartefakte. Es entstehen Produktvarianten mit gemeinsamen und unterschiedlichen Eigenschaften. Diese Eigenschaften werden auch Features genannt. Dabei unterscheidet man zwischen den Basis-Features und den variantenspezifischen Features einer Produktlinie.
Feature-Modelle
Für die Darstellung aller Varianten einer Produktlinie nutzt man sogenannte Feature-Modelle. Die Darstellung des Modells mit seinen Features kann zum Beispiel mit Hilfe einer Baumstruktur erfolgen. Bild 1 zeigt den Auszug eines vereinfachten Feature-Modells. Darin werden Feature-Varianten für die Zugangskontrolle eines Fahrzeugs dargestellt.
Die Elemente in einem Feature-Modell können nach unterschiedlichen Typen, Relationen und Merkmalen unterschieden werden. Feature-Typen unterscheiden einzelne Features anhand bestimmter Merkmale. Hierunter fällt beispielsweise die Unterscheidung in verbindliche Features, die in jeder Produktvariante enthalten sein müssen und optionale Features. Feature-Relationen beschreiben die Art der Beziehung eines Features zu seinen Verzweigungen. So kann die Auswahl eines Features die eines Anderen voraussetzen (requires) oder ausschließen (excludes).
Es kann auch die Auswahl von Features eingeschränkt werden. So lassen sich beispielsweise Grenzwerte für die Anzahl der wählbaren Features aus einer Gruppe von definieren. So ist im dargestellten Feature-Modell nur eine Länder- oder Türkonfiguration pro Produktvariante zulässig. Feature-Merkmale sind etwa Attribute, die Informationen zu einem Feature enthalten wie zum Beispiel Bezeichnungen und Wertebereiche.
Im Software-Entwicklungsprozess kommt den Variationspunkten eine besondere Bedeutung zu. Diese kennzeichnen die Gabelungswege, die die Entstehung neuer Produktvarianten grafisch beschreiben. Semantisch können Feature-Kombinationen durch aussagenlogische Formeln beschrieben werden.
Mit Hilfe eines Feature-Modells können aber nicht nur die verschiedenen Funktionen des zu entwickelnden Systems dargestellt werden, es bietet auch eine Möglichkeit zur Optimierung des Testentwurfs von variantenreichen eingebetteten Systemen.
Variantentest
Da Produktvarianten den Testaufwand deutlich erhöhen, ist es wichtig, eine Möglichkeit zur Verwaltung und Ausführung der daraus resultierenden Testfälle zu haben. ITPower Solutions hat ein solches Konzept für den Variantentest eingebetteter Software entwickelt. Mit Hilfe von Feature-Modellen wurde eine Möglichkeit zur Selektierung von Testfällen für unterschiedliche Produktvarianten geschaffen. Die Selektierung von Testfällen für unterschiedliche Produktvarianten geschieht dabei über die Verknüpfung von Testfällen und Features einer Produktlinie. Die Verknüpfung erfolgt dabei an den Variationspunkten. Hier kann zu jedem Kind-Knoten eines Eltern-Knotens des Feature-Baums ein entsprechendes Testelement spezifiziert werden.
Das Ziel war es, ein Testvorgehen zu definieren, das alle möglichen Features testet, diese mit den Variationspunkten verknüpft und nach der Eingabe von Teststrategiekriterien die geeigneten Testfälle automatisch selektiert.
Die jeweilige Produktvariante wird hierbei über eine aussagenlogische Formel repräsentiert, die jedes Feature durch eine boolesche beschreibt. Der Semantik des aussagenlogischen Modells entspricht demzufolge die Menge aller Feature-Konfigurationen, welche das Feature-Modell zulässt. Bei der Implementierung der Lösung muss natürlich darauf geachtet werden, dem Benutzer keine widersprüchliche Auswahl von Features zu erlauben.
Um eine Variante zu definieren wählt der Benutzer z.B. die Features A1, A2, …, An. Diese würden dann, gemäß den Feature-Typen, -Relationen und -Merkmalen die Features B1, B2, …, Bm implizieren und die Features C1, C2, …, Ck, ausschließen. Die folgende Formel repräsentiert dementsprechend den logischen Abschluss und die ausgewählte Konfiguration:
(A1 ˄ A2 ˄ … ˄ An) ˄ (B1 ˄ B2 ˄ … ˄ Bm) ˄ ̚ (C1 ˅ C2 ˅ … ˅ Ck)
Die grafische Darstellung der Feature-Modelle zur Spezifikation der Varianten als Softwareimplementierung erfolgt in diesem Fall über TreeView-Elemente (siehe Bild 2). Die TreeView-Struktur bietet eine gute Übersichtlichkeit, z.B. durch das Auf-und Zuklappen von Elementen und Gruppierungen, und ermöglicht eine gute Skalierbarkeit. Informationen über die hierarchischen Beziehungen zwischen den Features werden mittels spezieller Symbole und Zeichen in der TreeView-Ansicht dargestellt. Nachträgliche Informationen zu einem Feature, z. B. Feature-Relationen und Attribute können zusätzlich in den dafür vorgesehenen Fenstern eingetragen und angezeigt werden.
Für das Variantenmanagement im Testprozess wird nun die Möglichkeit geschaffen, die Testfälle mit den Features zu verknüpfen. Dies geschieht in diesem Fall über ein zusätzliches Menu, das die Definition von beliebigen Stellen im Testablauf als Variationspunkt und die anschließende Verknüpfung der alternativen Testelemente mit den entsprechenden Features im Feature-Modell ermöglicht. Für die Testdurchführung wählt der Tester eine Variante der Produktlinie aus. Elemente, die nicht zur ausgewählten Konfiguration gehören, müssen entsprechend deaktiviert und gekennzeichnet werden.
Für die Auswahl von Tests und Varianten werden verschiedene Strategien zur Verfügung gestellt. Dies ist wichtig für die automatisierte Erstellung von Testsuiten. Um die Testabdeckung der Features zu steuern, können alternative Kriterien dafür festgelegt werden, wie oft ein einzelnes Feature getestet wird. Mit einer Variantenauswahl kann die im Test zu verwendende Menge an Varianten definiert werden. Die dritte Strategieoption berücksichtigt die Verteilung des Testaufwandes zwischen verschiedenen Varianten, um die Testintensität zwischen ihnen auszugleichen und Features, die bereits ausreichend getestet wurden, überspringen zu können.
Integration in bestehende Testwerkzeuge
Lösungen für den Test variantenreicher Systeme eignen sich besonders für die Integration in vorhandene Testwerkzeuge. Sie setzen damit auf bestehende Funktionalitäten auf und erweitern diese. Mit dem entwickelten Konzept und seiner Implementierung im Testtool ContinoProva wird teilautomatisiertes Testdesign für variantenreiche eingebettete Systeme unterstützt. Dadurch wird der Testentwurf wesentlich vereinfacht, Anpassungen erleichtert und die Erstellung von Testsuiten für den Test ganzer Produktlinien ermöglicht.
So werden komplexe Testszenarien beherrschbar. Die Produktentwicklung kann sich ganz auf die Anforderungen des Marktes konzentrieren ohne sich von Fragen der Qualitätssicherung ausbremsen lassen zu müssen.
Dieser Artikel ist zuerst bei unserem Partnerportal Embedded-Software-Engineering.de erschienen.
Literatur
Pavel Golitcyn: „Automatische Selektierung von Testfällen für variantenreiche eingebettete Systeme“; Berlin 2018
* Sebastian Stritz ist Account-Manager Vertrieb & Marketing bei ITPower Solutions in Berlin. Pavel Golitcyn, M.Sc. ist Entwicklungs- und Testingenieur bei ITPower Solutions
(ID:47413735)