编辑: hys520855 | 2013-05-06 |
3 个方面进行阐述,王赞等人[8] 将补丁生成阶段划分为基于搜索、基于语义和其他这
3 类对 应方法进行阐述.以上综述有利于理清具体问题的差异和每种技术体系下各类方法的发展趋势,但不利于对程 序自动修复领域各类具体问题之间的联系和技术体系中逻辑关系的理解.例如,基于搜索和基于语义的修复方 法其实面向的是同一类不完全规约的修复问题,即具有共同的潜在假设,认为补丁通过全部测试用例则是正确 的[11] .我们的工作尝试抽象出该领域面对的几类问题和不同的前提假设,然后以抽象问题作为脉络,分析各类技 术体系和典型的方法. 其次,在上述综述之后,又有一些新的典型问题和方法出现,我们增加了新的有代表性的工作.例如,Le 等人[11] 发现,基于语义的修复方法也同样存在过拟合问题,但某些情况下,过拟合现象和基于搜索的方法所表现的 形式不同,这是对不完全规约修复问题中过拟合问题的重要说明.例如,Mechtaev 等人[12] 引入了参考程序的思想 缓解过拟合问题.该方法完全不依赖测试集,从而区别开了已有基于测试集的修复方法和补丁择优的方法,为不
246 Journal of Software 软件学报 Vol.30, No.2, February
2019 完全规约修复问题中缓解过拟合这一关键问题提供了新的思路.我们的梳理工作也吸收了上述典型问题及其 代表性研究成果,总体上新增前文综述未覆盖的研究文献
22 篇. 我们将视角扩展到整个程序自动修复的范畴,为了方便分析和说明规约刻画对程序自动修复的重要性,提 出了一种基于规约的程序自动修复描述.基于该描述所面对的不同修复问题,将现有修复技术所面向的修复对 象抽象为完全规约、不完全规约和半完全规约这
3 大类问题.以上述问题分类为线索,并结合基于规约的程序 自动修复描述,梳理了各类技术体系的发展现状和需要研究的核心问题.本文的主要工作内容如下. (1) 提出了一种基于规约的程序自动修复描述,说明了程序规约的刻画在修复过程中的重要性.从一个新 的角度对程序自动修复技术领域进行分析,根据描述中对待修复程序刻画的程序规约 S(specification) 是否完整,将现有修复技术面向的问题抽象为完全规约、不完全规约和半完全规约这
3 大类.由于能 否完整地描述和刻........