自动驾驶系统的软件在环仿真测试方法、装置及存储介质与流程

文档序号:31875917发布日期:2022-10-21 21:36阅读:128来源:国知局
自动驾驶系统的软件在环仿真测试方法、装置及存储介质与流程

1.本技术涉及自动驾驶技术领域,特别涉及一种自动驾驶系统的软件在环仿真测试方法、装置及存储介质。


背景技术:

2.虚拟仿真测试是实现高阶自动驾驶落地应用的关键一环。仿真测试案例设计作为仿真测试的前端输入,是自动驾驶仿真测试重要的内容输入,可以作为软件在环仿真测试的测试关键点,进行编写软件在环仿真测试案例,从而展开基于软件在环仿真测试,得到仿真测试结果。因此,需要确保仿真测试案例的有效性和可靠性。
3.相关技术中,测试案例可以由个人完成,根据经验或者系统需求的简单基本功能点,对可能的观测信号和判断条件进行简单罗列,以此为基础完成仿真测试。然而,相关技术的描述语言大都是从主观表述,语言赘述,不同的人可能还会对测试目标的理解产生歧义,并没有对复杂的全场景行驶的自动驾驶仿真测试案例进行标准化的编写设计。


技术实现要素:

4.本技术提供一种自动驾驶系统的软件在环仿真测试方法、装置、电子设备及存储介质,以解决相关技术中,在环仿真测试的测试案例缺乏标准的语言的描述,不同设计者的测试案例编写结果差异大,案例设计主观性较高,使得测试的有效性和案例的复用性较低,无法满足实际需要等问题。
5.本技术第一方面实施例提供一种自动驾驶系统的软件在环仿真测试方法,包括以下步骤:获取待测试自动驾驶系统的功能测试需求;以所述功能测试需求为索引,查询预先建立的自然语言库,获取所述功能测试需求的自然语言,其中,所述自然语言库基于携带有功能测试需求标签的数据建立得到;根据所述自然语言生成软件在环仿真测试的执行步骤,根据所述执行步骤生成测试案例,并利用所述测试案例对待测试自动驾驶系统进行软件在环仿真测试。
6.根据上述技术手段,本技术实施例可以梳理出系统需求的关键功能点,提取出相应的信号,组合成案例的步骤自然语言库,通过自然语言库生成仿真测试案例,并进行仿真测试;由此,本技术实施例可以通过自然语言库的使用,使得案例的编写更加标准化;并且在对于测试用例的设计上,同时兼顾充分性和效率原则,满足实际使用的需要。
7.可选地,所述根据所述执行步骤生成测试案例,包括:获取所述执行步骤的初始条件;打包所述初始条件,并根据所述执行步骤生成所述测试案例。
8.根据上述技术手段,本技术实施例可以针对系统激活前的一些通用的初始条件设置,进行打包处理,同时还可以对这个打包的结构传递形参;由此,本技术实施例可以提高案例复用性,降低案例步骤内容的重复性,使得方案能够快速跟进到软件开发验证的测试迭代计划中。
9.可选地,所述根据所述执行步骤生成测试案例,包括:获取所述执行步骤的判断条
件;利用预设通用化处理策略对所述判断条件进行通用化处理,并根据所述执行步骤生成所述测试案例。
10.根据上述技术手段,本技术实施例可以通过观测这类通用性的判断条件,使测试案例具有连续性,提升测试效率;同时一个测试案例设计可能因为判断条件的通用化可以被多次应用,也在一定程度上提高了测试案例的复用性。
11.可选地,所述自然语言库基于携带有功能测试需求标签的数据建立得到,包括:获取携带有功能测试需求标签的数据;根据所述数据分析所述待测试自动驾驶系统的功能及性能需求;识别所述功能及性能需求,得到所述待测试自动驾驶系统功能设计的需求参数和需求参数的约束值;利用预设自然语言转换策略将所述需求参数和所述需求参数的约束值转换成对应的自然语言;根据所述需求参数和所述需求参数的约束值各自对应的自然语言建立所述自然语言库。
12.根据上述技术手段,本技术实施例可以通过提取功能设计的关键信号组合成的测试案例步骤的自然语言库,使得即使测试案例的设计者不同,也可以通过调用自然语言库里面的文字描述来生成测试案例;由此,本技术实施例可以最大限度地保证测试案例的标准化。
13.本技术第二方面实施例提供一种自动驾驶系统的软件在环仿真测试装置,包括:获取模块,用于获取待测试自动驾驶系统的功能测试需求;查询模块,用于以所述功能测试需求为索引,查询预先建立的自然语言库,获取所述功能测试需求的自然语言,其中,所述自然语言库基于携带有功能测试需求标签的数据建立得到;测试模块,用于根据所述自然语言生成软件在环仿真测试的执行步骤,根据所述执行步骤生成测试案例,并利用所述测试案例对待测试自动驾驶系统进行软件在环仿真测试。。
14.可选地,所述测试模块用于:获取所述执行步骤的初始条件;打包所述初始条件,并根据所述执行步骤生成所述测试案例。
15.可选地,所述测试模块进一步用于:获取所述执行步骤的判断条件;利用预设通用化处理策略对所述判断条件进行通用化处理,并根据所述执行步骤生成所述测试案例。
16.可选地,所述查询模块用于:获取携带有功能测试需求标签的数据;根据所述数据分析所述待测试自动驾驶系统的功能及性能需求;识别所述功能及性能需求,得到所述待测试自动驾驶系统功能设计的需求参数和需求参数的约束值;利用预设自然语言转换策略将所述需求参数和所述需求参数的约束值转换成对应的自然语言;根据所述需求参数和所述需求参数的约束值各自对应的自然语言建立所述自然语言库。
17.本技术第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的自动驾驶系统的软件在环仿真测试方法。
18.本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的自动驾驶系统的软件在环仿真测试方法。
19.由此,本技术至少具有如下有益效果:
20.(1)本技术可以梳理出系统需求的关键功能点,提取出相应的信号,组合成案例的步骤自然语言库,通过自然语言库生成仿真测试案例,并进行仿真测试;由此,本技术实施
例可以通过自然语言库的使用,使得案例的编写更加标准化;并且在对于测试用例的设计上,同时兼顾充分性和效率原则,满足实际使用的需要;
21.(2)本技术可以针对系统激活前的一些通用的初始条件设置,进行打包处理,同时还可以对这个打包的结构传递形参;由此,本技术实施例可以提高案例复用性,降低案例步骤内容的重复性,使得方案能够快速跟进到软件开发验证的测试迭代计划中;
22.(3)本技术可以通过观测这类通用性的判断条件,使测试案例具有连续性,提升测试效率;同时一个测试案例设计可能因为判断条件的通用化可以被多次应用,也在一定程度上提高了测试案例的复用性;
23.(4)本技术可以通过提取功能设计的关键信号组合成的测试案例步骤的自然语言库,使得即使测试案例的设计者不同,也可以通过调用自然语言库里面的文字描述来生成测试案例;由此,本技术实施例可以最大限度地保证测试案例的标准化。
24.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
25.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
26.图1为根据本技术实施例提供的一种自动驾驶系统的软件在环仿真测试方法的流程图;
27.图2为根据本技术实施例提供的自动驾驶系统的软件在环仿真测试方法的具体流程图;
28.图3为根据本技术实施例的自动驾驶系统的软件在环仿真测试装置的示例图;
29.图4为根据本技术实施例的电子设备的结构示意图。
具体实施方式
30.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
31.相关技术中,虚拟仿真技术是汽车研发、制造和验证测试等环节不可或缺的技术手段,可以有效缩短技术和产品开发周期,降低研发成本。随着汽车智能化、网联化趋势的发展,虚拟仿真技术有了更大的发挥空间,比如,可以应用于自动驾驶系统的仿真测试验证,虚拟仿真测试是实现高阶自动驾驶落地应用的关键一环。
32.自动驾驶汽车在真正商业化应用前,需要经历大量的道路测试才能达到商用要求。采用路测来优化自动驾驶算法耗费的时间和成本太高,且开放道路测试仍受到法规限制,极端交通条件和场景复现困难,测试安全存在隐患。因此,基于场景库的仿真测试是解决自动驾驶研发测试挑战的主要方案。自动驾驶系统测试不同于传统的汽车整车或零部件试验,更多的是参照软件开发和测试的模型和流程。为了验证仿真测试的有效性,可选择基于软件在环仿真测试方法,重现车辆道路测试效果。
33.然而,相关技术中在环仿真测试的测试案例缺乏标准的语言的描述,不同设计者
的测试案例编写结果差异大,案例设计主观性较高,使得测试的有效性和案例的复用性较低,无法满足实际需要的问题还有待解决。
34.针对上述背景技术中提到的问题,本技术提供了一种自动驾驶系统的软件在环仿真测试方法,下面将参考附图描述本技术实施例的自动驾驶系统的软件在环仿真测试方法、装置、电子设备及存储介质。
35.具体而言,图1为本技术实施例所提供的一种自动驾驶系统的软件在环仿真测试方法的流程示意图。
36.如图1所示,该自动驾驶系统的软件在环仿真测试方法包括以下步骤:
37.在步骤s101中,获取待测试自动驾驶系统的功能测试需求。
38.其中,对待测试自动驾驶系统的功能测试需求的获取可以通过多种方式实现,待测试自动驾驶系统的功能测试需求可以是系统定义需求或通用定义需求(车辆状态、环境状态、道路状态、驾驶员状态)等,对此不做具体限定。
39.可以理解的是,本技术实施例可以首先进行软件功能测试需求分析,以用于后续步骤中仿真步骤的生成。
40.具体而言,本技术实施例可以进行软件功能测试需求分析,明确软件子系统基本功能点,以获取被测自动驾驶系统的功能及性能需求,可以包括:系统定义需求、通用定义需求(车辆状态、环境状态、道路状态、驾驶员状态);同时,本技术实施例可以获取核心安全策略的处理逻辑、系统状态管理(包括系统的状态跳转:可激活状态到激活状态、激活状态退出至待机、可激活状态退出至不可激活状态等)。
41.需要说明的是,本技术在编写测试案例时对于场景的描述可以从天气、道路、交通、驾驶员状态、本车状态五个维度的外部环境的要素来进行,这些信息可以通过vtd(virtual test drive,虚拟试驾)软件模拟,以实现测试对本车和目标车的所有车辆信息、道路的所有参数、交通参与者和外界环境等的配置。
42.在步骤s102中,以功能测试需求为索引,查询预先建立的自然语言库,获取功能测试需求的自然语言,其中,自然语言库基于携带有功能测试需求标签的数据建立得到。
43.其中,自然语言可以是指一种自然地随文化演化的语言,自然语言的处理可以实现人与计算机之间用自然语言进行有效通信。
44.可以理解的是,本技术实施例可以使用一种查询语言库的方式,将获取的功能测试需求作为索引,与自然语言库进行对比,以得到功能测试需求所对应的自然语言。
45.在本技术实施例中,自然语言库基于携带有功能测试需求标签的数据建立得到,包括:获取携带有功能测试需求标签的数据;根据数据分析待测试自动驾驶系统的功能及性能需求;识别功能及性能需求,得到待测试自动驾驶系统功能设计的需求参数和需求参数的约束值;利用预设自然语言转换策略将需求参数和需求参数的约束值转换成对应的自然语言;根据需求参数和需求参数的约束值各自对应的自然语言建立自然语言库。
46.其中,预设自然语言转换策略可以根据实际情况进行具体设置等,对此不做具体限定。
47.可以理解的是,本技术实施例可以基于需求参数和需求参数的约束值各自对应的自然语言建立自然语言库,通过用简练准确的自然语言,对需要应用在测试案例中的步骤进行提炼。
48.具体而言,本技术实施例可以(1)首先提取功能设计的关键信号,根据软件功能测试需求分析提供的关键功能点,在can(controller area network,控制器局域网络)总线协议和软件信号接口中,确定本次系统软件仿真测试所需要的关键信号,比如该系统的状态机信号表示、需要注入的激活或故障的操作信号、还有测试中需要观测的信号跳转等;
49.(2)接着本技术实施例可以设定关键参数的约束值,约束值可以根据软件功能测试需求分析中的系统定义和通用定义进行设定,特别是odd(oracle database dashboard,设计运行域)定义,比如系统设计允许速度范围、系统行驶道路行驶曲率限定、驾驶员手力矩阈值等,并将此类关键参数的约束值和上述提取的关键信号的信息结合起来,作为需求参数和需求参数的约束值。
50.(3)生成对应系统功能的测试案例的自然语言库,结合上述的需求参数和需求参数的约束值,针对当次软件系统仿真测试,生成对应测试案例设计所需的自然语言库。
51.举例而言,在描述本车的初始状态的时候,假设本车车速为30km/h,则会被描述为speed=30[20,120],其中,数字30可以代表本车的车表显示车速为30km/h,[20,120]可以代表约束值,即系统设计的允许速度范围的最小值为20km/h,最大值为120km/h,本车距离场景起点的具体位置即描述为position=xxm等。
[0052]
在步骤s103中,根据自然语言生成软件在环仿真测试的执行步骤,根据执行步骤生成测试案例,并利用测试案例对待测试自动驾驶系统进行软件在环仿真测试。
[0053]
可以理解的是,本技术实施例可以在上述步骤中获取到功能测试需求的自然语言后,使用上述自然语言,生成软件在环仿真测试的执行步骤,进一步根据测试的执行步骤生成测试案例,以进行仿真测试。其中,本技术实施例在根据执行步骤生成测试案例时,可以首先做测试准备,对初始条件进行打包和处理,并进行测试判断通用化处理,具体如下:
[0054]
在本技术实施例中,根据执行步骤生成测试案例,包括:获取执行步骤的初始条件;打包初始条件,并根据执行步骤生成测试案例。
[0055]
可以理解的是,在系统测试中,大部分测试案例的初始条件是具有一定的重复性的,因此,本技术实施例可以针对系统激活前的一些通用的初始条件设置,进行初始条件的打包处理,同时还可以对这个打包的结构传递形参(比如本车的表显车速这类的值),提高复用性,同时降低案例步骤内容的重复性。
[0056]
举例而言,大部分情况下,在测试中都需要系统先处于激活状态,但是在实际案例编写过程中,激活状态需要在系统处于可激活状态下注入激活的操作步骤信号,因此,本技术实施例可以通过python脚本打包处理,使得案例步骤的初始条件最终只体现系统处于激活状态,不需要重复描述系统的激活过程。
[0057]
在本技术实施例中,根据执行步骤生成测试案例,包括:获取执行步骤的判断条件;利用预设通用化处理策略对判断条件进行通用化处理,并根据执行步骤生成测试案例。
[0058]
可以理解的是,在本技术实施例中,可以对判断条件进行通用化处理,以通过观测这类通用性的判断条件,使测试案例具有连续性。
[0059]
具体地,本技术实施例可以对测试的判断条件进行通用化处理,测试案例应该是完整的,包含车辆需要从静止时刻进行上电、车速从0km/h加速到目标车速的过程,比如可以是车速从0km/h加速到90km/h等,以及功能关键观测信号通过后,车辆需要减速至停车等过程、本技术实施例可以通过观测这类通用性的判断条件,使测试案例具有连续性,避免类
似vtd多次重复启动影响测试效率的过程;同时,一个测试案例设计可能因为判断条件的通用化可以被多次应用,本技术实施例也在一定程度上提高了测试案例的复用性。
[0060]
下面将基于图2所示的实施例对本技术实施例的自动驾驶系统的软件在环仿真测试方法进行阐述,其中,如图2所示,包括:软件功能测试需求分析、提取所涉及的功能设计的关键信号(状态机、模拟故障输入)、设定关键参数的约束值、生成对应系统功能的测试案例的自然语言库、测试准备初始条件打包处理和测试判断通用化处理。
[0061]
由此,本技术的一个实施例可以提供一种更高效和标准化的仿真测试案例编写方案,以准确发掘软件在环仿真测试中的测试关键点。具体流程如下:
[0062]
(1)流程开始,进行软件功能测试需求分析;
[0063]
(2)在提取功能设计关键信号的同时,设定关键值约束值;
[0064]
(3)将步骤(2)中的关键信号和关键值约束值组合成测试案例步骤自然语言库;
[0065]
(4)同时进行初始条件的打包和设置标准化可通用的判断标准;
[0066]
(5)将步骤(3)和(4)的结果应用到步骤(5),生成测试案例;
[0067]
(6)执行测试;
[0068]
(7)输出测试结果,流程结束。
[0069]
综上,本技术实施例可以提取功能设计的关键信号组合成的测试案例步骤的自然语言库,使编写标准化;同时对系统的初始条件的打包处理,提高案例的复用性,使得方案能快速跟进到软件开发验证的测试迭代计划中,具体如下:
[0070]
一方面,本技术实施例可以使用一种先梳理出系统需求的关键功能点、接着提取出相应的信号、再组合成案例的步骤自然语言库的方式,其中,该方式的核心步骤是自然语言库,自然语言库可以充当一个类似于字典的作用,哪怕是不同的人来设计测试案例,也可以通过调用自然语言库里面的文字描述来生成测试案例;由此,本技术实施例可以最大限度地保证测试案例的标准化。
[0071]
另外一方面,本技术实施例可以将初始条件的打包处理,使得即使在软件开发迭代、部分系统功能的激活条件或者执行操作发生变化时,也不会影响本技术实施例案例的步骤,此时只需要单独修改打包的初始条件里的信息即可;由此,本技术实施例可以使测试案例能够快速跟上软件开发的迭代计划,且可以使仿真测试能够尽快发掘出新发布软件版本的问题项。
[0072]
其次参照附图描述根据本技术实施例提出的自动驾驶系统的软件在环仿真测试装置。
[0073]
图3是本技术实施例的自动驾驶系统的软件在环仿真测试装置的方框示意图。
[0074]
如图3所示,该自动驾驶系统的软件在环仿真测试装置10包括:获取模块100、查询模块200和测试模块。
[0075]
其中,获取模块100用于获取待测试自动驾驶系统的功能测试需求;查询模块200用于以功能测试需求为索引,查询预先建立的自然语言库,获取功能测试需求的自然语言,其中,自然语言库基于携带有功能测试需求标签的数据建立得到;测试模块300用于根据自然语言生成软件在环仿真测试的执行步骤,根据执行步骤生成测试案例,并利用测试案例对待测试自动驾驶系统进行软件在环仿真测试。
[0076]
在本技术实施例中,查询模块200用于:获取携带有功能测试需求标签的数据;根
据数据分析待测试自动驾驶系统的功能及性能需求;识别功能及性能需求,得到待测试自动驾驶系统功能设计的需求参数和需求参数的约束值;利用预设自然语言转换策略将需求参数和需求参数的约束值转换成对应的自然语言;根据需求参数和需求参数的约束值各自对应的自然语言建立自然语言库。
[0077]
在本技术实施例中,测试模块300用于:获取执行步骤的初始条件;打包初始条件,并根据执行步骤生成测试案例。
[0078]
在本技术实施例中,测试模块300进一步用于:获取执行步骤的判断条件;利用预设通用化处理策略对判断条件进行通用化处理,并根据执行步骤生成测试案例。
[0079]
需要说明的是,前述对自动驾驶系统的软件在环仿真测试方法实施例的解释说明也适用于该实施例的自动驾驶系统的软件在环仿真测试装置,此处不再赘述。
[0080]
根据本技术实施例提出的自动驾驶系统的软件在环仿真测试装置,可以通过自然语言库的使用,使得案例的编写更加标准化;同时对系统的初始条件的打包处理,使得案例的复用性提高,能够快速跟进到软件开发验证的测试迭代计划中;并且在对于测试用例的设计上,同时兼顾充分性和效率原则,满足实际使用的需要。
[0081]
图4为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
[0082]
存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序。
[0083]
处理器402执行程序时实现上述实施例中提供的自动驾驶系统的软件在环仿真测试方法。
[0084]
可选地,电子设备还包括:
[0085]
通信接口403,用于存储器401和处理器402之间的通信。
[0086]
存储器401,用于存放可在处理器402上运行的计算机程序。
[0087]
存储器401可能包含高速ram(random access memory,随机存取存储器)存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
[0088]
如果存储器401、处理器402和通信接口403独立实现,则通信接口403、存储器401和处理器402可以通过总线相互连接并完成相互间的通信。总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component,外部设备互连)总线或eisa(extended industry standard architecture,扩展工业标准体系结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0089]
可选的,在具体实现上,如果存储器401、处理器402及通信接口403,集成在一块芯片上实现,则存储器401、处理器402及通信接口403可以通过内部接口完成相互间的通信。
[0090]
处理器402可能是一个cpu(central processing unit,中央处理器),或者是asic(application specific integrated circuit,特定集成电路),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0091]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的自动驾驶系统的软件在环仿真测试方法。
[0092]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0093]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0094]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0095]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
[0096]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0097]
尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1