Quand un manque de qualité logicielle provoque un accident de voiture

La qualité logicielle des programmes intégrés

Dans bien des cas, un logiciel mal fait et difficilement testable n’affecte que l’entreprise l’ayant créé et ses utilisateurs. Cependant pour d’autres logiciels dits critiques, un défaut peut avoir de fâcheuses conséquences allant jusqu’à mettre en danger la vie de ses utilisateurs. Sont ici visés les programmes intégrés aux calculateurs de voiture, et c’est ce cas-là qui va nous intéresser ici.

Contexte

Nous sommes aux États-Unis en novembre 2013, deux personnes prennent le volant de leur voiture familiale, et voici que dans une situation d’urgence le véhicule refuse de freiner, conduisant à la mort de l’un des occupants du véhicule. La marque a ainsi été assignée en justice et une expertise du code des calculateurs responsables du freinage et de l’accélération  a été commanditée.

Déroulement de l’expertise

L’analyse du code incriminé a été confiée à différents experts:

M. Barr a notamment passé 20 mois à étudier ce code dans des conditions d’isolement assez sévère afin de préserver la discrétion et l’impartialité de son travail. Ces conclusions sont éloquentes.

Conclusions

Voici quelques phrases-chocs que l’on peut retenir :

  • Certaines fonctions sont extrêmement complexes, plus que nécessaire.
  • Ces fonctions de par leur complexité, ne sont pas testables exhaustivement, quel que soit l’outil
  • En conséquence, la maintenabilité du code est faible, et quiconque essaiera de corriger un bug risquera fort d’en introduire un (ou deux) autre.
  • M. Barr compte 81 514 violations des règles de programmation MISRA.

Ce cas est intéressant, car le contre-exemple est aussi didactique que l’exemple. De plus, l’affaire ayant été portée devant le tribunal, et donc jugée par un jury profane en logiciel embarqué, la plaidoirie et le rapport d’expertise se doivent d’être le plus accessible possible.  Je conseille donc la lecture des éléments originaux suivants:

Liens externes

Cet article de blog est tiré de cette dépêche de LinuxFr, j’en remercie chaleureusement l’auteur.