Langages Applicatifs et Machines Abstraites pour la Couverture de Code Structurelle - TEL - Thèses en ligne Access content directly
Theses Year : 2012

Applicative Languages and Abstract Machines for Structural Code Coverage

Langages Applicatifs et Machines Abstraites pour la Couverture de Code Structurelle

Philippe Wang
  • Function : Author
  • PersonId : 872844

Abstract

This thesis presents a study on structural code coverage for a language of the ML family, in response to an industrial need in safety-critical software domain to develop tools. In this context, ML appears as a particularly rich and high-level language with a high degree of expressiveness. Its use is a progress but also raises issues when trying to apply classical safety-critical software engineering processes. In particular, the two notions of condition and decision, as well as coverage criteria associated with them, rapidly become very complex. The first contribution of this thesis answers the question of what conditions and decisions mean for a language of the ML family, by giving several formal definitions. Then, we present a formalised technique for structural code coverage which rewrites the source code to produce traces at run-time. We name it the intrusive instrumentation. We also formalise another technique which does not rewrite the source code, which allows to use the same binary for both testing activities and production. This second technique is called non intrusive and consists in generating at compile-time the information needed to match the machine code back to the source code. Other information are also generated for the execution environment to record specific traces that we need to generate a coverage report involving Boolean measures. Finally, we compare these two techniques both formally and practically, but also in terms of implementation.
Cette thèse présente une étude qui répond à un besoin industriel d'avoir des outils pour aider à la qualité et au respect des processus de développement de logiciels critiques comme ceux du domaine de l'avionique civile. Il s'agit de l'étude de la couverture de code structurelle pour un langage de la famille ML. Dans ce contexte, ML apparaît comme un langage particulièrement riche en constructions de haut-niveau d'abstraction et expressif. Son utilisation est un élément de progrès mais soulève des problèmes d'adaptation des pratiques du génie logiciel classique pour les systèmes critiques. Notamment, la notion de couverture des conditions et des décisions ainsi que les critères de couverture dérivés se complexifient rapidement. Nous donnons alors en première contribution plusieurs sémantiques pour l'interprétation des définitions des conditions et des décisions pour un langage d'expressions de haut-niveau que nous avons complètement formellement défini. Ensuite, nous donnons la sémantique formelle pour une implantation pour la mesure de couverture par réécriture du code source, ce que nous appelons l'instrumentation intrusive. Puis, nous étudions une technique qui ne réécrit pas le code, ce qui permet d'avoir la possibilité d'utiliser le même binaire pour les tests et pour la production. Cette technique, que nous appelons non intrusive, consiste à générer les informations de correspondance entre le code source et le code machine, et éventuellement d'autres informations, pour que l'environnement d'exécution incluant une machine virtuelle puisse enregistrer les traces nécessaires à l'élaboration des rapports de couverture. Enfin, nous comparons ces deux approches, en terme de sémantique, d'utilisation et d'implantation.
Fichier principal
Vignette du fichier
These_Philippe_Wang.pdf (1.78 Mo) Télécharger le fichier
Loading...

Dates and versions

tel-00741549 , version 1 (13-10-2012)
tel-00741549 , version 2 (26-10-2012)

Identifiers

  • HAL Id : tel-00741549 , version 2

Cite

Philippe Wang. Langages Applicatifs et Machines Abstraites pour la Couverture de Code Structurelle. Informatique et langage [cs.CL]. Université Pierre et Marie Curie - Paris VI, 2012. Français. ⟨NNT : ⟩. ⟨tel-00741549v2⟩
203 View
969 Download

Share

Gmail Mastodon Facebook X LinkedIn More