380 likes | 487 Views
Histoire de bugs. 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 »….
E N D
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 »…
Sommaire Introduction Les années 60-70 Les années 80-90 L’après 2000 Conclusion
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).
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…
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
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…
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 : inconnu • Aurait pu être évité : tests aux limites
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 victime • Aurait pu être évité : test d’endurance
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étique • Coûts : aucune victime • Aurait pu être évité : tests aux limites
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 overflow • Coûts : 5 décès • Aurait pu être évité : tests de robustesse
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 ;)
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 ?
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
1991 : Fatal retard (suite) Au delà de 20 heures la batterie est inopérationnelle. Elle a failli après 100 heures…
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 ?
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.
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. ».
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 overflow • Coût : > 1 milliard de $ • Aurait pu être évité : tests d’intégration
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.
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 …
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 avaient eu lieu en novembre qui avaient conduit à une reprogrammation sur la sonde.
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 !
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 ?
Ouvert 24h/24, fermé 7j/7 Bug non corrigé à ce jour malgré publication dans SVM de mars !
1990 Quel avenir pour le bug ? 1970 1980 Et demain ? 2000
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…
Proposition de Questions pour l’examen • Qu’est-ce qu’un bug ? • Citer 2 types de bug fréquents