Histoire de bugs
Laurent BOCQUET, CNAM 2007
Avant-propos
Le type de bug (buffer overflow, division par zéro, etc.) et ses coûts (perte sèche, correction, perte commerciale, etc.) sont rarement dévoilés.
C’est donc par ordre chronologique que je me propose de vous présenter cette « Histoire des bugs célèbres »…
Laurent BOCQUET, CNAM 2007
Sommaire
Conclusion
L’après 2000
Les années 80-90
Les années 60-70
Introduction
Laurent BOCQUET, CNAM 2007
Introduction
Un bug est une anomalie dans un programme informatique, qui l’empêche de fonctionner correctement.
Les conséquences peuvent être bénignes (comme un défaut d’affichage) à gravissimes (mort d’homme).
Laurent BOCQUET, CNAM 2007
Laurent BOCQUET, CNAM 2007
1945 : L’Histoire commence
Une panne sur le Mark II de l’US Navy en 1945 fut produite par une mite ayant empêché la fermeture d’un relais.
L’insecte (bug) a été scotché dans le journal de bord de l’ordinateur par Grace Hopper. Il est ainsi connu comme le premier bug…
Thomas Edison…
Laurent BOCQUET, CNAM 2007
1962 : La sonde Mariner I
22 juillet 1962 : La fusée qui portait la sonde Vénus Mariner I a dévié de sa trajectoire. Elle a du être détruite en vol.
Cause : un trait d’union oublié dans un programme fortran.
Coûts : Un programme de plus de 80 millions d’euros. Aucune perte humaine
Aurait pu être évité : relecture, test unitaire
Laurent BOCQUET, CNAM 2007
1969 : Un grand pas…
20 juillet 1969 : Alors que Neil Armstrong s’apprête à l’alunissage, des alarmes retentissent dans le LEM.
Cause : des aides au debugage “oubliées”.
Coûts : Une grosse frayeur pour Armstrong Aurait pu mener au crash du Lem
Aurait pu être évité : c’est délicat…
Laurent BOCQUET, CNAM 2007
1982 : Quand l’arrondi n’a pas la cote
1982 : le Vancouver stock exchange introduit un nouvel indice à la valeur nominale de Mille (1000,000). L'indice est tronqué après la 3ème décimale.
Après 22 mois sa valeur atteint 524,811 alors que la valeur correcte est 1098,811
Cause : erreur d’arrondi Coût : inconnuAurait pu être évité : tests aux limites
Laurent BOCQUET, CNAM 2007
1983 : Y a-t-il un frigo dans l’avion ?
Août 1983 : un Boeing 767 de la compagnie United Airlines est congelé lors de son approche de Denver .
Cause : l’ordinateur d’économie de combustible est trop performant, il sur-refroidit les moteurs !
Cause : non révélée Coût : aucune victimeAurait pu être évité : test d’endurance
Laurent BOCQUET, CNAM 2007
1984 : Bons baisers de Russie
Décembre 1984 : Un missile de test russe doit atteindre l’Arctique.
Le missile fait une erreur de 180° et frappe Hamburg (Allemagne).
Cause : arithmétiqueCoûts : aucune victimeAurait pu être évité : tests aux limites
Laurent BOCQUET, CNAM 2007
1985 : Le bug de la mort qui tue
1985-86 : la machine Therac 25 chargée de traiter des patients atteints du cancer leur a administré une dose mortelle de radiations.
Lorsque le technicien tapait trop vite, le logiciel n’avait pas le temps de suivre et envoyait une très forte dose.
Cause : hardware buffer overflowCoûts : 5 décèsAurait pu être évité : tests de robustesse
Laurent BOCQUET, CNAM 2007
1988 : Bank of America, impair et passe
Février 1988 : 28 milliards de dollars transférés sur de mauvais comptes (mauvaises banques).
Seuls 24 milliards sont récupérés !
Cause : « problème hardware »Coûts : supérieur à 4 milliards de $Aurait pu être évité : non, trop forts les
Russes ;)
Laurent BOCQUET, CNAM 2007
1990 : Le bug louche
25 avril 1990 : Le télescope spatial Hubble est affligé d'un méchant strabisme.
Cause : un bug dans le programme pilotant la machine de polissage de son miroir (certains contrôles de qualité avaient été supprimés pour réduire les coûts...).
Réparé en décembre 1993 avec le remplacement de la caméra par une caméra spécifique corrigeant l’aberration sphérique du miroir.
Coûts : 500 millions de dollars, soit 1/3 du coût total de l’engin !
Aurait pu être évité : test de Foucault ?
Laurent BOCQUET, CNAM 2007
1991 : Fatal retard
25 février 1991 : une batterie de missiles Patriot à Dashran (Arabie Saoudite) échoue dans l'interception d'un Scud. Le scud (vitesse MACH 5) atteint un bâtiment de l'armée et tue 28 américains.
Cause : un bug dans l’arrondi des temps (en 10èmes de seconde); cumulé sur 100 heures.
Coûts : 28 morts Aurait pu être évité : test d’endurance
Laurent BOCQUET, CNAM 2007
Heures Secondes Temps calculé (sec) Erreur (sec) Décalage (m)
1 3600 3599,9966 0,0034 7
8 28800 28799,9725 0,0025 55
20 72000 71999,9313 0,0687 137
48 172800 172799,8352 0,1648 330
72 259200 259199,7528 0,2472 494
100 360000 359999,667 0,3433 687
Au delà de 20 heures la batterie est inopérationnelle. Elle a failli après 100 heures…
1991 : Fatal retard (suite)
Laurent BOCQUET, CNAM 2007
1991 : Fatal retard (suite)
Laurent BOCQUET, CNAM 2007
1991 : Fatal retard (fin)
Laurent BOCQUET, CNAM 2007
1993 : Le bug du Pentium
1993 : le tout nouveau processeur d’Intel livre des résultats erronés.
Cause : oubli du transfert d’une table de valeurs précalculées.
Coût pour Intel : 475 millions de $ Aurait pu être évité : intégration ?
Laurent BOCQUET, CNAM 2007
1994 : Un hélico capricieux
2 juin 1994 : un hélicoptère chinook de la Royal Air Force, qui transportait des experts irlandais, s’écrase en écosse tuant ses 29 occupants (25 passagers, 4 membres d’équipage).
Cause : On parle d’abord d’une erreur humaine, mais une enquête s’oriente vers le logiciel FADEC.
Laurent BOCQUET, CNAM 2007
1994 : Un hélico capricieux (suite)
En 1993 un rapport note que « après avoir examiné seulement 18 pour cent du code 486 anomalies ont été trouvées et la revue arrêtée ».
Le rapport avait également noté que « des défauts moteurs intermittents étaient régulièrement éprouvés par l'équipage du Chinook et il y avait des exemples de pointes non commandées des moteurs vers le haut et vers le bas, ainsi que des mouvements non demandés de commandes de vol ».
Après l’accident des tests montreront que le logiciel FADEC « est invérifiable et … donc incompatible avec son objectif. ».
Laurent BOCQUET, CNAM 2007
1996 : Ariane
4 juin 1996 : le lanceur Ariane 5 explose à Kourou (Guyane) lors de son premier vol de qualification.
Ironie du sort : le code qui a planté produisait de l'information utile seulement avant décollage !
Cause : numeric overflowCoût : > 1 milliard de $ Aurait pu être évité : tests d’intégration
Laurent BOCQUET, CNAM 2007
1999 : Mars Climate Orbiter
23 septembre 1999 : Mars Climate Orbiter « entre » dans l'atmosphère martienne à seulement 57 km de la surface.
Elle est détruite par les turbulences et les frottements atmosphériques.
Laurent BOCQUET, CNAM 2007
1999 : Mars Climate Orbiter (fin)
Cause : données fournies en livre/seconde, attendues en newton/seconde.
Coûts : la sonde seule coûtait 125 millions de $
Aurait pu être évité : spécs, intégration
Heureusement : il reste Mars Polar Lander …
Laurent BOCQUET, CNAM 2007
1999 : Mars Polar Lander
3 décembre 1999 : perte de Mars Polar Lander.
Lors de l’enquête, D. Goldin a démenti que la NASA ait pu cacher des informations sur les défaillances du réacteur de la sonde Mars Polar Lander.
Il a affirmé au contraire que des essais des essais avaient eu lieu en novembre qui avaient eu lieu en novembre qui avaient conduit à une avaient conduit à une reprogrammation sur la sondereprogrammation sur la sonde.
Laurent BOCQUET, CNAM 2007
2001 : Mars Odyssey
7 avril 2001 : La sonde Mars Odyssey a été lancée avec succès.
C'est en effectuant un test sur l'atterrisseur de Mars Surveyor 2001 que l'on a découvert le bug fatal qui aurait coûté la vie à Mars Polar Lander.
Amputée de son atterrisseur, la mission Mars Surveyor 2001 ne comprend donc plus qu'un orbiteur, mais cette amputation lui fut salutaire !
Laurent BOCQUET, CNAM 2007
2005 : Bug politique
21 septembre 2005 : Une trentaine d'habitants de Grenoble ont été réveillés en pleine nuit par un coup de fil d'Alain Carignon, ancien maire de Grenoble et alors président de l'UMP-Isère.
Une opération de marketing téléphonique utilisant la voix d'Alain Carignon, a connu un bug : les personnes absentes en journée ont été rappelées en pleine nuit.
Coût : au moins 37 voix Aurait pu être évité : appeler un numéro
occupé, c’était simple, comme test, non ?
Laurent BOCQUET, CNAM 2007
Et pour la bonne bouche…
Laurent BOCQUET, CNAM 2007
Sécurité maximum
Laurent BOCQUET, CNAM 2007
Ouvert 24h/24, fermé 7j/7
Bug non corrigé à ce jour malgré publication dans SVM de mars !
Laurent BOCQUET, CNAM 2007
L’été sera chaud à Melun
Laurent BOCQUET, CNAM 2007
Euh… j’hésite !
Laurent BOCQUET, CNAM 2007
Cliquer ou ne pas cliquer ?
Laurent BOCQUET, CNAM 2007
Quel avenir pour le bug ?
Et demain ?Et demain ?
2000
1990
1980
1970
Laurent BOCQUET, CNAM 2007
Conclusion
Les projets les plus sérieux laissent encore passer les bugs les plus stupides.
La technologie ne cesse de se complexifier. On ne peut donc compter que sur un progrès des tests…
Laurent BOCQUET, CNAM 2007
Des questions ?
Laurent BOCQUET, CNAM 2007
Proposition de
Questions pour l’examen
Qu’est-ce qu’un bug ?
Citer 2 types de bug fréquents
Top Related