一句话:系统研究多故障程序自动修复的障碍,并提出迭代、并行、同时三种修复策略。
现代自动程序修复工具擅长修复单故障程序,但真实软件常同时包含多个相互影响、彼此掩盖的缺陷,使修复问题更加复杂。本文专门研究多故障程序的修复问题,识别现有修复方法在处理此类程序时面临的主要障碍,并描述三种修复方法:迭代式、并行式与同时式。其中同时式依赖先进故障定位技术一次性定位多个缺陷,迭代式和并行式则通过改造现有单故障修复技术来处理多故障程序。文章还讨论各方法的优缺点及可成功应用的条件,并声称这是首篇专门研究并处理多故障程序修复问题的论文。
Modern automated program repair (APR) tools are well-tuned at repairing single fault programs (i.e., programs in which only one fault can occur at time). However, real-world software projects typically contain multiple bugs at the same time, which can interact with and mask each other in a variety of ways. The complex interaction of faults in multi-fault programs makes the automated repair problem more challenging than the traditional practice of presuming that a program contains a single fault. This paper studies the repair problem of multi-fault programs and identifies the main obstacles that arise when handling such programs using current repair approaches. The paper also describes three repair approaches for multi-fault programs, namely iterative, parallel, and simultaneous. While the simultaneous repair strategy depends on using cutting-edge fault localization techniques that enable the APR approaches to locate many faults at once, the iterative and parallel repair approaches rely on adapting the existing repair techniques for single-fault programs to handle multi-fault programs. Finally, the paper discusses each approach's advantages and drawbacks as well as the conditions in which the approach can be used successfully. To our knowledge, this is the first paper to specifically study and address the repair problem of multi-fault programs.
DOI 原文 ·
@inproceedings{paperbot8439,
title = {Automated Repair of Multi-fault Programs: Obstacles, Approaches, and Prospects},
author = {Omar I. Al-Bataineh},
booktitle = {ASE},
year = {2024},
doi = {10.1145/3691620.3695287}
}