Proposition de stage de Master2 / PFE


Développement d'un plugin Eclipse d'aide au test logiciel

Mots-clés: Test structurel, couverture de code, critères de couverture, graphe de flot de contrôle, Eclipse

Contexte

Le test logiciel est une phase très importante et très coûteuse du développement logiciel. L'utilisation de méthodes de test et d'outils de test performants et intuitifs est souvent un gage d'économie de temps et de fiabilité du logiciel.

Travail demandé

Le but de ce projet est de développer un plugin graphique d'aide au test de logiciel pour Eclipse. L'ambition pour cet outil est de pouvoir y intégrer des données de test calculées grâce à des méthodes de génération automatique, et de permettre de visualiser les résultats de façon pédagogique.

Plus précisément, cet outil permettra d'évaluer la couverture d'un code Java de façon visuelle, pas à pas (dès le début ou avec point d'arrêt), ou bien après exécution complète de données de test. Il permettra aussi de suivre cette évolution simultanément sur le graphe de flot de contrôle obtenu automatiquement à partir du code source Java.

D'autre part, cet outil devra évaluer le pourcentage de couverture de code pour les critères classiques de test structurel (toutes les instructions, toutes les branches, etc...). Le rapport de couverture de code, ainsi que le graphe de flots de contrôle pourront aussi être exportés.

Finalement, le stagiaire implémentera une méthode de génération automatique de données de test à l'aide d'un solveur de contraintes. Il pourra soit implémenter une méthode connue, soit proposer sa propre méthode. Il faudra pour cela proposer une façon de traduire un code C en système de contraintes.

Références

http://www.eclemma.org/
http://codecover.org/features/coverage.html
http://testingfaqs.org/
http://www.eclipse.org/articles/article.php?file=Article-JavaCodeManipulation_AST/index.html

Arnaud Gotlieb.
An overview of constraint-based testing.
Presentation at Uppsala University, 05 2010.

Karim-Cyril Griche.
Génération Automatique de bouchons pour le Test Structurel basée sur l'analyse du flot de contrôle.
PhD thesis, Université Grenoble 1, 2005.

Le Vinh Nguyen, Hélène Collavizza, Michel Rueher, Samuel Devulder, and Thierry Gueguen.
Stratégies dynamiques pour la génération de contre-exemples.
In 6ème Journées Francophones de Programmation par Contraintes (JFPC) Caen, pages 207--216, 6 2010.