DBMS的测试方法、装置、电子设备及可读存储介质与流程

文档序号:35153905发布日期:2023-08-18 07:55阅读:47来源:国知局
DBMS的测试方法、装置、电子设备及可读存储介质与流程

本申请涉及软件测试,具体而言,本申请涉及一种dbms的测试方法、装置、电子设备及计算机可读存储介质。


背景技术:

1、操作系统会统计数据库管理系统(database management system,dbms)在运行时占用的内存,判断dbms占用的内存是否超过内存溢出阈值,若超过内存溢出阈值,则确定dbms出现内存溢出(out of memory,oom)问题,会强行控制或者终止运行dbms,这会导致dbms无法正常运行。

2、dbms为保证自身的正常运行,会主动统计自身占用的内存,dbms在确定自身的占用的内存较大时(即将超过内存溢出阈值时),主动释放一部分内存来防止oom问题。可见,dbms准确地统计自身占用的内存对dbms的正常运行有十分重要的影响。

3、然而,现有方案发布的很多dbms都无法准确地统计自身占用的内存,这是因为在dbms开发和迭代的过程中,开发人员随时可能会引入一些对dbms统计自身占用的内存产生破坏性的故障代码,这些故障代码会导致dbms统计的内存占用量不准确,导致dbms在运行时出现oom的可能性。在实际开发过程中,为减少测试成本,并非是开发出一个版本,就对该版本进行测试,而是对开发出的功能较为完善的版本进行测试,在测试过程中若发现该版本存在oom问题,就可以确定该版本的dbms无法准确统计自身占用内存,开发人员可以定位到用于统计dbms自身占用的内存的相关代码,却不能定位到导致该版本出现oom问题的故障代码,因此,如何定位故障代码是一个亟待解决的问题。


技术实现思路

1、本申请实施例提供了一种dbms的测试方法、装置、电子设备、计算机可读存储介质及计算机程序产品,用于解决背景技术中的技术问题。

2、根据本申请实施例的第一方面,提供了一种dbms的测试方法,该方法包括:

3、获取dbms的待测试版本,对待测试版本进行内存统计准确性测试,若确定待测试版本的测试结果为不合格,则获取待测试版本之前的至少一个历史版本;

4、基于版本从新至旧的顺序,逐个对各个历史版本进行内存统计准确性测试,直至得到测试结果为合格的历史版本,将测试结果为合格的历史版本作为合格版本;

5、确定待测试版本对应的代码和合格版本对应的代码之间的差异代码,将差异代码作为故障代码,基于故障代码对待测试版本的代码进行修复。

6、在一个可能的实现方式中,待测试版本以及各历史版本中的每个版本是基于以下方式进行内存统计准确性测试:

7、运行版本的dbms,确定版本的dbms在连续多个周期内统计的第一内存占用量是否准确,若确定版本的dbms在所有周期内统计的第一内存占用量准确,则确定版本的测试结果为合格;第一内存占用量是dbms自身在运行时统计的内存占用量;

8、若确定版本的dbms在至少一个周期内统计的第一内存占用量不准确,则确定版本的测试结果为不合格。

9、在一个可能的实现方式中,确定版本的dbms在连续多个周期内统计的第一内存占用量是否准确,包括:

10、在每个周期内,获取版本的dbms上报的第一内存占用量;

11、从操作系统获取的第二内存占用量;第二内存占用量是操作系统在dbms运行时统计的dbms的内存占用量;

12、确定每个周期内第一内存占用量和第二内存占用量之间的差异;

13、若确定差异大于预设阈值,则确定版本的dbms在周期内统计的第一内存占用量不准确;

14、若确定差异不大于预设阈值,则确定版本的dbms在周期内统计的第一内存占用量准确。

15、在一个可能的实现方式中,第一内存占用量是基于以下方式确定的:版本的dbms统计周期内的各次内存申请量对应的第一累计值和各次内存释放量对应的第二累计值,将第一累计值和第二累计值的差值作为第一内存占用量;

16、在一个可能的实现方式中,第二内存占用量是基于以下方式确定的:操作系统获取dbms在周期的常驻集大小rss,将rss作为第二内存占用量。

