TU Darmstadt / ULB / TUprints

Feature Model-based Software Product Line Testing

Oster, Sebastian (2012)
Feature Model-based Software Product Line Testing.
Technische Universität
Ph.D. Thesis, Primary publication

[img]
Preview
PDF
ClassicThesis.pdf
Copyright Information: CC BY-NC-ND 2.5 Generic - Creative Commons, Attribution, NonCommercial, NoDerivs .

Download (10MB) | Preview
Item Type: Ph.D. Thesis
Type of entry: Primary publication
Title: Feature Model-based Software Product Line Testing
Language: English
Referees: Schürr, Prof. Dr. Andy ; Goltz, Prof. Dr. Ursula
Date: 30 January 2012
Place of Publication: Darmstadt
Date of oral examination: 16 December 2011
Abstract:

Software Product Line (SPL) engineering is a popular approach for the systematic reuse of software artifacts across a very large number of similar products. SPLs are gaining widespread acceptance and various domains already apply SPL engineering successfully to address the well-known needs of the Software Engineering community, such as increasing quality, saving costs for development and maintenance, and decreasing time-to-market. The central aspect of systematic reuse is the concept of variability often leading to an enormous number of possible products In the automotive sector, we are increasingly encountering a situation where a single electronic control unit (ECU) may be instantiated in at least 10,000 different ways, and the software running on a network of more than 50 ECUs in a single car may exist in millions of different configurations. As a result, we are confronted with a world where any instance of a certain brand of car possesses a unique configuration of the embedded software of all its ECUs. At a first glance, SPL engineering seems to result in a major benefit for the automotive sector as well as for other industrial domains, allowing the combination of mass production and product customization. The reverse side of the coin is the challenge to assure the quality of each derivable product of the SPL e.g. via testing activities. Testing all products of an SPL individually is generally not feasible. This thesis contributes an approach to significantly reduce the test effort for SPL testing. Faults are likely to be revealed at execution points where features exchange information with other features or influence one another. Therefore, a criterion for test adequacy is to cover as many interactions among different features as possible, thus, increasing the probability of finding bugs based on feature interaction. We present a novel approach to generate a representative set of products of the SPL required for comprehensive coverage of feature interactions. The features of the feature model are combined in products using a combinatorial strategy assuring a certain degree of feature interaction coverage. For this purpose we introduce a graph transformation-based algorithm to translate the feature model into a binary constraint satisfaction problem and also an algorithm combining constraint solving techniques with a feature combination strategy to generate the representative set of products. A mapping between the feature model and a reusable test model allows for generating test cases for each product automatically. We implemented our approach as a tool chain and applied it to three different industrial SPLs for evaluation purposes. The results suggest that with our approach higher coverage of feature interactions is achieved at a fraction of cost and time when compared with the state-of-the-art approach of testing all derivable products.

Alternative Abstract:
Alternative AbstractLanguage

Software-Produktlinien (SPL)-Engineering ist ein populärer Ansatz für die systematische Wiederverwendung von Software-Artefakten über eine große Menge von sich ähnelnden Produkten. Die industrielle Verwendung von SPLs steigt zunehmend. Eine Vielzahl von verschiedenen Domänen setzen bereits erfolgreich auf SPL Engineering mit der Zielsetzung, die bekannten Software-Engineering- Anforderungen, wie steigende Qualitätsansprüche, Kostenreduzierung für Entwicklung und Wartung und der Verkürzung der Time-to-Market, zu erfüllen. Zentraler Bestandteil der systematischen Wiederverwendung ist das Konzept der Variabilität, welches häufig zu einer enorm hohen Anzahl von möglichen Produkten führt. Im Automobilbereich werden die Entwickler zunehmend mit der Situation konfrontiert, in der ein elektronisches Steuergerät (ECU) bis zu 10.000 verschiedene Konfigurationsmöglichkeiten besitzt. Bei durchschnittlich mehr als 50 ECUs in einem Auto ergeben sich Millionen von möglichen Konfigurationen. Folglich hat bereits jedes Auto bei bestimmten Modellen einiger Automobilhersteller einen individuellen Softwarestand. Auf den ersten Blick scheint das SPL-Engineering einen immensen Vorteil für den Automobilbereich und viele andere Industriezweige zu bringen, da dieser Ansatz die Kombination von Massenproduktion und Produkt- Customizing bietet. Die Kehrseite der Medaille ist die Herausforderung, die Qualität jedes einzelnen Produktes sicherzustellen, z.B. durch Tests. Das individuelle Testen aller Produkte ist in der Regel nicht möglich. Diese Arbeit stellt einen Ansatz zur signifikanten Reduktion des Testaufwands für SPLs vor. Fehler treten erwartungsgemäß dort auf, wo Features Informationen/Daten austauschen oder sich beeinflussen. Die Abdeckung solcher Interaktionen erscheint als geeignetes Kriterium für adäquates Testen, um möglichst viele interaktionsbasierte Fehler zu finden. In dieser Arbeit wird eine Methodik zu Generierung einer repräsentativen Menge von Produkten vorgestellt. Die Features des Featuremodells werden gemäß einer kombinatorischen Test Strategie zu Produkten kombiniert, um einen gewissen Grad an Feature-Interaktionen abzudecken. Dazu wird das Featuremodell durch Graphtransformation in ein binäres Constraint Satisfaction Problem übersetzt, welches dann durch eine Kombination von Constraint Solver und kombinatorischem Testen gelöst wird, um die repräsentative Menge von Produkten zu generieren. Ein Mapping zwischen den Features und einem wiederverwendbaren Testmodell erlaubt die automatische Generierung von produktspezifischen Testfällen für jedes Produkt der SPL. Der gesamte Ansatz wird als Werkzeugkette implementiert und anhand von drei verschiedenen industriellen SPLs evaluiert. Die Ergebnisse zeigen, dass mit diesem Ansatz eine höhere Abdeckung von Fehlern durch das Abdecken von Feature Interaktionen erreicht werden kann. Gleichzeitig werden Kosten und Zeit im Vergleich zum standardmäßigen SPL-Testverfahren, dem Testen einzelner Produkte, reduziert.

German
URN: urn:nbn:de:tuda-tuprints-28817
Classification DDC: 000 Generalities, computers, information > 004 Computer science
600 Technology, medicine, applied sciences > 620 Engineering and machine engineering
Divisions: 18 Department of Electrical Engineering and Information Technology
18 Department of Electrical Engineering and Information Technology > Institute of Computer Engineering > Real-Time Systems
Date Deposited: 14 Feb 2012 12:41
Last Modified: 10 Feb 2023 07:21
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/2881
PPN: 386255261
Export:
Actions (login required)
View Item View Item