Combinaison des techniques de Bounded Model Checking et de programmation par contraintes pour l'aide à la localisation d'erreurs : exploration des capacités des CSP pour la localisation d'erreurs
Auteur / Autrice : | Mohammed Bekkouche |
Direction : | Michel Rueher, Hélène Collavizza |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 11/12/2015 |
Etablissement(s) : | Nice |
Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Sophia Antipolis, Alpes-Maritimes) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire Informatique, signaux et systèmes (Sophia Antipolis, Alpes-Maritimes) - Laboratoire d'Informatique, Signaux, et Systèmes de Sophia Antipolis |
Jury : | Président / Présidente : Frédéric Precioso |
Examinateurs / Examinatrices : Michel Rueher, Hélène Collavizza, Frédéric Precioso, Laurence Pierre, Fabrice Bouquet, Yahia Lebbah | |
Rapporteurs / Rapporteuses : Laurence Pierre, Fabrice Bouquet |
Mots clés
Mots clés contrôlés
Résumé
Un vérificateur de modèle peut produire une trace de contreexemple, pour un programme erroné, qui est souvent difficile à exploiter pour localiser les erreurs dans le code source. Dans ma thèse, nous avons proposé un algorithme de localisation d'erreurs à partir de contreexemples, nommé LocFaults, combinant les approches de Bounded Model Checking (BMC) avec un problème de satisfaction de contraintes (CSP). Cet algorithme analyse les chemins du CFG (Control Flow Graph) du programme erroné pour calculer les sous-ensembles d'instructions suspectes permettant de corriger le programme. En effet, nous générons un système de contraintes pour les chemins du graphe de flot de contrôle pour lesquels au plus k instructions conditionnelles peuvent être erronées. Ensuite, nous calculons les MCSs (Minimal Correction Sets) de taille limitée sur chacun de ces chemins. La suppression de l'un de ces ensembles de contraintes donne un sous-ensemble satisfiable maximal, en d'autres termes, un sous-ensemble maximal de contraintes satisfaisant la postcondition. Pour calculer les MCSs, nous étendons l'algorithme générique proposé par Liffiton et Sakallah dans le but de traiter des programmes avec des instructions numériques plus efficacement. Cette approche a été évaluée expérimentalement sur des programmes académiques et réalistes.