Domain-Driven Resilience Testing of Business-Critical Application Systems

URL
Dokumentart: Master Thesis
Institut: Fachbereich Informatik
Sprache: Englisch
Erstellungsjahr: 2024
Publikationsdatum:
Freie Schlagwörter (Deutsch): DDD , Resilienz-Test , Dqualizer , geschäftskritische Anwendungssysteme , Laufzeitqualitätsanalyse
Freie Schlagwörter (Englisch): Domain-Driven-Design , Resilience Engineering , Chaos Engineering , Resilience Testing , Dqualizer
DDC-Sachgruppe: Informatik
BK - Klassifikation: 54.52

Kurzfassung auf Englisch:

Context. Resilience is an increasingly critical runtime quality attribute of businesscritical application systems. Resilience is the ability of a system to withstand disruptions and recover from them within acceptable time, risks, and costs. The dqualizer approach intends to break a feedback cycle between domain and technical experts by automating the translation and execution of runtime quality test specifications. Problem. Resilience requirements typically arise from the domain of an application system. However, domain experts can hardly test the fulfillment of resilience requirements, as highly technical tools are usually necessary. This leads to a complex and error-prone feedback cycle between domain experts, who define resilience requirements, and technical experts, who execute the resilience tests. Objective. This work aims to develop an approach for domain-driven resilience testing by extending the existing dqualizer approach. We break the above-mentioned feedback cycle by implementing and evaluating an automated translation and execution of domain-driven resilience requirement specifications. Moreover, we aim to display the test results to the domain experts in an understandable manner. Method. As our objective is implementing and evaluating a new approach in the dqualizer software, we follow a design science research approach. We identify the most suitable chaos engineering tool to integrate, elicit requirements from a domain story telling workshop with a company expert, and transfer these requirements to an application system for internal evaluation. Furthermore, we compare the languages of the chaos engineering tool and the dqualizer test specifications. Based on this, we implement a test translation and execution process. Besides that, we implement a resilience testing dashboard to enable the presentation of test results to domain experts and technical experts. We quantitatively evaluate our implementation’s coverage to translate and execute potential test configurations. Finally, we conduct semi-structured interviews to examine the applicability of our approach in real companies. Result. This work enables automated domain-driven resilience testing by implementing the translation to and execution of Chaos Toolkit chaos experiments. In doing this, our implementation enables the domain-driven injection of three stimuli: unavailability, failed requests, and delayed responses. We determined that our implementation covers the translation and execution of 42 to 75 percent of potential test specifications definable in an exemplary domain story. For this purpose we created a domain story for an extended version of the LeasingNinja application system. We could support the significance of these values in our interviews. Furthermore, we discovered that our implementation is technically applicable in industrial use cases, while some adaptions would need to be made for the individual applying companies. While the interviews resulted in limited information about the applicability by domain experts, we discovered that the implemented dashboard shows the right information but lacks intuitiveness. Conclusion. We conclude that we successfully implemented an approach to domain-driven resilience testing from a technical perspective. While our implementation accomplished satisfying coverage values and received positive feedback from technical experts, we see potentials in our approach, which need to be implemented before it can be successfully applied in a real use case.

Kurzfassung auf Deutsch:

