基于软件宕机定位的测试方法及装置与流程

文档序号:31471960发布日期:2022-09-09 23:29阅读:90来源:国知局
基于软件宕机定位的测试方法及装置与流程

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.图1是本发明提供的基于软件宕机定位的测试方法的流程示意图之一;
35.图2是本发明提供的基于软件宕机定位的测试方法的流程示意图之二;
36.图3是本发明提供的基于软件宕机定位的测试方法的流程示意图之三;
37.图4是本发明提供的基于软件宕机定位的测试装置的结构示意图;
38.图5是本发明提供的电子设备的结构示意图。
具体实施方式
39.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.传统的可视化软件集成测试工具,是通过打桩的方式对被测函数进行仿真运行,当遇到被测软件本身进行宕机操作时无法正确退出测试脚本或无法指明发生宕机的位置。因此,在该阶段测试中很难快速准确地发现平台软件宕机,难以保证测试脚本执行的正确性,进而也无法保证软件集成测试的质量。
41.为了解决上述问题,本技术实施例提供了一种基于软件宕机定位的测试方法,该方法基于插装代码的方式,对待测试平台的被测软件进行宕机定位集成测试,适用于轨道交通信号系统软件测试技术领域。该方法具体包括:根据待测试平台中被测软件的功能模
块需求设计说明书采用黑盒测试方法设计测试用例,并确定灰盒测试策略;基于待测试平台中被测软件导向安全侧的不同场景选取测试数据;通过测试数据驱动软件动态执行测试用例,以实现测试待测试平台中被测软件宕机位置的正确性,满足铁路行业的特定需求量身定制的功能安全标准en50128中对软件集成测试的要求。本技术通过插装测试代码的使用,有效覆盖对设计需求中需宕机导向安全侧场景的灰盒测试,提高了软件集成测试的效率和测试质量。
42.下面结合图1描述本技术的基于软件宕机定位的测试方法,该方法包括如下步骤:
43.步骤101,根据待测试平台中被测软件的测试需求和所述被测软件的预设宕机场景,生成所述待测试平台的测试用例;其中,所述测试用例中包含多处断言检测;
44.其中,待测试平台为需要进行软件测试的平台,包括但不限于列车自动控制平台或列车运行管理平台等其他嵌入式平台,本实施例对此不做具体地限定。
45.待测试平台中包括一个或多个被测软件,具体数量可以根据实际需求进行设置。
46.断言是一种在程序中的一阶逻辑,目的是为了表示与验证软件开发者预期的结果,当程序执行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止执行,并给出错误信息。
47.可选地,在需要对待测试平台进行软件测试时,可以首先根据被测软件的功能需求预先生成被测软件的测试需求,并结合所有可能引发平台导向安全侧(即宕机)的情况,预先设定被测软件的预设宕机场景。
48.然后,结合待测试平台中被测软件的测试需求和预设宕机场景生成测试用例,并在测试用例中设置多处断言检测;其中,断言检侧的设置方式可以是用户根据实际需求进行设置的,也可以是根据被测软件的测试需求和/或预设宕机场景进行自动设置的,本实施例对此不做具体地限定。
49.同时,获取测试用例对应的测试数据;
50.需要说明的是,在获取到测试用例之后,为了提高测试效率,可以将测试用例转换为可自动执行的测试脚本。
51.步骤102,执行所述测试用例,在测试过程中,若基于任一断言检测获知所述测试用例中任一目标数据不满足预设条件,则执行所述测试用例中的宕机函数;其中,所述宕机函数中包含所述被测软件的导向安全侧的宕机处理操作、宕机位置标志的更新操作以及所述宕机函数的定位标志的更新操作;所述宕机位置标志包括所述被测软件在正确位置发生宕机的位置标志或未在正确位置发生宕机的位置标志;所述宕机函数的定位标志用于表征所述宕机函数在所述测试过程中的执行位置;
52.其中,宕机位置标志为宕机函数中预先定义的全局整型变量,用于标志被测软件是否宕机,以及及是否在正确位置发生宕机;宕机位置标志包括被测软件在正确位置发生宕机的位置标志或未在正确位置发生宕机的位置标志;其中,未在正确位置发生宕机的情形,包括在正确位置之前发生宕机的情形。
53.宕机函数的定位标志为宕机函数中预先定义的全局整型变量,用于标志本次测试宕机函数的执行位置,即本次测试中进入宕机函数是第几次,或者本次断言检测在整个程序流程中的执行位置。
54.目标数据为测试用例中影响测试结果的关键数据。预设条件为判断被测软件是否
发生宕机的期望条件,具体可以根据测试需求进行设置。
55.其中,宕机函数中不仅包含被测软件的导向安全侧的宕机处理操作,还包括宕机位置标志的更新操作以及宕机函数的定位标志的更新操作。
56.导向安全侧的宕机操作为在检测到被测软件发生宕机时立即终止待测试平台的主任务进行信号输出安全关断的导向安全侧的操作。
57.可选地,在获取到测试用例和测试数据后,可以通过测试数据驱动可自动执行的测试脚本动态执行,以自动执行测试用例。
58.如图2所示,在执行测试用例过程中,实时监测每一断言检测结果,若根据任一断言检测的检测结果判断获知测试用例中任一目标数据不满足预设条件,则确定被测软件发生宕机。为了确保待测试平台软件的安全运行,在此场景下,触发当前程序的执行节点进入宕机函数,执行宕机函数中的导向安全侧的宕机处理操作,以将待测试平台的被测软件导向安全侧。
59.并且为了准确获取测试结果,需要同步执行宕机位置标志的更新操作和宕机函数的定位标志的更新操作,以对宕机位置标志和宕机函数的定位标志进行更新,进而根据更新的宕机位置标志和更新的宕机函数的定位标志确定被测软件是否通过宕机测试,以及定位发生宕机的位置。
60.步骤103,根据更新后的宕机位置标志和更新后的宕机函数的定位标志,输出所述待测试平台的测试结果。
61.可选地,在获取到更新后的宕机位置标志和更新后的宕机函数的定位标志后,可以根据更新后的宕机位置标志和更新后的宕机函数的定位标志,实时确定被测软件是否在发生异常宕机;
62.在确定被测软件发生异常宕机的情况下,确定被测软件未通过软件测试;在确定被测软件未发生异常宕机的情况下,确定被测软件通过软件测试。
63.需要说明的是,本实施中的基于软件宕机定位的测试方法可以是在软件环境中搭建测试平台,以对待测试平台进行模拟软件测试,为开发人员在不使用真实硬件板卡及实际运行数据时模拟宕机发生并定位缺陷提供了一种快速高效的方法;也可以是在真实的平台硬件板卡中烧录根据测试用例编写出的故障核代码,以进行系统测试。其中,虽然使用实际的搭载被测平台软件的硬件板卡运行环境进行系统测试,需要耗费较长时间且需要较高的硬件成本,但是其可以同时测试出软件及硬件问题,以及单独测试软件无法发现的由实际硬件导致的软件问题。测试方法的具体应用场景可以根据实际需求进行设置。
64.本实施例通过在测试用例中插装断言检测代码,以在任一断言检测中获取到任一目标数据不满足预设条件的情况下,及时对被测软件进行导向安全侧的宕机处理操作,以确保待测试平台的运行安全;同时更新宕机位置标志和宕机函数的定位标志,并根据更新的宕机位置标志和更新的宕机函数的定位标志,确定待测试平台的宕机测试结果;以在被测软件发生宕机时,根据宕机测试结果,及时发现宕机情况以及准确定位宕机位置,有效模拟待测试平台实际运行时的多种宕机场景,实现对待测试平台中被测软件发生的宕机位置进行精确定位并正确执行自动测试脚本,提高了软件集成测试的效率和测试质量。
65.在上述实施例的基础上,本实施例中所述根据更新后的宕机位置标志和更新后的宕机函数的定位标志,输出所述待测试平台的测试结果,包括:在所述更新后的宕机函数的
定位标志为期望定位标志,且所述更新后的宕机位置标志为所述被测软件在正确位置发生宕机的位置标志的情况下,确定所述待测试平台的测试结果为通过测试。
66.其中,期望定位标志为根据实际需求预先定义的全局整型数组变量,期望定位标志用于标志本次测试期望的宕机位置。
67.可选地,在获取到更新后的宕机位置标志后,可判断更新后的宕机位置标志和更新后的宕机函数的定位标志是否均满足被测软件的正常宕机条件;
68.具体判断方式包括,判断更新后的宕机位置标志是否为被测软件在正确位置发生宕机的位置标志,以及更新后的宕机函数的定位标志是否为期望定位标志,若两者均满足,则表明待测试平台发生正常宕机,确定待测试平台通过测试。
69.若两者中的其中之一不满足,则表明待测试平台发生异常宕机,即未在正确位置发生宕机,确定待测试平台未通过测试。
70.本实施例根据更新后的宕机位置标志,可快速准确地获取待测试平台的测试结果。
71.在上述实施例的基础上,本实施例中执行所述测试用例中的宕机函数中的宕机位置标志的更新操作,包括:在所述宕机函数的执行位置与期望宕机位置一致的情况下,将所述宕机位置标志更新为所述被测软件在正确位置发生宕机的位置标志;在所述宕机函数的执行位置与所述期望宕机位置不一致的情况下,将所述宕机位置标志更新为所述被测软件未在正确位置发生宕机的位置标志。
72.其中,期望宕机位置为根据被测软件的预设宕机场景设置的正常宕机位置。
73.宕机函数中除被测软件本身的导向安全侧的宕机处理相关操作外,还增加判断本次测试进入宕机函数是否为测试期望的宕机位置;
74.如图3所示,将宕机函数的执行位置与期望宕机位置进行比较,若宕机函数的执行位置为测试期望的宕机位置,则将宕机位置标志更新为被测软件在正确位置发生宕机的位置标志;若不是,则将宕机位置标志更新为被测软件在非正确位置发生宕机的位置标志,如在正确位置之前发生宕机。
75.本实施例通过在宕机函数中插入宕机位置判断操作,以将宕机函数的执行位置与期望宕机位置进行比较,即可便捷快速地对宕机位置标志进行更新操作,有效模拟平台实际运行时宕机场景,实现对被测软件发生的宕机场景进行定位并正确执行自动测试脚本,提高了软件集成测试的效率和测试质量。
76.在上述各实施例的基础上,本实施例中在所述执行所述测试用例中的宕机函数之后,所述方法还包括:在所述任一断言检测完成后,若判断获知所述更新后的宕机位置标志与初始的宕机位置标志不同,则退出测试。
77.其中,初始的宕机位置标志为未发生宕机的初始位置标志。
78.可选地,在任一断言检测完成后,即退出断言后,判断更新后的宕机位置标志与初始的宕机位置标志是否相同;
79.在更新后的宕机位置标志与初始的宕机位置标志不相同的情况下,确定被测软件发生了宕机。在此场景下,直接退出测试,并根据断言检测过程中获取的更新后的宕机位置标志和更新后的宕机函数的定位标志,输出待测试平台的测试结果。
80.现有技术中,当遇到被测软件本身进行宕机操作时无法正确退出测试脚本或无法
指明发生宕机的位置,即测试程序进入死循环,无法保证测试脚本执行的正确性。
81.而本实例可实时确定被测软件是否发生宕机,并被测软件发生宕机时,及时从当前测试程序中跳转至被测试函数出口,可及时退出测试,并可输出正确的测试结果。
82.在上述各实施例的基础上,本实施例中所述根据待测试平台中被测软件的测试需求和所述被测软件的预设宕机场景,生成所述待测试平台的测试用例,包括:所述根据待测试平台中被测软件的测试需求和所述被测软件的预设宕机场景,生成所述待测试平台的测试用例,包括:根据所述被测软件的测试需求,采用用例设计方法,生成所述待测试平台的初始测试用例;其中,所述用例设计方法包括场景法、等价类划分法、边界值分析法和错误猜测法中的一种或多种组合;根据所述被测软件的预设宕机场景,确定所述初始测试用例中待添加断言检测的目标位置;在所述初始测试用例中的所述目标位置处添加断言检测,得到所述测试用例。
83.其中,用例设计方法包括但不限于黑盒测试相关的用例设计方法和灰盒测试相关的用例设计方法,具体包括场景法、等价类划分法、边界值分析法、错误猜测法等编制软件。
84.目标位置为初始测试用例中需要添加断言检测的位置。
85.可选地,首先根据被测软件的测试需求,采用场景法、等价类划分法、边界值分析法、错误猜测法等编制软件集成初始测试用例;
86.然后,根据被测软件的预设宕机场景,在初始测试用例中确定被测软件发生宕机的预设位置,将发生宕机的预设位置作为待添加断言检测的目标位置;
87.然后,在初始测试用例中的目标位置处添加断言检测,得到测试用例。
88.如图2所示,测试用例中包含多处程序功能实现代码,如程序功能实现1、程序功能实现2、程序功能实现3,而每一处程序功能实现过程中容易发生宕机情况。因此,可在每一程序功能实现代码的结尾处添加一处断言检测,如断言检测1设置在程序功能实现1之后,断言检测2设置在程序功能实现2之后,断言检测3设置在程序功能实现3之后。若任一断言检测过程中获知被测软件发生宕机,则直接跳转到被测函数出口,以跳出测试。
89.本实施例综合被测软件的测试需求,以及被测软件的预设宕机场景,即可快速准确地集成待测试平台的测试用例,并且根据被测软件的预设宕机场景在测试用例中插桩断言检测,有效覆盖对待测试平台中的宕机场景测试,提高了软件测试的效率和测试质量。
90.在上述各实施例的基础上,本实施例中在所述根据更新后的宕机位置标志,输出所述待测试平台的测试结果之后,所述方法还包括:在所述测试结果为未通过测试的情况下,根据所述更新后的宕机位置标志,定位所述被测软件的宕机位置,根据所述被测软件的宕机位置对所述被测软件进行调试。
91.可选地,在获取到待测试平台的测试结果之后,还可以根据测试结果确定待测试平台的被测软件是否通过测试;
92.在测试结果为未通过测试的情况下,可以根据更新后的宕机位置标志和更新后的宕机函数的定位标志,定位被测软件的宕机位置;
93.宕机位置用于表征被测软件在第几次循环测试中发生宕机,以及在测试用例的哪一位置发生宕机。
94.根据宕机位置,定位被测软件中的测试数据的输入缺陷或代码缺陷,进而根据输入缺陷或代码缺陷对被测软件进行调试。
95.本实施例不仅可以对待测试平台进行测试,还可以在测试结果为未通过测试的情况下,及时定位被测软件的宕机位置,以及时根据被测软件的宕机位置对被测软件进行调试,通过基于插装测试代码的平台软件宕机位置集成测试,不仅可用于测试人员测试,也可以通过在系统程序中设置断言检测获取待测试平台的任意功能程序的测试结果,用于软件开发人员调用局部功能模块快速定位代码缺陷,降低在硬件环境中调试的时间成本和经济成本,提高维护效率。
96.在上述实施例的基础上,本实施例中所述测试用例对应的测试数据是,根据所述被测软件的预设宕机场景进行预先选择获取的。
97.可选地,在确定测试数据时,可以基于被测软件的不同预设宕机场景从被测软件的参数中选择相关的测试数据,以实现有效模拟软件宕机场景,有效模拟待测试平台实际运行时的宕机场景,提高了软件集成测试的效率和测试质量。
98.以下对本实施提供的基于软件宕机定位的测试方法的整体流程做具体说明。
99.该方法主要包括如下步骤:
100.步骤1,根据待测试平台中被测软件的测试功能需求分析宕机场景,结合所有可能引发待测试平台导向安全侧(即宕机)的情况,采用场景法、等价类划分法、边界值分析法、错误猜测法等编制软件集成测试用例,并将测试数据输入到可自动执行的测试脚本中。
101.步骤2,定义全局整型变量宕机位置标志,用于指示被测软件是否发生宕机及是否在正确位置发生宕机;定义全局整型变量宕机函数的定位标志,用于指示本次进入宕机函数是第几次,即本次断言检测在整个程序流程中的执行位置;定义全局整型数组变量宕机定位数组用于标注本次测试期望的宕机位置。
102.步骤3,依据集成的测试用例中设计的场景,在被测软件可能产生宕机的异常场景的位置处添加断言检测,检测到关键数据不符合预期时进入宕机函数;并在退出断言后,若宕机位置标志不为初始值直接跳转到被测试函数出口,即退出测试。
103.其中,在宕机函数中除被测软件本身的导向安全侧的宕机处理相关操作外,增加判断本次进入宕机函数的执行位置是否为期望宕机位置,若是,则将宕机位置标志为在正确位置宕机,若不是,则将宕机位置标志为未在正确位置宕机,如在正确位置之前发生宕机。
104.同时在执行宕机函数过程中,使用软件调试的方法监视变量宕机函数的定位标志和期望宕机的场景下的值x,以确定被测软件是否在期望位置下发生宕机。其中,若宕机定位数组的第x个元素赋值为期望宕机。
105.步骤4,查看自动执行完成的测试脚本的执行结果,若输出的宕机位置标志为在正确位置宕机则证明测试通过;若输出的宕机位置标志为在正确位置之前宕机则可认为发生了预期结果与实际结果不一致的情况,可通过调试软件定位测试数据输入缺陷或代码缺陷。
106.下面对本发明提供的基于软件宕机定位的测试装置进行描述,下文描述的基于软件宕机定位的测试装置与上文描述的基于软件宕机定位的测试方法可相互对应参照。
107.如图4所示,本实施例提供一种基于软件宕机定位的测试装置,该装置包括:用例生成模块401、测试执行模块402和测试输出模块403,其中:
108.用例生成模块401用于:根据待测试平台中被测软件的测试需求和所述被测软件
的预设宕机场景,生成所述待测试平台的测试用例;其中,所述测试用例中包含多处断言检测;
109.可选地,在需要对待测试平台进行软件测试时,可以首先根据被测软件的功能需求预先生成被测软件的测试需求,并结合所有可能引发平台导向安全侧的情况预先设定被测软件的预设宕机场景。
110.然后,结合待测试平台中被测软件的测试需求和预设宕机场景生成测试用例,并在测试用例中设置多处断言检测;其中,断言检侧的设置方式可以是用户根据实际需求进行设置的,也可以是根据被测软件的测试需求和/或预设宕机场景进行自动设置的,本实施例对此不做具体地限定。
111.同时,获取测试用例对应的测试数据;
112.在获取到测试用例之后,为了提高测试效率,可以将测试用例转换为可自动执行的测试脚本。
113.测试执行模块402用于:执行所述测试用例,在测试过程中,若基于任一断言检测获知所述测试用例中任一目标数据不满足预设条件,则执行所述测试用例中的宕机函数;其中,所述宕机函数中包含所述被测软件的导向安全侧的宕机处理操作、宕机位置标志的更新操作以及所述宕机函数的定位标志的更新操作;所述宕机位置标志包括所述被测软件在正确位置发生宕机的位置标志或未在正确位置发生宕机的位置标志;所述宕机函数的定位标志用于表征所述宕机函数在所述测试过程中的执行位置;
114.在执行测试用例过程中,实时监测每一断言检测结果,若根据任一断言检测的检测结果判断获知测试用例中任一目标数据不满足预设条件,则确定被测软件发生宕机。为了确保待测试平台软件的安全运行,在此场景下,控制触发当前程序的执行节点进入宕机函数,执行宕机函数中的导向安全侧的宕机处理操作,以将待测试平台的被测软件导向安全侧。
115.并且为了准确获取测试结果,需要同步执行宕机位置标志的更新操作和宕机函数的定位标志的更新操作,以对宕机位置标志和宕机函数的定位标志进行更新,进而根据更新的宕机位置标志和更新的宕机函数的定位标志确定被测软件是否通过宕机测试,以及定位发生宕机的位置。
116.测试输出模块403用于:根据更新后的宕机位置标志和更新后的宕机函数的定位标志,输出所述待测试平台的测试结果。
117.可选地,在获取更新后的宕机位置标志和更新的宕机函数的定位标志后,可以根据更新后的宕机位置标志和更新的宕机函数的定位标志,实时确定被测软件是否在发生异常宕机;
118.在确定被测软件发生异常宕机的情况下,确定被测软件未通过软件测试;在确定被测软件未发生异常宕机的情况下,确定被测软件通过软件测试。
119.本实施例通过在测试用例中插装断言检测代码,以在任一断言检测中获取到任一目标数据不满足预设条件的情况下,及时对被测软件进行导向安全侧的宕机处理操作,以确保待测试平台的运行安全;同时更新宕机位置标志和宕机函数的定位标志,并根据更新的宕机位置标志和更新的宕机函数的定位标志,确定待测试平台的宕机测试结果;以在被测软件发生宕机时,根据宕机测试结果,及时发现宕机情况以及准确定位宕机位置,有效模
拟待测试平台实际运行时的多种宕机场景,实现对待测试平台中被测软件发生的宕机位置进行精确定位并正确执行自动测试脚本,提高了软件集成测试的效率和测试质量。
120.在上述实施例的基础上,本实施例中测试输出模块,具体用于:在所述更新后的宕机函数的定位标志为期望定位标志,且所述更新后的宕机位置标志为所述被测软件在正确位置发生宕机的位置标志的情况下,确定所述待测试平台的测试结果为通过测试。
121.在上述实施例的基础上,本实施例中测试执行模块,具体用于:在所述宕机函数的执行位置与期望宕机位置一致的情况下,将所述宕机位置标志更新为所述被测软件在正确位置发生宕机的位置标志;在所述宕机函数的执行位置与所述期望宕机位置不一致的情况下,将所述宕机位置标志更新为所述被测软件未在正确位置发生宕机的位置标志。
122.在上述各实施例的基础上,本实施例中还包括测试退出模块,具体用于:在所述任一断言检测完成后,若判断获知所述更新后的宕机位置标志与初始的宕机位置标志不同,则退出测试。
123.在上述各实施例的基础上,本实施例中用例生成模块,具体用于:根据所述被测软件的测试需求,采用用例设计方法,生成所述待测试平台的初始测试用例;其中,所述用例设计方法包括场景法、等价类划分法、边界值分析法和错误猜测法中的一种或多种组合;根据所述被测软件的预设宕机场景,确定所述初始测试用例中待添加断言检测的目标位置;在所述初始测试用例中的所述目标位置处添加断言检测,得到所述测试用例。
124.在上述各实施例的基础上,本实施例中还包括软件调试模块,具体用于:在所述测试结果为未通过测试的情况下,根据所述更新后的宕机位置标志和更新后的宕机函数的定位标志,定位所述被测软件的宕机位置;根据所述被测软件的宕机位置对所述被测软件进行调试。
125.在上述各实施例的基础上,本实施例中所述测试用例对应的测试数据是,根据所述被测软件的预设宕机场景进行预先选择获取的。
126.图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(communications interface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行基于软件宕机定位的测试方法,该方法包括:根据待测试平台中被测软件的测试需求和所述被测软件的预设宕机场景,生成所述待测试平台的测试用例;其中,所述测试用例中包含多处断言检测;执行所述测试用例,在测试过程中,若基于任一断言检测获知所述测试用例中任一目标数据不满足预设条件,则执行所述测试用例中的宕机函数;其中,所述宕机函数中包含所述被测软件的导向安全侧的宕机处理操作、宕机位置标志的更新操作以及所述宕机函数的定位标志的更新操作;所述宕机位置标志包括所述被测软件在正确位置发生宕机的位置标志或未在正确位置发生宕机的位置标志;所述宕机函数的定位标志用于表征所述宕机函数在所述测试过程中的执行位置;根据更新后的宕机位置标志和更新后的宕机函数的定位标志,输出所述待测试平台的测试结果。
127.此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以
软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
128.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于软件宕机定位的测试方法,该方法包括:根据待测试平台中被测软件的测试需求和所述被测软件的预设宕机场景,生成所述待测试平台的测试用例;其中,所述测试用例中包含多处断言检测;执行所述测试用例,在测试过程中,若基于任一断言检测获知所述测试用例中任一目标数据不满足预设条件,则执行所述测试用例中的宕机函数;其中,所述宕机函数中包含所述被测软件的导向安全侧的宕机处理操作、宕机位置标志的更新操作以及所述宕机函数的定位标志的更新操作;所述宕机位置标志包括所述被测软件在正确位置发生宕机的位置标志或未在正确位置发生宕机的位置标志;所述宕机函数的定位标志用于表征所述宕机函数在所述测试过程中的执行位置;根据更新后的宕机位置标志和更新后的宕机函数的定位标志,输出所述待测试平台的测试结果。
129.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于软件宕机定位的测试方法,该方法包括:根据待测试平台中被测软件的测试需求和所述被测软件的预设宕机场景,生成所述待测试平台的测试用例;其中,所述测试用例中包含多处断言检测;执行所述测试用例,在测试过程中,若基于任一断言检测获知所述测试用例中任一目标数据不满足预设条件,则执行所述测试用例中的宕机函数;其中,所述宕机函数中包含所述被测软件的导向安全侧的宕机处理操作、宕机位置标志的更新操作以及所述宕机函数的定位标志的更新操作;所述宕机位置标志包括所述被测软件在正确位置发生宕机的位置标志或未在正确位置发生宕机的位置标志;所述宕机函数的定位标志用于表征所述宕机函数在所述测试过程中的执行位置;根据更新后的宕机位置标志和更新后的宕机函数的定位标志,输出所述待测试平台的测试结果。
130.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
131.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
132.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1