17、在一个可能的实现方式中,将差异代码作为故障代码,之后还包括:

18、基于故障代码对待测试版本的代码进行修复,将修复后的待测试版本作为待发布版本。

19、对dbms在开发阶段的待测试版本进行内存统计准确性测试,之后还包括:

20、若确定待测试版本的测试结果为合格,则将待测试版本作为待发布版本。

21、在一个可能的实现方式中,将差异代码作为故障代码,之后还包括:

22、发起针对故障代码的告警,以指示故障代码导致dbms的待测试版本的测试结果为不合格。

23、根据本申请实施例的第二方面,提供了一种dbms的测试装置,该装置包括:

24、历史版本获取模块,用于获取dbms的待测试版本,对待测试版本进行内存统计准确性测试,若确定待测试版本的测试结果为不合格,则获取待测试版本之前的至少一个历史版本;

25、合格版本确定模块,用于基于版本从新至旧的顺序,逐个对各个历史版本进行内存统计准确性测试,直至得到测试结果为合格的历史版本,将测试结果为合格的历史版本作为合格版本;

26、故障代码确定模块,用于确定待测试版本对应的代码和合格版本对应的代码之间的差异代码,将差异代码作为故障代码,基于故障代码对待测试版本的代码进行修复。

27、根据本申请实施例的第三方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。

28、根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

29、根据本申请实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。

30、本申请实施例提供的技术方案带来的有益效果是:

31、本申请实施例通过获取dbms的待测试版本,对待测试版本进行内存统计准确性测试,若确定待测试版本的测试结果为不合格,则获取待测试版本之前的各个历史版本;基于版本从新至旧的顺序,逐个对各个历史版本进行内存准确性统计测试,直至得到测试结果为合格的合格版本;确定待测试版本对应的代码和合格版本对应的代码之间的差异代码,将差异代码作为故障代码,可以准确发现导致待测试版本的dbms无法进行内存统计准确性测试的故障代码,避免dbms在发布后出现oom问题,提升了dbms的稳定性。



技术特征:

1.一种数据库管理系统dbms的测试方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述待测试版本以及各历史版本中的每个版本是基于以下方式进行内存统计准确性测试:

3.根据权利要求2所述的方法,其特征在于,所述确定所述版本的dbms在连续多个周期内统计的第一内存占用量是否准确,包括:

4.根据权利要求2或3所述的方法,其特征在于,所述第一内存占用量是基于以下方式确定的:所述版本的dbms统计所述周期内的各次内存申请量对应的第一累计值和各次内存释放量对应的第二累计值,将所述第一累计值和第二累计值的差值作为所述第一内存占用量。

5.根据权利要求3所述的方法,其特征在于,所述第二内存占用量是基于以下方式确定的:所述操作系统获取所述dbms在所述周期的常驻集大小rss,将所述rss作为所述第二内存占用量。

6.根据权利要求1所述的方法,其特征在于,所述将所述差异代码作为故障代码,之后还包括:

7.根据权利要求1所述的方法,其特征在于,所述将所述差异代码作为故障代码,之后还包括:

8.一种数据库管理系统dbms的测试装置,其特征在于,包括:

9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。


技术总结
本申请实施例提供了一种DBMS的测试方法、装置、电子设备及计算机可读存储介质,涉及软件测试技术领域。该方法包括:获取DBMS的待测试版本,对待测试版本进行内存统计准确性测试;若确定待测试版本的测试结果为不合格,则获取待测试版本之前的至少一个历史版本;基于版本从新至旧的顺序,逐个对各个历史版本进行内存准确性统计测试,直至得到测试结果为合格历史版本,将测试结果为合格的历史版本作为合格版本;确定待测试版本对应的代码和合格版本对应的代码之间的差异代码,将差异代码作为故障代码。本申请实施例实现了定位导致DBMS无法准确统计自身占用的内存的故障代码,避免DBMS在发布后出现OOM问题,提升了DBMS的稳定性。

技术研发人员:吴圣辉,徐怀宇,孙若曦
受保护的技术使用者:平凯星辰(北京)科技有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1