Pourquoi les logiciels peuvent-ils être « buggés » ? Pourrait-on les concevoir de manière à ce qu’ils ne le soient pas ? Le sujet touche aujourd’hui tout le monde puisque, informaticien.ne ou pas, nous y sommes tous et toutes régulièrement confrontés et que nous aimerions vivement trouver un moyen de ne plus l’être. Or, il suffit de comprendre comment fonctionne un logiciel pour constater la facilité avec laquelle les bugs s’introduisent dans toute application informatique. Ce ne sont pas des erreurs ou des pannes des machines, mais bel et bien des erreurs des hommes qui les programment. Ils peuvent perturber ou anéantir le fonctionnement prévu, mais aussi, de façon plus sournoise, compromettre la cybersécurité en ouvrant des vulnérabilités permettant l’attaque des systèmes par les hackers, les mafias, ou même des États. La chasse au bug est donc une activité centrale en informatique, et elle commence bien sûr par l’art d’en faire (beaucoup) moins lors de la conception et de l’écriture des programmes. Pour les éviter, les détecter et les corriger, voire les éradiquer, les méthodes pragmatiques et scientifiques vont des tests bien conduits, qui permettent de trouver des erreurs – mais pas de montrer leur absence -, à la vérification formelle, qui permet de prouver sur papier ou de préférence en machine l’absence de (certains) bugs à l’aide d’algorithmes et de formalismes logiques. Une autre solution, c’est d’intervenir en amont dans le processus de création de programme, par exemple en fournissant aux informaticiens de meilleurs outils de conception, de meilleurs langages de programmation et de meilleurs outils de test et de vérification formelle… « Work in progress » !
Accédez ici au compte-rendu de Conférence-débat de Gérard Berry avec Marko Erman et également via la rubrique « Télécharger l’article »