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.

News

  • 2013/12/09: Ceremony for the PRES ULNF International Research Thesis Award 2013 granted to Gabriel Tamura for his PhD Thesis - U. Lille 1, Building P3, Maxwell Amphitheater
  • 2013/12/05: Rémi Druilhe PhD defense
  • 2013/11/27: Maria Gomez Lacruz received the Best Poster Award at the Welcome PhD session organized by PRES UNLF
  • 2013/11/04: Filip Krikava joins ADAM
  • 2013/10/29: The ApiSwarm project is selected in the context of the Windows Azure Research Award Program
  • 2013/10/15: Maria Gomez Lacruz joins ADAM
  • 2013/10/01: Maxime Colmant, Vincenzo Musco, Loïc Huertas and Bo Zhang join ADAM
  • 2013/09/01: Daniel Le Berre and Jifeng Xuan join ADAM
  • 2013/07/05: Russel Nzekwa PhD defense