Automatic Bug Fix Recommendation: Improving Software Repair and Reducing Time-to-Fix Delays in Software Development Projects

SCHEME: CORE

CALL: 2015

DOMAIN: IS - Business Service Design

FIRST NAME: Tegawendé François D'Assise

LAST NAME: Bissyandé

INDUSTRY PARTNERSHIP / PPP: No

INDUSTRY / PPP PARTNER:

HOST INSTITUTION: University of Luxembourg

KEYWORDS: Recommendation, Bug fix, Software repair, Bug report, Code commits, Code changes, Recurrent fixes

START: 2016-02-01

END: 2019-01-31

WEBSITE: https://www.uni.lu

Submitted Abstract

Software is now pervasive in our lives but bug-free software remains a myth. Actually, constraints on resources, including time, manpower and testing environment, often lead project developers to release software that still contain many bugs. Users will then run into issues that they will report to the development teams. At industry level, the volume of reports collected can often be beyond the capabilities of developers to triage, assign and fix them. For example, in 2006, Mozilla developers were receiving about 300 bug reports every day. A volume that Mozilla developers admitted they could not handle by themselves. Even when the bug is assigned to a developer, he must ensure that he understand the cause of the bug and how it can be effectively fixed. In such a context, without an automated tool for systematically analyzing these bug reports and providing fix tips, most bugs will not be quickly dealt with, increasing the time-to-fix delays. Some bugs, tagged as minor, may even go unnoticed.There is today a momentum of automatic program repair, a research field where various approaches are devised to automatically fix programs once a fault is detected. Such approaches attempt to patch a program in a way that makes it pass all the tests. So far, there are no reports of adoption of these approaches in the industry. Indeed, currently, automatic program repair is a young and immature research field, and it has a number of caveats including the fact that: (1) only a limited set of fault types are considered, (2) the proposed fixes can be perceived as alien code and may be out of tune with the rest of the code and (3) there is no guarantee that this fix should be maintained or that it definitely fixes the bug.The industry standard remains to thoroughly review bug reports and manually write corresponding fixes. Developers thus require new approaches and tools to help them readily understand bug report and infer the appropriate fix so as to (1) reduce the time-to-fix delay and (2) produce homogeneous code that is easy tomaintain.The RECOMMEND project aims at designing and building a bug fix recommendation system for software development projects. The system will be independent from any programming language. We will leverage information retrieval techniques and machine learning techniques to identify, from the history of a project or of similar projects, examples of fixes which can be proposed to address a newly submitted bug report.

This site uses cookies. By continuing to use this site, you agree to the use of cookies for analytics purposes. Find out more in our Privacy Statement