技术领域
[0001] 与本公开的示例性的实施方式整合的方法及装置涉及基于用自然语言写成的要件的自动化车辆测试。
相关背景技术
[0002] 在关联技术中,自动化车辆系统的测试可以使用机器学习(ML)模型来实现,该机器学习(ML)模型可以用于使与自动化车辆的动作相关的各种任务自动化。出于该目的,为了对车辆应用程序进行测试,需要收集测试数据。
[0003] 通常,该车辆可以为了收集数据而使用传感器(例如,摄像机、加速度计等)来实现,之后,操作员/制造者可以为了测试而对收集数据进行处理。出于该目的,通过传感器收集的数据可以输入至(例如,可以使用ML模型来实现的)车辆应用程序。
[0004] 在关联技术中,数据根据基于规则的触发条件而从车辆被收集,从而输入至测试车辆应用程序。特别是,该基于规则的触发条件需要与传感器数据从车辆被收集至数据库/服务器的条件相关的明显的、决定性的并且明确的定义。该基于规则的触发条件需要与数值基准和严格的条件分支一起被明确指定,因此,不能包括任何不明确性。根据用于收集数据的这样的严格的条件,有时会导致进行测试所需的数据的收集的缺乏,有时会引起收集中的假阳性/假阴性。
[0005] 因此,需要一种能以不太严格的方法来指定测试要件的、收集数据的系统。
具体实施方式
[0017] 示例性的实施方式的以下的详细说明参照附图。本公开提供了示例和说明,但并不旨在穷举,也并不旨在将一个以上的示例性的实施方式限定于所公开的准确的形态。修改和变形可以鉴于本公开来进行,或者可以根据一个以上的示例性的实施方式的实施来习得。而且,示例性的一实施方式的一个以上的特征或构成要素可以与另外的示例性的实施方式(或另外的示例性的实施方式的一个以上的特征)结合,或者可以与其组合。而且,可以理解的是,在本说明书中提供的动作的流程图和说明中,可以省略一个以上的动作,可以追加一个以上的动作,一个以上的动作可以(至少部分地)同时进行,也可以切换一个以上的动作的顺序。
[0018] 显而易见的是,本说明书中记载的系统和/或方法和/或非暂时性计算机可读存储介质的示例性的实施方式可以通过硬件、固件或硬件与软件的组合的各种形态来实现。为了实现该系统和/或方法而使用的实际的专用的控制硬件或软件代码不限定于一个以上的示例性的实施方式。因此,系统和/或方法和/或非暂时性计算机可读存储介质的动作和行为记载于本说明书,而不参照特定的软件代码。可以理解的是,软件和硬件被设计为基于本说明书的说明来实现系统和/或方法。
[0019] 特征的特定的组合在权利要求书中被列举和/或在本说明书中被公开,但该组合并不旨在限定有可能的示例性的实施方式的公开。实际上,该特征中的许多特征可以按照未在权利要求书中具体列举的方法和/或未在本说明书中公开的方法来组合。以下列举的各从属权利要求仅直接从属于一个权利要求,但有可能的示例性的实施方式的公开包括与权利要求的集合中的所有其他权利要求组合的各从属权利要求。
[0020] 只要没有特别明确地记载,本说明书中使用的要素、行为或指令就不应被解释为重要或必须的。此外,本说明书中使用的冠词“一个(a)”和“一个(an)”旨在包括一个以上的事项,并且可以与“一个以上”交换使用。在仅旨在一个事项的情况下,使用“一个”这样的术语或同样的术语。此外,本说明书中使用的术语“具有(has)”、“具有(have)”、“具有(having)”、“包括(include)”、“包括(including)”或同类的术语意味着是开放式的术语。而且,只要没有特别明确地记载,“基于……”这样的短语就旨在表示“至少部分地基于……”。而且,“[A]和[B]中的至少一方”或“[A]或[B]中的至少一方”等的表述应该理解为包括只有A、只有B或A和B双方。
[0021] 图1是车辆测试设备100的示例性的构成要素的图。如图1所示,车辆测试设备100可以包括总线110、处理器120、存储器130、储存器部140、输入部150、输出部160以及通信接口170。
[0022] 总线110包括能实现车辆测试设备100的构成要素间的通信的构成要素。处理器120可以通过硬件、固件或硬件与软件的组合来实现。处理器120可以是中央处理装置(CPU:
Central Processing Unit)、图像处理装置(GPU:Graphics Processing Unit)、加速处理装置(APU:Accelerated Processing Unit)、微处理器、微控制器、数字信号处理器(DSP:
Digital Signal Processor)、现场可编程门阵列(FPGA:Field Programmable Gate Array)、专用集成电路(ASIC:Application Specific Integrated Circuit)或其他类型的处理构成要素。在一个以上的示例性的实施方式中,处理器120包括可编程为进行功能的一个以上的处理器。存储器130包括为了供处理器120使用而存储信息和/或指令的随机存取存储器(RAM:Random Access Memory)、只读存储器(ROM:Read Only Memory)和/或其他类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器)。
[0023] 储存器部140存储与车辆测试设备100的动作和使用相关的信息和/或软件。例如,储存器部140可以包括对应的驱动器,并且包括硬盘(例如,磁盘、光盘、磁光盘和/或固态硬盘)、紧凑型光盘(CD:Compact Disc)、数字通用光盘(DVD:Digital Versatile Disc)、软盘、盒式磁带(cartridge)、磁带和/或其他类型的非暂时性计算机可读介质。输入部150包括使车辆测试设备100能经由用户输入等而接收信息的构成要素(例如,触摸屏显示器、键盘、小键盘(keypad)、鼠标、按钮、开关和/或麦克风)。追加或代替地,输入部150可以包括对信息进行感测的传感器(例如,全球定位系统(GPS:Global Positioning System)构成要素、加速度计、陀螺仪和/或致动器)。输出部160包括提供来自车辆测试设备100的输出信息的构成要素(例如,显示器、扬声器和/或一个以上的发光二极管(LED:Light Emitting Diode))。
[0024] 通信接口170包括使车辆测试设备100能经由有线连接、无线连接或有线连接与无线连接的组合等来与其他设备进行通信的收发器式的构成要素(例如,收发器和/或单独的接收器和发送器)。通信接口170可以使车辆测试设备100能从另外的设备接收信息和/或将信息提供给另外的设备。例如,通信接口170可以包括以太网接口、光接口、同轴接口、红外线接口、射频(RF:Radio Frequency)接口、通用串行总线(USB:Universal Serial Bus)接口、Wi-Fi(Wireless Fidelity:无线保真)接口、蜂窝网络接口或同种接口,但不限定于这些。
[0025] 车辆测试设备100可以进行本说明书中记载的一个以上的示例性的进程。根据一个以上的示例性的实施方式,车辆测试设备100可以响应于处理器120执行通过存储器130和/或储存器部140等非暂时性计算机可读介质存储的软件指令而进行该进程。计算机可读介质在本说明书中被定为非暂时性存储器设备。存储器设备包括单个物理存储设备内的存储器空间或遍及多个物理存储设备的存储器空间。
[0026] 软件指令可以经由通信接口170从另外的计算机可读介质或从另外的设备读入至存储器130和/或储存器部140。当被执行时,存储于存储器130和/或储存器部140的软件指令可以使处理器120进行本说明书中记载的一个以上的进程。
[0027] 追加或代替地,为了进行本说明书中记载的一个以上的进程,硬连线(hardwired)电路可以代替软件指令来使用,或者与软件指令组合来使用。因此,本说明书中记载的一个以上的示例性的实施方式不限定于硬件电路和软件的任何特定的组合。
[0028] 提供图1所示的构成要素的数量和配置来作为一个例子。实际上,车辆测试设备100与图1所示的相比,可以包括追加的构成要素、更少的构成要素、不同的构成要素或不同配置的构成要素。追加或代替地,车辆测试设备100的构成要素(例如,一个以上的构成要素)的集合可以进行被记载为通过车辆测试设备100的构成要素的另外的集合进行的一个以上的功能。
[0029] 图2是一个以上的示例性的实施方式的系统架构图。特别是,图2示出了使用机器学习(ML)模型而实现的车辆应用程序被测试的实施方式。
[0030] 根据实施方式,可以提供与服务器14进行通信的车辆13。应当理解,根据特定的实现方案,服务器14可以通过单个服务器来实现,可以实现为多个服务器,或者可以使用云应用程序来实现。可以是,操作员15以及产品的所有者/开发者/用户16能与服务器14进行交互。
[0031] 车辆13可以包括至少一个传感器17和车辆应用程序20。特别是,至少一个传感器17可以包括摄像机、加速度计、陀螺仪、IR(红外)传感器等,但不限定于这些。至少一个传感器17可以负责收集与车辆的测试相关的数据的作用。可以是,至少一个传感器17能将收集到的数据发送至配置于服务器14的车辆数据的数据库3。车辆应用程序20可以是与车辆13的动作相关的(例如,与车辆13的转向或加速相关的)任意的应用程序。车辆应用程序20可以使用机器学习(ML)模型来实现。
[0032] 服务器14可以包括事件记录服务器11和要件管理仪表盘12。事件记录服务器11可以包括可以由操作员15用自然语言输入的事件场景的集合。特别是,自然语言可以是任意已知的人类的语言,根据一部分实施方式,该自然语言可以用能容易地被可能不一定具有与解释代码的方法相关的知识的人理解的结构来写成。换言之,自然语言可以包括在被解释时(例如,在对话或解读时)可以被普通人理解的人类的语言。事件场景可以指定车辆应用程序20需要进行与使车辆13进行动作的方法相关的决定的状况,例如,可以指定从左侧的二个车道起在任意的水平和垂直距离以内存在接近的车辆。可以是,事件记录服务器能基于以人类可读的方式写成的事件场景的集合来生成/存储/输出也与自然语言相关的事件记录(IR)票据4。应当理解,事件场景可以包括现实的场景或测试场景,但不一定限定于这些。
[0033] 要件管理仪表盘12(在一部分实施方式中,可以实现为其自身的服务器)可以包括可以由产品的所有者/开发者/用户16用自然语言输入的测试要件的集合。测试要件可以指定测试目标、测试条件或与车辆13的动作相关的测试基准。可以是,要件管理仪表盘能基于测试要件的集合来生成/存储/输出用自然语言进行了描述的要件描述(RD)票据5。事件场景可以包括例如与车辆13的事故/问题/不良情况相关的信息。
[0034] 票据6可以基于IR票据4和RD票据5(例如,通过将IR票据4与RD票据5组合)来生成,由此,可以将票据6存储于服务器14内的票据数据库7。各票据6可以具有其自身的固有标识符(ID:identifier)。应当理解,虽然指定了数据库,但其他存储部件(例如,云储存器、内容分发网络)也可以为了存储票据而实现。
[0035] 传感器数据分类器1也可以在服务器14中提供。根据收集到的传感器数据为图像的一部分实施方式,传感器数据分类器1可以是利用神经网络2来实现的图像分类器。传感器数据分类器1可以为了对从车辆数据的数据库3获取的收集到的传感器数据与票据6进行比较而使用,以判定特定的收集到的传感器数据是否与票据6中的事件场景描述和/或测试要件描述一致。应当理解,为了进行这样的动作,可以使用图像分类器和/或神经网络,但可以使用关于收集到的传感器数据与票据6中的事件场景描述的比较的其他部件。
[0036] 当判定了票据6的描述与从车辆数据的数据库3收集到的传感器数据之间的一致时,可以将针对一致的数据的链接(即,URL(Uniform Resource Locator:统一资源定位器))和票据6发送至配置于服务器14的要件文件(RaC文件)生成器8,RaC文件生成器8可以基于针对收集到的传感器数据的链接和票据6来生成RaC文件9。
[0037] RaC文件9可以包括(例如,与票据6关联的)票据ID、(可以用于唯一地辨别RaC文件9的)固有文件ID、从票据6中写成的自然语言转换为代码的测试要件(测试目标、测试条件、测试基准等)以及针对存储于车辆数据的数据库3的收集到的传感器数据的链接(URL)。
[0038] RaC文件9可以负责存储ML模型的期待的行为的作用。所期待的行为可以具备测试要件。特别是,测试要件例如可以基于需要达到的特定的性能指标的数值、需要达到的基准、测试的类型等来指定需要进行测试的ML模型的性能指标。由此,RaC文件9可以包括在ML评价进程中使用的测试参数、测试目标、测试数据的URL或文件路径、要件、合格基准、测试条件、验收条件、验收基准来作为测试要件。这样的要件、测试目标、测试数据的文件路径、合格基准以及测试条件可以(例如,通过ML评价流水线10)容易地解释,以便决定ML模型的ML测试和评价如何通过ML评价流水线来执行,之后是否应该通过ML评价流水线10来执行。例如,RaC文件9可以包括代码形态的基准,ML评价流水线可以容易地将该代码解释为与执行ML模型的ML评价的方法相关的指令。RaC文件9可以为YAML格式或领域专用语言(DSL:
Domain Specific Language)格式等格式。此外,RaC文件9可以为PYTHON等编程语言的格式。RaC文件9与用于实际执行ML评价的代码是分离的,因此可以消除将要件“硬编码”到ML评价进程内的需要。
[0039] 可以提供ML评价流水线10以基于RaC文件9来对ML模型进行测试。ML评价流水线可以包括用于解释在RaC文件9中指定出的要件的接口和用于基于解释后的要件来对ML模型进行评价的接口。ML评价流水线10可以使用针对RaC文件9内的收集到的传感器数据的链接(URL)、文件路径或固有密钥,以在测试中从车辆数据的数据库3获取收集到的传感器数据。基于ML评价的结果,测试后的ML模型可以用于生成部署前的应用程序20-1,接下来,之后,作为车辆应用程序20而部署于车辆13内。此外,ML评价流水线10可以基于ML评价的结果来更新票据数据库7内的票据6的状况。应当理解,虽然指定了ML评价流水线10,但根据实施方式,可以使用根据RaC文件来解释要件,基于解释后的要件来对ML模型进行评价的任意适合的部件。
[0040] 图3是一个以上的示例性的实施方式的代替的系统架构图。特别是,图3示出了用于收集车辆数据并根据该车辆数据来对车辆应用程序进行测试的示例性的实施方式。包括与图2同样的构成要素,因此,可以为了便于阅读而排除冗余的说明。
[0041] 特别是,相对于图2所示的实施方式,图3所示的实施方式提供了还包括票据接收器31、数据发送器34以及配置于车辆13而不是服务器14的传感器数据分类器1和/或神经网络2的车辆13。可以是,票据接收器31能从票据数据库7接收票据6。应当理解,根据一部分实施方式,票据6可以以压缩格式、加密格式或部分地嵌入至特征映射图的格式来接收。
[0042] 同样地,传感器数据分类器1和/或神经网络2可以被配置为判定从至少一个传感器17获取的收集到的传感器数据是否与票据6的描述一致。可以是,在其一致的情况下,数据发送器34能将收集到的传感器数据发送至车辆数据的数据库3。当服务器14从数据发送器34接收了收集到的传感器数据时,接收数据的URL可以被发送至RaC文件生成器8。因此,在图3所示的实施方式中,若用于对票据6中写成的要件或事件场景进行测试的收集的测试数据的数量增加,则与票据6对应的测试的数量也会增加。
[0043] 图4是表示一个以上的示例性的实施方式的基于票据来对车辆应用程序进行测试的方法400的流程图。应当理解,根据一部分实施方式,为了实现方法400,可以使用图2和图3所示的系统架构。
[0044] 参照图4,在动作S410中,可以生成包括以人类可读的方式写成的至少一个测试要件描述和以人类可读的方式写成的至少一个事件场景描述的票据6。根据一部分实施方式,这可以通过将用自然语言写成的、从事件记录服务器11获取的事件记录(IR)票据4与从要件管理仪表盘12获取的要件描述(RD)票据5组合来进行。根据一部分实施方式,票据6可以存储于票据数据库7。
[0045] 根据一部分实施方式,票据6可以被车辆13中的票据接收器31接收。
[0046] 在动作S420中,可以判定从车辆(即,车辆13)收集到的传感器数据是否与票据6中的至少一个以人类可读的方式写成的事件场景描述和/或测试要件描述一致。根据一部分实施方式,这可以使用传感器数据分类器1和/或神经网络2来进行。根据实施方式,收集到的传感器数据可以最初存储于车辆数据的数据库3。根据一部分实施方式,传感器数据分类器1和/或神经网络2可以被实现于车辆。
[0047] 在动作S430中,可以基于票据6和收集到的传感器数据来生成RaC文件9。根据实施方式,动作S430可以仅在动作S420中判定了收集到的传感器数据与来自票据6的事件场景描述之间存在一致的情况下进行。RaC文件9可以包括(可以与票据6中的相同的)票据标识符、文件标识符、进行了编码的测试要件以及针对收集到的传感器数据的链接。进行了编码的测试要件可以基于来自票据6的以人类可读的方式写成的测试要件描述的转换来生成。根据实施方式,动作S430可以通过RaC文件生成器8来进行。
[0048] 根据一部分实施方式,基于从车辆13收集到的传感器数据与至少一个自然语言的事件场景描述和/或测试要件描述一致这一判定,收集到的传感器数据可以通过车辆13中的数据发送器34被发送至车辆数据的数据库3。
[0049] 在动作S440中,(可以用于实现车辆应用程序20的)ML模型可以基于在动作S430中生成的那样的RaC文件9来进行评价。特别是,这可以评价ML模型是否达到在票据6中最初指定的(如根据RaC文件9解释的)测试要件。动作S440可以使用ML评价流水线10来实现,该ML评价流水线10可以解释来自RaC文件9的要件并基于解释后的要件来执行评价。根据一部分实施方式,当动作S440完成时,车辆应用程序可以被实现并被部署于车辆13内。在一部分实施方式中,当动作S440完成时,作为评价的结果,票据6的状况可以被更新。
[0050] 基于上述实施方式,进行了以人类可读的方式写成的测试要件描述和以人类可读的方式写成的事件场景描述的向进行了编码的文件的转换,因此,操作员/开发者可以容易且宽泛地指定可以收集数据的条件和要件,因为其与处理前的自然语言相关。因此,收集数据的条件可以不太严格,能避免假阳性/假阴性。
[0051] 以上的公开提供了示例和说明,但并不旨在穷举,也并不旨在将一个以上的示例性的实施方式限定于所公开的准确的形态。修改和变形可以鉴于本公开来进行,或者可以根据一个以上的示例性的实施方式的实施来习得。
[0052] 一个以上的示例性的实施方式可以涉及集成的任意有可能的技术详细水平上的系统、方法和/或计算机可读介质。而且,上述的构成要素中的一个以上可以实现为在计算机可读介质中存储并能通过至少一个处理器执行的指令(和/或包括至少一个处理器)。计算机可读介质可以包括具有使处理器执行动作的计算机可读程序指令的计算机可读非暂时性存储介质(或介质(多个))。
[0053] 计算机可读存储介质可以是能保持以及存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或以上设备的任意适当的组合,但不限定于这些。计算机可读存储介质的更具体的示例性的非穷举的列表包括以下,即,便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑型光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒(memory stick)、软盘、记录有指令的穿孔卡或槽内的隆起结构等机械编码后的设备以及以上的任意的适当组合。本说明书中使用的计算机可读存储介质不应被解释为电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光缆的光脉冲)或通过线材发送的电信号等暂时性信号自身。
[0054] 本说明书中记载的计算机可读程序指令可以从计算机可读存储介质下载至各自的计算/处理设备,或者经由网络,例如,互联网、局域网、广域网和/或无线网络下载至外部计算机或外部存储设备。网络可以具备铜传输线缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。各计算/处理设备内的网络适配卡或网络接口从网络接收计算机可读程序指令,并传送计算机可读程序指令以存储于各自的计算/处理设备内的计算机可读存储介质。
[0055] 执行动作的计算机可读程序代码/指令可以是以汇编指令、指令集架构(ISA:instruction‑set‑architecture)指令、机器指令、机器相关指令(machine dependent instruction)、微代码、固件指令、状态设定数据、集成电路用的构成数据或一个以上的编程语言的任意的组合写成的源代码或目标代码,该一个以上的编程语言包括Smalltalk、C++或同类语言等面向对象的编程语言,以及“C”编程语言或同样的编程语言等过程型编程语言。计算机可读程序指令可以完全在用户的计算机上执行,可以在用户的计算机上部分地执行,可以作为独立软件包而执行,可以部分在用户的计算机上且部分在远程计算机上执行,或者可以完全在远程计算机或服务器上执行。在后者的情况下,远程计算机可以经由包括局域网(LAN:Local Area Network)或广域网(WAN:Wide Area Network)的任意类型的网络而连接于用户的计算机,或者可以(例如,使用互联网服务提供方从而经由互联网)进行向外部计算机的连接。在一个以上的示例性的实施方式中,例如,可以是,包括可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA:Programmable Logic Array)的电子电路利用计算机可读程序指令的状态信息来使电子电路个性化,由此执行计算机可读程序指令,以进行方案或动作。
[0056] 该计算机可读程序指令可以为了生成机器而提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,其结果是,经由计算机或其他可编程数据处理装置的处理器执行的指令生成实现在流程图和/或框图的功能框或功能框(多个)中指定的功能/行为的部件。该计算机可读程序指令还可以存储于计算机可读存储介质,其中,该计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定的方法发挥功能,其结果是,在内部存储有指令的计算机可读存储介质具备制品,该制品包括实现在流程图和/或框图的功能框或功能框(多个)中指定的功能/行为的方案的指令。
[0057] 计算机可读程序指令还可以加载至计算机、其他可编程数据处理装置或其他设备上,并在计算机、其他可编程装置或其他设备上进行一系列动作步骤,从而生成计算机实现进程,其结果是,在计算机、其他可编程装置或其他设备上执行的指令会实现在流程图和/或框图的功能框或功能框(多个)中指定的功能/行为。
[0058] 图中的流程图和框图示出了一个以上的示例性的实施方式的系统、方法以及计算机可读介质的有可能的示例性的实施方式的架构、功能以及动作。关于这点,流程图或框图中的各功能框可以表示具备实现所指定的逻辑功能的一个以上的可执行指令的微服务、模块、段或指令的一部分。方法、计算机系统以及计算机可读介质与附图中描绘的相比,可以包括追加的功能框、更少的功能框、不同的功能框或不同配置的功能框。在一个以上的代替的示例性的实施方式中,功能框中记载的功能可以与图中所记载的顺序无关地产生。例如,连续示出的两个功能框可以在实际上同时或实质上同时执行,或者功能框可以根据关联的功能而按相反的顺序执行。应当留意,框图和/或流程图的各功能框,以及框图和/或流程图的功能框的组合可以通过专用的基于硬件的系统来实现,其中,该系统进行指定的功能或行为,或执行专用的硬件与计算机指令的组合。
[0059] 显而易见的是,本说明书中记载的系统和/或方法可以通过硬件、固件或硬件与软件的组合的各种形态来实现。为了实现该系统和/或方法而使用的实际的专用的控制硬件或软件代码不限定于一个以上的示例性的实施方式。因此,可以理解的是,系统和/或方法的动作和行为记载于本说明书,而不参照特定的软件代码,软件和硬件可以被设计为基于本说明书的说明来实现系统和/或方法。