System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 软件测试方法、装置、电子设备及存储介质制造方法及图纸_技高网

软件测试方法、装置、电子设备及存储介质制造方法及图纸

技术编号:43752605 阅读:3 留言:0更新日期:2024-12-20 13:09
本申请实施例提供了一种软件测试方法、装置、电子设备、存储介质及产品,涉及软件测试领域。例如,本申请可用于分布式数据库领域对应的软件,该方法包括:获取目标程序,目标程序中包括待测试程序和待测试程序的错误注入函数,错误注入函数用于在待测试程序进行负载测试时触发至少一种异常;待测试程序中包括用于处理所述错误注入函数触发的异常的程序代码;通过目标程序执行测试任务,以对待测试程序进行负载测试;分别获取目标程序执行测试任务前后的已启动的协程的数量,判断待测试程序的协程泄露测试是否成功。本申请实施例实现了对待测试程序在高负载中存在大量异常的场景下的协程泄露测试。

【技术实现步骤摘要】

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


技术介绍

1、软件测试是确保软件产品符合预期质量标准的过程。它涉及到验证软件的功能、性能、安全性、可用性和其他方面是否符合设计要求和用户需求。

2、协程(goroutine)泄露是指在go程序中,创建的协程没有被正确终止,导致协程一直占用系统资源的情况,会导致资源耗尽,甚至系统崩溃的问题出现。软件测试中,测试程序运行时是否会产生协程泄露称为协程泄露测试。协程泄露测试是软件测试中十分重要的部分。现有技术在进行协程泄露测试时,检测效果差,不能有效的检测出程序的协程泄露隐患。


技术实现思路

1、本申请实施例提供了一种软件测试方法、装置、电子设备、计算机可读存储介质及计算机程序产品,可以解决现有技术在软件测试时协程泄露测试的效果差的问题。所述技术方案如下:

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

3、获取目标程序,所述目标程序中包括待测试程序和所述待测试程序的错误注入函数,所述错误注入函数用于在所述待测试程序进行负载测试时触发至少一种异常;所述待测试程序中包括用于处理所述错误注入函数触发的异常的程序代码;

4、通过所述目标程序执行测试任务,以对所述待测试程序进行负载测试;

5、在所述目标程序执行测试任务完成后,获取所述目标程序已启动的协程的第一数量;

6、根据所述第一数量和第二数量,判断所述待测试程序的协程泄露测试是否成功,所述第二数量是在所述目标程序执行测试任务前获取的目标程序已启动的协程的数量。

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

8、目标程序获取模块,用于所述目标程序中包括待测试程序和所述待测试程序的错误注入函数,所述错误注入函数用于在所述待测试程序进行负载测试时触发至少一种异常;所述待测试程序中包括用于处理所述错误注入函数触发的异常的程序代码;

9、数量获取模块,用于通过所述目标程序执行测试任务,以对所述待测试程序进行负载测试;在所述目标程序执行测试任务完成后,获取所述目标程序已启动的协程的第二数量;

10、判断模块,用于根据第一数量和第二数量,判断所述待测试程序的协程泄露测试是否成功,所述第二数量是在所述目标程序执行测试任务前获取的目标程序已启动的协程的数量。

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

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

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

14、本申请实施例提供的技术方案带来的有益效果是:本申请实施例中的目标程序包括待测试程序和待测试程序的错误注入函数,由于一个运行良好的软件或程序,即使在高负载过程中产生大量异常,该软件或程序对应的协程数量在执行负载测试前后基本保持不变,因此通过使用目标程序执行测试任务,用于模拟待测试程序在负载测试过程中处理大量异常的场景。通过获取目标程序执行测试任务前目标程序已启动的协程的第二数量,与目标程序执行测试任务后目标程序已启动的协程的第一数量,获得执行测试任务前后目标程序已启动的协程的数量的差异大小,从而判断出待测试程序在负载测试时是否出现了协程泄露的问题,若待测试程序在负载测试时出现了协程泄露的问题,则待测试程序的协程泄露测试失败,若待测试程序在负载测试时没有出现协程泄露问题,则待测试程序的协程泄露测试成功。本申请实施例,实现了待测试程序在高负载处理任务过程中出现大量异常的场景下的协程泄露测试,使得检测成功的待测试程序在实际应用时,即使需要处理大量异常也不会产生协程泄露的问题。

本文档来自技高网...

【技术保护点】

1.一种软件测试方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所述目标程序已启动的协程的第一数量,包括:

3.根据权利要求2所述的方法,其特征在于,所述目标程序中还包括性能分析工具,所述性能分析工具用于监听所述目标程序的堆栈信息;

4.根据权利要求3所述的方法,其特征在于,所述堆栈信息还包括已启动的协程的协程标识;

5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述第一数量和第二数量,判断所述待测试程序的协程泄露测试是否成功,包括:

6.根据权利要求1或2所述的方法,其特征在于,所述获取目标程序,包括:

7.根据权利要求6所述的方法,其特征在于,任一错误注入函数包括异常标识和第一指令,所述第一指令用于指示触发所述异常标识对应的异常;

8.一种软件测试装置,其特征在于,包括:

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

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

11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。

...

【技术特征摘要】

1.一种软件测试方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所述目标程序已启动的协程的第一数量,包括:

3.根据权利要求2所述的方法,其特征在于,所述目标程序中还包括性能分析工具,所述性能分析工具用于监听所述目标程序的堆栈信息;

4.根据权利要求3所述的方法,其特征在于,所述堆栈信息还包括已启动的协程的协程标识;

5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述第一数量和第二数量,判断所述待测试程序的协程泄露测试是否成功,包括:

6.根据权利要求1或2所述的方法,其特征在于,所述获取目标程序,包括:

7...

【专利技术属性】
技术研发人员:吴圣辉孙若曦
申请(专利权)人:平凯星辰北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1