技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种数据库功能测试系统及方法与流程  >  正文

一种数据库功能测试系统及方法与流程

  • 国知局
  • 2024-07-31 23:16:13

本发明涉及数据库测试,更具体地说,本发明涉及一种数据库功能测试系统及方法。

背景技术:

1、随着互联网应用的日益复杂,数据库作为各种应用的数据存储和访问重要组件,其可靠性和正确性显得尤为重要;然而,传统手工测试数据库逐个功能点需要大量工作量,难以覆盖所有测试用例;此外,随着需求变化,数据库结构和功能也在不断演进,使得重新测试工作显得更加吃力;

2、当然也存在智能化的测试方法,例如授权公告号为cn110147319b的专利公开了数据库测试方法、装置及计算机设备;包括:获取为待测试数据库创建的测试用例脚本;获取测试人员针对所述待测试数据库输入的配置指令,根据所述配置指令向所述测试用例脚本注入测试参数;通过注入测试参数的所述测试用例脚本对所述待测试数据库进行测试,得到所述待测试数据库在测试过程中返回的查询数据;根据所述查询数据生成所述待测试数据库的测试结果;此发明解决了现有技术中数据库测试依赖于人工实现的问题;

3、但上述技术并未具体描述测试用例脚本的生成方法,无法得知是否为计算机设备自动创建;同时,依赖于测试人员输入测试参数,随着数据库功能和结构的不断变更,无法实现对新增数据表的数据库进行自动功能测试,自动化程度和测试效率较低;此外,对于测试结果的判断依据不明确,无法准确对测试结果进行判断,难以确保测试的可靠性和准确性;

4、鉴于此,本发明提出一种数据库功能测试系统及方法以解决上述问题。

技术实现思路

1、为了克服现有技术的上述缺陷,为实现上述目的,本发明提供如下技术方案:一种数据库功能测试方法,包括:

2、生成待测试数据库的测试用例脚本;

3、根据测试用例脚本,对待测试数据库进行功能测试;

4、测试完成后,获取测试结果;

5、根据测试结果,判断是否生成测试停止指令。

6、进一步地,测试用例脚本包括测试环境、测试参数以及测试步骤;测试环境为对待测试数据库进行功能测试时所模拟的运行环境;测试步骤为对待测试数据库进行功能测试的步骤。

7、进一步地,测试参数包括待测试表名、测试表结构、目标数据以及测试停止条件;预设测试次数阈值,测试停止条件即为测试次数阈值;

8、待测试表名为待测试数据库中待测试表的名称,待测试表为新加入待测试数据库中的数据表;待测试表结构包括第二字段名称和第二数据类型;第二字段名称为待测试表中每个字段对应的名称;第二数据类型为待测试表中每个字段对应的数据类型;目标数据为待测试表中的数据,目标数据中每个数据由多个字段构成;测试停止条件为停止对待测试数据库进行功能测试的条件;

9、测试环境的生成方法包括:

10、获取环境参数,环境参数包括数据库类型、数据库版本、测试表名、测试表结构以及字符集设定,测试表结构包括第一字段名称和第一数据类型;根据环境参数生成测试环境;

11、测试表名为待测试数据库中数据表的名称;测试表结构为待测试数据库中数据表的结构;字符集设定为待测试数据库采用的字符编码格式;

12、第一字段名称为数据表中每个字段的名称;第一数据类型为数据表中每个字段对应的数据类型。

13、进一步地,测试步骤的获取方法包括:

14、步骤a:采集历史测试步骤合集;历史测试步骤合集包括历史执行成功的数据库功能测试步骤;

15、步骤b:将待测试表名、待测试表结构、数据库类型、数据库版本和字符串类型作为待测试数据;对历史测试步骤合集中的测试步骤依次递增设置数字标签,数字标签的范围为[1,n],n为大于1的整数;数字标签与测试步骤一一对应;将测试步骤对应的数字标签标记为测试标签,测试标签的范围即为[1,n];

16、步骤c:预设初始化温度tmax、最低温度tmin、降温系数δ以及最大迭代次数并令当前温度t=tmax;

17、步骤d:随机设置一个可行解χ,可行解χ即为测试标签,可行解χ的范围为[1,n];

18、步骤e:确定适应度函数;

19、适应度函数的表达式为:f=fg;

20、式中,f为适应度,fg为覆盖率;

21、步骤f:计算可行解χ对应的适应度f;以可行解χ为当前点,在当前点的邻域内进行随机扰动,获取新的可行解χ′,并计算新的可行解χ′对应的适应度f′;

22、步骤g:计算适应度差值f″,适应度差值f″的表达式为f″=f′-f;

23、若适应度差值f″>0,则令χ=χ′,即将新的可行解χ′的值赋予可行解χ;若适应度差值f″≤0,则计算概率p′,根据概率p′令χ=χ′;概率p′的表达式为:式中,e为自然常数;

24、步骤h:循环步骤f~步骤g,直至循环次数达到最大迭代次数时,循环结束,并进入步骤i;

25、步骤i:令当前温度t=t×δ,即将步骤c中的当前温度进行降温,将降温后的数值赋予当前温度;令最大迭代次数即将减小后的最大迭代次数的数值赋予最大迭代次数;

26、步骤j:循环步骤f~步骤i,直至当前温度t<tmin时,循环结束,获取可行解χ对应的测试标签,根据测试标签获取对应的测试步骤。

27、进一步地,覆盖率的获取方法包括:

28、将可行解χ对应的测试标签和待测试数据作为分析数据;将分析数据输入训练好的覆盖率预测模型,预测出对应的覆盖率;覆盖率为采用测试步骤对待测试数据进行功能测试时的覆盖程度;

