数据库迭代测试方法、装置、设备及存储介质与流程

文档序号:30492325发布日期:2022-06-22 02:19阅读:160来源:国知局
数据库迭代测试方法、装置、设备及存储介质与流程

1.本发明涉及数据库测试技术领域,尤其涉及一种数据库迭代测试方方法、装置、设备及存储介质。


背景技术:

2.在关系型数据库的版本迭代过程中,会衍生出种类繁多的功能特性,每个版本更新的功能都需要投入人力进行测试,在测试新增功能无误的情况下,同时还需要保证原有功能不受影响。现有技术每次测试都需要在待测数据库和基准数据库执行用例文件,浪费测试时间,虽然现有技术测试用例中sql语句的组合可以千变万化,但是在固定输入语句的情况下,数据库表现出来的行为大都同样也是固定的,这为实现数据库的自动化测试提供了可能。
3.因此,现有技术还有待于改进和发展。


技术实现要素:

4.本发明的主要目的在于解决现有的数据库迭代测试方法测试效率低的技术问题。
5.本发明第一方面提供了一种数据库迭代测试方法,所述数据库迭代测试方法包括:
6.从先前各个版本的历史数据库中选择一个版本作为基准数据库;
7.构造适配所述基准数据库的第一测试用例;
8.利用所述第一测试用例对所述基准数据库进行测试获得第一测试结果集;
9.校验所述第一测试结果集是否达到预期效果;
10.当所述第一测试结果集未达到预期效果时对所述第一测试用例进行调整,直至所述第一测试结果集达到预期效果;
11.存储所述第一测试结果集达到预期效果时的所述第一测试用例作为基准测试用例,以及存储达到预期效果的所述第一测试结果集作为基准结果集;
12.获取迭代数据库;
13.构造第二测试用例,所述第二测试用例包括所述第一测试用例的所有用例语句以及新增测试要点的用例语句;
14.利用所述第二测试用例对所述迭代数据库进行测试获得第二测试结果集;
15.将所述第二测试结果集和所述基准结果集进行对比,收集比对过程中出现的差异信息,并生成所述差异信息的报告文件。
16.在本发明第一方面一种可选的实施方式中,所述构造适配所述基准数据库的第一测试用例包括:
17.根据所述基准数据库的测试标准,生成语法模板数据,所述语法模板数据包括符合所述数据库测试标准的测试用例伪代码集以及实例数据形参定义数据;
18.根据所述实例数据形参定义数据以及所述待测试数据库的基本信息,生成实例数
据枚举数值;
19.将所述实例数据枚举数值替换至所述语法模板数据中的形参,得到第一测试用例。
20.在本发明第一方面一种可选的实施方式中,所述利用所述第一测试用例对所述基准数据库进行测试获得第一测试结果集包括:
21.将所述第一测试用例输入到数据库测试程序中;
22.对所述数据库测试程序的测试环境进行初始化;
23.利用所述数据库测试程序扫描所述第一测试用例中的每一条用例语句并进行分析;
24.根据分析结果将不同的用例语句发送给所述数据库测试程序中不同的模块执行;
25.获取每个所述模块的执行结果并输出不同的格式到内存暂存。
26.在本发明第一方面一种可选的实施方式中,所述校验所述第一测试结果集是否达到预期效果包括:
27.判断所述执行结果中是否出现非预期性的错误;
28.若所述执行结果中未出现非预期性错误,则判定所述第一测试结果集达到预期效果;
29.若所述执行结果中出现非预期性错误,则判定所述第一测试结果集未达到预期效果。
30.在本发明第一方面一种可选的实施方式中,所述当所述第一测试结果集未达到预期效果时对所述第一测试用例进行调整,直至所述第一测试结果集达到预期效果包括:
31.当所述第一测试结果集未达到预期效果时,所述数据库测试程序输出错误提示通知测试人员调整所述第一测试用例;
32.将调整后的所述第一测试用例重新输入所述数据库测试程序中,重新获取所述第一测试结果集。
33.在本发明第一方面一种可选的实施方式中,所述将所述第二测试结果集和所述基准结果集进行对比,收集比对过程中出现的差异信息,并生成所述差异信息的报告文件包括:
34.将所述第二测试结果集的执行结果和所述基准结果集中的基准结果进行逐条对比;
35.若所述执行结果在所述基准结果集中不存在对应的基准结果,则生成一条比对不存在的差异信息并记录到所述报告文件中;
36.若所述执行结果在所述基准结果集中存在对应的所述基准结果,则比对所述执行结果的结果数据和所述基准结果的结果数据,找出所述执行结果和所述基准结果之间具体细节的差异信息并记录到所述报告文件中。
37.在本发明第一方面一种可选的实施方式中,所述历史数据库和所述迭代数据库均为关系型数据库,所述第一测试用例和所述第二测试用例以csv文件的格式组织。
38.本发明第二方面提供了一种数据库迭代测试装置,所述数据库迭代测试装置包括:
39.选择模块,用于从先前各个版本的历史数据库中选择一个版本作为基准数据库;
40.第一构造模块,用于构造适配所述基准数据库的第一测试用例;
41.第一测试模块,用于利用所述第一测试用例对所述基准数据库进行测试获得第一测试结果集;
42.校验模块,用于校验所述第一测试结果集是否达到预期效果;
43.判断调整模块,用于当所述第一测试结果集未达到预期效果时对所述第一测试用例进行调整,直至所述第一测试结果集达到预期效果;
44.存储模块,用于存储所述第一测试结果集达到预期效果时的所述第一测试用例作为基准测试用例,以及存储达到预期效果的所述第一测试结果集作为基准结果集;
45.获取模块,用于获取迭代数据库;
46.第二构造模块,用于构造第二测试用例,所述第二测试用例包括所述第一测试用例的所有用例语句以及新增测试要点的用例语句;
47.第二测试模块,用于利用所述第二测试用例对所述迭代数据库进行测试获得第二测试结果集;
48.比对模块,用于将所述第二测试结果集和所述基准结果集进行对比,收集比对过程中出现的差异信息,并生成所述差异信息的报告文件。
49.本发明第三方面提供了一种数据库迭代测试设备,所述数据库迭代测试设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
50.所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据库迭代测试设备执行如上述任一项所述的数据库迭代测试方法。
51.本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的数据库迭代测试方法。
52.有益效果:本发明提供了一种数据库迭代测试方法、装置、设备及存储介质,方法包括从先前各个版本的历史数据库中选择一个版本作为基准数据库;构造第一测试用例;利用所述第一测试用例对所述基准数据库进行测试获得第一测试结果集;校验所述第一测试结果集是否达到预期效果;当所述第一测试结果集未达到预期效果时对所述第一测试用例进行调整,直至所述第一测试结果集达到预期效果;存储所述第一测试结果集达到预期效果时的所述第一测试用例作为基准测试用例,以及存储达到预期效果的所述第一测试结果集作为基准结果集,本发明通过维护一份基准测试用例及基准结果集用于与最新版本数据库进行对比测试,减少了测试用例的执行次数,提高了测试效率。
附图说明
53.图1为本发明一种数据库迭代测试方法的一个实施例示意图;
54.图2为本发明一种数据库迭代测试装置的一个实施例
55.示意图;
56.图3为本发明一种数据库迭代测试设备的一个实施例示意图。
具体实施方式
57.本发明实施例提供了一种数据库迭代测试方法、装置、设备及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
58.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明第一方面提供了一种数据库迭代测试方法,所述数据库迭代测试方法包括:
59.s100、从先前各个版本的历史数据库中选择一个版本作为基准数据库;在该步骤中,优选最新版本的历史数据库作为基准数据库;
60.s200、构造适配所述基准数据库的第一测试用例;在该步骤中,就是模拟软件访问数据库的行为构造第一测试用例,第一测试用例通常以csv文件的格式组织,每条用例由多条sql语句组成;
61.在步骤s200中,示例性的一种具体的构造适配所述基准数据库的第一测试用例包括:根据所述基准数据库的测试标准,生成语法模板数据,所述语法模板数据包括符合所述数据库测试标准的测试用例伪代码集以及实例数据形参定义数据;根据所述实例数据形参定义数据以及所述待测试数据库的基本信息,生成实例数据枚举数值;将所述实例数据枚举数值替换至所述语法模板数据中的形参,得到第一测试用例。
62.s300、利用所述第一测试用例对所述基准数据库进行测试获得第一测试结果集;本发明在选择好数据库基准版本之后会基于第一测试用例录制第一测试结果集,再由测试人员校验第一测试结果集是否达到预期效果,在校验过程中不断调整用例文件,校验完毕的第一测试结果集称之为基准结果集;
63.在步骤s300中,本发明示例性的一种利用所述第一测试用例对所述基准数据库进行测试获得第一测试结果集具体包括:
64.将所述第一测试用例输入到数据库测试程序中;对所述数据库测试程序的测试环境进行初始化;利用所述数据库测试程序扫描所述第一测试用例中的每一条用例语句并进行分析;根据分析结果将不同的用例语句发送给所述数据库测试程序中不同的模块执行;获取每个所述模块的执行结果并输出不同的格式到内存暂存。
65.具体来说,本发明技术方案中的数据库测试程序接收一份用例文件作为输入,扫描用例文件中的每一个用例执行以下流程:在执行每一份用例之前,可选择一个初始化文件进行初始化操作,一份用例由一条或多条用例语句组成,扫描每一条用例语句并进行分析,并将不同语句发放给不同的模块执行。根据用例执行的结果,输出不同的格式到内存暂存,倘若在用例执行过程中,出现了非预期性的错误,则需要输出错误提示通知测试人员调整用例,若全部用例执行通过,则将内存中的结果集数据输出到磁盘上的基准结果集文件中。
66.s400、校验所述第一测试结果集是否达到预期效果;具体来说,本发明是通过维护
一份结构化的基准测试用例(包含先前版本的所有测试要点)及基准结果集,用于与最新版本进行功能对比测试,来提高测试效率和准确率的,而基准测试用例是否合格就需要通过验证第一测试结果集是否达到预期效果来判断。
67.本发明步骤s400示例性的一种校验所述第一测试结果集是否达到预期效果具体包括:判断所述执行结果中是否出现非预期性的错误;若所述执行结果中未出现非预期性错误,则判定所述第一测试结果集达到预期效果;若所述执行结果中出现非预期性错误,则判定所述第一测试结果集未达到预期效果。在该步骤中,本发明中的第一测试用例主要是模仿软件访问数据库的行为进行构建,第一测试用例的用例语句在执行的过程中,如果与数据库中某个功能的访问方式不同,数据库测试软件就会报错以提醒该用例语句无法执行,校验所述第一测试结果集是否达到预期效果的目的就是让第一测试用例中所有用例语句都能够在基准数据库中成功执行,并获得相应的测试结果数据。
68.s500、当所述第一测试结果集未达到预期效果时对所述第一测试用例进行调整,直至所述第一测试结果集达到预期效果;
69.在步骤s500中,当所述第一测试结果集未达到预期效果时对所述第一测试用例进行调整,直至所述第一测试结果集达到预期效果具体包括:
70.当所述第一测试结果集未达到预期效果时,所述数据库测试程序输出错误提示通知测试人员调整所述第一测试用例;将调整后的所述第一测试用例重新输入所述数据库测试程序中,重新获取所述第一测试结果集。在该步骤中,若重新获取所述第一测试结果集同样未达到预期效果,则再次输出错误提示通知测试人员调整所述第一测试用例,直至测试人员调整后的第一测试用例输入数据库测试程序之后生成达到预期效果的第一测试结果集。
71.s600、存储所述第一测试结果集达到预期效果时的所述第一测试用例作为基准测试用例,以及存储达到预期效果的所述第一测试结果集作为基准结果集;本发明通过维护一份结构化的基准测试用例(包含先前版本的所有测试要点)及器对应的基准结果集,用于与最新版本迭代数据库进行功能对比测试,从而提高测试效率和准确率。
72.s700、获取迭代数据库;这里的迭代数据库指的是后续所有的迭代数据库,即后续所有的迭代数据库均以基准测试结果进行比对;
73.s800、构造第二测试用例,所述第二测试用例包括所述第一测试用例的所有用例语句以及新增测试要点的用例语句;在本实施例中,第二测试用例也是以csv文件的格式组织,第二测试用例也是由多条sql语句组成;第二测试用例包括所述第一测试用例的所有用例语句也就包含基准数据库的所有测试要点。
74.s900、利用所述第二测试用例对所述迭代数据库进行测试获得第二测试结果集;在该步骤中,第二测试用例对迭代数据库进行测试获得第二测试结果集的过程与第一测试用例对基准数据库的进行测试的方法相同,都是利用数据库测试软件进行,两者差别仅在于第一测试用例和第二测试用例中所包含的用例语句存在部分不同。
75.s1000、将所述第二测试结果集和所述基准结果集进行对比,收集比对过程中出现的差异信息,并生成所述差异信息的报告文件。具体来说,本发明技术方案通过比对收集第二测试结果集和基准结果集之间的差异信息就可以很清楚的判断迭代数据库与先前历史数据库之间的性能差别,并判断这些性能差别是不是符合预期的效果。
76.本发明步骤s1000示例性的一种将所述第二测试结果集和所述基准结果集进行对比,收集比对过程中出现的差异信息,并生成所述差异信息的报告文件的步骤具体包括:
77.将所述第二测试结果集的执行结果和所述基准结果集中的基准结果进行逐条对比;
78.若所述执行结果在所述基准结果集中不存在对应的基准结果,则生成一条比对不存在的差异信息并记录到所述报告文件中;
79.若所述执行结果在所述基准结果集中存在对应的所述基准结果,则比对所述执行结果的结果数据和所述基准结果的结果数据,找出所述执行结果和所述基准结果之间具体细节的差异信息并记录到所述报告文件中。在该步骤中,比较所述执行结果与其在所述基准结果集中对应的所述基准结果时,包括判断所述执行结果与所述基准结果类型,若二者皆为有效等价类结果集,则依次对比二者sql语句,sql数量,结果集类型,字段类型,字段名称,影响行数和结果集数据。若对比过程中发生错误,则记录错误信息到报告文件中;若二者皆为非有效等价类结果集,则依次对比二者sql语句,sql数量,错误信息和错误码,若对比过程中发生错误,则记录错误信息到报告文件中;若二者结果集类型不一致,则直接记录相关错误信息到报告文件中;若全部对比正确,则删除本次生成的第二测试结果集文件,否则保留第二测试结果集文件以供后续测试人员人工比对。
80.另外需要说明的是,本发明技术方案中的历史数据库和迭代数据库均为关系型数据库,关系型数据库,通常以二维表的结构来表达和实现其数据,其数据格式和长度严格遵守其对应二维表的定义,由于其中储存的数据都是结构化数据,所以可以较方便的将其直接记录到文本文件中,并用作校验和对比。
81.参见图2,本发明第二方面提供了一种数据库迭代测试装置,所述数据库迭代测试装置包括:
82.选择模块10,用于从先前各个版本的历史数据库中选择一个版本作为基准数据库;
83.第一构造模块20,用于构造适配所述基准数据库的第一测试用例;
84.第一测试模块30,用于利用所述第一测试用例对所述基准数据库进行测试获得第一测试结果集;
85.校验模块40,用于校验所述第一测试结果集是否达到预期效果;
86.判断调整模块50,用于当所述第一测试结果集未达到预期效果时对所述第一测试用例进行调整,直至所述第一测试结果集达到预期效果;
87.存储模块60,用于存储所述第一测试结果集达到预期效果时的所述第一测试用例作为基准测试用例,以及存储达到预期效果的所述第一测试结果集作为基准结果集;
88.获取模块70,用于获取迭代数据库;
89.第二构造模块80,用于构造第二测试用例,所述第二测试用例包括所述第一测试用例的所有用例语句以及新增测试要点的用例语句;
90.第二测试模块90,用于利用所述第二测试用例对所述迭代数据库进行测试获得第二测试结果集;
91.比对模块100,用于将所述第二测试结果集和所述基准结果集进行对比,收集比对过程中出现的差异信息,并生成所述差异信息的报告文件。
92.在本发明第二方面一种可选的实施方式中,所述第一构造模块包括:
93.模块生成单元,用于根据所述基准数据库的测试标准,生成语法模板数据,所述语法模板数据包括符合所述数据库测试标准的测试用例伪代码集以及实例数据形参定义数据;
94.实例生成单元,用于根据所述实例数据形参定义数据以及所述待测试数据库的基本信息,生成实例数据枚举数值;
95.替换单元,用于将所述实例数据枚举数值替换至所述语法模板数据中的形参,得到第一测试用例。
96.在本发明第二方面一种可选的实施方式中,所述第一测试模块包括:
97.输入单元,用于将所述第一测试用例输入到数据库测试程序中;
98.初始化单元,用于对所述数据库测试程序的测试环境进行初始化;
99.扫描单元,用于利用所述数据库测试程序扫描所述第一测试用例中的每一条用例语句并进行分析;
100.分配单元,用于根据分析结果将不同的用例语句发送给所述数据库测试程序中不同的模块执行;
101.存储单元,用于获取每个所述模块的执行结果并输出不同的格式到内存暂存。
102.在本发明第二方面一种可选的实施方式中,所述校验模块包括:
103.判断单元,用于判断所述执行结果中是否出现非预期性的错误;
104.第一判定单元,用于若所述执行结果中未出现非预期性错误,则判定所述第一测试结果集达到预期效果;
105.第二判定单元,用于若所述执行结果中出现非预期性错误,则判定所述第一测试结果集未达到预期效果。
106.在本发明第二方面一种可选的实施方式中,所述判断调整模块包括:
107.提示单元,用于当所述第一测试结果集未达到预期效果时,所述数据库测试程序输出错误提示通知测试人员调整所述第一测试用例;
108.重新输入单元,用于将调整后的所述第一测试用例重新输入所述数据库测试程序中,重新获取所述第一测试结果集。
109.在本发明第二方面一种可选的实施方式中,所述比对模块包括:
110.比对单元,用于将所述第二测试结果集的执行结果和所述基准结果集中的基准结果进行逐条对比;
111.第一错误生成模块,用于若所述执行结果在所述基准结果集中不存在对应的基准结果,则生成一条比对不存在的差异信息并记录到所述报告文件中;
112.第二错误生成模块,用于若所述执行结果在所述基准结果集中存在对应的所述基准结果,则比对所述执行结果的结果数据和所述基准结果的结果数据,找出所述执行结果和所述基准结果之间具体细节的差异信息并记录到所述报告文件中。
113.在本发明第二方面一种可选的实施方式中,所述历史数据库和所述迭代数据库均为关系型数据库,所述第一测试用例和所述第二测试用例以csv文件的格式组织。
114.图3是本发明实施例提供的一种数据库迭代测试设备的结构示意图,该数据库迭代测试设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器
110(central processing units,cpu)(例如,一个或一个以上处理器)和存储器120,一个或一个以上存储应用程序或数据的存储介质130(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据库迭代测试设备中的一系列指令操作。更进一步地,处理器可以设置为与存储介质通信,在数据库迭代测试设备上执行存储介质中的一系列指令操作。
115.本发明的数据库迭代测试设备还可以包括一个或一个以上电源140,一个或一个以上有线或无线网络接口150,一个或一个以上输入输出接口160,和/或,一个或一个以上操作系统,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图3示出的数据库迭代测试设备结构并不构成对数据库迭代测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
116.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的数据库迭代测试方法的步骤。
117.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
118.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
119.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1