Der Zerfall der Ariane 5-Rakete 37 Sekunden nach dem Start auf ihrer Jungfernfahrt ( Flug 501 ) wird allgemein als einer der teuersten Softwarefehler in der Geschichte 1 bezeichnet :
Die Europäische Weltraumorganisation brauchte 10 Jahre und 7 Milliarden US-Dollar, um Ariane 5 zu produzieren, eine Riesenrakete, die bei jedem Start ein Paar Drei-Tonnen-Satelliten in die Umlaufbahn schleudern kann und Europa eine überwältigende Vormachtstellung im kommerziellen Raumfahrtgeschäft verleihen soll.
Alles, was nötig war, um diese Rakete in weniger als einer Minute auf ihrer Jungfernfahrt im vergangenen Juni zu explodieren und feurige Trümmer über die Mangrovensümpfe in Französisch-Guayana zu verteilen, war ein kleines Computerprogramm, das versuchte, eine 64-Bit-Zahl in einen 16-Bit-Raum zu stopfen.
Ein Fehler, ein Absturz. Von allen nachlässigen Codezeilen, die in den Annalen der Informatik aufgezeichnet sind, ist diese möglicherweise die verheerend effizienteste. Aus Interviews mit Raketenexperten und einer für die Weltraumbehörde erstellten Analyse ergibt sich ein klarer Weg von einem Rechenfehler zur totalen Zerstörung.
Welche wesentlichen Änderungen haben der Ausfall des Flight 501 und die anschließenden Untersuchungen zur Erforschung sicherheitskritischer Systeme und Softwaretests angeregt?
Ich suche nicht nach einer Erklärung des Fehlers selbst, sondern nach einer Erklärung der historischen Auswirkungen des Fehlers in Bezug auf Untersuchungen, die von der Untersuchung (en) des Fehlers inspiriert wurden oder in direktem Zusammenhang damit standen. Zum Beispiel kommt dieses Papier zu dem Schluss:
Wir haben statische Analysen verwendet, um:
- Überprüfen Sie die Initialisierung von Variablen.
- Bereitstellung der vollständigen Liste potenzieller Datenzugriffskonflikte für gemeinsam genutzte Variablen;
- Führen Sie die potenziellen Laufzeitfehler aus der Ada-Semantik ausführlich auf.
Nach unserer Kenntnis ist dies das erste Mal, dass boolesche und nicht boolesche statische Analysetechniken zur Validierung industrieller Programme verwendet werden.
In diesem Artikel (pdf) heißt es ebenfalls :
Für die statische Analyse der eingebetteten ADA-Software des Ariane 5-Launchers und der ARD wurden abstrakte interpretationsbasierte statische Programmanalysen verwendet. Der statische Programmanalysator zielt auf die automatische Erkennung der Definitivität, Potentialität, Unmöglichkeit oder Unzugänglichkeit von Laufzeitfehlern wie Skalar- und Fließkommaüberläufen, Array-Indexfehlern, Division durch Null und verwandten arithmetischen Ausnahmen, nicht initialisierten Variablen und Datenrennen ab gemeinsame Datenstrukturen usw. Der Analysator konnte den Flugfehler Ariane 501 automatisch erkennen. Die statische Analyse eingebetteter sicherheitskritischer Software (z. B. Avionik-Software) ist sehr vielversprechend .
Ich würde gerne eine ausführliche Erklärung der Auswirkungen dieses einzelnen Ereignisses auf Softwaretestansätze und -tools erhalten.
1 Die Zahl von 7 Milliarden US-Dollar bezieht sich möglicherweise auf die Gesamtkosten des Ariane-5-Projekts. Wikipedia berichtet, dass der Ausfall zu einem Verlust von mehr als 370 Millionen US-Dollar geführt hat. Immer noch ein ziemlich teurer Fehler, aber bei weitem nicht annähernd die 7-Milliarden-Dollar-Zahl.