一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

测试用例的生成方法及装置、电子设备和存储介质与流程

2022-12-09 23:06:40 来源:中国专利 TAG:


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.可选的,所述转换模块,还包括:
36.第三转换子模块,用于将每个测试步骤对应的基本元素转换为一个对应的脚本测试块;
37.组成子模块,用于由所述每个测试步骤对应的脚本测试块组成所述脚本测试文件。
38.根据本公开的另一方面,提供了一种电子设备,包括:
39.至少一个处理器;以及
40.与所述至少一个处理器通信连接的存储器;其中,
41.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述一方面所述的方法。
42.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述一方面所述的方法。
43.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述一方面所述的方法。
44.本公开提供的测试用例的生成方法及装置、电子设备和存储介质,在读取配置文
件后,所述配置文件中包含基于自然语言描述的测试用例对应的测试步骤,将所述配置文件中的测试步骤转换为脚本测试文件,执行所述脚本测试文件,生成测试用例。本公开中对基于自然语言描述配置文件的转换,将配置文件转换为机器可执行的脚本文件,执行脚本文件即可实现测试用例的自动生成,提高了测试用例的生成效率。
45.应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
46.附图用于更好地理解本实施例,不构成对本公开的限定。其中:
47.图1为本公开实施例所提供的一种测试用例的生成方法的流程示意图;
48.图2为本公开实施例提供的一种配置文件的示意图;
49.图3为本公开实施例提供的一种参考配置文件的示意图;
50.图4本公开实施例提供的一种测试用例的生成装置的结构示意图;
51.图5为本公开实施例提供的另一种测试用例的生成装置的结构示意图;
52.图6为本公开实施例提供的示例电子设备300的示意性框图。
具体实施方式
53.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
54.下面参考附图描述本公开实施例的测试用例的生成方法、装置、电子设备和存储介质。
55.相关技术中,针对车辆的集成测试均是手动执行,导致测试用例开发的方法无法满足自动化测试的需求。本公开中,定义了一套基于自然语言描述(natura llanguage description,nld)的测试用例脚本自动化生成方法和流程,验证了测试用例脚本自动化生成的可行性。
56.图1为本公开实施例所提供的一种测试用例的生成方法的流程示意图。
57.如图1所示,该方法包含以下步骤:
58.101、读取配置文件,其中,其中,所述配置文件中包含基于自然语言描述的测试用例对应的测试步骤。
59.本实施例所述的配置文件是基于自然语言描述(naturallanguagedescription,nld)的,包括对车辆的操作、车的状态、以及控制方法等等。该配置文件中包含的测试步骤是组成测试用例的基本元素,其在配置文件内被使用自然语言进行规范描述。
60.配置文件作为测试用例的生成依据,配置文件中包含关于测试步骤的固定列格式,依次根据测试用例信息在固定列内进行配置,组成测试步骤,该测试步骤使用自然语言描述,大大降低了测试用例编写人员的技术门槛,在实际应用中,也能够提高测试用例的生成效率。
61.102、将所述配置文件中的测试步骤转换为脚本测试文件。
62.由于配置文件是使用自然语言描述的,无法被机器直接识别、运行,因此需要将使用自然语言描述的配置文件,转换为xml脚本文件,所述脚本配置文件中的每个测试步骤为可执行脚本,用于ecu-test测试块(ecu-testblock)的生成。
63.在实际应用中,可能会生成若干个测试用例时,因此,其转换测试文件时,也会生成对应数量的测试文件,举例而言,当生成的测试用例为5个时,其对应的测试文件也为5个,测试用例与测试文件的对应关系可通过任意形式的标识信息加以区分即可。
64.103、执行所述脚本测试文件,以生成测试用例。
65.具体应用过程中,采用的测试用例执行软件是ecu-test软件,ecu-test软件提供了丰富的api,通过python可以调用相应的测试用例自动生成相关的api,来实现测试用例ecu-test执行脚本自动生成的功能。
66.测试用例执行脚本自动化生成包括:首先读取脚本测试文件,读取该测试文件内的第一条测试步骤,并根据配置文件内的测试步骤顺序继续执行,直到执行完最后一条测试步骤后,完成一次测试用例的生成,若有下一个测试文件,则继续采用上述方法执行,直到执行完所有脚本测试文件,完成所有测试用例的生成。
67.本公开提供的测试用例的生成方法,在读取配置文件后,所述配置文件中包含基于自然语言描述的测试用例对应的测试步骤,将所述配置文件中的测试步骤转换为脚本测试文件,执行所述脚本测试文件,生成测试用例。本公开中对基于自然语言描述配置文件的转换,将配置文件转换为机器可执行的脚本文件,执行脚本文件即可实现测试用例的自动生成,提高了测试用例的生成效率。
68.本公开实施例中定义了一套基于自然语言描述nld的测试用例的描述方法,打破整车测试行业的传统,提供了一种全新的方法,该方法的执行依赖于配置文件,配置文件规范了测试步骤,在步骤101执行之前,根据测试用例信息和子配置文件确定所述配置文件,所述测试用例信息为测试需求信息,所述子配置文件包含测试用例的基本信息元素与测试步骤元素。
69.为了更好的理解本实施例所述的子配置文件,如图2所示,图2为本公开实施例提供的一种子配置文件的示意图,在配置文件中的测试用例的基本信息元素为图2中的第a到j列,其中,测试需求信息通常会输入第j列,测试步骤元素为图2中的第k到n列,在测试用例的基本信息元素中,可以根据项目实际需求,配置的内容进行增删改等操作,而测试步骤元素中的测试步骤则是固定的流程。
70.基于图2的详细描述,在将所述配置文件中的测试步骤转换为脚本测试文件时,具体包括:根据所述配置文件确定每个测试用例中的每个测试步骤对应的基本元素,按照每个测试步骤对应的基本元素,将所述测试步骤转换为所述脚本测试文件,其中,所述基本元素用于表达所述测试步骤需要执行的操作,所述基本元素是:对车辆的操作元素,或车辆的执行元素,或流程控制元素,每个所述测试用例至少包含对车辆的操作元素、车辆执行元素和流程控制元素中的两个。
71.为了更清楚的说明上述基本元素,下述实施例将分别对基本元素包含的对车辆的操作元素,或车辆的执行元素,或流程控制元素进行分别介绍:
72.(1)对车辆的操作元素
73.对车辆的操作元素指整车集成测试中对车辆进行的所有操作,这些操作采用自然
语言描述nld的方式进行描述和定义,并按照所属域(公共域,车身域,动力域,底盘域,娱乐域)进行了分类,举例见表1:
74.表1:对车辆的操作元素举例
75.步骤属性所属域对车辆的操作动作公共acc上电动作公共ready上电动作公共挂入p档动作车身域打开远光灯动作车身域打开左转向开灯动作车身域打开空调动作动力域打开加油口盖动作动力域连接交流枪动作动力域选择纯电优先模式动作底盘域激活acc功能动作底盘域打开车道偏离开关动作底盘域打卡lka功能动作娱乐域打开小憩模式动作娱乐域打开车载蓝牙动作娱乐域播放音乐
76.(2)车辆的执行元素
77.车辆的执行元素指整车集成测试中对车辆进行的所有操作对应的响应状态,这些响应状态采用自然语言描述nld的方式进行描述和定义,并按照所属域(公共域,车身域,动力域,底盘域,娱乐域)进行了分类,举例见表2:
78.表2:车辆的执行元素举例
79.[0080][0081]
(3)流程控制元素
[0082]
流程控制元素指整车集成测试中进行的流程控制以及一些特殊功能实现,举例见表3:
[0083]
表3:流程控制元素举例
[0084][0085]
基于上述实施例对测试步骤对应的基本元素(对车辆的操作元素,或车辆的执行元素,或流程控制元素)的说明,在所述按照每个测试步骤对应的基本元素,将所述测试步骤转换为所述脚本测试文件包括:根据所述测试步骤对应的基本元素,从预先定义的参考配置文件中确定对应的执行项目,以及实现方式或执行参数,将所述配置文件中的测试步骤转换为脚本测试文件具体为:将所述测试步骤对应的基本元素中包含的执行项目,实现方式或对应的执行参数转换为脚本测试文件。
[0086]
所述参考配置文件为预先设置好的文件,参考配置文件中通过三级属性对基本元素中包含的执行项目,实现方式或对应的执行参数进行了定义,其中,一级属性定义了执行
项目,二级属性定义了实现方式,三级属性定义了实现方式对应的执行参数。如图3所示,图3示出了本公开实施例提供的一种参考配置文件的示意图,图3所示的参考配置文件分别根据一级属性、二级属性及三级属性生成。如下所述:
[0087]
一级属性:
[0088]
定义了执行项目,包括:动作、响应、控制。执行项目的属性值列定义了执行项目的名称,这个名称是唯一的,并且规范的。在测试用例开发过程中测试用例编写人员tce只需要关注到这一层即可,根据这一执行项目名称进行组合,编写各个测试用例。
[0089]
二级属性:
[0090]
二级属性定义了实现方式,主要包含的二级属性类别见表4,并且具有可扩展性,根据实际测试设备的需求,进行二级属性的扩展。
[0091]
表4:二级属性列表
[0092]
属性级别属性列表属性值说明二级总线信号检查总线信号名称二级硬线信号检查硬线信号名称二级总线休眠检查na二级人工提示na二级adb操作na二级机械臂操作na
[0093]
三级属性
[0094]
三级属性定义了实现方式对应的执行参数,不同二级步骤对应的参数不同,举例见表5。
[0095]
表5:三级属性列表
[0096][0097][0098]
由上述实施例可确定配置文件基于自然语言描述的配置文件,机器无法读取其每个测试步骤,在将所述配置文件中的测试步骤转换为脚本测试文件时,将配置文件转换为xml配置文件,用于ecu-test测试块生成,读取配置文件中的测试用例信息,每个测试步骤对应的基本元素逐个转换为ecu-test中的测试块,然后组成一个测试文件pkg,一个测试用例对应一个测试文件pkg,有多少个测试用例就组成多少个测试文件pkg。
[0099]
图4为本公开实施例提供的一种测试用例的生成装置的结构示意图,如图4所示,包括:
[0100]
读取单元21,用于读取配置文件,其中,所述配置文件中包含基于自然语言描述的测试用例对应的测试步骤;
[0101]
转换单元22,用于将所述配置文件中的测试步骤转换为脚本测试文件;
memory,随机访问/存取存储器)303中的计算机程序,来执行各种适当的动作和处理。在ram 303中,还可存储设备300操作所需的各种程序和数据。计算单元301、rom 302以及ram303通过总线304彼此相连。i/o(input/output,输入/输出)接口305也连接至总线304。
[0120]
设备300中的多个部件连接至i/o接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0121]
计算单元301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元301的一些示例包括但不限于cpu(centra lprocessing unit,中央处理单元)、gpu(graphic processing units,图形处理单元)、各种专用的ai(artificia lintelligence,人工智能)计算芯片、各种运行机器学习模型算法的计算单元、dsp(digital signal processor,数字信号处理器)、以及任何适当的处理器、控制器、微控制器等。计算单元301执行上文所描述的各个方法和处理,例如测试用例的生成方法。例如,在一些实施例中,测试用例的生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由rom 302和/或通信单元309而被载入和/或安装到设备300上。当计算机程序加载到ram 303并由计算单元301执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,计算单元301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行前述测试用例的生成方法。
[0122]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、fpga(field programmable gate array,现场可编程门阵列)、asic(application-specific integrated circuit,专用集成电路)、assp(application specific standard product,专用标准产品)、soc(systemon chip,芯片上系统的系统)、cpld(complex programmable logic device,复杂可编程逻辑设备)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0123]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0124]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、ram、rom、eprom(electrically programmableread-only-memory,可擦除可编程只读存储器)或快闪存储器、光纤、cd-rom(compactdisc read-only memory,便捷式紧凑盘只读存储器)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0125]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(cathode-raytube,阴极射线管)或者lcd(liquid crysta ldisplay,液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0126]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:lan(loca larea network,局域网)、wan(wide area network,广域网)、互联网和区块链网络。
[0127]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtua lprivate server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0128]
其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
[0129]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0130]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献