Dans le cadre de la gestion du cycle de vie d’une application, la création de correctifs de bugs est une des tâches les plus importantes. Or celle-ci prend aussi le plus de temps, non seulement parce qu'il est difficile de créer un bon correctif, mais également parce que cela nécessite des interventions humaines. Un utilisateur doit en effet signaler le bug et le développeur doit le reproduire et le corriger, processus long et fastidieux. Il existe des techniques qui automatisent cette tâche mais elles exigent toujours une intervention humaine à savoir qu'un développeur crée un test reproduisant le bug, exigence qui réduit considérablement leur applicabilité. Dans le cadre de cette thèse, nous proposons une nouvelle approche de génération de correctifs qui s'affranchit de cette exigence. Elle repose sur l'idée de rapprocher le plus possible la génération de correctifs de l'environnement de production. En effet c’est celui-ci qui contient toutes les données et toutes les interactions humaines qui mènent aux bugs. Dans cette thèse, nous présentons comment exploiter ces données pour détecter les bugs, comment générer les correctifs et comment les valider, le tout sans l'intervention d'un développeur. Nous évaluons notre approche sur sept jeux différents de correctifs réels provenant de projets open-sources en veillant, entre autres, à être particulièrement attentifs au nombre de correctifs générés, à leur validité ainsi qu’au temps requis pour leur génération. Ces évaluations démontrent l'applicabilité et la faisabilité de notre approche dans la génération de correctifs en production sans l'intervention d'un développeur.
Directeurs de thèse : Lionel Seinturier et Martin Monperrus Rapporteurs : Paolo Tonella et Olivier Barais Examinateurs : Julia Lawall et Jean-Christophe Routier
Thèse de l'équipe Spirals soutenue le 25/09/2018