- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号CN101216803A
(43)申请公布日2008.07.09
(21)申请号CN200810045139.2
(22)申请日2008.01.09
(71)申请人四川大学
地址610064四川省成都市一环路南一段24号
(72)发明人李志蜀金虎王莉孙继荣陈宇郑燕妮李宝林
(74)专利代理机构成都信博专利代理有限责任公司
代理人潘育敏
(51)Int.CI
G06F11/36
权利要求说明书说明书幅图
(54)发明名称
基于基路径的测试程序控制流路径
集生成方法
(57)摘要
本发明属程序测试中的路径测试。
通过引入数学上“基”的概念来定义程序控
制流基路径的概念,首先使用编译器模块
获得表示源程序片程序结构的数据结构,
然后通过遍历该数据结构,使用控制流路
径生成算法生成基于基路径的程序控制流
路径子集编译器模块对被测试源程序进行
语义解释,输出表示被测程序控制流结构
信息的抽象语法树结构。控制流图邻接矩
阵生成模块遍历抽象语法树结构,生成程
序流图的邻接矩阵表示。控制流路径子集
生成模块通过遍历邻接矩阵获得被测程序
控制流信息,采用深度优先多次回溯的方
式遍历邻接矩阵并对语句节点进行处理,
生成基于基路径的程序控制流路径子集。
本方法在生成结果和流程上有突出优势,
可广泛用于软件结构性测试的路径覆盖测
试工程实践中。
法律状态
法律状态公告日法律状态信息法律状态
权利要求说明书
1.一种基于基路径的测试程序控制流路径子集生成方法,其特征在于:在编译器模
块、控制流图邻接矩阵生成模块和控制流路径子集生成模块三模块中完成测试程序
控制流路径子集的生成:首先将被测试源程序片的控制流路径定义为具有长度(模)
和方向属性的向量,则特定程序片断的控制流路径集合以及其上可以施加的向量操
作便组成了一个向量空间,其存在必定存在一个基路径集合,使用编译器模块获得
包含源程序片程序结构信息的数据结构,然后通过遍历该数据结构使用控制流路径
生成算法生成基于基路径的程序控制流路径子集,其具体的方法是:
使用编译器模块对被测试源程序进行处理,用以对被测试源程序进行语义解释,将
被测试源程序与控制流路径生成的测试计算引擎联系起来,形成合理的足以表示被
测程序控制流信息的数据结构——抽象语法树(AST),编译器模块输出此结构供控
制流图邻接矩阵生成模块处理;
处理流程进入程序控制流图邻接矩阵生成模块,该模块遍历抽象语法树结构,按照
语句是否具有条件跳转语义或无条件跳转语义分别调用条件跳转语句处理函数和无
条件跳转处理函数进行处理并生成程序流图的邻接矩阵表示供控制流路径子集生成
模块进行后续操作;
控制流路径子集生成模块通过遍历邻接矩阵获得被测程序控制流信息,采用深度优
先多次回溯的方式遍历邻接矩阵,跟踪并记录程序控制流的执行到的语句节点,并
对该信息进行处理,生成基于基路径的程序控制流路径子集。
2.如权利要求1所述的测试程序控制流路径子集生成方法,其特征在于:所述编译
器模块对被测试源程序进行处理,添加了用于保存某些特定信息的域并在编译过程
中严格建立了源码语句与中间结构AST节点间的一一对应关系。
3.如权利要求1所述的测试程序控制流路径子集生成方法,其特征在于:程序控制
流图邻接矩阵生成模块使用程序算法自动实现遍历抽象语法树结构并生成程序流图
的邻接矩阵表示过程的基本思想是:通过遍历抽象语法树每条语句执行时的静态控
制流信息,对具有影响源程序控制流操作语义的控制流语句进行特殊处理;
其基本流程步骤如下:
步骤1)初始化当前处理语句的语句号i;
步骤2)若语句i为被测程序片的最后一条语句,则算法结束。否则执行步骤3;
步骤3)若语句i具有条件跳转语义(EQ、GE、GT、LE、LT、NE),
文档评论(0)