4.6 Article

SOSRepair: Expressive Semantic Search for Real-World Program Repair

期刊

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
卷 47, 期 10, 页码 2162-2181

出版社

IEEE COMPUTER SOC
DOI: 10.1109/TSE.2019.2944914

关键词

Maintenance engineering; Semantic search; Encoding; Benchmark testing; Computer bugs; Software; Automated program repair; semantic code search; patch quality; program repair quality; SOSRepair

资金

  1. National Science Foundation [CCF-1453474, CCF-1563797, CCF-1564162, CCF-1645136, CCF-1763423]

向作者/读者索取更多资源

Automated program repair has the potential to reduce software maintenance cost and effort, but often leads to low-quality patches. By replacing faulty code regions with semantically similar code at a higher granularity level, better patch quality can be achieved. Techniques like SOSRepair show promise in effectively repairing real-world defects in systems.
Automated program repair holds the potential to significantly reduce software maintenance effort and cost. However, recent studies have shown that it often produces low-quality patches that repair some but break other functionality. We hypothesize that producing patches by replacing likely faulty regions of code with semantically-similar code fragments, and doing so at a higher level of granularity than prior approaches can better capture abstraction and the intended specification, and can improve repair quality. We create SOSRepair, an automated program repair technique that uses semantic code search to replace candidate buggy code regions with behaviorally-similar (but not identical) code written by humans. SOSRepair is the first such technique to scale to real-world defects in real-world systems. On a subset of the ManyBugs benchmark of such defects, SOSRepair produces patches for 22 (34%) of the 65 defects, including 3, 5, and 6 defects for which previous state-of-the-art techniques Angelix, Prophet, and GenProg do not, respectively. On these 22 defects, SOSRepair produces more patches (9, 41%) that pass all independent tests than the prior techniques. We demonstrate a relationship between patch granularity and the ability to produce patches that pass all independent tests. We then show that fault localization precision is a key factor in SOSRepair's success. Manually improving fault localization allows SOSRepair to patch 23 (35%) defects, of which 16 (70%) pass all independent tests. We conclude that (1) higher-granularity, semantic-based patches can improve patch quality, (2) semantic search is promising for producing high-quality real-world defect repairs, (3) research in fault localization can significantly improve the quality of program repair techniques, and (4) semi-automated approaches in which developers suggest fix locations may produce high-quality patches.

作者

我是这篇论文的作者
点击您的名字以认领此论文并将其添加到您的个人资料中。

评论

主要评分

4.6
评分不足

次要评分

新颖性
-
重要性
-
科学严谨性
-
评价这篇论文

推荐

暂无数据
暂无数据