一、文献综述
(一)国内外研究现状
为了保证软件开发的质量,工业界在软件测试阶段投入了大量的人力物力。据统计,软件测试约占软件开发和维护成本的50%-70%,其中最耗时、代价最昂贵的任务之一就是调试过程,这是指对程序错误进行定位和修正的过程。而错误定位又是软件调试中最耗时和困难的一步:调试过程需要理解程序的功能、实现、结构、语义以及相关的失败执行的特点。通常调试任务只能由程序的开发人员来完成,其它人员难以胜任,错误定位过程中的任何改进都可以大大降低调试成本。
Weiser最早提出程序切片可以用于程序理解和软件调试。之后,研究人员发现动态切片更适用于错误定位与理解。此外,早期的研究者试图创造两个相似的程序输入,一个可以导致程序成功执行而另一个会导致执行失败。他们假设相似的输入会导致相似的执行过程,进而开发人员可以通过比较执行的不同来定位错误。由于通信费用的日益降低和计算能力的飞速发展,使得搜集程序执行信息和操纵程序执行状态成为可能。自2002年以来,自动化错误定位技术逐渐成为软件工程界的研究热点。
现有的自动化错误定位技术,大多通过(半)自动化开发人员日常调试时采用的策略,最终给出错误可能存在的位置。有的是通过类似二分查找的方式,缩小引发错误的条件;有的寻找和给定的失败执 行最相似的成功执行,然后比较找出不同;有的认为经常出现在失败执行中的程序实体更值得怀疑;有的观察程序谓词在成功执行和失败执行中的取值模式的异常;还有的修改程序运行时状态来寻找对测试执行结果有影响的谓词或语句等等。按照使用和操纵的程序执行信息的不同,目前的错误定位方法可以划分为3类:基于行为特征对比的方法、基于程序状态修改的方法和基于程序依赖关系的方法。
(二)研究主要成果
目前的自动化错误定位技术研究主要有以下几种 (方法 研究机构 时间) :
- Delta Debugging Saarland University 1999
- Tarantula Georgia Institute of Technology 2002
- Nearest Neighbor Queries Brown University 2003
- Cooperative Bug Isolation University of Wisconsin -Madison 2005
- SOBER UIUC 2006
- Predicate Switching University of Arizona 2006
- SAFL Peking University 2006
- Implicit Dependence Purdue University 2007
- Value Replacement University of California at Riverside 2008
- TWT IBM T.J. Watson Research Center 2008
- CP University of Hong Kong 2009
- HOLMES Microsoft Research 2009
- DES University of Hong Kong 2010
- PPDG Georia Institute of Technolilgy 2010
- Optimal Ranking Metric University of Melbourne 2011
其中,例如 Tarantula错误定位方法应用公式计算每个语句的怀疑度,然后对每个语句按照怀疑度排序。一个语句怀疑度值越大,说明该语句错误的概率值越大,否则该语句出错的概率越小;SOBER错误定位模型对正确和错误测试进行了统计分析,通过比较程序谓词在不同测试用例下的分布情况来寻找最有可能出错的谓词。这写方法都是轻量级的。
(三)发展趋势
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。