咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >基于变异测试的错误修正系统的设计与实现 收藏
基于变异测试的错误修正系统的设计与实现

基于变异测试的错误修正系统的设计与实现

作     者:王雪华 

作者单位:哈尔滨工业大学 

学位级别:硕士

导师姓名:苏小红

授予年度:2016年

学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

主      题:错误定位 错误修正 变异测试 变异体 变异算子 

摘      要:在信息化社会不断发展壮大的今天,作为信息技术的核心,软件行业由于其强大的渗透和辐射作用,对国民经济的提高和社会的发展起到了一定的推动作用,可以说,软件正以数据的形式重新定义我们的世界。随着众多信息企业的迅猛发展,海量的软件产品日趋多样化,给人们带来了极大的效益。尽管如此,即使是最高质量的软件仍然可能包含错误,这样很可能会导致软件失效,这就需要对程序进行调试。调试失效程序的过程分为两步:第一步错误定位,第二步错误修正。目前,研究人员提出一系列错误定位技术来检测软件程序中的错误,然而,这些研究仅仅局限于发现软件中的错误,而没有对检测到的错误信息进行分析和修正处理。即使一个错误被检测和定位到,修正错误的负担仍然留给了程序员进行人工处理。变异测试最初用于评价测试集的有效性和生成测试套件,主要思想是引入合理的错误到原始程序中并运行测试用例看它们是否可以识别这些错误。这个过程能让测试人员生成一个有效的测试集,帮助找到程序中真实的错误。后来,变异测试被研究人员应用于错误定位和错误修正领域。因此,本文重点研究错误自动修正技术,在对错误修正系统进行需求分析的基础上,主要完成了以下工作:首先,通过对正确的原始程序和错误版本进行词法语法分析生成相应的抽象语法树,使用插桩技术获取待测程序的执行路径信息,并且随机提取失败和成功的测试用例及其执行结果,研究测试用例对减少变异测试开销的影响。其次,使用Tarantula和Ochiai两种错误定位技术,对程序进行错误定位,对语句的执行信息进行统计分析,生成可疑度排名列表,研究错误定位技术对整个错误修正效率的影响。然后,为了对定位到的错误进行修正,本文采取了8个预设的变异算子,按照一定的比例优先变异可疑度排名列表中排名靠前的语句并产生变异体。此外,使用TCC编译器在随机提取的测试用例上执行变异体,通过变异体在测试用例上全部执行成功验证变异体是潜在的修复。最后,设计实现了基于变异测试的错误修正系统,并在Siemens Suite标准测试集上对系统进行了测试,测试结果表明基于变异测试的方法对错误进行修正是有效的。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分