一种基于数据库查询语句的测试数据生成方法与流程

文档序号:39051502发布日期:2024-08-17 22:13阅读:22来源:国知局
一种基于数据库查询语句的测试数据生成方法与流程

本发明涉及数据库测试,尤其涉及一种基于数据库查询语句的测试数据生成方法。


背景技术:

1、在数据库软件系统领域,针对数据库查询操作语句是整个软件系统最基本最关键的功能点,并随着大数据库时代的来临,数据量的庞大及复杂的关联关系,导致对数据库软件系统的复杂查询语句的应用越来越普遍,所以基于数据库的复杂查询语句的正确与否,直接影响软件系统的质量。

2、在进行复杂查询语句测试时,对测试数据的构造是非常复杂的,需要根据不同查询算子考虑数据的特点,若测试数据构造的不正确或不全面,会使大量问题无法在测试过程中被发现,将对产品质量与用户体验产生严重的影响。

3、目前,针对复杂查询语句进行的测试,一般采取手工生成数据,或根据建表语句自动生成数据,两种方式均需要多次操作更改后才会产生复杂查询语句需要的有效测试数据,过程复杂且浪费人力。


技术实现思路

1、本发明旨在至少解决相关技术中存在的技术问题之一。为此,本发明提供一种基于数据库查询语句的测试数据生成方法。

2、本发明提供一种基于数据库查询语句的测试数据生成方法,包括:

3、s1:收集测试用例;

4、s2:根据所述测试用例遍历表信息,获得列类型;

5、s3:由所述列类型生成数据规则及数据范围;

6、s4:解析所述测试用例,获得过滤条件信息;

7、s5:根据所述数据规则及所述过滤条件信息,在所述数据范围内生成测试数据。

8、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,步骤s1中的所述测试用例包括:

9、待测试查询语句及所述待测试查询语句涉及的待测试表信息。

10、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,步骤s2中的所述列类型包括:

11、数值类型、日期类型及字符类型。

12、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,步骤s3具体包括:

13、当所述列类型为数值类型时,所述数据规则为数值类型数据生成规则,所述数据范围为数值类型的类型范围边界值;

14、当所述列类型为日期类型时,所述数据规则为日期类型数据生成规则,所述数据范围为日期类型的类型范围边界值;

15、当所述列类型为字符类型时,所述数据规则为字符类型数据生成规则,所述数据范围为根据字典文件生成的字符类型长度范围。

16、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,步骤s3中,当所述列类型存在关键字标识时,所述数据规则为自定义规则。

17、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,步骤s4中,通过检索查询关键字进行所述测试用例的解析,所述查询关键字包括where、group by、and、or、like及in。

18、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,步骤s5具体包括:

19、s51:生成符合所述数据范围,且符合所述过滤条件信息的测试数据;

20、s52:生成符合所述数据范围,且不符合所述过滤条件信息的测试数据。

21、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,s51进一步包括:

22、s511:遍历所述过滤条件信息中的每列的列数据范围;

23、s512:将所述列数据范围替换所述数据范围,作为限缩后的第一数据范围;

24、s513:根据所述数据规则及所述第一数据范围,生成符合所述数据范围,且符合所述过滤条件信息的测试数据。

25、根据本发明提供的一种基于数据库查询语句的测试数据生成方法,s52进一步包括:

26、s521:将所述数据范围与所述第一数据范围作差,获得所述数据范围与所述第一数据范围无交集的差异数据范围;

27、s522:将所述差异数据范围替换所述数据范围,作为第二数据范围;

28、s523:根据所述数据规则及所述第二数据范围,生成符合所述数据范围,且不符合所述过滤条件信息的测试数据。

29、本发明提供的一种基于数据库查询语句的测试数据生成方法,通过获取测试用例的列类型,并解析获得数据生成规则及过滤条件信息,然后生成测试数据的方法,可以保证复杂查询语句测试数据的有效性及全面性,且节省人力资源提高测试效率,并且还通过聚合列重复率的设置及数据命中率的设置,可以生成不同的测试数据集合,另外通过查询关键字确定数据范围的方法,满足了测试复杂语句时需要对语句中使用到的不同查询算子的测试覆盖,从而进一步保证了测试数据的全面性。

30、本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。



技术特征:

1.一种基于数据库查询语句的测试数据生成方法,其特征在于,包括:

2.根据权利要求1所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,步骤s1中的所述测试用例包括:

3.根据权利要求1所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,步骤s2中的所述列类型包括:

4.根据权利要求3所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,步骤s3具体包括:

5.根据权利要求4所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,步骤s3中,当所述列类型存在关键字标识时,所述数据规则为自定义规则。

6.根据权利要求1所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,步骤s4中,通过检索查询关键字进行所述测试用例的解析,所述查询关键字包括where、group by、and、or、like及in。

7.根据权利要求1所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,步骤s5具体包括:

8.根据权利要求7所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,s51进一步包括:

9.根据权利要求8所述的一种基于数据库查询语句的测试数据生成方法,其特征在于,s52进一步包括:


技术总结
本发明提供一种基于数据库查询语句的测试数据生成方法,涉及数据库测试技术领域,具体包括:收集测试用例;根据测试用例遍历表信息,获得列类型;由列类型生成数据规则及数据范围;解析测试用例,获得过滤条件信息;根据数据规则及过滤条件信息,在数据范围内生成测试数据。本发明能够提升复杂查询语句测试数据的有效性及全面性,且提高测试效率。

技术研发人员:李维维
受保护的技术使用者:江苏华库数据技术有限公司
技术研发日:
技术公布日:2024/8/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1