Rekonfigurierbare Software-Systeme: Spezifikation und Testfallgenerierung

Abstract

Hochkonfigurierbare Software wird heutzutage in vielen modernen Anwendungsdomänen eingesetzt, um immer stärker individualisierte Anforderungen bedienen zu können. Eine Schlüsseltechnologie zum Umgang mit konfigurierbarer Software ist Software-Produktlinienentwicklung, bei der eine Software-Familie, bestehend aus ähnlichen Produkten, entwickelt wird. Die Variabilität der Funktionalität der Produkte wird dabei in Features gekapselt, welche die für Kunden sichtbaren Konfigurationsoptionen einer Software-Produktlinie (SPL) darstellen. Moderne Software-Systeme müssen jedoch nicht nur hochkonfigurierbar sein, sondern auch unter sich kontinuierlich ändernden Bedingungen, wie wechselnden Anforderungen, funktionieren. Beispielsweise müssen Produktivsysteme aus der Automatisierungstechnik immer flexibler werden, um die Anforderungen neuer Produktionsmethoden im Industrie-4.0-Kontext zu erfüllen. Eine Erweiterung von SPLs zur Modellierung solcher individuell konfigurierbaren, laufzeitadaptiven Systeme mit der Fähigkeit der Rekonfiguration zur Laufzeit sind dynamische Software-Produktlinien (DSPL). Speziell im Kontext von missions- und sicherheitskritischen Systemen erfordert das Design zuverlässiger DSPLs eine präzise Spezifikation des funktionalen und des Rekonfigurationsverhaltens. Aktuellen Arbeiten zur Spezifikation von DSPLs fehlt es jedoch an Möglichkeiten, um komplexe Restriktionen auf Konfigurationsparametern sowie entsprechenden Rekonfigurationsoptionen präzise formulieren zu können. Weiterhin ist eine umfassende Qualitätssicherung von DSPLs mit Fokus auf deren Rekonfigurationsverhalten erforderlich, um ein Fehlverhalten sicherheitskritischer DSPLs möglichst auszuschließen. In der Praxis ist das Testen die etablierteste und am besten skalierende Qualitätssicherungstechnik. Jedoch beschreiben aktuelle Arbeiten zum Testen von DSPLs im Allgemeinen Test-Frameworks, die das Vorhandensein einer initialen, manuell erstellen Test-Suite voraussetzen, aber die Erstellung dieser Test-Suiten außer Acht lassen. In dieser Arbeit stellen wir einen ganzheitlichen Ansatz zur Spezifikation und Validierung von DSPLs sowie zur automatisierten Generierung von Testfällen für DSPLs vor. Dabei werden existierende Spezifikationsansätze für DSPLs dahingehend erweitert, dass Features in einem flexiblen stufenweisen Konfigurationsprozess mit multiplen Bindungszeiten konfiguriert werden können und logische sowie temporale Abhängigkeiten zwischen Features durch komplexe Bindungszeitrestriktionen präzise ausgedrückt werden können. Darauf aufbauend werden automatisierte Validierungsansätze für DSPL-Spezifikationen vorgestellt, welche essentielle Validitätseigenschaften von stufenweisen Konfigurationsprozessen mit komplexen Bindungszeitrestriktionen sicherstellen. Weiterhin wird ein Ansatz zur effizienten Test-Suite-Generierung mit Fokus auf dem Rekonfigurationsverhalten von DSPLs präsentiert. Da Testgenerierung aufgrund wiederholter berechnungsintensiver Erreichbarkeitsanalysen für verschiedene Testziele gemäß einem Abdeckungskriterium schon für einzelne Produkte ein schweres Problem darstellt, ist es das Ziel die Wiederverwendbarkeit von Ergebnissen zwischen den Erreichbarkeitsanalysen zu erhöhen. Hierfür werden zuerst existierende Model-Checker-basierte Testgenerierungsansätze mit aktuellen Techniken aus dem Bereich Multi-Property-Checking zur Erhöhung der Wiederverwendung von Erreichbarkeitsanalyseergebnissen zur Abdeckung mehrerer Testziele kombiniert. Dieser Ansatz wird um die Möglichkeit erweitert, Testfälle für ganze Software-Familien zu erstellen und dadurch Erreichbarkeitsanalyseergebnisse zwischen Produkten wiederzuverwenden. Zum Schluss wird der Ansatz so erweitert, dass bei der Testgenerierung das Rekonfigurationsverhalten von DSPLs mitberücksichtigt wird. Die in dieser Arbeit vorgestellten Konzepte werden anhand von Beispielen aus der Praxis motiviert und illustriert sowie auf Basis prototypischer Implementierungen evaluiert

    Similar works