Many bugs, even those that are known and documented in bug reports, remain in maturesoftware for a long time due to the lack of the development resources to fix them. We propose a general approach, R2Fix, to automatically generate bug-fixing patches from free-form bug reports. R2Fix combines past fix patterns, machine learning techniques, and semantic patch generation techniques to fix bugs automatically. We evaluate R2Fix on three large and popularsoftware projects, i.e., the Linux kernel, Mozilla, and Apache, for three important types of bugs: buffer overflows, null pointer bugs, and memory leaks. R2Fix generates 60 patches correctly, 5 of which are new patches for bugs that have not been fixed by developers yet. We reported all 5 new patches to the developers; 4 have already been accepted and committed to the coderepositories. The 60 correct patches generated by R2Fix could have shortened and saved an average of 68 days of bug diagnosis and patch generation time.
【 预 览 】
附件列表
Files
Size
Format
View
R2Fix: Automatically Generating Bug Fixes from Bug Reports