29、覆盖率预测模型的训练过程包括:

30、预先收集m组分析数据对应的覆盖率,将分析数据与对应的覆盖率转换为对应的一组特征向量;

31、将每组特征向量作为覆盖率预测模型的输入,所述覆盖率预测模型以每组分析数据对应的一组覆盖率作为输出,以每组分析数据对应的实际覆盖率作为预测目标,实际覆盖率即为所述预先收集的与分析数据对应的覆盖率;以最小化所有分析数据的预测误差之和作为训练目标;对覆盖率预测模型进行训练,直至预测误差之和达到收敛时停止训练;所述覆盖率预测模型为深度神经网络模型。

32、进一步地,对待测试数据库配置测试环境,并基于测试参数,依据测试步骤对待测试数据库进行功能测试。

33、进一步地,测试结果为查询数据,查询数据为对待测试数据库进行查询功能测试后获取的数据,查询数据中的每个数据由多个字段构成。

34、进一步地,判断是否生成测试停止指令的方法包括:

35、分别统计查询数据和目标数据中的字段数量;获取本次测试完成后对应的测试次数;

36、将查询数据的字段数量与目标数据的字段数量进行对比;

37、若查询数据的字段数量和目标数据的字段数量不一致,且测试次数小于测试次数阈值,则生成第一测试指令,但不生成测试停止指令,重新对待测试数据库进行功能测试;

38、若查询数据的字段数量与目标数据的字段数量不一致,且测试次数等于测试次数阈值,则生成测试停止指令,同时生成功能异常指令;

39、若查询数据的字段数量和目标数据的字段数量一致,则分别计算查询数据和目标数据中每个字段对应的哈希值,哈希值与字段一一对应;将查询数据中每个字段对应的哈希值标记为查询哈希值,将目标数据中每个字段对应的哈希值标记为目标哈希值;

40、查询数据中的字段与目标数据中的字段一一对应,查询哈希值中的哈希值与目标哈希值中的哈希值也一一对应;

41、对查询哈希值中的m个哈希值与对应的目标哈希值中的m′个哈希值进行匹配,将查询哈希值中的一个哈希值与对应的目标哈希值中的一个哈希值作为一组分析集合,获取m″组分析集合,其中m=m′=m″;

42、将m″组分析集合中的两个哈希值均进行对比;

43、若分析集合中的两个哈希值相等,则生成相等指令;

44、若分析集合中的两个哈希值不相等,则不生成相等指令;

45、若生成的相等指令数量为m″′,m″′=m″;则采用训练好的词向量转换模型,将查询数据和目标数据中的字段依次转换为对应的词向量;将m″组分析集合中的哈希值替换为对应字段的词向量;计算每组分析集合对应的余弦相似度,余弦相似度范围为[r1,r2],r2>r1;

46、若m″组分析集合对应的余弦相似度均为r2,则生成测试停止指令;

47、若存在分析集合对应的余弦相似度不为r2,且测试次数小于测试次数阈值,则生成第二测试指令,但不生成测试停止指令,重新对待测试数据库进行功能测试;

48、若存在分析集合对应的余弦相似度不为r2,且测试次数等于测试次数阈值,则生成测试停止指令;

49、若生成的相等指令数量小于m″′,且测试次数小于测试次数阈值,则生成第二测试指令,但不生成测试停止指令,重新对待测试数据库进行功能测试;

50、若生成的相等指令数量小于m″′,且测试次数等于测试次数阈值,则生成测试停止指令,同时生成功能异常指令;

51、进一步地,所述哈希值的计算采用哈希算法,获取多种哈希算法并构建哈希算法集合;

52、将获取测试步骤时,每个可行解χ对应的适应度f进行排序,生成排序表;

53、所述重新对待测试数据库进行功能测试时,若生成第一测试指令,则将当前待测试数据库进行功能测试时使用的测试步骤对应的可行解χ标记为当前可行解;获取排在当前可行解对应的适应度的后一位适应度,并标记为重新适应度;将重新适应度对应可行解对应的测试步骤,作为重新对待测试数据库进行功能测试时所使用的测试步骤;若生成第二测试指令,则将当前待测试数据库进行功能测试时使用的哈希算法标记为已使用哈希算法,在重新对待测试数据库进行功能测试时,随机从哈希算法集合中选择一个未标记为已使用哈希算法的哈希算法,计算查询数据和目标数据的哈希值。

54、一种数据库功能测试系统,实施所述的一种数据库功能测试方法,包括:

55、脚本生成模块,用于生成待测试数据库的测试用例脚本;

56、功能测试模块,用于根据测试用例脚本,对待测试数据库进行功能测试;

57、结果获取模块,用于测试完成后,获取测试结果;

58、结束判断模块,用于根据测试结果,判断是否生成测试停止指令。

59、本发明一种数据库功能测试系统及方法的技术效果和优点:

60、通过模拟退火算法结合深度学习,自动获取历史测试成功案例中与待测试数据匹配度最高的测试步骤,避免人工设定测试步骤存在的主观性和不足;再结合测试环境和测试参数生成测试用例脚本,对待测试数据库进行功能测试,能够针对具体的测试需求进行功能测试,实现对新增数据表的数据库进行自动功能测试,以加快测试执行速度,提高测试效率;对获取测试结果通过计算哈希值和余弦相似度判断是否查询准确,再融合测试次数阈值判断是否转为人工测试,能够对测试结果进行准确判断,提高测试的可靠性和准确性,并灵活调整测试策略,确保测试的全面性和有效性。

本文地址:https://www.jishuxx.com/zhuanli/20240730/196729.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。