Titre : Couverture non-intrusive de code Caml Orateurs : Adrien Jonquet et Philippe Wang Résumé : Dans le cadre du projet Couverture [1], un outil de couverture de code a été développé pour Objective Caml en Objective Caml : "Zamcov" [2]. Notre approche non-intrusive consiste à générer des traces d'exécution, nécessaires à la génération de rapport de couverture, sans injecter des instructions de génération de trace au niveau du code source. Elle se situe donc à l'opposé de ce qui est fait par MLcov [3] (logiciel libre développé par Esterel Technologies, à la suite d'un prototype développé à PPS). Pour pouvoir générer des traces sans transformer le programme, on modifie l'environnement d'exécution. En pratique, pour Objective Caml, nous avons développé une machine virtuelle suivant les spécifications de la machine distribuée par l'INRIA, i.e. "ocamlrun", afin d'avoir le contrôle sur l'environnement d'exécution pour pouvoir l'adapter pour produire des traces d'exécution. L'exposé montrera comment, à partir de traces d'instructions machine ("bytecode"), on génère des rapports à la fois sur le machine et le code source. Nous parlerons également de la problématique "MC/DC" [4] (requise par des normes [5] de développement de logiciels critiques en application) traitée au sein de notre outil Zamcov. [1] http://www.projet-couverture.com/ [2] http://www.algo-prog.info/zamcov/ [3] http://www.algo-prog.info/mlcov/ [4] Modified Condition/Decision Coverage. Référence : Kelly J. HAYHURST, Dan S. VEERHUSEN, John J. CHILENSKI et Leanna K. RIERSON. "A Practical Tutorial on Modified Condition/Decision Coverage". Rapport Technique, NASA/TM-2001-210876, mai 2001. [5] DO-178B, IEC 61508, FDA Class III, etc.