Université de Franche-Comté

BZ-testing-tools : un outil sûr et automatique pour tester la fiabilité des logiciels et des systèmes mécatroniques complexes

Les systèmes mécaniques et électroniques ― souvent pilotés par voie logicielle et développés pour augmenter, dans un même produit, les services offerts à l’utilisateur ― se complexifient. La téléphonie mobile en est une excellente illustration puisque le téléphone est devenu console de jeux, agenda, calculatrice, appareil photographique… En cinq ans, toutes industries confondues, le nombre moyen de fonctions pour un système a été multiplié par cent. Cet accroissement de complexité s’accompagne d’un enjeu stratégique fort : la réduction du délai de mise sur le marché. Les processus de développement des systèmes doivent donc être agencés pour pouvoir répondre à ces nouvelles exigences, tout en garantissant une excellente fiabilité des produits et des services. Disposer d’un outil logiciel rapide et efficace pour juger de cette fiabilité constitue alors un atout important. Pour cela, une des principales approches disponibles, avec la relecture du code informatique et la recherche de preuves, est celle du test.

•  Sa pratique actuelle, parce qu’elle est essentiellement empirique, ne peut répondre aux besoins des systèmes complexes, ce qui engendre des non-conformités vis-à-vis des spécifications des systèmes et un manque de fiabilité, avec des conséquences souvent fâcheuses. Une solution à cette problématique réside en partie dans la génération automatique de tests à partir des spécifications. Des techniques utiles à cette approche permettent de répondre efficacement aux différentes questions posées à l’ingénieur responsable de la validation, à savoir comment spécifier les tests, retenir les plus pertinents, gérer les changements fonctionnels, automatiser le contrôle des résultats, maîtriser la combinatoire, optimiser la couverture des jeux de tests, limiter l’empirisme, pouvoir exécuter les tests fréquemment…

•  Le laboratoire d’Informatique de l’université de Franche-Comté (LIFC), associé au CNRS et à l’INRIA ― Institut national de la recherche en informatique et automatique ― développe une technologie originale de génération automatique de tests fonctionnels. Intitulé BZ-testing-tools, cet outil permet d’engendrer automatiquement, à partir des spécifications du système écrites à l’aide des notations de modélisation les plus répandues (comme B, StateCharts ou UML), les séquences de tests fonctionnels ainsi que les verdicts qui y sont associés. La génération s’appuie sur un moteur de calcul puissant qui utilise des techniques de programmation en logique avec contraintes (alias PPC) permettant l’évaluation des spécifications. L’idée directrice est de maximiser la détection de problèmes avec le minimum de tests, une des difficultés résidant dans la grande combinatoire de cas possibles. Dans un premier temps, le générateur de tests calcule tous les comportements possibles du système. Ensuite, l’ingénieur responsable de la validation pilote la génération en sélectionnant tout ou partie de ces comportements. Il peut, par exemple, n’engendrer que les séquences de tests activant une opération précise ou un état particulier. La sélection permet donc un pilotage fin de la génération ; bien entendu, cette dernière peut aussi être complètement automatisée. Les techniques de calcul mises en ¶uvre assurent une parfaite maîtrise de l’explosion combinatoire, car n’est engendré qu’un sous-ensemble de tous les états possibles en calculant les états aux limites du système, pour lesquels le risque de dysfonctionnement est le plus souvent important.

•  Par ailleurs, l’outil propose à l’utilisateur un ensemble de critères de couverture de tests par rapport aux états et aux comportements du système. Ces derniers sont regroupés par type homogène et chaque classe de comportements peut être testée. D’autres critères peuvent être définis par l’utilisateur. Ils permettent ainsi de mesurer objectivement la qualité des tests produits et de garantir une meilleure fiabilité du système en permettant de répondre aux questions essentielles (à quel moment arrêter les opérations ? Y a t-il eu un oubli éventuel de comportements ?…). Un avantage important de la technique utilisée réside dans sa capacité à évaluer les impacts d’une évolution du système à tester, en engendrant uniquement les tests pour les comportements modifiés. De plus, les dossiers de tests étant sauvegardés en vue d’une nouvelle exécution éventuelle, il est possible d’effectuer de façon automatisée les tests de non-régression. Un compte rendu est créé à la fin de la génération pour permettre une analyse précise et rapide des régressions éventuelles. Les séquences de test obtenues avec cet outil peuvent alimenter des bancs de test au travers d’interfaces pour leur pilotage, ce qui conduit alors à une automatisation complète du test des systèmes.

•  Les travaux de recherche, dont est issu le moteur de calcul au c¶ur de l’outil BZ-testing-tools, ont débuté en 1995 au laboratoire d’Informatique de l’université de Franche-Comté*. Ils permettent, en résumé, un gain de productivité important dans les opérations de validation et une réduction de leurs coûts et délais tout en garantissant, au travers d’une augmentation et d’une meilleure pertinence de la couverture des tests, une meilleure fiabilité des produits mis sur le marché.

 

Bruno Legeard
Laboratoire d’informatique (FRE CNRS 2661 – INRIA)
Université de Franche-Comté
Tél. 03 81 66 66 63
Fax 03 81 66 64 50
legeard@lifc.univ-fcomte.fr

 

 

retour