Hasso-Plattner-Institut20 Jahre HPI
Hasso-Plattner-Institut20 Jahre HPI
  
Login
 

Lena Feinbube

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

Durch die steigende Komplexitiit heutiger Software-Systeme entstehen enorme Verlässlichkeitsher­ausforderuugen. 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 Systemver­haltens mit Verlässlichkeits-und Ausfallursachenmodellen. Basierend auf diesen Modellen wer­den Moglichkeiten 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 Algorith­mus 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 demon­striert: einem Cloud-Verwaltungssystems (OpenStack) und einem eingebetteten Anwendungsszenario fiir Bahn-Software. 
Die fehlerinjektionsgetriebene Software-Entwicklung kann maßgeblich zu dem Verständnis der Verlässlichkeitscharakteristiken beitragen. Sie bildet einen strukturierten Rahmenprozess zur Ver­lässlichkeitsbewertung moderner Softwaresysteme. Das Potenzial der fehlerinjektionsgetriebenen Software-Entwicklung ist mit dieser Arbeit noch nicht vollständig ausgeschöpft und sollte weiter erforscht werden.