[发明专利]一种程序不可达路径的自动检测方法在审

专利信息
申请号: 201510843266.7 申请日: 2015-11-26
公开(公告)号: CN105446881A 公开(公告)日: 2016-03-30
发明(设计)人: 唐郑熠;王金水;薛醒思;洪茂雄;胡文瑜;刘建华 申请(专利权)人: 福建工程学院
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京市商泰律师事务所 11255 代理人: 王晓彬
地址: 350118 福*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 程序 不可 路径 自动检测 方法
【说明书】:

技术领域

发明属于软件测试领域,具体地,本发明涉及一种程序不可达路径的自动检测方法。

背景技术

术语解释:

控制流图:控制流图(ControlFlowGraph)是程序语句逻辑执行顺序的图形化表达方式,简称为CFG。CFG包括节点和有向边两类元素:节点表示程序中的语句,并且有唯一的入口节点与出口节点;边表示节点之间的顺序关系。

程序路径:是指由CFG中的节点构成的一个序列,若该序列的首节点为入口节点,末节点为出口节点,则该路径称为完整路径。

不可达路径:是指在任何情况下都不会出现的程序路径。

软件测试是软件质量保障的重要手段,需要耗费大量的人力与物力。统计数据表明,软件测试的开销占到了软件开发总成本的60%以上。软件测试的自动化是提高软件测试质量、降低成本、提高效率的一个重要途径,因此被学术界与工业界广泛地关注与研究。大体上,软件测试可以分为功能测试与结构测试,后者是指对程序的内部逻辑结构进行测试,以判定程序的各条路径是否能够满足需求。然而充分覆盖程序的测试是难以达成的,因为即使是并不复杂的程序段,也会由于分支、循环结构的存在,导致产生规模巨大的路径空间。因此,结构测试的一个重要研究领域,就是解决面向程序路径的测试数据生成问题。而不可达路径的检测,则是其中的一个重要研究热点。所谓的程序不可达路径,是指在任何输入下,都不会被执行的程序路径。程序不可达路径的存在,会导致在生成测试数据时,产生大量的无效测试数据,从而在测试执行时浪费大量的人力与物力,从而大大影响到测试的效率。因此,不可达路径的检测不仅能够降低测试成本,还能够有效提高测试效率,一直以来都是软件测试领域的一个研究热点。

程序中所存在的不可达路径是代码冗余的一种表现形式,Liverpool大学的Yates与Malevris两位学者,通过实验证明了在大型软件系统中通常都会包含有10-25%的冗余代码。不可达路径的检测问题已经被证明是一个不可判定问题,因此所有的检测方法都是非完备的,即不存在能够检测出所有不可达路径的算法。目前,检测程序不可达路径的方法,可以分为静态检测与动态检测两类。

1.静态检测技术

静态检测技术可依据原理,分为两类:

●基于路径条件可满足性的方法:是指针对所有的程序路径,通过对满足路径条件的谓词组合进行求解,依据解的存在性来判定路径的可达性。这类方法具有较高的复杂度。

●基于分支相关性的方法:是指通过对分支语句进行相关性分析的手段,来检测不可达路径。

在第一类技术中,典型的方法,是抽取程序的每条路径的分支谓词,并规约为一个方程组,通过求解方程组是否有解来判定路径是否可达。然而这类方法具有较高的复杂性,并且缺乏表达数组、结构体等复合数据类型的能力。此外,还有一些类似的方法:使用区间算术规约程序路径,但这类方法在处理条件谓词中的非线性表达式时,效率较为低下;使用代码模式检测程序分支,并通过符号执行技术进行路径的可达性检测,但这类方法的通用性受到代码模式的约束;使用变量的抽象取值范围规约程序的状态条件,通过判断路径的变量取值范围来判定路径是否可达,但这类方法不能很好地处理复合的分支条件。

程序分支之间的相关性是产生不可达路径的主要原因,在具有一定复杂度的程序中,9-40%的分支语句会存在相关系。但基于相关性分析的检测方法由于无法分析结构复杂的分支条件,因此难以获得令人满意的节点覆盖率。该类方法的代表性工作包括:在传统的数据流分析中加入了分支相关性分析,从而提高传统数据流分析的精度;通过判断赋值语句、分支语句之间的冲突性来识别不可达路径,然而该方法却缺乏处理循环结构的能力;通过对控制流与数据流的静态分析,来确定相关性语句,并进而判定不可达路径,其特点是能够处理函数调用关系。

2.动态检测技术

动态检测技术是指在进行路径测试的过程中,依据测试用例生成的复杂度来判定待测试的路径是否可达。然而动态检测技术的检查代价通常较大,并且无法保证检测结果的绝对准确,具有较强的不确定性。

常见的方法包括:使用基于启发式策略的方法检测不可达路径,其依据是可达路径的部分属相同这一原理,从而通过检测试数据的生成轨迹来实现路径可达性的检测;使用语义更新技术,从程序语义上来排除程序中的不可达路径;利用遗传算法来检测不可达路径,为了更好地引导搜索,该类方法会通过融合控制流图的信息,进行适应度函数的设计。

现有的技术方案,存在以下的问题:

(1)复杂度较高,检测效率较低。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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