Extraction and Analysis of Knowledge for Automatic Software Repair - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2014

Extraction and Analysis of Knowledge for Automatic Software Repair

Extraction et l'analyse de connaissance pour la réparation automatique de bugs

Résumé

Bug fixing is a frequent activity in the software life cycle. The activity aims at removing the gap between the expected behavior of a program and what it actually does. This gap encompasses different anomalies such as the failure of a program facing to a given scenario. Bug fixing is a task historically done by software developers. However, 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. In this thesis, we aim at adding repair approaches strategies to optimize the search of solutions in the repair search space. These strategies consume information extracted from repairs done by developers. Then, for validating the repair approaches and our strategies, we focus on the evaluation of automatic repair approaches. We aim at introducing methodologies for defining how researchers can evaluate repair approaches in a meaningful manner. For example, the performance of a repair approach depends on the defect dataset used to evaluate the approach. First, we define a methodology to define defect datasets that minimize the possibility of biased results.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.
La correction des défauts logiciels est une activité fréquente dans le cycle de vie du logiciel. Cette activité vise à éliminer l'écart entre le comportement attendu d'un programme et ce qu'il fait réellement. Ces dernières années, plusieurs approches automatiques de réparation de logiciels ont vu le jour pour synthétiser automatiquement des corrections des défauts. Malheureusement, cela est une activité difficile et coûteuse. Nous visons à ajouter aux approches des stratégies pour optimiser la recherche des solutions. Nous réalisons des études empiriques sur les changements du logiciel au cours de son histoire, pour comprendre comment le logiciel est réparé par les développer. Nous présentons aussi une stratégie d’optimisation qui utilise cette information extraite. Pour valider les approches et les stratégies, nous nous concentrons sur l'évaluation des méthodes de réparation automatique. Nous visons à introduire des procédures qui définissent comment les recherches peuvent évaluer ses approches de réparation de manière significative. Pour exemple, la performance d’une approche de réparation dépend des jeux de données de défauts que les recherches utilisent dans l’évaluation de cette approche. 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. Ensuite, nous présentons un jeu de données qui comprend un type particulier de défaut: les défauts en instructions conditionnelles. Finalement, nous cherchons à mesurer la réparabilité de ce type de défaut en évaluant trois approches de réparation automatique du logiciel.
Fichier principal
Vignette du fichier
manuscript-mmartinez.pdf (3.42 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-01078911 , version 1 (30-10-2014)

Identifiants

  • HAL Id : tel-01078911 , version 1

Citer

Matias Martinez. Extraction and Analysis of Knowledge for Automatic Software Repair. Software Engineering [cs.SE]. Université Lille 1, 2014. English. ⟨NNT : ⟩. ⟨tel-01078911⟩
511 Consultations
584 Téléchargements

Partager

Gmail Facebook X LinkedIn More