[发明专利]以布尔表达式的求值序列为谓词单元的软件错误定位方法无效

专利信息
申请号: 201210002136.7 申请日: 2012-01-05
公开(公告)号: CN102541741A 公开(公告)日: 2012-07-04
发明(设计)人: 张震宇;高文超 申请(专利权)人: 中国科学院软件研究所
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京君尚知识产权代理事务所(普通合伙) 11200 代理人: 俞达成
地址: 100190 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 布尔 表达式 求值 序列 谓词 单元 软件 错误 定位 方法
【说明书】:

技术领域

发明属于软件测试技术领域,涉及一种软件错误定位方法,特别提供了一种以布尔表达式的求值序列为谓词单元的软件错误定位方法,可应用于动态的软件错误定位。

背景技术

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

学术界早在十年前已经提出了自动化错误定位的概念。一种流行的方法是通过查找与程序执行结果相关度高的程序语句来定位程序错误。这类方法称为“语句级别的统计错误定位方法”,它关注的是程序语句在成功测试用例和失败测试用例执行中的执行信息的差异。要应用此类分析技术,必须具备两个关键因素:(1)一个(或一组)用于参考的程序执行信息特征,用以提供分析语句可疑度的信息;(2)一个评估函数,用以衡量语句的可疑度。Jones等人于2002年基于此类方法进行了研究。

还有一种方法是将特定的程序语句(例如布尔表达式)视作谓词,将谓词作为程序实体,进行可疑度评估。此类方法对比每个谓词在成功测试用例执行中的求值和在失败测试用例执行中的求值。二者的差别越大,说明这个谓词与程序错误的相关度越高。按照谓词可疑度对谓词进行排序,就可以获得与程序错误最相关的谓词,把谓词位置映射回程序中,就可以预测程序错误的位置。由于这种方法只需要对选定的谓词的执行信息进行采样,而不必采集所有语句的执行信息,所以可以减轻插桩对程序行为带来的影响,降低采集执行信息的复杂度,同时避免暴露太多的代码,降低信息泄露的风险。这里,插桩是指程序插桩技术,它在保证被测程序原有逻辑完整性的基础上在程序中插入探针,通过探针的执行捕获程序运行数据。

Liblit等人(2005年),柳超等人(2006年),Chilimbi等人(2009年)分别就此种方法提出了谓词可疑度的评估函数。举例来说,Liblit等人提出的CBI方法衡量谓词在失败测试用例中被评估成“true”的可能性,并与其整个测试用例集中的相应可能性进行对比。柳超等人提出的SOBER方法通过对比一次执行中谓词被评估成“true”和“false”的比例——求值偏差——来预测和程序错误相关的谓词(一个谓词的求值偏差指的是在一次执行中这个谓词被评估成“true”的比例)。

上述基于谓词的统计错误定位技术虽然解决了收集所有语句执行信息而造成的数据量庞大的问题,然而粒度较粗,并没有充分利用能够收集到的谓词执行信息。随着软件复杂度的增加,复合型布尔表达式经常被用作谓词,将组成复合表达式的原子型表达式(如“a>3&&b<10”中的子句“a>3”和“b<10”)用作谓词是很自然的想法。然而,常见编程语言(例如C,C++,Java等)的短路求值机制使得对原子布尔表达式的求值变得困难。含有“&&”和“||”操作符的操作数表达式,在进行求值时,只要最终的结果已经可以确定是true或false,求值过程便告终止,这就称之为短路求值。短路求值机制是关系操作符的重要属性,也是确定编程语言中表达式求值的规则。举例来说,在复合型布尔表达式“a>3&&b<10”中,当原子型布尔表达式“a>3”求值为“false”时,对原子型布尔表达式“b<10”将不再求值,因为该复合型布尔表达式的求值已经确定为“false”。因此,是否对每个原子型布尔表达式都进行求值是不可预测的。同时,由于存在有例如“p!=3&&p[0]>0”形式的复合型布尔表达式,对各个原子型布尔表达式进行强行求值也是不安全的。由于种种原因,将原子型布尔表达式直接用作谓词变得不可行。

基于谓词的统计错误定位方法使用较粗粒度的信息,导致算法准确度降低,从而影响实用性,有必要寻找更细粒度的谓词以解决这个问题。

发明内容

本发明的目的在于克服现有技术中存在的上述问题,提供一种以布尔表达式的求值序列为谓词单元的软件错误定位方法。

本发明的方法,其步骤包括:

1、提取待测软件程序中的各布尔表达式,得到其对应的布尔表达式的求值序列;

2、将上述布尔表达式的求值序列作为谓词,收集各谓词在程序执行中的执行信息,所述执行信息包括执行结果(true或false)和次数;

3、根据上述各谓词的执行信息,计算各谓词的可疑度,根据可疑度确定与软件错误相关的谓词;

4、根据上述与软件错误相关的谓词的位置定位软件错误位置。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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