En tant que programmeur, des bugs, on en produit tous ! Mais la différence entre un bon et un moins bon développeur, c’est justement de pouvoir détecter et corriger le bug le plus tôt possible. Car plus un bug est découvert tôt, moins il coûtera cher à réparer.
Pour vous prouvez cette théorie, voici l’histoire d’un bug informatique, mais pas n’importe lequel, il s’agit du bug le plus cher de l’histoire.
Le 4 juin 1996, le vol 501 de la nouvelle fusée Ariane 5 s’est soldé par une explosion en plein vol, 36,7 secondes seulement après le décollage. Sauf que cette impressionnante explosion ne fait pas suite à un problème matériel.
En effet, il s’agit en fait d’un simple dépassement d’entier ! Le bug a eu lieu dans le système d’auto pilotage, ce système est composé entre autres d’accéléromètres et de gyroscopes qui mesurent en permanence les mouvements effectués par la fusée.
Sauf que l’une des variables qui calcule l’accélération horizontale est codée sur 8 bits (256 valeurs possibles). Or sur Ariane 4, le modèle précédent, cette valeur avait pour maximum 64, du coup aucun problème pour le coder en 8 bits, mais sur Ariane 5, beaucoup plus puissante, cette variable peut atteindre 300 ! Le problème, c’est que sur 8 bits, la variable est passée à 256, puis non pas à 257, mais à 0, c’est ce que l’on appelle le passage aux pôles. De fait, au lieu d’avoir une grande valeur, la variable d’accélération horizontale était minime pour ce moment du vol.
Le logiciel ne comprenant pas cette brusque décélération erronée décida, par mesure de sécurité, l’autodestruction de la fusée et des 4 sondes de la mission Cluster. Coût du bug 370 millions de dollars, un record absolu en matière de bug logiciel. Erreur qui n’aurait coûté que quelques centaines d’euros s’il elle avait été détectée lors des premiers tests.
D’autant que lors de l’enquête, un lancement d’Ariane 5 en simulateur a conduit au même phénomène, malheureusement pour les ingénieurs de l’époque, les variations de cette valeur n’avaient pas été vérifiées avant le vrai lancement inaugural.
Morale de l’histoire, les tests c’est très important !
Pingback: Revue de Steph #139