La modélisation pour des logiciels plus fiables
Aujourd’hui personne n’est à l’abri d’un « bug » informatique. L’informatique est partout et fait partie intégrante de notre quotidien. Du smartphone au pilotage automatique d’un avion, tous les logiciels informatiques utilisés sont préalablement testés pour éviter un maximum de dysfonctionnements. Explications de Gilles Perrouin, chargé de recherches pour le Fonds National de la Recherche Scientifique (FNRS).
« Tout ce qu’on utilise devient de plus en plus configurable et donne une valeur ajoutée au produit. Les constructeurs de voitures donnent à l’utilisateur la possibilité de personnaliser leur voiture en ligne. Avec Android, chacun ajoute les applications de son choix à son téléphone », explique Gilles Perrouin. Ces technologies font appel à des systèmes dits « hautement reconfigurables », c’est-à-dire une famille de logiciels dont certains sont activables en fonction des choix de l’utilisateur et d’autres communs. La configuration concerne des choses très matérielles, mais aussi des logiciels, comme les systèmes de gestion de contenu (Drupal, Wordpress) grâce auxquels l’utilisateur peut choisir de personnaliser son interface ou d’intégrer un module Twitter, etc.
Face à la croissance de l’utilisation de ces logiciels à haute variabilité, la validation et les tests de ceux-ci deviennent incontournables. Imaginez la perte d’Amazon si leur site web cessait de fonctionner, ne serait-ce qu’une minute…
Dans cette optique, Gilles Perrouin et les chercheurs de la Faculté d’informatique ont créé des modèles permettant de tester ces logiciels et d’éviter les éventuels « bugs ». « Pour pouvoir valider les logiciels, il faut garantir qu’ils fonctionnent dans toutes les configurations possibles, quel que soit le choix de l’utilisateur. Certains choix sont dépendants les uns des autres. Mais tester tous les choix est impossible vu leur nombre. A titre d’exemple, 300 choix indépendants peuvent engendrer autant de configurations différentes qu’il y a d’atomes dans l’univers. »
Dans un premier temps, les chercheurs ont caractérisé cet espace immense et complexe de configurations pour sélectionnner les plus pertinentes à valider et celles qui respectent les contraintes. « Dans la configuration d’une voiture, par exemple, choisir la climatisation impose d’utiliser un moteur plus puissant. » Sur cette base, ils ont ensuite développé des modèles simplifiés décrivant les comportements communs et variables de l’ensemble des configurations du logiciel. Le logiciel peut désormais être validé de manière abstraite en analysant ces modèles et en générant des tests qui sont automatisés. Sans cela, des géants comme Google, Facebook ou Amazon ne pourraient pas maintenir leur présence continue en ligne et faire évoluer leurs applications plusieurs fois par jour, de manière transparente pour l’utilisateur. Par la suite, les résultats des tests sont exploités par les concepteurs des logiciels pour corriger les erreurs le plus tôt possible et fournir des logiciels plus fiables aux utilisateurs.
Avec l‘évolution des technologies et de la complexité des systèmes étudiés, les défis restent immenses. Pour preuve, l’application magnétophone de mon smartphone s’est arrêtée en pleine interview lorsqu’il s’est mis à sonner. « Les deux applications n’ont certainement pas été conçues pour interagir ensemble sur la même ressource matérielle. C’est là tout l’intérêt de nos recherches », précise Gilles Perrouin. Il y a donc toujours matière à investiguer pour les années à venir.
Contact :
Gilles Perrouin
-
gilles.perrouin@unamur.be
Plus d'info :
http://www.unamur.be/en/precise/