2013 · 96 citations · 37 references
Software MaintenanceEngineeringNull Pointer BugsBug ReportsSoftware EngineeringSource Code AnalysisSoftware AnalysisFormal VerificationHardware SecurityData ScienceCorrect PatchesFuzzingSoftware MiningReliabilityComputer EngineeringComputer ScienceStatic Program AnalysisAutomated RepairSoftware DesignMature SoftwareProgram AnalysisSoftware TestingSystem Software
Many bugs, even those that are known and documented in bug reports, remain in mature software 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 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 57 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 code repositories. The 57 correct patches generated by R2Fix could have shortened and saved up to an average of 63 days of bug diagnosis and patch generation time.
37
Shan Lu, Soyeon Park, Eunsoo Seo et al. · 2008 · 884 citations
Software Maintenance, Engineering, Computer Architecture +25
Programmers use slices when debugging
Mark Weiser · Communications of the ACM · 1982 · 760 citations · Full text
Smaller Coherent Pieces, Engineering, Cross-cutting Concern +18
Automatically finding patches using genetic programming
Westley Weimer, ThanhVu Nguyen, Claire Le Goues et al. · 2009 · 758 citations
Thomas D. LaToza, Gina Venolia, Robert DeLine · 2006 · 608 citations
Artificial Intelligence, Software Maintenance, Software Development Practice +27