本申请涉及计算机,尤其涉及一种软件测试的方法、装置及电子设备。
背景技术:
1、随着计算机技术的高速发展,为了保证软件开发的项目质量,衍生出各种各样的软件测试方法。
2、相关技术中,需要由掌握相关测试技术的测试对象,编写相应的测试用例,来针对目标软件进行测试。然而,对于目标软件的开发周期而言,通常会包含多个开发阶段,为了保证其项目质量,在每个开发阶段都需要进行相应的软件测试,这就需要相应的测试对象分别针对每个开发阶段的测试任务,来编写相应的测试用例,进而定位出相应的缺陷,并对缺陷的问题进行复现。
3、例如,在目标软件的迭代过程中,需要开发一个新功能,而这个新功能在实现过程中存在缺陷,那么便需要测试人员编写测试用例,来定位出该缺陷在目标软件的项目代码中的具体位置,进而为开发人员提供支持。容易理解地,不同测试对象对于测试技术掌握程度不同,所具备的测试经验也各不一致,则针对相应缺陷编写的测试用例各不相同,所花费的时间也各不相同,导致针对目标软件的缺陷定位困难,从而影响最终的测试效率。
技术实现思路
1、本申请提供一种软件测试的方法、装置及电子设备,用以解决上述问题,提高软件测试过程中针对缺陷的定位的快速性和复现的便携性。
2、第一方面,本申请提供了一种软件测试的方法,所述方法包括:
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、本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
1.一种软件测试的方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述基于所述目标对象,触发所述目标执行流程关联的至少一个调用子对象依次启动运行,包括:
3.如权利要求2所述的方法,其特征在于,所述基于所述目标对象标识与目标执行流程之间的调用关系,依次启动运行所述目标执行流程关联的至少一个子调用对象,得到所述至少一个调用对象的调用信息,包括:
4.如权利要求1-3任一项所述的方法,其特征在于,所述目标对象及所述至少一个调用子对象,均经过序列化操作,被存储为公开资源。
5.如权利要求1-3任一项所述的方法,其特征在于,所述获得包含所述至少一个调用子对象各自调用信息的第一测试结果,包括:
6.如权利要求1-3任一项所述的方法,其特征在于,所述获取所述目标对象关联的第二测试结果,包括:
7.如权利要求1-3任一项所述的方法,其特征在于,所述获取所述目标对象关联的第二测试结果,包括:
8.一种软件测试的装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法步骤。