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