Accelerating Patch Validation for Program Repair with Interception-Based Execution Scheduling

Guardado en:
Detalles Bibliográficos
Publicado en:arXiv.org (Jan 26, 2024), p. n/a
Autor principal: Yuan-An, Xiao
Otros Autores: Yang, Chenyang, Wang, Bo, Xiong, Yingfei
Publicado:
Cornell University Library, arXiv.org
Materias:
Acceso en línea:Citation/Abstract
Full text outside of ProQuest
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!

MARC

LEADER 00000nab a2200000uu 4500
001 2811363524
003 UK-CbPIL
022 |a 2331-8422 
035 |a 2811363524 
045 0 |b d20240126 
100 1 |a Yuan-An, Xiao 
245 1 |a Accelerating Patch Validation for Program Repair with Interception-Based Execution Scheduling 
260 |b Cornell University Library, arXiv.org  |c Jan 26, 2024 
513 |a Working Paper 
520 3 |a Long patch validation time is a limiting factor for automated program repair (APR). Though the duality between patch validation and mutation testing is recognized, so far there exists no study of systematically adapting mutation testing techniques to general-purpose patch validation. To address this gap, we investigate existing mutation testing techniques and identify five classes of acceleration techniques that are suitable for general-purpose patch validation. Among them, mutant schemata and mutant deduplication have not been adapted to general-purpose patch validation due to the arbitrary changes that third-party APR approaches may introduce. This presents two problems for adaption: 1) the difficulty of implementing the static equivalence analysis required by the state-of-the-art mutant deduplication approach; 2) the difficulty of capturing the changes of patches to the system state at runtime. To overcome these problems, we propose two novel approaches: 1) execution scheduling, which detects the equivalence between patches online, avoiding the static equivalence analysis and its imprecision; 2) interception-based instrumentation, which intercepts the changes of patches to the system state, avoiding a full interpreter and its overhead. Based on the contributions above, we implement ExpressAPR, a general-purpose patch validator for Java that integrates all recognized classes of techniques suitable for patch validation. Our large-scale evaluation with four APR approaches shows that ExpressAPR accelerates patch validation by 137.1x over plainvalidation or 8.8x over the state-of-the-art approach, making patch validation no longer the time bottleneck of APR. Patch validation time for a single bug can be reduced to within a few minutes on mainstream CPUs. 
653 |a Scheduling 
653 |a Patches (structures) 
653 |a Mutation 
653 |a Repair 
653 |a Equivalence 
653 |a Interception 
653 |a Run time (computers) 
700 1 |a Yang, Chenyang 
700 1 |a Wang, Bo 
700 1 |a Xiong, Yingfei 
773 0 |t arXiv.org  |g (Jan 26, 2024), p. n/a 
786 0 |d ProQuest  |t Engineering Database 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/2811363524/abstract/embedded/75I98GEZK8WCJMPQ?source=fedsrch 
856 4 0 |3 Full text outside of ProQuest  |u http://arxiv.org/abs/2305.03955