Techniken für den Integrations- und den Systemtest in der Softwareproduktlinienentwicklung
Final Report Abstract
Die Software-Produktlinienentwicklung hat sich in den letzten Jahren als erfolgreiches Paradigma erwiesen, um systematische und geplante Wiederverwendung von Artefakten in der Software Entwicklung zu erreichen. Die Software-Produktlinienentwicklung zeichnet sich durch die Unterscheidung von zwei Entwicklungsprozessen - der Domänen- und der Applikationsentwicklung - sowie dem expliziten Variabilitätsmanagement aus. Durch die Möglichkeit der systematischen Wiederverwendung von Entwicklungsartefakten und der Variabilität in der Software-Produktlinienentwicklung ergeben sich für das Testen neue Herausforderungen. Durch die Wiederverwendung betreffen Fehler in gemeinsamen Teilen der Software- Produktlinie alle Produkte und verursachen somit hohe Kosten in der Fehlerkorrektur. Eine besondere Herausforderung beim Testen von Software-Produktlinien stellt der Integrationstest dar. Im Integrationstest wird die Interaktionen zwischen den zu integrierenden Komponenten testet. Durch die Variabilität in Software-Produktlinien können sowohl Komponenten als auch die Interaktionen zwischen den Komponenten variabel sein. Diese Variabilität wird von aktuellen Ansätzen nicht berücksichtigt. Daher wurde basierend auf der ScenTED die Testtechnik ScenTED-IT entwickelt. Die Technik ermöglicht die Generierung von wiederverwendbaren Integrationstestfällen in einer frühen Phase der Software-Produktlinienentwicklung unter Berücksichtigung der Variabilität. Durch Bindung der Variabilität können die Integrationstestfälle in der Applikationsentwicklung für kundenspezifische Produkte wiederverwendet werden. Neben dem Test der in der Domänenentwicklung ist die Testausführung in der Applikationsentwicklung eine weitere essentielle Testaktivität in der Produktlinienentwicklung. Testfälle werden bisher für jedes kundenspezifische Produkt erneut ausgeführt. Viele Produkte haben jedoch eine ähnliche Struktur und ein ähnliches Verhalten. Obwohl es diese Ähnlichkeiten in der Struktur und im Verhalten gibt, werden die Testfallergebnisse, die durch die Ausführung der Testfälle entstehen nicht wiederverwendet. Dies führt zu redundanten Testfallausführungen bei denen mit hoher Wahrscheinlichkeit keine neuen Fehler aufgedeckt werden. Zur Vermeidung redundanter Testfallausführungen in der Applikationsentwicklung wurde die Testtechnik ScenTED-DF entwickelt. ScenTED-DF basiert ebenfalls auf ScenTED. Es verwendet die au der Einzelsystementwicklung bekannte kontroll- und datenflussbasierte Testtechnik Defs-Uses-Test und erweitert diesen explizit um Variabilität. Die Technik ermöglicht eine systematische Wiederverwendung von Testfällen und Testergebnissen. Beide Testtechniken nutzen als Testmodell variable Aktivitätsdiagramme und wurden anhand von umfangreichen Fallstudien und Experimenten evaluiert und validiert. Im Rahmen des Forschungsprojekts sind zwei Promotionen und drei Abschluss-/Studienarbeiten im Bereich der Qualitätssicherung für Software-Produktlinien entstanden, die durch mehrere universitäre und außeruniversitäre Preise ausgezeichnet wurden.
Publications
- Integration Testing in Software Product Line Engineering: A Model-Based Technique. In: Dwyer, M.B.; Lopes, A. (Hrsg.) Proceedings Fundamental Approaches to Software Engineering, 10th Intl. Conference, FASE 2007, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2007, Braga, Portugal, March 24 - April 1, 2007, LNCS 4422. Springer, Berlin, Heidelberg, S. 321-335, 2007
Reis, S; Metzger, A.; Pohl, K.
- Generierung von Integrationstestfällen in der Software-Produktlinienentwicklung. Logos Verlag, Berlin, 2008
Reis, S.
- Wiederverwendung von Integrationstestfällen in der Software-Produktlinienentwicklung. Inform. Forsch. Entwickl. 22(4): S. 267-283, 2008
Reis, S.; Pohl, K.
- Avoiding Redundant Testing in Application Engineering. In: Bosch, J.; Lee, J. (Hrsg.) Proceedings of the 14th International Software Product Line Conference 2010, LNCS 6287, Springer, Berlin, Heidelberg, 2010
Stricker, V.; Metzger, A.; Pohl, K.