Evaluation Symbolique à Contraintes pour la Validation - Application à Java/JML - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2006

Constrained Symbolic Evaluation for Validation - Application to Java/JML

Evaluation Symbolique à Contraintes pour la Validation - Application à Java/JML

Résumé

My thesis work concerns the validation of models and programs. Models are validated by symbolic animation, in order to ensure that they fulfill the informal requirements of the system they describe. It is a semi-automated process, since the user selects the actions of the system he wants to execute and he has to compare the informal descriptions and the results obtained from the model animation. A validated model is then employed for functional test generation, destined to be executed on an implementation under test. The model is used twice. First, it is used to automatically compute the test suites. Second, it is used as an oracle which makes it possible to establish the test verdict.
During this work, we were interested in the validation of Java programs by means of its associated modelling language, named JML. Consequently to the experiences and expertise in the Techniques Formelles et à Contraintes team of the LIFC (computer science laboratory) of the University of Franche-Comté, we have chosen to apply a set-theoretical representation of the JML models. From this symbolic representation, we have expressed the symbolic animation of an object model, based on the Java semantics, by considering the pre- and postconditions embedded within the method specifications.
We then rely on the symbolic system states to extract test targets, according to the behaviors computed from the methods. The test targets are defined by a predicate representing the conjunction of the behavior activation condition and the boundary analysis performed on the classes' attributes. Symbolic animation is then performed to build the test cases. An customized state-space exploration algorithm computes a path, from the initial state of the system, and leading to the test target. Test cases are then reified to produce a Java test driver. A case study has been led on the functional model of an electronic purse.
The work has been implemented within a prototype, named JML-Testing-Tools, which makes it possible to perform the symbolic animation of a JML model, and to produce functional test cases for its associated Java program. This tool is composed of a compiler which translated Java signatures and JML specifications within a set-theoretical format. This latter is then animated by using an customized interpreter which restores the original operational semantics of the Java/JML.
Mes travaux de thèse s'articulaient autour de la validation de modèles et de programmes. En ce sens, les modèles sont validés par animation, de manière à s'assurer qu'ils décrivent le bon comportement du système qu'ils représentent. Il s'agit d'un processus semi-automatique, car l'utilisateur sélectionne les actions du système à exécuter et effectue la comparaison entre les descriptions informelles données dans le cahier des charges et les résultats produits par le modèle. Un modèle validé est ensuite utilisé dans l'objectif de produire des cas de tests fonctionnels destinés à être joués sur une implantation ou un système sous test. Le modèle formel est ainsi utilisé à deux niveaux : d'une part, il permet de calculer de manière automatique les suites de tests, et, d'autre part, il sert d'oracle pour établir le verdict du test.
Au cours de ces travaux, nous nous sommes intéressés à la validation de programmes Java par l'intermédiaire de son langage de modélisation associé, nommé JML. Suite aux expériences et aux savoirs-faire accumulés au sein de l'équipe Techniques Formelles et à Contraintes du Laboratoire d'Informatique de Franche-Comté, nous avons choisi d'appliquer une représentation logico-ensembliste des modèles JML, reposant sur des solveurs de contraintes pour gérer les valeurs des variables des modèles objets que nous traitons. A partir de cette représentation symbolique, nous avons exprimé l'animation symbolique d'un modèle objet basé sur la sémantique de Java, utilisant les descriptions formelles contenues dans les pré- et postconditions des spécifications des méthodes.
Nous nous sommes ensuite appuyés sur la définition symbolique des états du système objet pour extraire des cibles de tests, liées aux comportements issus des méthodes, définies par un prédicat obtenu par conjonction de la condition d'activation du comportement et de la mise aux limites des attributs des objets du système et des paramètres de la méthode sous test. L'animation symbolique du modèle entre en jeu pour la construction des cas de tests. Un algorithme de parcours de l'espace d'états effectue la recherche d'un chemin d'exécution menant à la cible. Les cas de tests sont ensuite concrétisés pour produire un pilote de test Java. Une étude de cas a été menée sur une modélisation fonctionnelle d'un porte-monnaie électronique.
Ces travaux ont été implantés dans un prototype, nommé JML-Testing-Tools, qui permet l'animation symbolique d'un modèle JML et la génération de cas de tests pour l'implantation Java qui lui est associée. Ce prototype est composé d'un compilateur traduisant une spécification JML et des signatures de classes Java dans un format logico-ensembliste. Le modèle décrit dans ce format est ensuite animé par un interpréteur rétablissant la sémantique opérationnelle du Java/JML.
Fichier principal
Vignette du fichier
theseDadeau.pdf (4.38 Mo) Télécharger le fichier

Dates et versions

tel-00329891 , version 1 (13-10-2008)

Identifiants

  • HAL Id : tel-00329891 , version 1

Citer

Frédéric Dadeau. Evaluation Symbolique à Contraintes pour la Validation - Application à Java/JML. Génie logiciel [cs.SE]. Université de Franche-Comté, 2006. Français. ⟨NNT : ⟩. ⟨tel-00329891⟩
269 Consultations
418 Téléchargements

Partager

Gmail Facebook X LinkedIn More