[发明专利]一种受上下文无关文法约束的测试用例生成方法有效
申请号: | 201110062021.2 | 申请日: | 2011-03-15 |
公开(公告)号: | CN102141959A | 公开(公告)日: | 2011-08-03 |
发明(设计)人: | 张玉清;杨丁宁;刘奇旭 | 申请(专利权)人: | 中国科学院研究生院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100049 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 上下文 无关 文法 约束 测试 生成 方法 | ||
1.一种受上下文无关文法约束的测试用例生成方法,其步骤为:
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中的全部元素作为测试用例输出。
2.如权利要求1所述的方法,其特征在于所述初始集合I中的测试用例覆盖上下文无关文法所有语法结构。
3.如权利要求2所述的方法,其特征在采用深度优先的方法遍历解析树。
4.如权利要求2所述的方法,其特征在采用广度优先的方法遍历解析树。
5.如权利要求3或4所述的方法,其特征在于遍历解析树中同一父结点下的子结点时,位于左侧的子结点先于右侧的子结点遍历。
6.如权利要求1或2所述的方法,其特征在于所述初始种子测试用例为所述初始集合I中的合法测试用例。
7.如权利要求1或2所述的方法,其特征在于所述入队条件P为测试用例长度小于一设定阈值。
8.如权利要求1或2所述的方法,其特征在于所述合法测试用例为Fuzzing测试用例。
9.如权利要求1或2所述的方法,其特征在于所述目标程序为以受上下文无关文法约束的数据为输入的软件或系统。
10.如权利要求9所述的方法,其特征在于所述软件包括但不限于:网络浏览器软件、数据库服务器系统软件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院研究生院,未经中国科学院研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110062021.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:双极化全向天线和无线收发设备
- 下一篇:内存文件系统加载方法及装置