Shaping Program Repair Space with Existing Patches and Similar Code
Automated program repair (APR) has great potential to reduce bug-fixing effort and many promising approaches have been proposed in recent years. APRs are often treated as a search problem where the search space consists of all the possible patches and the goal is to identify the correct patch in the space. Current approaches usually take a data-driven approach to reduce search space and estimate the likelihood of patches. They commonly use existing patches and source code as data sources and have explored their effectiveness for automatic program repair. Especially, recent research revealed that many fix ingredients can be found in existing source code at a finer granularity.
In this paper, we propose a novel automatic program repair approach that takes the intersection between two search spaces obtained by analyzing 1) existing patches and 2) source code via a fine-grained code differencing algorithm. In this way, our approach reduces the search space and allows to adapt existing code snippet at finer granularity for patch generation. We have implemented our approach as a tool called SimFix, and evaluated it on the Defects4J benchmark. Our tool successfully fixed 34 bugs. To our best knowledge, this is the largest number of bugs fixed by a single technology on the Defects4J benchmark. Furthermore, as far as we know, 13 bugs fixed by our approach have never been fixed by the current approaches.
Wed 18 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | Porting and RepairISSTA Technical Papers at Zurich II Chair(s): Julian Dolby IBM Thomas J. Watson Research Center | ||
11:00 20mTalk | Search-Based Detection of Deviation Failures in the Migration of Legacy Spreadsheet Applications ISSTA Technical Papers Mohammad M. Almasi University of Manitoba, Hadi Hemmati University of Calgary, Gordon Fraser University of Passau, Phil McMinn University of Sheffield, Janis Benefelds SEB Life and Pensions Holding AB | ||
11:20 20mTalk | Making Data-Driven Porting Decisions with Tuscan ISSTA Technical Papers Kareem Khazem University College London, Earl T. Barr University College London, Petr Hosek Google, Inc. | ||
11:40 20mTalk | Comparing developer-provided to user-provided tests for fault localization and automated program repair ISSTA Technical Papers René Just University of Massachusetts, USA, Chris Parnin NCSU, Ian Drosos University of California, San Diego, Michael D. Ernst University of Washington, USA | ||
12:00 20mTalk | Shaping Program Repair Space with Existing Patches and Similar Code ISSTA Technical Papers Jiajun Jiang Peking University, Yingfei Xiong Peking University, Hongyu Zhang The University of Newcastle, Qing Gao Peking University, Xiangqun Chen Peking University Pre-print | ||
12:20 10m | Q&A in groups ISSTA Technical Papers |