Tests logiciels / embarqué : Adacore veut de l’agilité dans la couverture de code
La société Adacore a présenté les premiers fruits du projet Couverture, qui vise à développer des outils d’analyse de couverture de code. GnatEmulator et GnatCoverage viennent ainsi accélérer les tests de solutions dans le monde très critique de l’avionique. Pour enfin aider les développeurs à formuler des réponses aux exigences des certifications.
Le chainon manquant entre la couverture de code objet et la couverture de code source. C’est ainsi qu’Adacore, spécialiste du langage Ada et éditeur de solution de tests et de certification pour le monde de l’avionique notamment, a présenté GnatCoverage, qui vise également à faire évoluer le test logiciel des systèmes critiques à un niveau supérieur.
Gnatcoverage repose sur le projet Couverture, démarré en 2008 avec la collaboration le pôle de compétitivité francilien Systématique, Open Wide (un spécialiste de l’embarqué Open Source en France), l’Université Pierre & Marie Curie et l’école Paris Tech, et dont l’objectif initial était de développer des outils d’analyse de couverture de code que des développeurs du monde de l’embarqué critique (avionique, nucléaire ou transports ferrroviaires) pouvaient utiliser, et débouchant sur un moyen Open Source de valider les exigences des certifications, alors indispensable. il s’agissait également de faire jouer les synergies entre l’embarqué et le monde de l’Open Source.
Car il faut dire le monde très critique des systèmes embarqués pour l’avionique ou le nucléaire par exemple est sujet à des règles très précises où chaque solution, proposée pour cette industrie, doit réussir à une batterie de tests établis, répondant à des critères et exigences définies, pour recevoir au final de sceau ultime de la certification. Dans l’avionique, on parle notamment du standard de certification DO-178. Les développeurs s’appuient donc sur des outils capables de démontrer que la solution est conforme aux exigences de la dite norme. Elle montre par exemple qu’un nombre de tests suffisants a été réalisé ou qu’il n’y a pas de code en trop.
Dans la couverture de code, il existe deux écoles : la couverture de code objet et la couverture code source. Le premier teste le code compilé pour une machine et un processeur cible. Le second inspecte le code produit. Chacun avec ses forces et ses faiblesses, rappelle Cyrille Comar, Pdg d’Adacore. GnatCoverage réalise une couverture sur les deux à la fois.
Pour Cyrille Comar, le gros avantage de la solution est qu’elle repose également sur une couche d’émulation, GnatEmulator, qui permet d’émuler la plate-forme cible à la volée. L’outil ne nécessite donc pas “d’instrumentation de l’exécutable à tester mais agit directement sur le code applicatif compilé.’ Soit celui directement exécuté sur la machine. Pour le Pdg, il s’agit d’un gain en matière de productivité bien évidemment, mais surtout cela permet d’industrialiser davantage la couverture des tests, “en réduisant les risques de développement très tôt -avant les phases d’intégration-, et en réalisant les tests de manière continue”. Il s’agit donc ici de rendre la couverture de tests plus agile.
Notons que GnatEmulator repose sur la technologie Open Source d’émulation de processeurs QEMU. Il supporte aujourd’hui les processeurs Leon, ERC 32 et Power PC, utilisés dans l’industrie aérospatiale, avionique ou ferroviaire.
“Les résultats des tests, ajoute Cyrille Comar, sont ensuite consolidés pour fournir du matériel de qualification pour DO-178.”