La désintégration de la fusée Ariane 5 37 secondes après le lancement de son voyage inaugural ( vol 501 ) est communément appelée l'un des bogues logiciels les plus chers de l'histoire 1 :
Il a fallu 10 ans et 7 milliards de dollars à l'Agence spatiale européenne pour produire Ariane 5, une fusée géante capable de lancer une paire de satellites de trois tonnes en orbite à chaque lancement et destinée à donner à l'Europe une suprématie écrasante dans le secteur spatial commercial.
Tout ce qu'il a fallu pour faire exploser cette fusée moins d'une minute dans son voyage inaugural en juin dernier, éparpillant des décombres enflammés à travers les marais de mangroves de la Guyane française, était un petit programme informatique essayant de bourrer un nombre 64 bits dans un espace 16 bits.
Un bug, un crash. De toutes les lignes de code négligentes enregistrées dans les annales de l'informatique, celle-ci peut être la plus dévastatrice. Des entretiens avec des experts en fusée et une analyse préparée pour l'agence spatiale, un chemin clair d'une erreur arithmétique à une destruction totale émerge.
Quels changements majeurs la panne du Flight 501 et les enquêtes ultérieures ont-ils inspirés à la recherche de systèmes critiques pour la sécurité et de tests de logiciels?
Je ne cherche pas une explication du bogue lui-même, mais une explication de l'impact historique du bogue, en termes de recherches qui ont été inspirées ou directement liées aux enquêtes sur l'échec. Par exemple, cet article conclut:
Nous avons utilisé l'analyse statique pour:
- vérifier l'initialisation des variables,
- fournir la liste exhaustive des conflits potentiels d'accès aux données pour les variables partagées,
- répertorier de manière exhaustive les erreurs potentielles d'exécution de la sémantique Ada.
À notre connaissance, c'est la première fois que des techniques d'analyse statique à base booléenne et non booléenne sont utilisées pour valider des programmes industriels.
De même, ce document (pdf) note:
Des analyses de programmes statiques basées sur l'interprétation abstraite ont été utilisées pour l'analyse statique du logiciel ADA intégré du lanceur Ariane 5 et de l'ARD. L'analyseur de programme statique vise à la détection automatique de la dé fi nitivité, de la potentialité, de l'impossibilité ou de l'inaccessibilité des erreurs d'exécution telles que les débordements scalaires et à virgule flottante, les erreurs d'index du tableau, les divisions par zéro et les exceptions arithmétiques associées, les variables non initialisées, les courses de données sur structures de données partagées, etc. L'analyseur a pu détecter automatiquement l'erreur de vol Ariane 501. L'analyse statique des logiciels embarqués critiques pour la sécurité (tels que les logiciels avioniques) est très prometteuse .
J'aimerais une explication approfondie de l'impact de cet événement unique sur les approches et les outils de test de logiciels.
1 Le chiffre de 7 milliards de dollars fait probablement référence au coût total du projet Ariane 5, Wikipedia rapporte que l'échec a entraîné une perte de plus de 370 millions de dollars. Un échec encore assez cher mais loin des 7 milliards de dollars.