Fast and Precise On-the-fly Patch Validation for All

2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2021)(2021)

引用 22|浏览45
暂无评分
摘要
Generate-and-validate (G&V) automated program repair (APR) techniques have been extensively studied during the past decade. Meanwhile, such techniques can be extremely time-consuming due to the manipulation of program code to fabricate a large number of patches and also the repeated test, executions on patches to identify potential fixes. PraPR, a recent, G&V APR technique. reduces such costs by modifying program code directly at the level of compiled JVM bytecode with on-the-fly patch validation, which directly allows multiple bytecode patches to he tested within the same JVM process. However.. PraPR is limited due to its unique bytecode-repair design, and is basically unsound/imprecise as it assumes that patch executions do not change global JVM state and affect later patch executions on the same JVM process. In this paper, we propose a unified patch validation framework, named I ?niAPR, to perform the first empirical study of on-the-fly patch validation for state-ofthe-art source-code-level APR techniques widely studied in the literature; furthermore, UniAPR addresses the imprecise patch validation issue by resetting the JVM global state via runtime bytecode transformation. We have implemented UniAPR, as a publicly available fully automated Maven Plugin. Our study demonstrates for the first time that on-the-flv patch validation can often speed up state-of-the-art source-code-level APR by over an order of magnitude, enabling all existing APR techniques to explore a larger search space to fix more bugs in the near future. Furthermore, our study shows the first empirical evidence that vanilla on-the-Hy patch validation can be imprecise/unsound, while UniAPR with JVM reset is able to mitigate such issues with negligible overhead.
更多
查看译文
关键词
program code,repeated test executions,potential fixes,UniAPR,imprecise patch validation issue,JVM global state,runtime bytecode transformation,APR techniques,vanilla on-the-fly patch validation,JVM reset,Maven Plugin,source-code-level APR
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要