[发明专利]一种基于预运算的程序变异软件错误定位方法有效

专利信息
申请号: 201410546540.X 申请日: 2014-10-15
公开(公告)号: CN104317706B 公开(公告)日: 2017-08-25
发明(设计)人: 孙成龙;张震宇;刘畅 申请(专利权)人: 中国科学院软件研究所
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京科迪生专利代理有限责任公司11251 代理人: 成金玉,孟卜娟
地址: 100190 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 运算 程序 变异 软件 错误 定位 方法
【说明书】:

技术领域

发明属于软件测试技术领域,涉及一种软件错误定位方法,特别提供了基于预运算的程序变异软件错误定位方法,可应用于动态的软件错误定位。

背景技术

在敏捷软件持续集成开发过程中,要求软件开发要在编码和测试迭代进行,即编写代码的工作人员每个周期提供一个版本,测试人员进行测试之后再交给编写代码工作人员进行下一个版本的编写,这样的持续集成开发环境可以有效的保证软件开发的效率。但是这样的迭代方式对于编写代码人员与测试人员都存在大量的空闲时间,降低了效率。我们利用在编写代码的过程中软件测试人员就开始进行预测试,将测试的任务在代码编写的过程中完成一部分,来加快软件开发的效率。

另外,为了修改软件中存在的错误,对错误进行定位是必要的步骤之一。软件测试中的错误定位是最困难、最耗时的任务,错误定位是软件测试的瓶颈,使用一种自动化的错误定位技术来协助程序员找到错误是解决软件测试问题的趋势。

学术界早在十年前已经提出了自动化错误定位的概念,最近许多的软件自动错误定位技术通过分析成功和失败测试用例的覆盖信息辅助程序员定位错误代码,Jaccard、Tarantula等人在2002年基于此类方法进行了研究,这类技术统称为基于覆盖信息的错误定位技术。要应用此类分析技术,必须具备两个关键因素:(1)一个(或一组)用于参考的程序执行信息特征,用以提供分析语句可疑度的信息;(2)一个评估函数,用以衡量语句的可疑度。

尽管基于覆盖信息的错误定位技术取得初步成功,但其准确率受到许多负面因素影响,Baudry等人在2006年研究表明了覆盖了程序错误代码的成功测试用例会显著影响基于覆盖信息的错误定位技术的准确率,目前这种错误定位方法的平均运行时间低于5秒,但是在检查5%代码的情况下对错误定位的平均准确率不超过30%。

Papadakis等学者利用程序变异提高错误定位的准确率,其方法是对于程序中的每一个可执行语句S应用不同的变异算子生成若干变异程序,然后对每个变异程序收集运行的覆盖信息,分析语句的可疑度,贺涛等研究人员对其进行了优化与集成并且制作了一款名为Muffler的自动化测试工具。这种错误定位方法在检查5%代码的情况下对错误定位的平均准确率超过60%,但是平均运行时间超过了500秒。

基于覆盖信息的自动化错误定位技术拥有较高的效率,但是准确率很低,基于程序变异的自动化错误定位技术拥有比较高的准确率,但是效率非常低,严重影响了实用性,有必要寻找一种准确率高并且效率也高的自动化错误定位技术。

发明内容

本发明技术解决问题:克服现有技术中存在的上述问题,提供一种基于预计算的程序变异软件错误定位方法,大大提高了准确率和效率。

本发明技术解决方案:一种基于预计算的程序变异软件错误定位方法,原理为:

软件开发需要在编写代码与测试这两个过程中进行迭代,如图(1)a所示,为了减少编写代码人员和测试人员的空闲时间,将测试的任务一部分提前在代码编写的过程中,即预测试可以有效的提高软件开发的效率,如图1(b)所示。

错误定位是软件测试的一个耗时最长、精确度要求高的一个瓶颈,提高错误定位的准确度和效率是加快软件测试的核心。目前基于覆盖信息的错误定位技术准确率低,并且必须在代码编写完成才能进行计算,不适合进行预测试;相反的是基于程序变异的错误定位方法有很高的准确率但是消耗的时间非常大,一个不完整的程序变异与完整程序的变异的本质都是变异,对结果的损失很小,可以进行预测试。

本发明的方法,其步骤包括(见图2与图3):

步骤1、利用程序编写的过程中获得的中间版本的程序生成多个变异版本的程序;

步骤2、执行变异版本的程序,收集各个版本程序的执行信息,所述执行信息包括执行结果(true或false)和次数;

步骤3、当程序编写完毕后,执行最终版本的程序,收集最终版本程序的执行信息;

步骤4、比较变异版本的程序与最终版本程序的各自的程序信息,定位软件错误位置。

本发明与现有技术相比的优点在于:

(1)将测试程序的过程的一部分与编写程序的过程并行执行,即在编写程序的过程中对测试进行预计算,减少了编写程序与测试程序这个过程的整体时间消耗。

(2)本发明在利用变异进行程序错误定位,准确率非常高,使用预计算策略进行加速,测试效率也非常高,比现有错误定位方法在准确率和效率都有提高。

附图说明

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410546540.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top