1.本技术涉及测试技术领域,尤其涉及一种测试用例设计方法、装置、设备及存储介质。
背景技术:2.测试是产品或系统整个生命周期中的必要一环,而测试用例设计与生成是整个测试工作的最基本、最关键的难点任务之一,对于复杂的系统来说,设计大量的测试用例是一项极度耗时的工作。测试用例(test case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,与被测对象的待测功能、性能以及测试场景等需求紧密耦合,具有针对性特点。
3.而实际场景中,产品或系统常会发生场景切换、待测功能或性能的改变,这均会导致已生成的测试用例需要重新进行设计与编辑,现有设计方法生成的测试用例可复用性较低。
技术实现要素:4.本技术的主要目的在于提供一种测试用例设计方法、装置、设备及存储介质,旨在解决测试用例可复用性较低的技术问题。
5.为实现上述目的,本技术提供一种测试用例设计方法,包括:获取待测试产品;根据所述待测试产品的多种测试标准建立测试需求模型;根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例;其中,所述测试用例资源库包括多个已测试产品的测试用例,所述测试用例包括可复用测试用例和不可复用测试用例,所述可复用测试用例和所述不可复用测试用例基于预设的关键字库确定;若存在,则提取所述目标可复用测试用例,并导入编辑界面;根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例。
6.可选地,所述根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例的步骤,包括:根据所述测试需求模型和预设的被测对象模型,在所述编辑界面对所述目标可复用测试用例进行修改,生成所述待测试产品的测试用例。
7.可选地,所述根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例的步骤之后,还包括:若不存在,则在所述编辑界面中新建初始测试用例;所述根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例的步骤,包括:
根据所述测试需求模型,在所述编辑界面对所述初始测试用例进行编辑,生成所述待测试产品的测试用例。
8.可选地,所述获取待测试产品的步骤之后,还包括:对所述待测试产品的最小可测基本单元进行被测对象建模,获得所述被测对象模型;其中,所述被测对象模型中包括待测试产品信息和信号信息,所述信号信息包括端口信息和目标信号属性。
9.可选地,所述测试需求模型包括产品名称、产品类别和目标产品属性;所述根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例的步骤包括:将所述测试需求模型中的所述产品名称和所述产品类别,与所述测试用例资源库中的可复用测试用例进行匹配,以获得所述目标可复用测试用例。
10.可选地,所述根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例的步骤之前,包括:识别所述关键字库中的产品属性;其中,所述产品属性包括公共产品和私有产品;若为所述公共产品,则标记对应的所述测试用例为所述可复用测试用例;若为所述私有产品,则识别对应的信号属性;其中,所述信号属性包括公共信号和私有信号;若为所述公共信号,则标记对应的所述测试用例为所述可复用测试用例;若为所述私有信号,则标记对应的所述测试用例为不可复用测试用例。
11.可选地,所述获取待测试产品的步骤之前,还包括:获取多个已测试产品;根据所述已测试产品的测试用例,生成所述测试用例资源库;根据所述已测试产品的所述测试需求模型中的产品属性和所述已测试产品的被测对象模型中的信号属性,生成所述关键字库。
12.此外,为实现上述目的,本技术还提供一种测试用例设计装置,包括:获取模块,用于获取待测试产品;测试需求模型建立模块,用于根据所述待测试产品的多种测试标准建立测试需求模型;可复用测试用例选取模块,用于根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例;其中,所述测试用例资源库包括多个已测试产品的测试用例,所述测试用例包括所述可复用测试用例和不可复用测试用例,所述可复用测试用例和所述不可复用测试用例基于预设的关键字库确定;可复用测试用例导入模块,用于若存在,则提取所述目标可复用测试用例,并导入编辑界面;测试用例生成模块,用于根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例。
13.此外,为实现上述目的,本技术还提供一种计算机设备,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现上述的方法。
14.此外,为实现上述目的,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现上述的方法。
15.本技术所能实现的有益效果。
16.本技术实施例提出的一种测试用例设计方法、装置、设备及存储介质,通过获取待测试产品;根据所述待测试产品的多种测试标准建立测试需求模型;根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例;其中,所述测试用例资源库包括多个已测试产品的测试用例,所述测试用例包括可复用测试用例和不可复用测试用例,所述可复用测试用例和所述不可复用测试用例基于预设的关键字库确定;若存在,则提取所述目标可复用测试用例,并导入编辑界面;根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例。即通过引入关键字库用于测试用例的可复用性判断,在测试用例设计时,首先根据测试需求查找测试用例资源库中的适用于待测试产品的可复用测试用例,若有则直接选择该可复用测试用例进行复用,根据待测试产品的测试需求进行编辑修改即可得到新的测试用例,即为待测试产品的测试用例,这使得已测试产品的测试用例的可复用性提高,并且提升的测试用例设计的整体效率;进一步地,通过预设的被测对象模型,使得被测对象建模和测试用例设计在用户层面抽象成两个可并行开发的模块,可使不同的操作人员不受固有的时序限制,按规定标准开展对不同的最小可测单元进行被测对象建模以及测试用例的设计工作,这使得测试用例的设计相对独立,有效提升测试用例设计速率,也降低了对开发人员编程水平的要求。
附图说明
17.图1为本技术实施例涉及的硬件运行环境的计算机设备结构示意图;图2为本技术实施例提供的一种测试用例设计方法的流程示意图;图3为本技术实施例提供的一种测试用例设计装置的功能模块示意图。
18.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
19.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
20.本技术实施例的主要解决方案是:提出的一种测试用例设计方法、装置、设备及存储介质,通过获取待测试产品;根据所述待测试产品的多种测试标准建立测试需求模型;根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例;其中,所述测试用例资源库包括多个已测试产品的测试用例,所述测试用例包括可复用测试用例和不可复用测试用例,所述可复用测试用例和所述不可复用测试用例基于预设的关键字库确定;若存在,则提取所述目标可复用测试用例,并导入编辑界面;根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例。
21.现有技术中,测试是产品或系统整个生命周期中的必要一环,而测试用例设计与生成是整个测试工作的最基本、最关键的难点任务之一,对于复杂的系统来说,设计大量的测试用例是一项极度耗时的工作。测试用例(test case)是指对一项特定的软件产品进行
测试任务的描述,体现测试方案、方法、技术和策略,与被测对象的待测功能、性能以及测试场景等需求紧密耦合,具有针对性特点。
22.而实际场景中,产品或系统常会发生场景切换、待测功能或性能的改变,这均会导致已生成的测试用例需要重新进行设计与编辑,现有设计方法生成的测试用例可复用性较低,并且对编程人员的编程水平要求较高,测试用例设计效率整体较低。
23.为此,本技术提供一种解决方案,通过引入关键字库用于测试用例的可复用性判断,在测试用例设计时,首先根据测试需求查找测试用例资源库中的适用于待测试产品的可复用测试用例,若有则直接选择该可复用测试用例进行复用,根据待测试产品的测试需求进行编辑修改即可得到新的测试用例,即为待测试产品的测试用例,这使得已测试产品的测试用例的可复用性提高,并且提升的测试用例设计的整体效率;进一步地,通过预设的被测对象模型,使得被测对象建模和测试用例设计在用户层面抽象成两个可并行开发的模块,可使不同的操作人员不受固有的时序限制,按规定标准开展对不同的最小可测单元进行被测对象建模以及测试用例的设计工作,这使得测试用例的设计相对独立,有效提升测试用例设计速率,也降低了对开发人员编程水平的要求。
24.参照图1,图1为本技术实施例方案涉及的硬件运行环境的计算机设备结构示意图。
25.如图1所示,该计算机设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
26.本领域技术人员可以理解,图1中示出的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
27.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及电子程序。
28.在图1所示的计算机设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明计算机设备中的处理器1001、存储器1005可以设置在计算机设备中,所述计算机设备通过处理器1001调用存储器1005中存储的测试用例设计装置,并执行本技术实施例提供的测试用例设计方法。
29.参照图2,基于前述实施例的硬件设备,本技术的实施例提供一种测试用例设计方法,包括:s10:获取待测试产品;在具体实施过程中,待测试产品是指需要进行测试的产品,进行测试工作首先需要进行测试用例的设计。测试用例的设计与被测对象的待测功能、性能和测试场景等需求紧密耦合。
30.s20:根据所述待测试产品的多种测试标准建立测试需求模型;
在具体实施过程中,待测试产品有多种不同方面的测试需求和对应的测试标准,将待测试产品的名称、属性等基本信息以及测试标准录入系统,获得测试需求模型。
31.s30:根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例;其中,所述测试用例资源库包括多个已测试产品的测试用例,所述测试用例包括可复用测试用例和不可复用测试用例,所述可复用测试用例和所述不可复用测试用例基于预设的关键字库确定;在具体实施过程中,因测试用例与待测产品的功能、性能、测试场景等紧密耦合,简单的场景切换、待测性能或功能的改变都会导致已有的测试用例不满足需求,需要重新设计。本技术实施例的测试用例资源库收集了大量已测试产品的测试用例,根据关键字库判定其属于可复用测试用例或是不可复用测试用例,当某一测试用例为可复用测试用例时,可以根据待测试产品的测试需求模型中的内容,判断该可复用测试用例与待测试产品的相关性,若相关性较高,如为同类型产品、相同产品等,即为目标可复用测试用例,可以直接基于此目标可复用测试用例进行编辑修改,得到新的待测试产品的测试用例,使得测试用例的可复性和利用率提高,减少对测试用例设计的工作量,提升整体的测试工作效率。
32.作为一种可选的实施方式,所述获取待测试产品的步骤之后,还包括:对所述待测试产品的最小可测基本单元进行被测对象建模,获得所述被测对象模型;其中,所述被测对象模型中包括待测试产品信息和信号信息,所述信号信息包括端口信息和目标信号属性。
33.在具体实施过程中,被测对象(unit under test,uut)建模涉及到待测试产品的基本信息描述和信号描述,其描述规范符合ieee1671.3标准,并以文本形式存储,如xml格式等。被测对象模型中包括待测试产品信息,如:产品型号、产品类型、生产厂家、地址、联系方式等,还包括信号信息,即端口信息和目标信号属性,其中端口信息包括端口方向、端口类型、配套连接器编号、信号表(引脚号、信号名称、信号类型、信号定义)、配套连接器类型、安装位置,目标信号属性包括共有属性和私有属性。通过得到预设的被测对象模型,这在一定程度上达到了测试用例设计与被测对象之间的弱耦合效果,即将被测对象建模和测试用例设计在用户层面抽象成两个可并行开发的模块,可使不同的操作人员可不受固有时序限制,按规定标准开展对不同的最小可测单元进行被测对象建模以及测试用例的设计工作,这使得测试用例的设计相对独立,有效提升测试用例设计速率,也降低了对开发人员编程水平的要求。同时,被测对象模型是基于最小可测基本单元进行建模的,这意味着设计测试用例时可以选择多个最小可测基本单元进行任意组合,抽象构建出多层级的被测对象模型,从而形成用于多层级集成测试的测试用例。
34.作为一种可选的实施方式,所述测试需求模型包括产品名称、产品类别和目标产品属性;所述根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例的步骤包括:将所述测试需求模型中的所述产品名称和所述产品类别,与所述测试用例资源库中的可复用测试用例进行匹配,以获得所述目标可复用测试用例。
35.在具体实施过程中,测试需求模型中除了待测试模型的测试需求,还包括产品名称、产品类别以及目标产品属性。根据产品名称和产品类型在测试用例资源库中选择与待测试产品相同或类型相同的可复用测试用例,作为目标可复用测试用例。直接在目标可复用测试用例基础上进行简单编辑修改,即可得到新的待测试产品的测试用例,这一设置使
得测试用例的可复性和利用率提高,减少对测试用例设计的工作量,提升整体的测试工作效率。
36.作为一种可选的实施方式,所述获取待测试产品的步骤之前,还包括:获取多个已测试产品;根据所述已测试产品的测试用例,生成所述测试用例资源库;根据所述已测试产品的所述测试需求模型中的产品属性和所述已测试产品的被测对象模型中的信号属性,生成所述关键字库。
37.在具体实施过程中,获取多个已测试产品,将其测试用例汇总生成测试用例资源库。由上述生成测试需求模型以及生成被测对象模型的方法可知,测试需求模型中包括产品的产品属性,被测对象模型中包括产品的信号属性,根据已测试产品的测试用例的产品属性和信号属性建立关键字库,用于后续的测试用例的可复用性判断。
38.作为一种可选的实施方式,所述根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例的步骤之前,包括:识别所述关键字库中的产品属性;其中,所述产品属性包括公共产品和私有产品;若为所述公共产品,则标记对应的所述测试用例为所述可复用测试用例;若为所述私有产品,则识别对应的信号属性;其中,所述信号属性包括公共信号和私有信号;若为所述公共信号,则标记对应的所述测试用例为所述可复用测试用例;若为所述私有信号,则标记对应的所述测试用例为不可复用测试用例。
39.在具体实施过程中,关键字库是用于测试用例的可复用性判断。关键字库中的已测试产品的测试用例均带有产品属性和信号属性标签,其中产品属性可分为公共产品和私有产品,信号属性可分为公共信号和私有信号。产品属性为公共产品的测试用例均为可复用测试用例,产品属性为私有产品的测试用例则根据该测试用例的信号属性确定其可复用性,仅当该测试用例的信号属性为公共信号时为可复用测试用例,而信号属性为私有信号时为不可复用测试用例。
40.s40:若存在,则提取所述目标可复用测试用例,并导入编辑界面;在具体实施过程中,若测试用例资源库存在适用于待测试产品的目标可复用测试用例,则将其导入至编辑页面。
41.s50:根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例。
42.在具体实施过程中,根据测试需求模型和被测对象模型中的产品名称、信号名称、测试标准等相关信息,在编辑页面中的可复用测试用例上进行编辑,得到待测试产品的测试用例。
43.在对新生成的测试用例进行保存前,通过在关键字库文件中的查找用例涉及到的产品与信号属性,实现对新生成用例的可复用性判断。若为可复用测试用例,可将其保存至测试用例资源库中,用于后续的待测试产品的测试用例设计,进一步提升测试用例的可复用性。
44.作为一种可选的实施方式,所述根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例的步骤,包括:根据所述测试需求模型和预设的被测对象模型,在所述编辑界面对所述目标可复用测试用例进行修改,生成所述待测试产品的测试用例。
45.在具体实施过程中,根据测试需求模型和被测对象模型中的产品名称、信号名称、测试标准等待测试产品的实际测试需求,对目标可复用测试用例进行编辑修改,得到待测试产品的测试用例。利用工具树中的基本工具和步骤树中的数据存储容器以完成测试用例设计,如信号的选择、信号属性的自动分配、以及对该信号的通信流向定义等具体内容的编辑,其中工具树主要提供等待、验证、if else、发送数据、接收数据、弹窗等基本工具为测试用例步骤编辑提供保障,步骤树显示详细的测试步骤。
46.作为一种可选的实施方式,所述根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例的步骤之后,还包括:若不存在,则在所述编辑界面中新建初始测试用例;在具体实施过程中,若测试用例资源库中不存在适用于待测试产品的目标可复用测试用例,则在编辑页面新建一个初始测试用例。
47.此时,所述根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例的步骤,包括:根据所述测试需求模型,在所述编辑界面对所述初始测试用例进行编辑,生成所述待测试产品的测试用例。
48.可以理解的是,根据测试用例需求模型直接由初始测试用例编辑生成待测试产品的测试用例。并且,在对新生成的测试用例进行保存前,通过在关键字库文件中的查找用例涉及到的产品与信号属性,实现对新生成用例的可复用性判断。若为可复用测试用例,可将其保存至测试用例资源库中,用于后续的待测试产品的测试用例设计,进一步提升测试用例的可复用性。
49.应当理解的是,以上仅为举例说明,对本技术的技术方案并不构成任何限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限制。
50.通过上述描述不难发现,本实施例是通过简化的技术方案,整体效果参照图3,基于相同的发明思路,本技术的实施例还提供一种测试用例设计装置,包括:获取模块,用于获取待测试产品;测试需求模型建立模块,用于根据所述待测试产品的多种测试标准建立测试需求模型;可复用测试用例选取模块,用于根据所述测试需求模型,在预设的测试用例资源库中识别是否存在适用于所述待测试产品的目标可复用测试用例;其中,所述测试用例资源库包括多个已测试产品的测试用例,所述测试用例包括所述可复用测试用例和不可复用测试用例,所述可复用测试用例和所述不可复用测试用例基于预设的关键字库确定;可复用测试用例导入模块,用于若存在,则提取所述目标可复用测试用例,并导入编辑界面;测试用例生成模块,用于根据所述测试需求模型和预设的被测对象模型,在所述编辑界面生成所述待测试产品的测试用例。
51.需要说明的是,本实施例中测试用例设计装置中各模块是与前述实施例中测试用例设计方法中的各步骤一一对应,因此,本实施例的具体实施方式可参照前述测试用例设计方法的实施方式,这里不再赘述。
52.此外,在一种实施例中,本技术的实施例还提供一种计算机设备,所述设备包括处
理器,存储器以及存储在所述存储器中的计算机程序,所述计算机程序被处理器运行时实现前述实施例中方法的步骤。
53.此外,在一种实施例中,本技术的实施例还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现前述实施例中方法的步骤。
54.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
55.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
56.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
57.作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
58.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
59.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
60.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台多媒体终端设备(可以是手机,计算机,电视接收机,或者网络设备等)执行本技术各个实施例所述的方法。
61.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。