[发明专利]基于程序行为切片的测试案例约减方法有效
申请号: | 201310479195.8 | 申请日: | 2013-10-14 |
公开(公告)号: | CN103559122A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 管晓宏;郑庆华;刘烃;王海军;俞乐晨;黄小龙 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 蔡和平 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 程序 行为 切片 测试 案例 方法 | ||
1.基于程序行为切片的测试案例约减方法,其特征在于,包括如下步骤:
S1)根据输入的待测程序,利用静态程序分析方法,分析待测程序的控制流和信息流,提取待测程序的控制依赖和数据依赖;
S2)根据待测程序的控制依赖和数据依赖,计算待测程序的潜在依赖;
S3)根据待测程序的控制依赖、数据依赖和潜在依赖,在程序控制流图上构建程序的组合依赖;
S4)利用符号执行方法随机生成一条初始路径,并将对应初始路径的测试案例存入有效测试案例集;
S5)计算新生成的路径覆盖的程序行为切片,第一次执行时为初始路径:对路径执行的每一个分支节点,计算它在路径上的程序行为切片;路径上某个节点ni的程序行为切片包含所有满足如下性质的节点:节点在路径上通过控制依赖,数据依赖,潜在依赖,组合依赖或者它们的传递和节点ni存在影响关系;
S6)计算新生成的路径未覆盖的程序行为切片,第一次执行时为初始路径:根据依赖关系计算路径上所有需要取反的分支,并计算这些分支取反后在路径上的程序行为切片;
S7)对未覆盖程序行为切片库进行更新:删除被新生成路径覆盖的程序行为切片,并添加新生成路径未被覆盖的程序行为切片;
S8)如果未覆盖程序行为切片库为空,即不存在未被覆盖的程序行为切片,转步骤S10);否则,转步骤S9);
S9)根据广度优先算法搜索从未覆盖程序行为切片库中选取一条程序行为切片,引导符号执行生成测试路径,若路径有效,将其对应的测试案例存入有效测试案例集,并转步骤S5);若无法生成有效路径,从未覆盖程序行为切片库中删除该程序行为切片,转步骤S8);
S10)输出:有效测试案例集,该测试案例集覆盖待测程序的所有程序行为切片。
2.根据权利要求1所述的测试案例约减方法,其特征在于,步骤S2)中潜在依赖的定义:条件语句s1和语句s2同时满足如下两个条件,称条件语句s1和语句s2存在潜在依赖:1)当条件语句s1取分支br时,存在一条语句s’1满足如下条件:语句s1和语句s’1通过br存在直接或间接控制依赖并且语句s’1和语句s2存在数据依赖;2)当条件语句s1取br的反向分支br’时,不存在语句s’1满足如下条件:语句s1和语句s’1通过分支br’存在直接或间接控制依赖并且语句s’1和语句s2存在数据依赖控制依赖和数据依赖描述了语句s1的执行对另外一条语句s2的影响,然而潜在依赖刻画了语句s1控制另外一条语句s’1不执行时对语句s2的影响。
3.根据权利要求1所述的测试案例约减方法,其特征在于,步骤3)中组合依赖的定义:语句s1和语句s2同时满足如下三个条件,称语句s1和语句s2存在组合依赖:1)存在一条路径从语句s1,经过语句s2能够到达语句s3;2)在该路径上,语句s1和语句s3存在数据依赖,潜在依赖或者组合依赖;3)在该路径上,语句s2和语句s3存在动态控制,数据,潜在或者组合依赖。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310479195.8/1.html,转载请声明来源钻瓜专利网。