SemFix公司

SemFix:通过语义分析进行程序修复。调试在任何主要的软件开发项目中都会消耗大量的时间和精力。此外,即使在确定了错误的根本原因之后,修复错误也不是件容易的事。在这种情况下,自动化程序修复方法很有价值。本文提出了一种基于符号执行、约束求解和程序综合的自动修复方法。在我们的方法中,对修复代码通过给定测试集的要求被描述为一个约束。然后,通过迭代修复表达式的分层空间(按修复代码的复杂性分层)来解决此类约束。我们将我们的方法与最近提出的基于遗传编程的修复SIR程序(带有种子bug)以及GNU Coreutils片段与实际bug进行了比较。在这些问题上,我们的方法报告了比基于遗传编程的修复更高的成功率,并且产生的修复更快。