Extraction et analyse de connaissance pour la réparation automatique de bugs
Auteur / Autrice : | Matias Martinez |
Direction : | Laurence Duchien, Martin Monperrus |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 10/10/2014 |
Etablissement(s) : | Lille 1 |
Ecole(s) doctorale(s) : | École doctorale Sciences pour l'ingénieur (Lille) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire d'informatique fondamentale de Lille (2002-2014) |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
La correction d'un bogue est une activité fréquente fait dans le cycle de vie du logiciel. L'activité vise à éliminer l'écart entre le comportement attendu d'un programme et ce qu'il fait réellement. Dans les dernières années, plusieurs approches automatiques de réparation de logiciels ont vu le jour pour synthétiser automatiquement des corrections de bugs. Malheureusement, la correction de bugs pourrait être encore difficile et coûteux pour les approches automatiques programme de réparation. Par exemple, pour réparer un bogue, une approche pourrait passer un temps infini à trouver une solution auprès d'un grand nombre de candidats. Dans cette thèse, nous visons à améliorer la réparabilité de bogues: augmenter le nombre de bogues réparés par des approches de réparation. Nous visons à ajouter réparation approches des stratégies pour optimiser la recherche de solutions. Nous présentons une stratégie qui consomme informations extraites de réparations effectuées par les développeurs. Ensuite, nous nous concentrons sur l'évaluation des méthodes de réparation automatique. Nous visons à introduire des procédures pour avoir significative évaluations d'approches.Nous définissons d'abord une méthode pour définir des jeux de données de défauts qui réduisent au minimum la possibilité de résultats biaisés. La manière dont un jeu de données est construite impacts sur le résultat d'une évaluation de l'approche. Nous présentons un jeu de données qui comprend un type particulier de défaut: les défauts instructions conditionnelles. Ensuite, nous cherchons à mesurer la réparabilité de ce type de défaut en évaluant trois approches de réparation automatique du logiciel.