VarFix: balancing edit expressiveness and search effectiveness in automated program repair

VarFix: balancing edit expressiveness and search effectiveness in automated program repair
复制标题

DOI:
10.1145/3468264.3468600
复制
发表时间:
2021-08
期刊:
Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子:
--
通讯作者:
Chu-Pan Wong;Priscila Santiesteban;Christian Kästner;Claire Le Goues
Chu-Pan Wong;Priscila Santiesteban;Christian Kästner;Claire Le Goues
中科院分区:
其他
文献类型:
--
作者:
Chu-Pan Wong;Priscila Santiesteban;Christian Kästner;Claire Le Goues

文献摘要

被引文献

相似文献

自动修复有bug的程序本质上是一个搜索问题,搜索通过一组测试的代码转换。已经探索了各种搜索策略,但它们要么使用启发式以一种特殊的方式导航搜索空间,要么系统地导航搜索空间,但代价是受支持的程序编辑类型的编辑表达能力有限。在这项工作中,我们探索了在不牺牲编辑表现力的情况下系统地导航搜索空间的可能性。这种探索的关键促成因素是变分执行,这是一种动态分析技术,已被证明在探索大型搜索空间中的许多类似执行时非常有效。我们在IntroClassJava和Defects4J上评估了我们的方法,表明系统搜索在利用和组合修复成分来找到补丁方面是有效的,包括许多高质量的补丁和多编辑的补丁。
Automatically repairing a buggy program is essentially a search problem, searching for code transformations that pass a set of tests. Various search strategies have been explored, but they either navigate the search space in an ad hoc way using heuristics, or systemically but at the cost of limited edit expressiveness in the kinds of supported program edits. In this work, we explore the possibility of systematically navigating the search space without sacrificing edit expressiveness. The key enabler of this exploration is variational execution, a dynamic analysis technique that has been shown to be effective at exploring many similar executions in large search spaces. We evaluate our approach on IntroClassJava and Defects4J, showing that a systematic search is effective at leveraging and combining fixing ingredients to find patches, including many high-quality patches and multi-edit patches.