MintHint:修复提示的自动合成
软件工程
2013-09-17 v2
摘要
能够自动修复程序是一项极具挑战性的任务。在本文中,我们提出了 MintHint,这是一种新颖的程序修复技术,与当今大多数方法截然不同。MintHint 并不试图完全自动化程序修复(这往往是一个无法实现的目标),而是执行统计相关性分析以识别可能出现在修复后代码中的表达式,并利用基于模式匹配的合成技术从这些表达式中生成修复提示。直观地说,这些提示建议如何纠正 faulty 语句,并帮助开发人员找到完整且实际的修复方案。MintHint 能够处理各种常见故障,包括不正确、多余和缺失的表达式。我们提出了一项用户研究,表明与仅拥有传统故障定位信息相比,使用 MintHint 生成的修复提示可以将开发人员的生产力提高数倍。我们还将 MintHint 应用于一个广泛使用的 Unix 实用程序中的多个故障,以进一步评估该方法的有效性。我们的结果表明,即使在以下情况下,MintHint 也能表现良好:(1) 搜索的修复空间不包含确切的修复方案;(2) 从用于修复的测试用例中获得的操作规范不完整甚至不精确。
引用
@article{arxiv.1306.1286,
title = {MintHint: Automated Synthesis of Repair Hints},
author = {Shalini Kaleeswaran and Varun Tulsian and Aditya Kanade and Alessandro Orso},
journal= {arXiv preprint arXiv:1306.1286},
year = {2013}
}