利用 SMT 自动修复有缺陷的 If 条件与缺失的前置条件
软件工程
2018-07-06 v1
摘要
我们提出了 Nopol,一种自动修复有缺陷的 if 条件和缺失前置条件的方法。作为输入,它接受一个程序和一个测试套件,该测试套件包含模拟程序预期行为的通过测试用例,以及至少一个体现待修复缺陷的失败测试用例。该方法包括从多次插桩测试套件执行中收集数据,将这些数据转化为可满足性模理论 (Satisfiability Modulo Theory, SMT) 问题,并将 SMT 结果(如果存在)翻译为源代码补丁。Nopol 可修复面向对象代码,并允许补丁包含空值检查以及特定的方法调用。
引用
@article{arxiv.1404.3186,
title = {Automatic Repair of Buggy If Conditions and Missing Preconditions with SMT},
author = {Favio Demarco and Jifeng Xuan and Daniel Le Berre and Martin Monperrus},
journal= {arXiv preprint arXiv:1404.3186},
year = {2018}
}
备注
CSTVA'2014, India (2014)