[发明专利]一种受上下文无关文法约束的测试用例生成方法有效
申请号: | 201110062021.2 | 申请日: | 2011-03-15 |
公开(公告)号: | CN102141959A | 公开(公告)日: | 2011-08-03 |
发明(设计)人: | 张玉清;杨丁宁;刘奇旭 | 申请(专利权)人: | 中国科学院研究生院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100049 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种受上下文无关文法约束的测试用例生成方法,属于软件工程技术领域。本方法为:首先编写一定数量的合法测试用例,根据上下文无关文法分析其语法结构得到解析树,对于每种可能出现的语法成分,构造该成分在已编写测试用例中所生成的子串集合;然后遍历解析树,对于解析树中的每个语法成分,使用相应子串集合中的其它子串来替换该语法成分在当前测试用例中生成的子串,从而得到新的结构更复杂的测试用例。本发明有效避免了生成型数据生成方式固有的状态空间爆炸以及难以满足语义约束等缺陷,测试用例的生成速度快,得到的测试用例结构更复杂且满足语义约束;本发明可对输入数据具备上下文无关文法约束的计算机软件进行安全性测试。 | ||
搜索关键词: | 一种 上下文 无关 文法 约束 测试 生成 方法 | ||
【主权项】:
一种受上下文无关文法约束的测试用例生成方法,其步骤为:1)建立一包括若干合法测试用例的初始集合I;所述合法测试用例为符合目标程序的上下文无关文法约束、能被程序正确地接受和处理的测试用例;2)对于I中的每一合法测试用例,利用上下文无关文法分析其语法结构,得到一解析树T;3)遍历解析树T中每一内结点n,对于n所对应的上下文无关文法非终结符N,将N在测试用例中所生成的子串s加入到该非终结符N对应的字符串集合FragN中;4)对所述初始集合I中每一合法测试用例,重复步骤2)、3),得到每一非终结符在所有合法测试用例中所能生成的字符串集合;5)将I中的合法测试用例作为初始种子测试用例加入到一队列Q中,并为Q设定一个测试用例入队条件P;6)从队列Q的队头依次取出一个初始种子测试用例c,利用上下文无关文法分析其语法结构,得到一个解析树Tc;7)遍历解析树Tc中每一内结点nc,对于nc所对应的上下文无关文法非终结符Nc,查找非终结符Nc所生成的初始种子测试用例c中的子串sc;8)利用4)所得的与该非终结符Nc名称相同的集合FragN中每个字符串分别替代初始种子测试用例c的子串sc,每次得到一个新的测试用例c’,如果c’已经在集合GEN中出现,则将c’丢弃;否则将c’加入到集合GEN中,并且如果c’满足Q中入队条件P,则同时将c’加入队列Q的队尾;9)重复步骤6)~8),直到队列Q中的种子测试用例全部被依次取出,此时将集合GEN中的全部元素作为测试用例输出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院研究生院,未经中国科学院研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110062021.2/,转载请声明来源钻瓜专利网。
- 上一篇:双极化全向天线和无线收发设备
- 下一篇:内存文件系统加载方法及装置