CN114036070A - 智能驾驶系统测试方法、装置、设备和存储介质 - Google Patents
智能驾驶系统测试方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114036070A CN114036070A CN202111538448.5A CN202111538448A CN114036070A CN 114036070 A CN114036070 A CN 114036070A CN 202111538448 A CN202111538448 A CN 202111538448A CN 114036070 A CN114036070 A CN 114036070A
- Authority
- CN
- China
- Prior art keywords
- service
- intelligent driving
- driving system
- function name
- test case
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种智能驾驶系统测试方法、装置、设备和存储介质。方法包括:建立用于仿真测试用例的应用程序编程接口,仿真测试用例用于在智能驾驶系统中进行仿真测试,应用程序编程接口用于对仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,也就是应用程序编程接口可以实现和其他控制功能服务进行交互,和/或用于设定仿真测试用例中的执行步骤以及测试结果,和/或用于实时检查测试用例中的测试结果,检查测试结果是指实时判断仿真测试用例的当前测试数据是否符合测试结果。本公开提供的方法,建立了可以用于仿真测试用例的应用程序编程接口,能够设定并实现仿真测试用例,方法简便,且还能进一步减少构建仿真测试用例的流程。
Description
技术领域
本公开涉及智能驾驶技术领域,尤其涉及一种智能驾驶系统测试方法、装置、设备和存储介质。
背景技术
目前,仿真系统在安全测试、功能测试等方面应用广泛。例如,仿真系统可以为智能驾驶车辆提供安全测试,能够避免现实中进行实车测试中的各种安全问题,同时测试人员还能够在仿真系统中调配出各种极限用例,用来测试智能驾驶系统中算法的安全边界,无需担心在现实中造成不良后果。
如今,对智能驾驶系统进行仿真测试的一般方法为使用测试用例进行测试,但是,传统的方法运行测试用例需要大量的文件、方法与功能服务,不仅需要手动根据测试需求确定大量文件和选择方法,还需要对测试用例中涉及到的功能服务分别进行配置,且也没有统一准确的测试标准,操作繁琐,流程复杂多变,不便于实施与实时检查。
发明内容
为了解决上述技术问题,本公开提供了一种智能驾驶系统测试方法、装置、设备和存储介质,能够设定并实现仿真测试用例,方法简便,且还能进一步减少构建仿真测试用例的流程。
第一方面,本公开实施例提供了一种智能驾驶系统测试方法,包括:建立用于仿真测试用例的应用程序编程接口,应用程序编程接口用于对仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,和/或用于设定仿真测试用例的测试结果,和/或用于检查测试结果。
可选的,方法还包括:
获取测试需求;
根据测试需求和应用程序编程接口生成程序化的仿真测试用例,仿真测试用例用于对智能驾驶系统进行测试。
可选的,测试需求包括测试场景需求和测试目标需求。
可选的,根据测试需求和应用程序编程接口生成程序化的仿真测试用例,包括:
针对测试目标需求,根据应用程序编程接口的函数名和测试场景需求构建测试场景、设定至少一个判定条件,生成仿真测试用例。
可选的,判定条件包括结束条件,结束条件有对应的测试结果;
功能服务包括初始化服务和执行服务。
可选的,生成仿真测试用例后,方法还包括:
在仿真测试用例测试的过程中,根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务中的初始化服务对仿真测试用例的运行环境进行初始化;
初始化完成后,在测试场景中,调用功能服务中的执行服务对至少一个判定条件进行判定,若满足任一判定条件中的结束条件,则输出结束条件对应的测试结果。
可选的,应用程序编程接口的函数名包括交互函数名;
交互函数名包括仿真器服务函数名和智能驾驶系统服务函数名,仿真器服务函数名对应的功能服务为仿真器服务,智能驾驶系统服务函数名对应的功能服务为智能驾驶系统服务;
仿真器交互函数名包括初始化仿真器函数名和创建函数名,初始化仿真器函数名对应仿真器服务中的初始化服务,创建函数名对应仿真器服务中的执行服务;
智能驾驶系统服务函数名包括初始化智能驾驶系统服务函数名和控制函数名,初始化智能驾驶系统服务函数名对应智能驾驶系统服务中初始化服务,控制函数名对应智能驾驶系统服务中执行服务。
可选的,根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务中的初始化服务对仿真测试用例的运行环境进行初始化,包括:
根据初始化仿真器函数名调用仿真器服务中的初始化服务;
根据初始化智能驾驶系统服务函数名调用智能驾驶系统服务中的初始化服务。
可选的,调用功能服务中的执行服务对至少一个判定条件进行判定,包括:
根据控制函数名调用智能驾驶系统服务中的执行服务,智能驾驶系统服务中的执行服务用于控制智能驾驶系统中的测试车辆运行;
基于测试车辆的运行结果,根据创建函数名调用仿真器服务中的执行服务对至少一个判定条件进行判定。
第二方面,本公开实施例提供了一种智能驾驶系统测试装置,其特征在于,装置包括:
建立单元,用于建立用于仿真测试用例的应用程序编程接口,应用程序编程接口用于对仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,和/或用于设定仿真测试用例的测试结果,和/或用于检查测试结果。
第三方面,本公开实施例提供了一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如上述的智能驾驶系统测试方法。
第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述的智能驾驶系统测试方法的步骤。
本公开涉及一种智能驾驶系统测试方法,包括:建立用于仿真测试用例的应用程序编程接口,仿真测试用例用于在智能驾驶系统中进行仿真测试,应用程序编程接口用于对仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,也就是应用程序编程接口可以实现和其他控制功能服务进行交互,和/或用于设定仿真测试用例中的执行步骤以及测试结果,和/或用于实时检查测试用例中的测试结果,检查测试结果是指实时判断仿真测试用例的当前测试数据是否符合测试结果。本公开提供的方法,建立了可以用于仿真测试用例的应用程序编程接口,能够设定并实现仿真测试用例,方法简便,且还能进一步减少构建仿真测试用例的流程。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种智能驾驶系统测试方法的流程示意图;
图2为本公开实施例提供的一种智能驾驶系统测试方法的流程示意图;
图3为本公开实施例提供的一种智能驾驶系统测试方法的流程示意图;
图4为本公开实施例提供的一种仿真测试用例运行的结构示意图;
图5为本公开实施例提供的一种仿真测试用例的流程示意图;
图6为本公开实施例提供的一种仿真测试用例的场景示意图;
图7为本公开实施例提供的另一种仿真测试用例的流程示意图;
图8为本公开实施例提供的另一种仿真测试用例的场景示意图;
图9为本公开实施例提供的一种智能驾驶系统测试装置的结构示意图;
图10为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
目前,仿真系统可以为智能驾驶系统提供虚拟的车辆、场景和传感器模拟,为功能的迭代带来效率上的提升。在仿真系统中对智能驾驶车辆进行测试,可以避免实车测试中的各种安全问题,测试人员能够在仿真系统中调配出各种极限用例,用来测试智能驾驶系统中算法的安全边界而无需担心在现实中造成不良后果。如今,对智能驾驶系统进行仿真测试的一般方法为使用测试用例,测试用例中包括:待测试对象、测试场景和判定条件,其中待测试对象一般为智能驾驶系统,测试场景主要由仿真器进行构建,一般包括地图场景、静态设施和动态物体,判定条件则是用来指明测试用例是否成功,传统的方法是手动分析对数函数(logarithm,Log)来实现的判定过程。
但是,传统的测试用例的设计方法还存在如下问题:(1)测试用例过于和仿真器紧耦合,测试用例和使用的仿真器设备具有特殊性,不具备通用性。由于各厂家使用的智能驾驶系统、仿真器都是不同的,一各厂家的测试用例并不能通过简单的适配给另一各厂家使用,这就导致无法制定统一的测试标准,无法部署和监控统一的测试方案,也就无法从仿真测试的角度去判别各厂家提供的智能驾驶系统的优劣。(2)缺乏动态的实时交互,传统的方法只能在初始化时设定障碍物的初始状态和出现时机,并不能根据智能驾驶车辆的行驶行为动态的改变自身行为。例如在车辆加塞的用例中,动态障碍物需要一直保持在智能驾驶车辆前方10米的位置加塞进入智能驾驶车辆的车道。对于这种测试需求,传统的设计方法已经不能构建此类测试用例。(3)测试用例的判定条件过于依赖智能驾驶系统本身的Log来进行分析,测试智能驾驶系统却使用智能驾驶系统的Log来分析智能驾驶系统的驾驶行为是否符合预期是矛盾的,无法确定判定结果的准确性。(4)传统的测试用例在设计时只考虑了单个智能驾驶系统的情况,即一个测试用例中只存在一个智能驾驶系统。而智能驾驶云端技术中的多车实时调度算法需要基于同一场景来运行多辆智能驾驶车,传统制作测试用例的方法无法构建此类场景。针对上述技术问题,本公开实施例提供了一种智能驾驶系统测试方法,通过下述实施例进行详细说明。
具体的,智能驾驶系统测试方法可以由终端或服务器来执行。具体的,终端或服务器可以建立用于仿真测试用例的应用程序编程接口、根据应用程序编程接口生成测试用例,并运行测试用例进行仿真测试。例如,在一种应用场景中,服务器建立用于仿真测试用例的应用程序编程接口。终端从服务器获取应用程序编程接口,随后终端根据应用程序编程接口生成测试用例,并运行测试用例进行仿真测试。在另一种应用场景中,服务器建立用于仿真测试用例的应用程序编程接口,进一步,服务器根据应用程序编程接口生成测试用例,并运行测试用例进行仿真测试。在又一种应用场景中,终端建立用于仿真测试用例的应用程序编程接口,进一步,终端根据应用程序编程接口生成测试用例,并运行测试用例进行仿真测试。可以理解的是,本公开实施例提供的智能驾驶系统测试方法并不限于如上所述的几种可能场景。下面以服务器执行智能驾驶系统测试方法为例进行详细说明。
图1为本公开实施例提供的一种智能驾驶系统测试方法的流程示意图,具体包括如图1所示的如下步骤S110:
S110、建立用于仿真测试用例的应用程序编程接口,应用程序编程接口用于对仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,和/或用于设定仿真测试用例的测试结果,和/或用于检查所述测试结果。
可理解的,在进行智能驾驶系统测试之前,自行建立了用于仿真测试用例的多个应用程序编程接口,并自行定义了多个应用程序编程接口中每个应用程序编程接口的协议以及内部实现逻辑,内部实现逻辑可以通过编写语句来实现,且每个应用程序编程接口存在对应的函数名以及功能,例如具有初始化功能的接口,创建功能的接口;其中,应用程序编程接口还用于构建仿真测试用例,构建的仿真测试用例为程序化的文件,仿真测试用例可以理解为行为脚本,行为脚本中包括多条语句,多条语句可以由自行建立的应用程序编程接口的函数名组成;应用程序编程接口还可以理解为和其他功能服务进行交互的接口,具体可以理解为和智能驾驶系统、仿真器、云端服务之间进行动态的实时交互的接口,能够调用智能驾驶系统、仿真器、云端服务中的某一功能服务;应用程序编程接口还用于对仿真测试用例的运行环境进行初始化,具体的可以根据具备初始化功能的应用程序编程接口对应的函数名构建一条语句,用以执行该语句时对仿真测试用例进行初始化;应用程序编程接口还用于设定仿真测试用例的判定条件以及判定结果等,判定条件和判定结果也是由语句组成的,也就是可以基于多个应用程序编程接口的函数名设定仿真测试用例中实现测试目标的流程步骤;应用程序编程接口设定判定条件后,还能够实时检测仿真测试用例的测试结果,便于实时获取仿真测试用例的输出结果,对当前的测试情况进行实时监测。
可理解的,自行建立的多个应用程序编程接口具体包括表1所示的应用程序编程接口的函数名、功能,每个函数名还包括多个参数,多个参数可以是输入参数、输出参数以及配置参数等。例如,表1的测试用例相关接口中,函数名case_setup_description的接口用于对测试用例进行初始化,该函数中还包括参数name和type,name为仿真测试用例的名称,名称可以是车辆撞击测试,type为测试类型,测试类型为车辆。还比如表1中序号4的应用程序编程接口,函数名为simulation_setup(sim,config),该函数启动指定仿真器的引擎并加载场景配置文件,也就是启动仿真器,只有当该函数调用成功后其它仿真器相关函数才能被调用。可理解的是,自行建立的应用程序编程接口不止下述表1所示的内容,还可以根据用户需求自行建立其他应用程序编程接口,也就是根据实际使用需求对应用程序编程接口进行扩展,用以和不同功能服务进行交互实现不同功能,在此不作限定。
表1
续接表1:
续接表1:
本公开实施例提供的一种智能驾驶系统测试方法,包括:建立用于仿真测试用例的应用程序编程接口,仿真测试用例用于在智能驾驶系统中进行仿真测试,应用程序编程接口用于对仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,也就是应用程序编程接口可以实现和其他控制功能服务进行交互,和/或用于设定仿真测试用例中的执行步骤以及测试结果,和/或用于实时检查测试用例中的测试结果,检查测试结果是指实时判断仿真测试用例的当前测试数据是否符合测试结果。本公开提供的方法,建立了可以用于仿真测试用例的应用程序编程接口,能够设定并实现仿真测试用例,方法简便,且还能进一步减少构建仿真测试用例的流程。
在上述实施例的基础上,图2为本公开实施例提供的一种智能驾驶系统测试方法的流程示意图,建立用于仿真测试用例的多个应用程序编程接口后,可以根据应用程序编程接口构建仿真测试用例,具体包括如图2所示的如下步骤S210至S220:
S210、获取测试需求。
可选的,上述S210中测试需求包括测试场景需求和测试目标需求。
可理解的,自行建立多个可以调用不同功能服务的应用程序编程接口后,获取测试需求,测试需求是指构建的仿真测试用例要进行测试的需求,测试需求包括测试场景需求和测试目标需求,以测试智能驾驶车辆的某一应用情况为例,测试需求可以是智能驾驶车辆面对加塞情况的应对情况,测试场景需求可以是智能驾驶车辆和加塞车辆运行的场景,测试目标需求可以是智能驾驶车辆在规定时间内无碰撞的到达目的地的目标需求。
S220、根据测试需求和应用程序编程接口生成程序化的仿真测试用例,仿真测试用例用于对智能驾驶系统进行测试。
可理解的,在上述S210的基础上,确定测试场景需求和测试目标需求后,基于上述建立的应用程序编程接口构建测试场景,例如构建两个智能驾驶车辆等,也就是基于同一场景来运行多辆智能驾驶车,可以使用智能驾驶云端技术中的多车实时调度算法,还可以基于上述建立的应用程序编程接口、以测试目标需求为实现目标设定测试条件和测试结果,生成符合测试需求的仿真测试用例。其中仿真测试用例中具体可以包括:待测试对象、测试场景和判定条件,待测试对象可以是智能驾驶系统,测试场景主要由仿真器进行构建,一般包括地图场景、静态设施和动态物体,判定条件则是用来表明仿真测试用例成功还是失败。本公开提供的方法,不仅仅只依赖智能驾驶系统本身的Log来进行分析,还引入了第三方(仿真器)的数据来对智能驾驶系统的行为进行判定,使得判定结果更加准确。
可选的,上述S220中根据测试需求和应用程序编程接口生成程序化的仿真测试用例,具体包括:针对测试目标需求,根据应用程序编程接口的函数名和测试场景需求构建测试场景、设定至少一个判定条件,生成仿真测试用例。
可理解的,上述S220中生成仿真测试用例具体包括:以测试目标需求为最终测试目标,根据应用程序编程接口的函数名和测试场景需求构建测试场景,例如基于上述表1中simulation_create_static_object函数名创建静态障碍物,静态障碍物可以是建筑、护栏、树、指示牌等,还可以基于simulation_create_dynamic_object函数名建立动态障碍物,动态障碍物可以是行人、汽车、自行车等。构建完测试场景后,还可以基于上述表1中的函数名设定至少一个判定条件,具体的,还可以基于表1中仿真器交互接口中的函数名来设定判定条件,判定条件可以是运行时间是否超时、车辆是否发生碰撞等条件,判定条件中涉及到的测试数据也可以基于应用程序编程接口的函数名来获取,最后整合上述应用程序编程接口的函数名来生成仿真测试用例。
可选的,判定条件包括结束条件,结束条件有对应的测试结果;功能服务包括初始化服务和执行服务。
可理解的,判定条件中可以包括结束条件和/或执行条件,每个结束条件都会对应一个测试结果,该测试结果触发后,可以直接结束测试,例如,该仿真测试用例中包括3个判定条件,每个判定条件都包括结束条件,其中2个判定条件还包括确定条件,当测试用例按照流程顺序执行时,若满足结束条件则直接结束测试,该种情况下仿真测试用例中可能会存在尚未执行的流程,不需要仿真测试用例的流程全部执行完成之后再结束测试用例,便于后续可以根据结束条件输出的测试结果来修改仿真测试用例的执行步骤,用以完成测试目标,还能够有效减少测试周期。每个应用程序编程接口都可以调用一个功能服务,功能服务包括初始化服务和执行服务,初始化服务可以对仿真测试系统进行初始化,还可以对智能驾驶系统进行初始化,还可以对仿真器进行初始化,执行服务是指上述智能驾驶系统、仿真器和云端服务中可以被调用和执行的某一具体服务,执行服务会对应一个输出数据,输出数据可以用于判定条件的判定。
本公开实施例提供的一种智能驾驶系统测试方法,通过获取测试需求,根据测试需求和应用程序编程接口生成程序化的仿真测试用例,仿真测试用例用于对智能驾驶系统进行测试,能够基于应用程序编程接口对应的函数名生成程序化的仿真测试用例,仿真测试用例相当于一个行动脚本,应用程序编程接口对应的函数名为行动脚本中的语句,方法简便,且能够快速完成仿真测试用例的构建,随后可以直接运行仿真测试用例,不需要在智能驾驶系统、仿真器和云端服务分别进行配置,也无需确定大量文件,操作简便,且便于实施,生成仿真测试用例的效率也比较高,还能够有效减少测试周期。
在上述实施例的基础上,图3为本公开实施例提供的一种智能驾驶系统测试方法的流程示意图,可选的,生成仿真测试用例后,具体包括如图3所示的如下步骤S310至S320:
可理解的,参见图4,图4为本公开实施例提供的一种仿真测试用例运行的结构示意图,生成仿真测试用例后,可以运行构建的仿真测试用例。图4中包括平台400,平台400中包括智能驾驶系统410、仿真器420、云端服务430以及仿真测试用例运行服务440,平台400可以是终端或服务器上配置的操作系统,智能驾驶系统410、仿真器420、云端服务430以及仿真测试用例运行服务440可以在平台400上运行,生成仿真测试用例的程序化文件后,将该程序化文件加载到仿真测试用例运行服务440上运行测试,在运行测试的过程中,程序化文件中当前执行的应用程序编程接口会调用对应的功能服务,例如应用程序编程接口为对仿真器进行初始化的接口,当执行到该应用程序编程接口后,会调用仿真器420中的仿真器初始化服务(功能服务)对仿真器进行初始化。
S310、在仿真测试用例测试的过程中,根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务中的初始化服务对仿真测试用例的运行环境进行初始化。
可理解的,在仿真测试用例进行运行测试的过程中,根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务,具体的,可以调用测试用例相关接口中的case_setup_description(name,type)对应的功能服务来初始化仿真测试用例。
可选的,应用程序编程接口的函数名包括交互函数名;交互函数名包括仿真器服务函数名和智能驾驶系统服务函数名,仿真器服务函数名对应的功能服务为仿真器服务,智能驾驶系统服务函数名对应的功能服务为智能驾驶系统服务。
可选的,智能驾驶系统服务函数名包括初始化智能驾驶系统服务函数名和控制函数名,初始化智能驾驶系统服务函数名对应智能驾驶系统服务中初始化服务,控制函数名对应智能驾驶系统服务中执行服务。
可选的,仿真器交互函数名包括初始化仿真器函数名和创建函数名,初始化仿真器函数名对应仿真器服务中的初始化服务,创建函数名对应仿真器服务中的执行服务。
可理解的,应用程序编程接口的函数名包括初始化函数名和交互函数名,初始化函数名用于对仿真测试系统、智能驾驶系统、仿真器进行初始化,交互函数名用于和智能驾驶系统、仿真器以及云端进行交互。交互函数名中具体包括上述表1中仿真器交互接口中涉及到的所有仿真器服务函数名、智能驾驶系统交互接口中涉及到的所有智能驾驶系统服务函数名以及云端服务交互接口涉及到的所有云端服务函数名。其中,仿真器服务函数名对应的功能服务为仿真器服务,仿真器服务具体是指仿真器服务中的每个功能服务,例如表1中序号4的函数名为simulation_setup(sim,config)对应的功能服务;智能驾驶系统服务函数名对应的功能服务为智能驾驶系统服务,智能驾驶系统服务具体是指智能驾驶系统服务中的每个功能服务,例如表1中序号20的函数名为ads_resume([ads_vehicle_id])对应的功能服务;云端服务函数名对应的功能服务为云端服务,云端服务具体是指云端服务中的每个功能服务,例如表1中序号26的函数名为cloud_send_cmd(service_id,cmd)对应的功能服务。
可理解的,仿真器交互函数名包括初始化仿真器函数名和创建函数名,初始化仿真器函数名对应仿真器服务中的初始化服务,例如表1中序号为4的simulation_setup(sim,config)函数名对应的初始化服务,创建函数名对应仿真器服务中的执行服务,例如表1中仿真器交互接口中序号5-16中的任一服务均为执行服务,执行服务是指具有创建、获取、删除以及其他执行操作的服务,例如表1中序号5的函数名为simulation_create_static_object(bounding_box,position,type)对应的功能服务就是具有创建操作的执行服务。
可理解的,智能驾驶系统服务函数名包括初始化智能驾驶系统服务函数名和控制函数名,初始化智能驾驶系统服务函数名对应智能驾驶系统服务中初始化服务,例如表1中智能驾驶系统交互接口中序号17的函数名为ads_setup([ads_vehicle_id],ads,config)对应的初始化服务,控制函数名对应智能驾驶系统服务中执行服务,该执行服务同样是指具有创建、获取、删除以及其他执行操作的服务,例如,表1中序号20的函数名为ads_resume([ads_vehicle_id])的接口对应的是具有启动功能的执行服务。
可选的,上述S310中根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务中的初始化服务对仿真测试用例的运行环境进行初始化,具体包括:根据初始化仿真器函数名调用仿真器服务中的初始化服务;根据初始化智能驾驶系统服务函数名调用智能驾驶系统服务中的初始化服务。
可理解的,仿真测试用例在运行的过程中,若执行的是仿真器初始化服务对应的应用程序编程接口,则根据初始化仿真器函数名以及函数名中的参数simulation_setup(sim,config),调用仿真器服务中的初始化服务,对仿真器进行初始化。根据初始化智能驾驶系统服务函数名以及函数名中的参数ads_setup([ads_vehicle_id],ads,config),调用智能驾驶系统服务中的初始化服务,对智能驾驶系统进行初始化。可理解的是,仿真器初始化和智能驾驶系统的初始化执行顺序不作限定。
S320、初始化完成后,在测试场景中,调用功能服务中的执行服务对至少一个判定条件进行判定,若满足任一判定条件中的结束条件,则输出结束条件对应的测试结果。
可理解的,在上述S310的基础上,仿真器以及智能驾驶系统初始化完成后,若测试需求中涉及到了云端服务,也需要在云端服务同样完成初始化之后,按照仿真测试用例中测试场景的设定方式,调用仿真器中的具体功能服务构建测试场景,随后在测试场景中,调用功能服务中的执行服务对至少一个判定条件进行判定,执行服务可以是仿真器服务中的具体服务,调用执行条件后,会输出该执行条件的输出数据,根据输出数据判断是否满足判定条件,也就是引入仿真器的输出数据来对智能驾驶系统的行为进行判定,若满足任一判定条件中的结束条件,则输出结束条件对应的测试结果,该测试结果可以是测试结束运行的结果,还可以是测试中途不满足判定条件的结果,例如,运行时间超时,或者发生碰撞的测试结果。
可选的,上述S320中调用功能服务中的执行服务对至少一个判定条件进行判定,具体包括:根据控制函数名调用智能驾驶系统服务中的执行服务,智能驾驶系统服务中的执行服务用于控制智能驾驶系统中的测试车辆运行;基于测试车辆的运行结果,根据创建函数名调用仿真器服务中的执行服务对至少一个判定条件进行判定。
可理解的,仿真器以及智能驾驶系统初始化完成后,根据控制函数名调用智能驾驶系统服务中的执行服务,例如,表1中智能驾驶系统交互接口中序号20的函数名为ads_resume([ads_vehicle_id])对应的执行服务,用于启动智能驾驶车辆,执行服务还包括函数名为ads_get_info([ads_vehicle_id])对应的服务,用于获取智能驾驶系统中创建的智能驾驶车辆的状态信息,状态信息包括智能驾驶车辆的运行状态、位置信息、速度、加速度、前轮偏角、刹车量、挡位等信息,智能驾驶系统服务中的执行服务用于控制智能驾驶系统中的测试车辆的启动、暂停等;基于测试车辆的运行结果,运行结果可以是上述函数名为ads_get_info([ads_vehicle_id])对应的功能服务所获取到的状态信息,随后根据创建函数名调用仿真器服务中的执行服务对至少一个判定条件进行判定。
示例性的,参见图5,图5为本公开实施例提供的一种仿真测试用例的流程示意图,图5应用在图6所示的应用场景中,图6为本公开实施例提供的一种仿真测试用例的场景示意图,图5提供的仿真测试用例的测试场景为测试智能驾驶车辆面对加塞情况时的应对情况,测试目标为车辆在规定时间内无碰撞的到达目的地。图6中包括智能驾驶车辆610和智能驾驶车辆620,智能驾驶车辆610和智能驾驶车辆620分别存在对应的行驶车道,且二者不在一个车道内,智能驾驶车辆620可以理解为动态障碍物,智能驾驶车辆620在智能驾驶车辆610的前方,智能驾驶车辆620随着智能驾驶车辆610移动,当智能驾驶车辆620行驶到智能驾驶车辆610的前方10米处,加塞进入智能驾驶车辆610的车道,图6中虚线将智能驾驶车辆610和智能驾驶车辆620之间的车道区分开,若智能驾驶车辆610和智能驾驶车辆620没有发生碰撞的到达目的地,则说明测试成功。具体的,图5所示的仿真测试用例中实现上述测试流程的步骤具体包括S510至S590:
S510、初始化仿真测试用例。
S520、初始化仿真器,并创建动态障碍物。
可理解的,对仿真器进行初始化,并调用仿真器中的创建服务来创建动态障碍物,动态障碍物就是上述智能驾驶车辆620,随后创建智能驾驶车辆,也就是上述智能驾驶车辆610。
S530、初始化智能驾驶系统,选择智能驾驶车辆的目的地,并启动智能驾驶车辆。
可理解的,对智能驾驶系统进行初始化后,在为智能驾驶车辆610选择目的地,并启动智能驾驶车辆610。
S540、智能驾驶车辆是否在动态障碍物的预设范围内。
可理解的,在智能驾驶车辆刚启动时,判断智能驾驶车辆是否在动态障碍物的预设范围内,也就是智能驾驶车辆是否在动态障碍物旁边,若是,则执行S550,若否,则结束测试,并输出测试失败的测试结果。
S550、动态障碍物以大于智能驾驶车辆的速度向前行驶。
可理解的,当智能驾驶车辆行驶到动态障碍物旁边时,让动态障碍物以大于智能驾驶车辆的速度向前行驶,智能驾驶车辆的速度可以设置为5km/h。
S560、动态障碍物是否在智能驾驶车辆的前方。
可理解的,判断动态障碍物是否在智能驾驶车辆的前方,若是,则执行S570,若否,则执行S550。
S570、动态障碍物加塞进入智能驾驶车辆的车道。
S580、动态障碍物和智能驾驶车辆是否发生碰撞。
可理解的,动态障碍物加塞进入智能驾驶车辆的车道后,判断动态障碍物和智能驾驶车辆是否发生碰撞,若是,则结束测试,输出测试失败的测试结果,若否,则执行S590。
S590、测试运行时间是否超过预设时间。
可理解的,若动态障碍物和智能驾驶车辆没有发生碰撞,则判断测试运行时间是否超过预设时间,预设时间可以是600秒,若是,则结束测试,输出测试失败的测试结果,若否,则输出测试成功的测试结果。
可理解的,上述仿真测试用例只展示了最基本的测试场景,判定结果的规则只使用了最基本的元素,即没有碰撞就算测试用例通过。用户可以根据实际的测试需求,基于应用程序编程接口自行设定仿真测试用例,例如可以修改加塞的距离,例如让其小于10m,还可以增加更加精确的判定条件,可以去判断智能驾驶车辆的速度下降是否合理,加速度的变化是否符合预期结果等,在此不作限定。
示例性的,参见图7,图7为本公开实施例提供的另一种仿真测试用例的流程示意图,图7应用在图8所示的应用场景中,图8为本公开实施例提供的另一种仿真测试用例的场景示意图。图7中的测试用例用来测试智能驾驶车辆在断网(与云端调度服务断开)时,车辆的行为是否符合预期,若该测试用例中输出的判定结果(测试目标)为,该智能驾驶车辆在断网后5s内的速度变为0,则该测试用例测试成功。如图8所示的应用场景中,包括智能驾驶车辆810和断网地点820,当智能驾驶车辆810行驶到断网地点820处时,或者行驶到断网地点820附近时,断开智能驾驶车辆810的网络连接,此时智能驾驶车辆810无法跟云端调度服务进行通信,随后智能驾驶车辆810经过5s内的速度变为0,并停在原地,则说明测试成功。该种测试场景下,图7所示的仿真测试用例中实现上述测试流程的步骤具体包括S710至S780:
S710、初始化仿真测试用例。
S720、初始化仿真器。
S730、初始化云端服务。
S740、初始化智能驾驶系统,选择智能驾驶车辆的目的地,并启动智能驾驶车辆。
可理解的,对智能驾驶系统进行初始化后,在为智能驾驶车辆810选择目的地,并启动智能驾驶车辆810。
S750、智能驾驶车辆是否在断网地点的预设范围内。
可理解的,在智能驾驶车辆刚启动时,判断智能驾驶车辆是否在断网地点的预设范围内,也就是智能驾驶车辆是否行驶到断网地点,若是,则执行S760,若否,则结束测试,并输出测试失败的测试结果。
S760、智能驾驶车辆断开网络。
S770、智能驾驶车辆的速度是否为预设速度。
可理解的,在上述S760的基础上,智能驾驶车辆断开网络后,判断智能驾驶车辆的行驶速度是否是预设速度,预设速度可以是0,若是,则执行S780,若否,则结束测试,并输出测试失败的测试结果。
S780、判断智能驾驶车辆自断开网络开始到智能驾驶车辆的速度为预设速度的时间是否大于预设时间。
可理解的,统计智能驾驶车辆自断开网络开始到智能驾驶车辆的速度为预设速度的时间,并判断该时间是否大于预设时间,预设时间可以是5秒,若是,则结束测试,输出测试失败的测试结果,若否,则输出测试成功的测试结果。
本公开实施例提供的一种智能驾驶系统测试方法,在仿真测试用例测试的过程中,根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务中的初始化服务对仿真测试用例的运行环境进行初始化,初始化完成后,在测试场景中,调用功能服务中的执行服务对至少一个判定条件进行判定,若满足任一判定条件中的结束条件,则输出结束条件对应的测试结果,通过运行生成的仿真测试用例,基于仿真测试用例中的应用程序编程接口和功能服务进行实时的交互,还能够实时检测测试结果,测试速度比较快,不需要进行大量的手动操作,可实施性强。
图9为本公开实施例提供的智能驾驶系统测试装置的结构示意图。本公开实施例提供的智能驾驶系统测试装置可以执行上述智能驾驶系统测试方法实施例提供的处理流程,如图9所示,智能驾驶系统测试装置900包括:
建立单元910,用于建立用于仿真测试用例的应用程序编程接口,应用程序编程接口用于对仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,和/或用于设定仿真测试用例的测试结果,和/或用于检查测试结果。
生成单元920,用于获取测试需求;根据测试需求和应用程序编程接口生成程序化的仿真测试用例,仿真测试用例用于对智能驾驶系统进行测试。
可选的,装置900中测试需求包括测试场景需求和测试目标需求。
可选的,生成单元920根据测试需求和应用程序编程接口生成程序化的仿真测试用例,具体用于:
针对测试目标需求,根据应用程序编程接口的函数名和测试场景需求构建测试场景、设定至少一个判定条件,生成仿真测试用例。
可选的,生成单元920中判定条件包括结束条件,结束条件有对应的测试结果;功能服务包括初始化服务和执行服务。
可选的,装置900还包括运行单元,运行单元用于生成仿真测试用例后,具体用于:
在仿真测试用例测试的过程中,根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务中的初始化服务对仿真测试用例的运行环境进行初始化;
初始化完成后,在测试场景中,调用功能服务中的执行服务对至少一个判定条件进行判定,若满足任一判定条件中的结束条件,则输出结束条件对应的测试结果。
可选的,装置900中应用程序编程接口的函数名包括交互函数名;交互函数名包括仿真器服务函数名和智能驾驶系统服务函数名,仿真器服务函数名对应的功能服务为仿真器服务,智能驾驶系统服务函数名对应的功能服务为智能驾驶系统服务;仿真器交互函数名包括初始化仿真器函数名和创建函数名,初始化仿真器函数名对应仿真器服务中的初始化服务,创建函数名对应仿真器服务中的执行服务;智能驾驶系统服务函数名包括初始化智能驾驶系统服务函数名和控制函数名,初始化智能驾驶系统服务函数名对应智能驾驶系统服务中初始化服务,控制函数名对应智能驾驶系统服务中执行服务。
可选的,运行单元中根据应用程序编程接口的函数名调用应用程序编程接口对应的功能服务中的初始化服务对仿真测试用例的运行环境进行初始化,具体用于:
根据初始化仿真器函数名调用仿真器服务中的初始化服务;
根据初始化智能驾驶系统服务函数名调用智能驾驶系统服务中的初始化服务。
可选的,运行单元中调用功能服务中的执行服务对至少一个判定条件进行判定,具体用于:
根据控制函数名调用智能驾驶系统服务中的执行服务,智能驾驶系统服务中的执行服务用于控制智能驾驶系统中的测试车辆运行;
基于测试车辆的运行结果,根据创建函数名调用仿真器服务中的执行服务对至少一个判定条件进行判定。
图9所示实施例的智能驾驶系统测试装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本公开实施例提供的电子设备的结构示意图。本公开实施例提供的电子设备可以执行实施例提供的处理流程,如图10所示,电子设备1000包括:处理器1100、通讯接口1200和存储器1300;其中,计算机程序存储在存储器1300中,并被配置为由处理器1100执行如上述的智能驾驶系统测试方法。
另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述实施例的智能驾驶系统测试方法。
此外,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上的智能驾驶系统测试方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种智能驾驶系统测试方法,其特征在于,建立用于仿真测试用例的应用程序编程接口,所述应用程序编程接口用于对所述仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,和/或用于设定所述仿真测试用例的测试结果,和/或用于检查所述测试结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取测试需求;
根据所述测试需求和所述应用程序编程接口生成程序化的仿真测试用例,所述仿真测试用例用于对所述智能驾驶系统进行测试。
3.根据权利要求2所述的方法,其特征在于,所述测试需求包括测试场景需求和测试目标需求;
所述根据所述测试需求和所述应用程序编程接口生成程序化的仿真测试用例,包括:
针对所述测试目标需求,根据所述应用程序编程接口的函数名和所述测试场景需求构建测试场景、设定至少一个判定条件,生成仿真测试用例。
4.根据权利要求3所述的方法,其特征在于,所述判定条件包括结束条件,所述结束条件有对应的测试结果;
所述功能服务包括初始化服务和执行服务;
所述生成仿真测试用例后,所述方法还包括:
在所述仿真测试用例测试的过程中,根据所述应用程序编程接口的函数名调用所述应用程序编程接口对应的功能服务中的初始化服务对所述仿真测试用例的运行环境进行初始化;
初始化完成后,在所述测试场景中,调用所述功能服务中的执行服务对所述至少一个判定条件进行判定,若满足任一所述判定条件中的结束条件,则输出所述结束条件对应的测试结果。
5.根据权利要求4所述的方法,其特征在于,所述应用程序编程接口的函数名包括交互函数名;
所述交互函数名包括仿真器服务函数名和智能驾驶系统服务函数名,所述仿真器服务函数名对应的功能服务为仿真器服务,所述智能驾驶系统服务函数名对应的功能服务为智能驾驶系统服务;
所述仿真器交互函数名包括初始化仿真器函数名和创建函数名,所述初始化仿真器函数名对应所述仿真器服务中的初始化服务,所述创建函数名对应所述仿真器服务中的执行服务;
所述智能驾驶系统服务函数名包括初始化智能驾驶系统服务函数名和控制函数名,所述初始化智能驾驶系统服务函数名对应所述智能驾驶系统服务中初始化服务,所述控制函数名对应所述智能驾驶系统服务中执行服务。
6.根据权利要求5所述的方法,其特征在于,所述根据所述应用程序编程接口的函数名调用所述应用程序编程接口对应的功能服务中的初始化服务对所述仿真测试用例的运行环境进行初始化,包括:
根据所述初始化仿真器函数名调用所述仿真器服务中的初始化服务;
根据所述初始化智能驾驶系统服务函数名调用所述智能驾驶系统服务中的初始化服务。
7.根据权利要求5或6所述的方法,其特征在于,所述调用所述功能服务中的执行服务对所述至少一个判定条件进行判定,包括:
根据所述控制函数名调用所述智能驾驶系统服务中的执行服务,所述智能驾驶系统服务中的执行服务用于控制所述智能驾驶系统中的测试车辆运行;
基于所述测试车辆的运行结果,根据所述创建函数名调用所述仿真器服务中的执行服务对所述至少一个判定条件进行判定。
8.一种智能驾驶系统测试装置,其特征在于,所述装置包括:
建立单元,用于建立用于仿真测试用例的应用程序编程接口,所述应用程序编程接口用于对所述仿真测试用例的运行环境进行初始化,和/或用于交互控制功能服务,和/或用于设定所述仿真测试用例的测试结果,和/或用于检查所述测试结果。
9.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1至7中任一所述的智能驾驶系统测试方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的智能驾驶系统测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538448.5A CN114036070A (zh) | 2021-12-15 | 2021-12-15 | 智能驾驶系统测试方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538448.5A CN114036070A (zh) | 2021-12-15 | 2021-12-15 | 智能驾驶系统测试方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036070A true CN114036070A (zh) | 2022-02-11 |
Family
ID=80140745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111538448.5A Pending CN114036070A (zh) | 2021-12-15 | 2021-12-15 | 智能驾驶系统测试方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036070A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115268298A (zh) * | 2022-07-08 | 2022-11-01 | 重庆长安汽车股份有限公司 | 仿真测试方法、装置、电子设备及存储介质 |
CN115327953A (zh) * | 2022-09-15 | 2022-11-11 | 重庆长安汽车股份有限公司 | 智能驾驶算法的仿真测试方法、装置、电子设备及介质 |
CN115437270A (zh) * | 2022-09-01 | 2022-12-06 | 中国第一汽车股份有限公司 | 汽车自动驾驶的仿真方法、装置、存储介质及设备 |
-
2021
- 2021-12-15 CN CN202111538448.5A patent/CN114036070A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115268298A (zh) * | 2022-07-08 | 2022-11-01 | 重庆长安汽车股份有限公司 | 仿真测试方法、装置、电子设备及存储介质 |
CN115437270A (zh) * | 2022-09-01 | 2022-12-06 | 中国第一汽车股份有限公司 | 汽车自动驾驶的仿真方法、装置、存储介质及设备 |
CN115327953A (zh) * | 2022-09-15 | 2022-11-11 | 重庆长安汽车股份有限公司 | 智能驾驶算法的仿真测试方法、装置、电子设备及介质 |
CN115327953B (zh) * | 2022-09-15 | 2024-09-06 | 重庆长安汽车股份有限公司 | 智能驾驶算法的仿真测试方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114036070A (zh) | 智能驾驶系统测试方法、装置、设备和存储介质 | |
CN110727587A (zh) | 测试数据的获取方法、装置、存储介质及计算机设备 | |
CN107729246B (zh) | 针对目标应用的辅助测试方法、装置、设备及存储介质 | |
CN113093569A (zh) | 自动驾驶的仿真测试方法、装置、设备和存储介质 | |
CN109616106A (zh) | 车载控制屏语音识别过程测试方法、电子设备、系统 | |
CN114398255A (zh) | 自动驾驶测试场景生成方法、装置、电子设备和存储介质 | |
CN115208910B (zh) | 车辆的云端配置方法及装置 | |
CN114326443B (zh) | 一种用于adas的mil仿真测试方法、系统及可读存储介质 | |
CN114779665A (zh) | 自动泊车仿真测试方法、装置及可读存储介质 | |
CN108959805B (zh) | 一种自动驾驶的硬件在环仿真的云平台及方法 | |
CN108957460A (zh) | 车辆距离的检测方法、设备及计算机可读存储介质 | |
CN113076901A (zh) | 模型稳定性解释方法、装置、设备及存储介质 | |
CN211554929U (zh) | 基于Android OS的人机交互界面自动化识别系统 | |
CN111125857B (zh) | 分布式仿真方法和装置 | |
CN115270495A (zh) | 一种车辆自动换道的测试方法及装置 | |
CN105162799A (zh) | 检验客户端是否为合法移动终端的方法以及服务器 | |
CN111966072B (zh) | 一种空调控制面板模拟测试方法和装置 | |
CN113986752A (zh) | 一种基于粒子群算法的aeb算法失效场景搜索方法 | |
CN111091581B (zh) | 基于生成对抗网络的行人轨迹模拟方法、装置和存储介质 | |
CN110910609A (zh) | 用于儿童遗忘系统的测试系统及方法 | |
CN110796200A (zh) | 数据分类方法、终端、装置及存储介质 | |
CN111177877A (zh) | 基于应用容器引擎的本地仿真方法、装置及存储介质 | |
CN115981998B (zh) | 车辆的场景演示系统及场景演示方法 | |
CN118276460A (zh) | 车载软件仿真测试系统及方法 | |
CN118259641A (zh) | 车辆测试系统、方法和人机交互设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |