暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
一种GBase数据库模糊测试用例生成方法及装置_CN117971706A_南大通用.pdf
17
10页
2次
2024-06-11
免费下载
(19)国家知识产权局
(12)发明专利申请
(10)申请公布号
(43)申请公布日
(21)申请号 202410382923.1
(22)申请日 2024 .04 .01
(71)申请人 天津南大通用数据技术股份有限公
地址 300384 天津市滨海新区华苑产业区
海泰发展六道6号海泰绿色产业基地J
(72)发明人 王未 
(74)专利代理机构 天津合正知识产权代理有限
公司 12229
专利代理师 李成运
(51)Int.Cl .
G06F
11/36
(2006 .01)
G06F
16/242
(2019 .01)
(54)发明名称
一种GBase数据库模糊测试用例生成方法及
装置
(57)摘要
本发明提出一种GBase数据库模糊测试用例
生成方法及装置获取被测GBase数据库的元数
据;定义语法规则和词法规则生成Antlr抽象语
法树访问所述Antlr抽象语法树生成SQL语句模
板;对生成的SQL语句模板进行识别生成SQL
象语法树访问SQL抽象语法树生成随机SQL
句;对被测GBase数据库执行所述随机SQL语句
并返回执行结果从执行结果和数据库状态两大
方面进行结果分析到生成指定数量的随
SQL语句或数据库崩溃本发明使GBase数据库模
糊测试时生成的随机SQL文本满足其执行环境
既在语法上能够通过GBase数据库语法解析器的
检查又在语义上符合运行时的数据库环境
权利要求书2页 说明书5页 附图2页
CN 117971706 A
2024.05.03
CN 117971706 A
1 .一种GBase数据库模糊测试用例生成方法,其特征在于包括
S1获取被测GBase数据库的元数据
S2使用Antlr文法规则依据GBase数据库的SQL语法定义语法规则通过指定的元数据
规则定义与所述被测GBase数据库的元数据相关的词法规则
S3基于所述语法规则和词法规则使用Antlr工具生成Antlr抽象语法树通过前序遍
历的方式访问所述Antlr抽象语法树生成SQL语句模板
S4对生成的SQL语句模板进行识别准确识别SQL语句模板中的全部语法成分生成
SQL抽象语法树访问SQL抽象语法树将指定的元数据规则替换成真正的元数据字面量
成随机SQL语句
S5对被测GBase数据库执行所述随机SQL语句并返回执行结果从执行结果和数据库
状态两大方面进行结果分析
S6循环执行步骤S3S5直到生成指定数量的随机SQL语句或数据库崩溃
2.根据权利要求1所述的GBase数据库模糊测试用例生成方法其特征在于步骤S1
所述元数据包括用户表的名称列的名称数据类型内置函数和参数类型还定义了不同
数据类型的数据字面量的生成方法
3.根据权利要求1所述的GBase数据库模糊测试用例生成方法其特征在于步骤S3中,
生成SQL语句模板的方法包括访问所述Antlr抽象语法树如果访问的是词法规则则直接
返回所述词法规则的定义如果访问的是语法规则则从语法规则的定义中随机抽取一个
语法分支然后对分支的每个元素继续进行访问直到返回全部词法规则的定义
4 .根据权利要求3所述的GBase数据库模糊测试用例生成方法其特征在于随机抽取
语法分支时设置最大递归深度当语法规则被访问时访问次数+1当访问次数大于所述
最大递归深度时选择不会产生递归行为的语法分支来结束递归
5.根据权利要求1所述的GBase数据库模糊测试用例生成方法其特征在于步骤S4
体包括基于所述语法规则和词法规则生成SQL文法解析器SQL文法解析器基于SQL语句模
板识别语法成分确定元数据之间的关系生成SQL抽象语法树
6.一种GBase数据库模糊测试用例生成装置其特征在于包括SQL语法组件SQL语义
组件SQL语句模板组件连接器组件元数据组件SQL执行组件结果分析组件主程序组
件;
主程序组件是所有组件执行的入口控制其他所有组件的执行逻辑
所述连接器组件创建连接到被测GBase数据库的连接对象
所述元数据组件通过连接器组件创建的被测GBase数据库的连接对象从系统表中获
取到被测GBase数据库的元数据
所述SQL语法组件使用Antlr文法规则依据GBase数据库的SQL语法定义语法规则通过
指定的元数据规则定义与所述被测GBase数据库的元数据相关的词法规则
所述SQL语句模板组件对SQL语法组件进行解析使用Antlr工具生成Antlr抽象语法
树;通过前序遍历的方式访问所述Antlr抽象语法树生成SQL语句模板
所述SQL语义组件包含基于SQL语法组件生成的SQL文法解析器对生成的SQL语句模板
进行识别准确识别SQL语句模板中的全部语法成分生成SQL抽象语法树访问SQL抽象语
法树将指定的元数据规则替换成真正的元数据字面量生成随机SQL语句
权 利 要 求 书
1/2
2
CN 117971706 A
2
所述SQL执行组件检查连接器组件创建的被测GBase数据库的连接对象是否可用
后通过所述连接对象执行所述随机SQL语句并返回执行结果
所述结果分析组件从执行结果和数据库状态两大方面进行结果分析
所述主程序组件控制SQL语句模板组件SQL语义组件SQL执行组件结果分析组件循
环执行直到生成指定数量的随机SQL语句或数据库崩溃
7 .根据权利要求6所述的GBase数据库模糊测试用例生成装置其特征在于元数据组
件中所述元数据包括用户表的名称列的名称数据类型内置函数和参数类型还定义了
不同数据类型的数据字面量的生成方法
8.根据权利要求6所述的GBase数据库模糊测试用例生成装置其特征在于SQL语句模
板组件中生成SQL语句模板时访问所述Antlr抽象语法树如果访问的是词法规则则直
接返回所述词法规则的定义如果访问的是语法规则则从语法规则的定义中随机抽取一
个语法分支然后对分支的每个元素继续进行访问直到返回全部词法规则的定义
9.根据权利要求8所述的GBase数据库模糊测试用例生成装置其特征在于SQL语句模
板组件中随机抽取语法分支时设置最大递归深度当语法规则被访问时访问次数+1
访问次数大于所述最大递归深度时选择不会产生递归行为的语法分支来结束递归
10.根据权利要求6所述的GBase数据库模糊测试用例生成装置其特征在于SQL语义
组件中基于所述语法规则和词法规则生成SQL文法解析器SQL文法解析器基于SQL语句模
板识别语法成分确定元数据之间的关系生成SQL抽象语法树
权 利 要 求 书
2/2
3
CN 117971706 A
3
of 10
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。