Modélisation par contraintes de programmes en bytecode Java pour la génération automatique de tests - TEL - Thèses en ligne
Thèse Année : 2010

Constraint modeling of Java bytecode programs for auomatic test data generation

Modélisation par contraintes de programmes en bytecode Java pour la génération automatique de tests

Résumé

Program verification is essential to maintain a certain level of quality and reliability. Testing is to date the most used software verification mean in industry. Constraint programming is seen as an effective way to automate test data generation. In this thesis we propose a constraint modeling of the Java bytecode semantics, and a method, based on this modeling, to automatically generate test data. Our constraint model of the semantics of a Java bytecode program allows effective deductions, including in the presence of complex data structures or inheritance. In particular, the use of type variables can take into account inheritance and polymorphic method calls. Our method of test data generation uses the constraint model to cover specific instructions of the program under test. It uses a backward progression in the control flow graph to enumerate paths leading to the target instructions. This method suits particularly to cover instructions that are not reached by other methods of test data generation. Finally this method is implemented in a prototype named JAUT (Java Automatic Unit Testing). The experiments show that the prototype can increase the statements coverage obtained with the other available tools.
La vérification des programmes est indispensable pour maintenir un certain niveau de qualité et de fiabilité. Le test est à ce jour le moyen de vérification des logiciels le plus utilisé dans l¤industrie. La programmation par contraintes est vue comme un moyen efficace pour automatiser la génération de données de test. Dans cette thèse nous proposons une modélisation par contraintes de la sémantique du bytecode Java, ainsi qu¤une méthode, basée sur cette modélisation, pour générer automatiquement des données de test. Notre modèle à contraintes de la sémantique d¤un programme en bytecode Java permet de faire des déductions efficaces, y compris en présence de structures de données complexes ou d¤héritage. En particulier, l¤utilisation de variables de type permet de prendre en compte l¤héritage et les appels de méthodes polymorphes. Notre méthode de génération de données de test exploite le modèle à contraintes pour couvrir des instructions particulières du programme sous test. Elle se base sur un parcours en arrière du graphe de flot de contrôle pour énumérer des chemins menant aux instructions cibles. Elle est en particulier adaptée à la couverture d¤instructions non couvertes par les autres méthodes de génération de données de test. Enfin cette méthode est mise en application dans un prototype, JAUT (Java Automatic Unit Testing). Les expériences montrent que le prototype permet d¤augmenter la couverture des instructions obtenue avec les autres outils disponibles.
Fichier principal
Vignette du fichier
these_Charreteur_v2.pdf (1.27 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00497785 , version 1 (05-07-2010)
tel-00497785 , version 2 (29-09-2016)

Licence

Identifiants

  • HAL Id : tel-00497785 , version 2

Citer

Florence Charreteur. Modélisation par contraintes de programmes en bytecode Java pour la génération automatique de tests. Informatique [cs]. Université Européenne de Bretagne, 2010. Français. ⟨NNT : ⟩. ⟨tel-00497785v2⟩
357 Consultations
1352 Téléchargements

Partager

More