【技术实现步骤摘要】
用于生成数据库SQL测试用例的方法、存储介质和设备
[0001]本专利技术涉及数据库
,特别是涉及一种用于生成数据库
SQL
测试用例的方法
、
一种机器可读存储介质和一种计算机设备
。
技术介绍
[0002]数据库智能模糊测试系统是一种用于检测智能数据库质量与安全性的工具,该系统能够自动生成数据库的
SQL
测试用例,以对关系型数据库
、
实时数据库等数据库进行漏洞的挖掘,获取数据库的高危漏洞
。
[0003]在数据库智能模糊测试系统生成
SQL
测试用例的过程中,语法树的遍历算法是自动生成
SQL
测试用例的关键,现有技术中的语法树遍历算法在遍历语法树时,每个元素最终都会被计算出一个具体列表值
。
由于在生成
SQL
测试用例时,所编写的
SQL
规则文件中,元素可能会进行自身调用,也可能被其他元素多次调用,因此造成所生成的
SQL
测试用例数据量过大,导致数据库的内存消耗增加
。
技术实现思路
[0004]鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的用于生成数据库
SQL
测试用例的方法
、
存储介质和设备,能够解决现有技术中所生成的
SQL
测试用例数据量过大,达到减小数据库内存消耗的目的
。
[0
【技术保护点】
【技术特征摘要】
1.
一种用于生成数据库
SQL
测试用例的方法,其特征在于,包括:获取
SQL
规则文件,并对所述
SQL
规则文件进行词法语法解析,以生成所述
SQL
规则文件对应的语法树;采用预设深度优化算法遍历所述语法树以生成数据库的
SQL
测试用例,并在所述遍历过程中,根据各元素的单元素最大调用深度和所有元素的最大总调用深度进行深度递归计算
。2.
根据权利要求1所述的用于生成数据库
SQL
测试用例的方法,其特征在于,所述的对所述
SQL
规则文件进行词法语法解析,包括:采用预设拆分规则对所述
SQL
规则文件的竖线规则进行处理,以得到相应的元素集合
。3.
根据权利要求1所述的用于生成数据库
SQL
测试用例的方法,其特征在于,所述的采用预设深度优化算法遍历所述语法树以生成数据库的
SQL
测试用例,包括:获取所述
SQL
规则文件的
SQL
语法定义中空格分隔的元素;按照预设拼接规则,对空格分隔的元素进行拼接处理
。4.
根据权利要求1所述的用于生成数据库
SQL
测试用例的方法,其特征在于,所述的采用预设深度优化算法遍历所述语法树以生成数据库的
SQL
测试用例,包括:获取所述
SQL
规则中各
SQL
算子的配置参数;根据所述配置参数确定是否使用相应的
SQL
算子是否出现和出现次数
。5.
根据权利要求1所述的用于生成数据库
SQL
测试用例的方法,其特征在于,所述的采用预设深度优化算法遍历所述语法树以生成数据库的
SQL
测试用例,包括:获取预设字符长度和预设用...
【专利技术属性】
技术研发人员:王静,阮青松,
申请(专利权)人:北京人大金仓信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。