Testing self-organizing, adaptive systems (TeSOS)
Final Report Abstract
Selbstorganisierende, adaptive Systeme (SOAS) zeichnen sich dadurch aus, dass sie Entscheidungen bezüglich des Verhaltens und der Organisationsstruktur von der Entwurfs- in die Laufzeit verlagern. Sie sind somit in der Lage, sich von schlechten, ungeeigneten oder unerwünschten Zuständen, die durch eine veränderliche Umwelt bedingt sind, mittels Adaptions- und Selbst-Organisationsmechanismen zu erholen. Dies wird durch eine selbständige Rekonfiguration von Agenten oder Gruppen von Agenten und die daraus resultierende Systemanpassung an neue Umweltsituationen ermöglicht. Eine Veränderung der Umwelt kann dabei vom Hinzukommen neuer Aufgaben und Agenten bis zum Wegfall von Fähigkeiten reichen. Das Projekt TeSOS widmete sich dem Testen, d. h. der systematischen Aufdeckung von Fehlern, von SOAS. Klassischerweise liegt ein Fehler vor, wenn das Ist-Verhalten vom Soll-Verhalten abweicht; das Ziel des Testens ist es, solche Fehlerwirkungen nachzuweisen. Die adaptiven und selbstorganisierenden Systemen zugrundeliegenden Mechanismen sind nun wesentlich in das Testvorgehen einzubeziehen, da sie eine Abweichung zwischen gutem, geeignetem oder gewünschtem und tatsächlichem Verhalten registrieren können und in der Lage sind, das System danach so zu rekonfigurieren, dass wieder ein guter, geeigneter oder gewünschter Zustand vorliegt. Dazu baute TeSOS auf dem Architekturprinzip “Corridor Enforcing Infrastructure” (CEI) auf. Diese macht den Raum der Soll-Zustände als Korridor korrekten Verhaltens (“Corridor of Correct Behaviour”, CCB) explizit, der zur Laufzeit überwacht wird und bei Abweichungen Mechanismen zur Wiederherstellung eines erlaubten Zustands auslöst. TeSOS konnte zeigen, dass durch die CEI das Testen von SOAS geradezu standardisiert werden kann, indem die CEI als das grundlegende Testobjekt eingeführt und testbar gemacht wird: Die Funktionalität der einzelnen Agenten in einem SOAS, welche meist durch einfache Regeln charakterisiert ist, kann durch klassische Methoden getestet werden. Für die Adaptivität legt dagegen die CEI klar fest, was eine fehlerhaftes Rekonfigurationverhalten ist und welchen Teil des SOAS die Adaption und Selbstorganisation betreffen, und bietet so die Möglichkeit, auf Rekonfigurationsund Adaptionsfehler zu testen. Die Einschränkungen der Systemzustände zur Beschreibung des Korridors korrekten Verhaltens bilden die Basis für eine Ableitung eines automatischen Testorakels. Ein Ansatz zur Isolation der Rekonfigurationsverfahren führt darüberhinaus auf eine generische modellbasierte Testarchitektur, in der Testfallgenerierung, Testfallausführung und Testfallevaluation zusammengeführt werden und die dazu benutzt werden kann, sowohl das Gesamt-SOAS als auch Systemteile, also Agenten oder Agentgruppen, auf der Basis der CEI zu testen. Das Isolationsinstrument für die Rekonfiguration ist die modellbasierte Simulation der Umwelt des Adaptionsbzw. Selbstorganisationsmechanismus sowie die Simulation der Umwelt der Agenten, die von dem Mechanismus kontrolliert werden. Die Umwelt stellt sich als ein stochastischer Prozess dar, welcher die Eingabe der Tests von Rekonfigurationsverfahren oder Agentenfunktionalität generiert und diskrete oder kontinuierliche Umgebungsvariablen umfasst. Die verschiedenen Umwelttypen auf Agenten-, Agentengruppen- oder Systemebene stellen im Test dann auch das Instrument zur Dekomposition des Gesamtsystems dar: TeSOS hat überraschenderweise gezeigt, dass die Zerlegung des SOAS über variable Systemgrenzen die klassischen Integrationsstufen des Testens auf Komponenten-, Integrations- und Gesamtsystemebenen ersetzt. Auf der anderen Seite demonstriert TeSOS, dass es für das Testen eines SOAS dennoch nicht notwendig ist, dass die CEI bereits zum Entwicklungszeitpunkt verbaut wurde; vielmehr kann sie als Leitprinzip des Testens unter Verwendung der Testarchitektur dienen. Die Simulationen der Systemumgebung stellen auch die Basis für die Ableitung von Testfällen und die Entwicklung von Teststrategien zur Ausführung in der generischen Testarchitektur dar. Die in TeSOS entwickelten Explorationsund Verwertungsstrategien machen auch den Umgang mit großen Zustandsräumen möglich, wie sie typischerweise von der CEI aufgespannt werden und in denen Zustandswechsel und Rekonfigurationen zur Laufzeit wesentlich unterspezifiziert sind. Die Explorationsphase erkundet das Verhalten des zu testenden SOAS für möglichst viele, möglichst diverse Situationen, die Verwertungsphase wählt aus der Explorationsstrategie abgeleitete Testeingaben geeignet aus und evaluiert sie in einer realen Systemumgebung. Die Ergebnisse von TeSOS wurden an fünf SOAS- Fallstudien darunter an einem selbstorganisierenden Produktions- und einem adaptiven Energiesystem gezeigt.
Publications
- An Approach for Isolated Testing of Self-Organization Algorithms. In: Software Engineering for Self-Adaptive Systems III: Assurances. Hrsg. von R. de Lemos, D. Garlan, C. Ghezzi und H. Giese. Lect. Notes Comp. Sci. 9640. Springer, 2017, S. 188–222
B. Eberhardinger, G. Anders, H. Seebach, F. Siefert, A. Knapp und W. Reif
(See online at https://doi.org/10.1007/978-3-319-74183-3_7) - Test Case Selection Strategy for Self-Organization Mechanisms. In: Test, Analyse und Verifkation von Software - gestern, heute, morgen. Hrsg. von A. Spillner, M. Winter und A. Pietschker. dpunkt.verlag, 2017, S. 139–156
B. Eberhardinger, H. Seebach, D. Klumpp und W. Reif
- Toward Adaptive, Self-aware Test Automation. In: IEEE Proc. 12th Intl. Ws. Automation of Software Test. ACM. 2017, S. 34–37
B. Eberhardinger, A. Habermaier und W. Reif
(See online at https://doi.org/10.1109/AST.2017.1) - Applying Deep Learning for Imitating Adaptive Agent Behavior. In: GI Softwaretechnik Trends 38.1 (2018), S. 57–60
A. Reichstaller, B. Eberhardinger, H. Ponsar, A. Knapp und W. Reif
- Risk-based Testing of Self-Adaptive Systems using Run-Time Predictions. In: Proc. 12th Intl. Conf. Self-Adaptive and Self-Organizing Systems. 2018
A. Reichstaller und A. Knapp
(See online at https://doi.org/10.1109/SASO.2018.00019) - Test Suite Reduction for Self-organizing Systems: A Mutation-based Approach. In: Proc. 13th Intl. Ws. Automation of Software Test. ACM. 2018, S. 64–70
A. Reichstaller, A. Knapp, B. Eberhardinger, H. Ponsar und W. Reif
(See online at https://doi.org/10.1145/3194733.3194739)