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

被引:21
作者
Chen, Lingchao [1 ]
Ouyang, Yicheng [1 ]
Zhang, Lingming [2 ]
机构
[1] Univ Texas Dallas, Dept Comp Sci, Richardson, TX 75083 USA
[2] Univ Illinois, Dept Comp Sci, Urbana, IL USA
来源
2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2021) | 2021年
基金
美国国家科学基金会;
关键词
PROGRAM REPAIR;
D O I
10.1109/ICSE43902.2021.00104
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:1123 / 1134
页数:12
相关论文
共 50 条
[1]  
Ammann P., 2016, Introduction to Software Testing, DOI 10.1017/9781316771273
[2]  
Apache Software Foundation, 2020, AP MAV AP MAV
[3]   The Plastic Surgery Hypothesis [J].
Barr, Earl T. ;
Brun, Yuriy ;
Devanbu, Premkumar ;
Harman, Mark ;
Sarro, Federica .
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, :306-317
[4]   Unit Test Virtualization with VMVM [J].
Bell, Jonathan ;
Kaiser, Gail .
36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, :550-561
[5]   On the Effectiveness of Unified Debugging: An Extensive Study on 16 Program Repair Systems [J].
Benton, Samuel ;
Li, Xia ;
Lou, Yiling ;
Zhang, Lingming .
2020 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2020), 2020, :907-918
[6]  
Chen LS, 2017, IEEE INT CONF AUTOM, P637, DOI 10.1109/ASE.2017.8115674
[7]  
CO Boulder, 2013, U CAMBR STUD FAIL AD U CAMBR STUD FAIL AD
[8]  
DCEVM Team, 2020, DYN COD EV VM JAV DYN COD EV VM JAV
[9]  
Debroy Vidroha, 2010, Proceedings of the Third IEEE International Conference on Software Testing, Verification and Validation (ICST 2010), P65, DOI 10.1109/ICST.2010.66
[10]  
Durieux T, 2016, 2016 IEEE/ACM 11TH INTERNATIONAL WORKSHOP IN AUTOMATION OF SOFTWARE TEST (AST), P85, DOI [10.1145/2896921.2896931, 10.1109/AST.2016.021]