Titre : [stage à l'étranger] Réparation automatique de bug / Automatic software repair
Equipes : Co-encadrement équipe LIFL-INRIA ADAM / Laboratoire étranger USA/Canada/UK
Encadrant : Martin Monperrus <firstname.lastname@example.org>
Responsable HDR : Lionel Seinturier
Contexte : Automatic 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). Automated software repair can manipulate behavior (by manipulating code -- whether source [Martinez2013] or binary) or data (e.g. by manipulating the running state of programs).
Contributions Attendues : You will work on the automatic repair approaches developed in our team. We explore two directions: randomized techniques (e.g. with probabilistic and genetic algorithms) or deterministic reasoning (e.g. using SAT or SMT solvers). You will further explore one of this family of techniques.
You'll work on one of those techniques, after discussion with the partner professor.
Lieu d'accueil : The possible partners are
Compétences requises : Excellent skills in Java development, English, communication.
[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.
[Martinez2013] M. Martinez, M. Monperrus. Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing. In Empirical Software Engineering, Springer, 2013.