Return to search

Extraction and analysis of knowledge for automatic software repair / Extraction et analyse de connaissance pour la réparation automatique de bugs

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. / Bug fixing is a frequent activity done in the software life cycle. The activity aims at removing the gap between the expected behavior of a program and what it actually does. In the recent years, several automatic software repair approaches have emerged to automatically synthesize bug fixes. Unfortunately, bug fixing could be even hard and expensive for automatic program repair approaches. For example, to repair a given bug, a repair technique could spend infinite time to find a fix among a large number of candidate fixes. In this thesis, we aim at improving repairability of bugs. That is, to increase the number of bugs repaired by repair approaches. First, we concentrate on the study of repair search spaces i.e., all possible solutions for the fix. We aim at adding repair approaches strategies to optimize the search of solutions in the repair search space. We present a strategy to reduce the time to find a fix. The strategy consumes information extracted from repairs done by developers. Then, we focus on the evaluation of automatic repair approaches. We aim at introducing methodologies and evaluation procedures to have meaningful repair approach evaluations.We first define a methodology to define defect datasets that minimize the possibility of biased results. The way a dataset is built impacts on the result of an approach evaluation. We present a dataset that includes a particular kind of defect: if conditional defects. Then, we aim at measuring the repairability of this kind of defect by evaluating three state-of-the-art automatic software repair approaches.

Identiferoai:union.ndltd.org:theses.fr/2014LIL10101
Date10 October 2014
CreatorsMartinez, Matias
ContributorsLille 1, Duchien, Laurence, Monperrus, Martin
Source SetsDépôt national des thèses électroniques françaises
LanguageEnglish
Detected LanguageFrench
TypeElectronic Thesis or Dissertation, Text

Page generated in 0.002 seconds