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 Jul Times are displayed in time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30: Porting and RepairISSTA Technical Papers at Zurich II Chair(s): Julian DolbyIBM Thomas J. Watson Research Center | |||
11:00 - 11:20 Talk | Search-Based Detection of Deviation Failures in the Migration of Legacy Spreadsheet Applications ISSTA Technical Papers Mohammad M. AlmasiUniversity of Manitoba, Hadi HemmatiUniversity of Calgary, Gordon FraserUniversity of Passau, Phil McMinnUniversity of Sheffield, Janis BenefeldsSEB Life and Pensions Holding AB | ||
11:20 - 11:40 Talk | Making Data-Driven Porting Decisions with Tuscan ISSTA Technical Papers Kareem KhazemUniversity College London, Earl T. BarrUniversity College London, Petr HosekGoogle, Inc. | ||
11:40 - 12:00 Talk | Comparing developer-provided to user-provided tests for fault localization and automated program repair ISSTA Technical Papers René JustUniversity of Massachusetts, USA, Chris ParninNCSU, Ian DrososUniversity of California, San Diego, Michael D. ErnstUniversity of Washington, USA | ||
12:00 - 12:20 Talk | Shaping Program Repair Space with Existing Patches and Similar Code ISSTA Technical Papers Jiajun JiangPeking University, Yingfei XiongPeking University, Hongyu ZhangThe University of Newcastle, Qing GaoPeking University, Xiangqun ChenPeking University Pre-print | ||
12:20 - 12:30 | Q&A in groups ISSTA Technical Papers |