Mon programme est-il correct ?

Quelques bugs célèbres

La pénétration de l’informatique dans la plupart des activité humaines fait que les fautes dans les programmes peuvent avoir des conséquences catastrophiques. Un certain nombre de bugs informatiques sont ainsi devenus devenus (tristement) célèbres :

  • Les accidents d’irradiation de Therac 25 (1985-87).
    Des fautes de conception dans le matériel et le logiciel d’un appareil de traitement médical par irradiation causèrent la mort de plusieurs personnes.
  • Le ”ver” de Morris (1988).
    Un ver est un programme transmis à travers un réseau, qui s’exécute sur les différentes machines visitées, en général avec des visées malveillantes. En exploitant une faute dans le dispositif de protection du système Unix, Robert Morris provoqua ainsi le blocage d’environ 6 000 ordinateurs. 
  • La panne du réseau téléphonique AT&T (1990).
    Une faute dans le logiciel de récupération d’erreur dans les commutateurs téléphoniques provoqua des échanges de messages d’erreur en cascade entre ces commutateurs, conduisant à une interruption du trafic téléphonique pendant 9 heures sur le réseau AT&T.
  • Le bug du Pentium (1994).
    En raison d’une faute de conception de l'algorithme de division flottante du processeur Pentium, le résultat de cette division pouvait dans de rares cas être incorrect.  Voir les détails ici.
  • La perte de la fusée Ariane 5 lors de son premier vol (1996).
    Des fautes de conception dans le dispositif de réaction aux défaillances provoquèrent la perte de contrôle et la destruction de la fusée. Voir les détails ici.
  • La perte de la sonde Mars Climate Orbiter (1999).
    La sonde suivit une trajectoire incorrecte à son entrée dans l'atmosphère de Mars, ce qui causa sa désintégration. La cause de cette catastrophe fut attribuée à une communication incohérente entre deux parties du système de guidage, dont l'une utilisait le système métrique et l'autre le système d’unités américain.

Ces fautes, leur origine, leur propagation et leurs conséquences ont été soigneusement analysées, ce qui a permis d’améliorer les principes du développement des programmes. Mais l’élimination totale des bugs n’est pas encore pour demain…