Kontext. Resilienz ist ein zunehmend wichtiges Laufzeitqualitätsmerkmal von geschäftskritischen Anwendungssystemen. Resilienz ist die Fähigkeit eines Systems, Störungen standzuhalten und sich von ihnen innerhalb von akzeptabler Zeit, Risiken und Kosten zu erholen. Der dqualizer Ansatz zielt darauf ab, einen Feedback-Zyklus zwischen Domänen und technischen Experten zu durchbrechen, indem er die Übersetzung und Ausführung von Testspezifikationen für die Laufzeitqualität automatisiert. Problem. Resilienzanforderungen ergeben sich typischerweise aus der Domäne eines Anwendungssystems. Fachexperten können die Erfüllung von Resilienzanforderungen jedoch kaum testen, da in der Regel hochtechnische Werkzeuge erforderlich sind. Dies führt zu einem komplexen und fehleranfälligen Feedback-Zyklus zwischen Fachexperten, die Resilienzanforderungen definieren, und technischen Experten, die die Resilienztests durchführen. Zielsetzung. Diese Arbeit zielt darauf ab, einen Ansatz für domänen-basierte Resilienztests zu entwickeln, indem der bestehende dqualizer-Ansatz erweitert wird. Wir durchbrechen den erwähnten Feedback-Zyklus, indem wir eine automatisierte Übersetzung und Ausführung von domänen-basierten Resilienz-Anforderungsspezifikationen implementieren und evaluieren. Darüber hinaus ist es Zielsetzung, die Testergebnisse für Domänenexperten verständlich darzustellen. Methode. Da unser Ziel darin besteht, einen neuen Ansatz in die dqualizer -Software zu integrieren und zu evaluieren, verfolgen wir die Design Science Research Methodologie. Wir identifizieren das am besten geeignete Chaos-Engineering-Tool für eine Integration, erheben Anforderungen aus einem industriellen Domain-Story-Telling-Workshop und übertragen diese Anforderungen auf ein Anwendungssystem zur internen Evaluierung. Weiterhin vergleichen wir die Sprachen des Chaos-Enginnering-Tools und der dqualizer - Testspezifikationen. Auf dieser Grundlage implementieren wir einen Testübersetzungs und Ausführungsprozess. Darüber hinaus implementieren wir ein Dashboard für die Darstellung der Testergebnisse, um eine für Domänenexperten verständliche Präsentation der Ergebnisse zu ermöglichen. Wir bewerten quantitativ den Abdeckungsgrad unserer Implementierung, hinsichtlich der Übersetzung und Ausführung von potenziellen Testkonfigurationen. Schließlich führen wir semi-strukturierte Interviews durch, um die Anwendbarkeit unseres Ansatzes in realen Unternehmen zu untersuchen. Ergebnis. Unsere Software ermöglicht automatisiertes domänen-basiertes Resilienz-Testen durch eine Übersetzung in und die Ausführung von Chaos-Toolkit Chaos-Experimenten. Dabei ermöglicht unsere Implementierung die domänen-basierte Injektion von drei Stimuli: Nichtverfügbarkeit, fehlgeschlagene Anfragen und verzögerte Antworten. Wir haben festgestellt, dass unsere Implementierung der Testübersetzung und -ausführung 42 bis 75 Prozent der potenziellen Testspezifikationen abdeckt, die in einer beispielhaften Domain Story definierbar sind. Zu diesem Zweck haben wir eine Domain Story für eine erweiterte Version des LeasingNinja-Anwendungssystems erstellt. Die Aussagekraft der Abdeckungswerte konnten wir in unseren Interviews unterstützen. Darüber hinaus haben wir festgestellt, dass unsere Implementierung in industriellen Anwendungsfällen technisch anwendbar ist, wobei für die einzelnen anwendenden Unternehmen wenige Anpassungen vorgenommen werden müssten. Während die Interviews nur begrenzte Informationen über die Anwendbarkeit durch Domänenexperten ergaben, stellten wir fest, dass das implementierte Dashboard zwar die richtigen Informationen anzeigt aber zu schwer verständlich ist. Fazit. Wir sind zu dem Schluss gekommen, dass wir aus technischer Sicht erfolgreich einen Ansatz für domänen-basiertes Resilienztesten implementiert haben. Unsere Implementierung erreichte zufriedenstellende Abdeckungswerte und erhielt positives Feedback von technischen Experten. Weiterhin sehen wir noch Potenziale die umgesetzt werden sollten, um eine erfolgreiche Anwendung des Ansatzes in einem realen Anwendungsfall zu ermöglichen.

Hinweis zum Urherberrecht

Für Dokumente, die in elektronischer Form über Datenenetze angeboten werden, gilt uneingeschränkt das Urheberrechtsgesetz (UrhG). Insbesondere gilt:

Einzelne Vervielfältigungen, z.B. Kopien und Ausdrucke, dürfen nur zum privaten und sonstigen eigenen Gebrauch angefertigt werden (Paragraph 53 Urheberrecht). Die Herstellung und Verbreitung von weiteren Reproduktionen ist nur mit ausdrücklicher Genehmigung des Urhebers gestattet.

Der Benutzer ist für die Einhaltung der Rechtsvorschriften selbst verantwortlich und kann bei Mißbrauch haftbar gemacht werden.