INRIA Lille - Nord Europe
40 avenue Halley
59650 Villeneuve d'Ascq, France
Map
Side Bars
Header/Footer
Site Pages
Titre : Réparation automatique de bug (technique) / Automatic software repair
Equipe : ADAM
Encadrant : Martin Monperrus
adresse mail de contact : martin.monperrus@univ-lille1.fr
Contexte : Un outil de réparation automatique des logiciels résout des bugs automatiquement. Par exemple, l'on peut générer un patch quand un test passe au rouge [Weimer2009]. Il est aussi possible d'éviter des crashes en production [qin2005rx]. La réparation automatique peut donc se passer à tous les moments du cycle de vie: du développement à la maintenance et la production.
Automated software repair is the process of fixing software bugs automatically. It is a research field related to software testing, program synthesis, fault tolerance, data mining for software engineering, empirical software engineering and many others. It may be automatically generating patches when a test case fails [Weimer2009]. It also consists of avoiding crashes at runtime in production [qin2005rx]. Automated software repair can address all phases of the software life cycle from development time to maintenance and production time (to survive failures).
Problématique : La réparation automatique manipule soit du code (source ou binaire) soit des données (l'état à l'exécution, comme la pile ou le tas). La réparation automatique utilise aussi bien des algorithmes aléatoires (par exemple des algorithmes génétiques) que des solveurs (par exemple avec SAT ou SMT). L'état actuel de la recherche ne permet pas comparer l'efficacité de ces deux types d'approche.
Automated software repair can manipulate behavior (by manipulating code -- whether source or binary) or data (e.g. by manipulating the running state of programs). Automated software repair can use randomized techniques (e.g. with genetic algorithms) or deterministic reasoning (e.g. using SAT or SMT solvers). According to the state-of-art, there is no way to compare those families of approaches together.
Travail à réaliser : Vous participerez au développement de l'outil de réparation automatique de bug de l'équipe ADAM.
You will contribute to the development of the automated software repair tool of ADAM's team.
Bibliographie :
[Weimer2009] W. Weimer, T. Nguyen, C. L. Goues, and S. Forrest. Automatically finding patches using genetic programming. In Proceedings of the International Conference on Software Engineering, 2009.
[qin2005rx] F. Qin, J. Tucek, J. Sundaresan, and Y. Zhou. Rx: treating bugs as allergies — a safe method to survive software failures. In ACM SIGOPS Operating Systems Review, volume 39, pages 235–248. ACM, 2005.
Sujets