本公开涉及测试,尤其涉及一种测试方法、装置、电子设备、存储介质及程序产品。
背景技术:
1、软件测试是软件开发过程中不可缺少的,其目的是发现潜伏在软件里的缺陷,减少软件开发和维护的成本,促进软件质量的提升。软件测试的成本占整个软件开发过程的很大一部分,随着软件功能复杂度的不断提高,相应的自动化测试技术也在不断发展和进步。
2、在各种类型的自动化测试中,最接近用户需求的测试是与用户交互相关的,俗称为ui(user interface,用户界面)测试。ui测试是一种对应用程序上的ui控件元素进行测试的技术。比如,点击用户界面上的每个ui控件元素,检测被测试的应用程序的输出结果是否符合预期测试结果。
3、目前的ui测试方法,通过定位ui控件,触发ui事件来驱动自动化测试用例的执行。这种方式强依赖于ui的表现和结构,稳定性不足,导致测试成本较高。
技术实现思路
1、有鉴于此,本公开的目的在于提出一种测试方法、装置、电子设备、存储介质及程序产品。
2、基于上述目的,本公开的第一个方面提供了一种测试方法,包括:
3、获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率;
4、将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素;
5、基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
6、基于所述测试元素和所述测试协议,生成测试用例。
7、在一些实施例中,将所待将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素,包括:
8、将对所述待测功能的多个测试用例对象进行测试时所需的多个操作、素材、分类、分辨率进行组合排序,形成具有有序序列的所述测试元素。
9、在一些实施例中,还包括:
10、响应于在与所述待测功能对应的测试任务对象中新增测试用例对象,在所述测试数据中增加与新增的所述测试用例对象对应的输入参数。
11、在一些实施例中,所述测试协议包括json格式数据。
12、本公开的第二个方面提供了一种测试方法,包括:
13、获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的组合;
14、基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
15、基于所述测试函数、所述测试数据对所述待测功能进行测试。
16、在一些实施例中,所述设置参数包括与所述待测功能对应的测试任务对象的测试任务标识、输入信息、输出信息。
17、在一些实施例中,所待测功能包括至少一个测试用例对象,所述测试函数的输入参数包括与所述测试用例对象对应的测试用例标识、适用对象、持续时间。
18、在一些实施例中,所述基于所述测试函数、所述测试数据对所述待测功能进行测试,包括:
19、基于所述测试函数、所述测试数据生成针对每个测试用例对象的操作指令序列;
20、通过调度器依次调用所述操作指令序列以执行对所述测试用例对象的测试操作。
21、本公开的第三个方面提供了一种测试装置,包括:
22、获取模块,被配置为:获取对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率;
23、组合模块,被配置为:将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素;
24、第一生成模块,被配置为:基于所述测试元素与测试函数、测试数据之间的对应关系,生成测试协议;所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
25、第二生成模块,被配置为:基于所述测试元素和所述测试协议,生成测试用例。
26、本公开的第四个方面提供了一种测试装置,包括:
27、获取模块,被配置为:获取测试用例,基于所述测试用例确定测试元素和测试协议;所述测试元素包括针对待测程序的待测功能进行测试所需的操作、素材、分类、分辨率中的一个或多个的有序组合;
28、确定模块,被配置为:基于所述测试元素和所述测试协议,确定与所述测试元素匹配的测试函数和测试数据;所述测试协议包括预先定义的测试元素与测试函数、测试数据之间的对应关系,所述测试函数为所述待测程序实现待测功能所需要调用的函数,所述测试数据为所述待测程序调用所述测试函数实现所述待测功能所需要设置的设置参数或输入所述测试函数的输入参数;
29、测试模块,被配置为:基于所述测试函数、所述测试数据对所述待测功能进行测试。
30、本公开的第五个方面还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一个方面或第二个方面所述的方法。
31、本公开的第六个方面还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一个方面或第二个方面所述的方法。
32、本公开的第七个方面还提供了一种计算机程序产品,所述计算机程序产品包括存储有指令的计算机可读存储介质,所述指令在被执行时使得计算设备的至少一个中央处理器单元执行根据第一个方面或第二个方面所述的方法。
33、从上面所述可以看出,本公开提供的测试方法、装置、电子设备、存储介质及程序产品,通过将针对某一测试功能的所需的操作、素材、分类、分辨率进行组合排列定义为一个测试元素,并在测试协议中定义测试元素与测试函数、测试数据之间的对应关系,从而使得在测试设备上进行测试时可以直接基于测试元素中定义的操作、素材、分类、分辨率的组合直接调用相应的测试函数进行自动化测试,而无需对每个操作行为以及操作的对象进行定位;这种测试方法不依赖ui控件的表现和结构,即使ui稳定性低导致ui控件的定位信息变化,也无需修改测试用例,从而提高了自动化测试的稳定性,降低测试成本和测试门槛。
1.一种测试方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,将所待将所述操作、素材、分类、分辨率中的一个或多个进行组合,生成测试元素,包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求1所述的方法,其特征在于,所述测试协议包括json格式数据。
5.一种测试方法,其特征在于,包括:
6.根据权利要求5所述的方法,其特征在于,所述设置参数包括与所述待测功能对应的测试任务对象的测试任务标识、输入信息、输出信息。
7.根据权利要求5所述的方法,其特征在于,
8.根据权利要求7所述的方法,其特征在于,所述基于所述测试函数、所述测试数据对所述待测功能进行测试,包括:
9.一种测试装置,其特征在于,包括:
10.一种测试装置,其特征在于,包括:
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4或者5至8任意一项所述的方法。
12.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至4或者5至8任意一项所述的方法。
13.一种计算机程序产品,所述计算机程序产品包括存储有指令的计算机可读存储介质,其特征在于,所述指令在被执行时使得计算设备的至少一个中央处理器单元执行根据权利要求1至4或者5至8任意一项所述的方法。