stepwise AG | Weltpoststrasse 5 | 3015 Bern | info@stepwise.ch

Software-Fehler und ihre möglichen Auswirkungen

Völlig fehlerfreie Software gibt es praktisch nicht. Es ist einfach nicht möglich, jeden einzelnen bestehenden oder potentiellen Fehler in einem komplexen Software-Programm zu finden und zu beheben.

Wie umfangreich getestet werden sollte, hängt daher stark von den möglichen Auswirkungen eines Fehlers ab. Und dazu ist es erst einmal wichtig, das Einsatzumfeld der Software-Lösung zu betrachten und zu fragen: «Was ist das maximal mögliche Schadenausmass, wenn das Programm nicht das tut, was es soll?»

Am schwerwiegendsten sind natürlich Softwarefehler oder Systemausfälle, die sich potentiell direkt auf Leib und Leben auswirken könnten. Es liegt auf der Hand, dass in einem solchen Einsatzumfeld viel intensiver und umfangreicher getestet, geprüft, validiert und auditiert werden muss. Die beiden nachfolgenden Beispiele illustrieren die möglichen Konsequenzen eines Software-Fehlers:

2019:
Ein Fehler in der Software zur Verbesserung der Flugsteuerung hat wohl zu zwei Abstürzen des Flugzeugtyps Boeing 737 MAX geführt. 346 Menschen kamen dabei ums Leben.
Quelle: Elektronikpraxis Vogel.de «Tod durch Software – Kein Patch kann fatale Fehler wieder richten»

2021:
In mehreren Kantonen war die Notfall-Telefonnummer wegen einer ausgefallenen Netzwerk-Komponente nicht erreichbar. Auch hier sind die möglichen Folgen schwerwiegend, wenn just zu diesem Zeitpunkt akut Hilfe benötigt wird.
Quelle: NZZ.ch «Notfallnummern unerreichbar: Störungen in mehreren Kantonen»

Natürlich haben Software-Fehler nicht immer derart gravierende Auswirkungen auf Leib und Leben. Dennoch können sie für ein Unternehmen zu beträchtlichen finanziellen Einbussen oder Reputationsschäden führen.

In einer Teststrategie sollte daher für jeden neuen Anwendungsfall definiert werden, wie hoch die Eintrittswahrscheinlichkeit einer Störung ist und welches Schadenausmass diese zur Folge haben könnte. Mit diesem Wissen können kritische Funktionen identifiziert und in der Folge priorisiert und vertieft getestet werden. So können auch Risikomitigierungen vorgenommen werden, indem beispielsweise kritische Komponenten redundant und somit ausfallsicher ausgestaltet werden. Tritt dennoch ein Fehler auf bei einer eher seltenen und weniger wichtigen Funktion, kann dieser auch noch mit einem Bugfix im Rahmen eines nächsten Releases behoben werden.

 

Bildquelle: Shutterstock

Mehr aktuelle Meldungen