Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
Login
 

Lena Feinbube

Fault-injection-driven development (fehlerinjektionsgetriebene Software-Entwicklung)

Durch die steigende Komplexität heutiger Software-Systeme entstehen enorme Verlässlichkeitsherausforderungen.

Der riesige Zustandsraum der Systeme und die möglichen Ausfallursachen und -szenarien sind von den Entwickelnden kaum noch zu überblicken. Bestehende Methoden, die Verlässlichkeitseigenschaften von Software-Systemen zu ermitteln, stoßen immer häufiger an ihre Grenzen.

In dieser Arbeit wird ein Software-Entwicklungsprozess vorgeschlagen, in dem die Software-Fehlerinjektion (SFI) das zentrale Mittel der Verlässlichkeitsevaluierung ist. Diese vorgeschlagene fehlerinjektionsgetriebene Software-Entwicklung stützt sich auf die Formalisierung des Systemverhaltens mit Verlässlichkeits- und Ausfallursachenmodellen. Basierend auf diesen Modellen werden Möglichkeiten zur Software-Fehlerinjektion auf verschiedenen Abstraktionsebenen diskutiert, die darauf abzielen, die Fehlertoleranzmechanismen des Systems zu belasten, um so Probleme aufzudecken. In dieser Arbeit werden Werkzeuge zur Automatisierung des Modellierens sowie der Software-Fehlerinjektionsexperimente vorgestellt.

Aus der großen Menge theoretisch möglicher Ausfallursachen wählt ein modellbasierter Algorithmus Software-Fehlerinjektionskampagnen aus, die die Fehlertoleranzmechanismen maximal belasten und zusätzlich eine strukturelle Abdeckung des Systemmodells garantieren. Die Nützlichkeit der hier vorgeschlagenen Techniken wurde anhand von zwei Fallstudien demonstriert: einem Cloud-Verwaltungssystems (OpenStack) und einem eingebetteten Anwendungsszenario für Bahn-Software.

Die fehlerinjektionsgetriebene Software-Entwicklung kann maßgeblich zu dem Verständnis der Verlässlichkeitscharakteristiken beitragen. Sie bildet einen strukturierten Rahmenprozess zur Verlässlichkeitsbewertung moderner Softwaresysteme. Das Potenzial der fehlerinjektionsgetriebenen Software-Entwicklung ist mit dieser Arbeit noch nicht vollständig ausgeschöpft und sollte weiter erforscht werden.