自动驾驶软件的自动测试方法及装置与流程

文档序号:23727573发布日期:2021-01-26 17:45阅读:149来源:国知局
自动驾驶软件的自动测试方法及装置与流程

[0001]
本申请涉及一种自动驾驶软件的自动测试方法及装置,属于软件测试技术领域。


背景技术:

[0002]
以测试车辆中的自动驾驶软件的性能为例,在自动驾驶软件在开发中和开发完成的算法代码,会在车辆的微控制单元(microcontroller unit,mcu)上运行测试、调试和性能分析。
[0003]
但是,在现有的测试过程中,通常从编写代码到嵌入式编译、烧写、上车测试调试周期长,效率低。


技术实现要素:

[0004]
本申请提供了一种自动驾驶软件的自动测试方法及装置,可以解决现有的软件测试方式从编写代码到嵌入式编译、烧写、上车测试调试周期长的问题。本申请提供如下技术方案:
[0005]
第一方面,提供了一种自动驾驶软件的自动测试方法,所述方法包括:
[0006]
读取待测试的所述自动驾驶软件的数据文件,所述数据文件包括至少一种数据类型;
[0007]
对于所述数据文件中目标数据类型的输入数据,使用所述输入数据进行软件在环sil测试,并在测试过程中使用预设编译器进行编译;测试过程中得到的算法中间数据与所述自动驾驶软件在实际车辆中运行时得到的实际中间数据相同;所述预设编译器不使用许可证进行编译;
[0008]
将所述算法中间数据写入目标位置。
[0009]
可选地,所述在测试过程中使用预设编译器对代码进行编译,包括:
[0010]
接收用户通过所述预设编译器执行的断点设置操作;
[0011]
在编译过程中,在执行至所述断点设置操作指示的断点位置时,输出所述断点位置之前已编译的代码对应的算法中间数据。
[0012]
可选地,所述将所述算法中间数据写入目标位置,包括:
[0013]
将所述算法中间数据按照预设规则写入数据库;
[0014]
所述将所述算法中间数据写入目标位置之后,还包括:
[0015]
读取所述数据库中的数据库数据;
[0016]
将所述数据库数据通过网页显示。
[0017]
可选地,所述至少一种数据类型包括视频数据类型,所述方法还包括:
[0018]
将所述数据文件中所述视频数据类型的数据写入所述数据库。
[0019]
可选地,所述将所述算法中间数据写入目标位置,包括:
[0020]
将所述算法中间数据按照预设规则写入输出文件;
[0021]
所述将所述算法中间数据写入目标位置之后,还包括:
[0022]
将所述输出文件与所述数据文件中的真值文件进行比较,以确定所述自动驾驶软件的算法代码是否符合需求;
[0023]
输出比较结果。
[0024]
可选地,所述将所述输出文件与所述数据文件中的真值文件进行比之前,还包括:
[0025]
使用bat脚本语言对所述数据文件进行更改,更改后的数据文件包括所述真值文件。
[0026]
可选地,所述目标数据类型包括can数据类型和spi数据类型,所述方法还包括:
[0027]
将所述can数据类型和所述spi数据类型分别发送至对应的适配代码。
[0028]
可选地,所述预设编译器为visual studio集成开发环境ide。
[0029]
第二方面,提供了一种自动驾驶软件的自动测试装置,所述装置包括:
[0030]
数据读取模块,用于读取待测试的所述自动驾驶软件的数据文件,所述数据文件包括至少一种数据类型;
[0031]
软件测试模块,用于对于所述数据文件中目标数据类型的输入数据,使用所述输入数据进行软件在环sil测试,并在测试过程中使用预设编译器对代码进行编译;测试过程中得到的算法中间数据与所述自动驾驶软件在实际车辆中运行时得到的实际中间数据相同;所述预设编译器不使用许可证进行编译;
[0032]
数据输出模块,用于将所述算法中间数据写入目标位置。
[0033]
可选地,所述软件测试模块,包括:
[0034]
断点设置单元,用于接收用户通过所述预设编译器执行的断点设置操作;
[0035]
数据输出单元,用于在编译过程中,在执行至所述断点设置操作指示的断点位置时,输出所述断点位置之前已编译的代码对应的算法中间数据。
[0036]
本申请的有益效果在于:通过读取待测试的自动驾驶软件的数据文件,数据文件包括至少一种数据类型;对于数据文件中目标数据类型的输入数据,使用输入数据进行软件在环sil测试,并在测试过程中使用预设编译器进行编译;测试过程中得到的算法中间数据与自动驾驶软件在实际车辆中运行时得到的实际中间数据相同;预设编译器不使用许可证进行编译;将算法中间数据写入目标位置;可以解决现有的软件测试方式从编写代码到嵌入式编译、烧写、上车测试调试周期长的问题;由于可以在预设编译器内一键编译、运行,测试结果。
[0037]
另外,预设编译器不使用许可证进行编译,因此,可以提高编译效率。
[0038]
另外,visual studio ide支持一键编译、运行并输出测试结果,且可以解决绝大部分语法错误,可以提高测试效率。
[0039]
另外,visual studio ide的调试手段丰富,支持根据需求设置断点,查看任何中间变量。
[0040]
另外,通过输出关键数据到文件或数据库,支持其它应用的分析操作,比如:自动化批量场景测试等。
[0041]
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
[0042]
图1是本申请一个实施例提供的自动驾驶软件的自动测试方法的流程图;
[0043]
图2是本申请一个实施例提供的自动驾驶软件的自动测试的示意图;
[0044]
图3是本申请一个实施例提供的自动驾驶软件的自动测试装置的框图。
具体实施方式
[0045]
下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
[0046]
首先,对本申请涉及的若干名词进行介绍。
[0047]
软件在环仿真(software in loop,sil):是一种软件测试的方法,用于在计算机上验证控制策略模型编译生成的代码是否满足功能需求。sil测试包括汽车控制系统的仿真,通过在仿真计算环境中运行实际嵌入处理器中的软件来获取全部或一部分控制算法的行为。sil测试包括模拟负载,例如控制器局域网(can)、控制模块、机器模型、传感器等的输入和输出。在sil测试环境中,被测试的软件被虚拟连接到机器,sil测试不需要特殊的与机器相关的硬件。
[0048]
microsoft visual studio(visual studio,vs):是开发工具包系列产品。vs是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如uml工具、代码管控工具、集成开发环境(integrated development environment,ide)等等。
[0049]
批处理(batch,bat)脚本:一种windows操作系统下的编程语言,是一种简化的脚本语言,用于对某对象进行批量地处理。
[0050]
控制器局域网络(controller area network,can):是iso国际标准化的串行通信协议。can总线是国际上应用最广泛的现场总线之一,已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。其中,现场总线也被称为自动化领域的计算机局域网。can数据是指can总线传输的数据包。
[0051]
串行外设接口(serial peripheral interface,spi):是一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。spi数据是指spi总线传输的数据包。
[0052]
可选地,本申请以各个实施例的执行主体为计算机设备为例进行说明,该计算机设备可以为计算机、便携式笔记本等,当然,也可以是车载终端,本实施例不对计算机设备的设备类型作限定。
[0053]
图1是本申请一个实施例提供的自动驾驶软件的自动测试方法的流程图。该方法至少包括以下几个步骤:
[0054]
步骤101,读取待测试的自动驾驶软件的数据文件,该数据文件包括至少一种数据类型。
[0055]
可选地,数据文件包括实车录制得到的输入数据和/或人工制作的输入数据。
[0056]
步骤102,对于数据文件中目标数据类型的输入数据,使用输入数据进行sil测试,并在测试过程中使用预设编译器进行编译;测试过程中得到的算法中间数据与自动驾驶软件在实际车辆中运行时得到的实际中间数据相同;预设编译器不使用许可证进行编译。
[0057]
在一个示例中,预设编译器为visual studio ide。相应地,在测试过程中使用预设编译器对代码进行编译,包括:接收用户通过预设编译器执行的断点设置操作;在编译过
程中,在执行至断点设置操作指示的断点位置时,输出断点位置之前已编译的代码对应的算法中间数据。这样,开发者可以使用visual studio ide设置断点,查看任意数据。
[0058]
可选地,目标数据类型包括can数据类型和spi数据类型,此时,需要将can数据类型和spi数据类型分别发送至对应的适配代码,从而按照与对应的数据类型相适配的适配代码进行sil测试。
[0059]
步骤103,将算法中间数据写入目标位置。
[0060]
算法中间数据中的部分或者全部可以作为关键数据写入目标位置。此时,用户可以设置感兴趣的算法中间数据,将感兴趣的算法中间输入目标位置。
[0061]
在一个示例中,将算法中间数据写入目标位置,包括:将算法中间数据按照预设规则写入数据库。此时,将算法中间数据写入目标位置之后,还包括:读取数据库中的数据库数据;将数据库数据通过网页显示。
[0062]
可选地,至少一种数据类型还包括视频数据类型,此时,计算机设备可以将数据文件中视频数据类型的数据也写入数据库。
[0063]
可选地,预设规则包括:将第一类型的算法中间数据写入数据库。
[0064]
在又一个示例中,将算法中间数据写入目标位置,包括:将算法中间数据按照预设规则写入输出文件。此时,将算法中间数据写入目标位置之后,还包括:将输出文件与数据文件中的真值文件进行比较,以确定自动驾驶软件的算法代码是否符合需求;输出比较结果。此时,将输出文件与数据文件中的真值文件进行比之前,还包括:使用bat脚本语言对数据文件进行更改,更改后的数据文件包括真值文件。
[0065]
可选地,预设规则包括:将第二类型的算法中间数据写入输出文件。
[0066]
通过使用bat脚本语言对数据文件进行更改,可以达到自动化批量场景测试的目的。
[0067]
在其它实施方式中,目标位置还可以包括日志文件,在实际实现时,目标位置的实现方式还可以为其它方式,本实施例在此不再一一列举。
[0068]
为了更清楚地理解本申请提供的自动驾驶软件的自动测试方法,下面对该自动测试方法举一个实例进行说明。参考图2,该自动测试方法包括:读取数据文件;将数据文件中的can数据输入can适配代码;将数据文件中的spi数据输入spi适配代码;将数据文件中的视频数据写入数据库;对输入数据进行sil测试,得到算法中间数据;将算法中间数据中的关键数据按照预设规则分别写入数据库、输出文件和日志文件;使用网页对数据库中的数据库数据进行播放。
[0069]
综上所述,本实施例提供的自动驾驶软件的自动测试方法,通过读取待测试的自动驾驶软件的数据文件,数据文件包括至少一种数据类型;对于数据文件中目标数据类型的输入数据,使用输入数据进行软件在环sil测试,并在测试过程中使用预设编译器进行编译;测试过程中得到的算法中间数据与自动驾驶软件在实际车辆中运行时得到的实际中间数据相同;预设编译器不使用许可证进行编译;将算法中间数据写入目标位置;可以解决现有的软件测试方式从编写代码到嵌入式编译、烧写、上车测试调试周期长的问题;由于可以在预设编译器内一键编译、运行,测试结果。
[0070]
另外,可以解决现有的软件测试方式需要使用许可证编译器,编译器许可较少,编译效率较低的问题;由于预设编译器不使用许可证进行编译,因此,可以提高编译效率。
[0071]
另外,visual studio ide支持一键编译、运行并输出测试结果,且可以解决绝大部分语法错误,可以提高测试效率。
[0072]
另外,visual studio ide的调试手段丰富,支持根据需求设置断点,查看任何中间变量。
[0073]
另外,通过输出关键数据到文件或数据库,支持其它应用的分析操作,比如:自动化批量场景测试等。
[0074]
图3是本申请一个实施例提供的自动驾驶软件的自动测试装置的框图。该装置至少包括以下几个模块:数据读取模块310、软件测试模块320和数据输出模块330。
[0075]
数据读取模块310,用于读取待测试的所述自动驾驶软件的数据文件,所述数据文件包括至少一种数据类型;
[0076]
软件测试模块320,用于对于所述数据文件中目标数据类型的输入数据,使用所述输入数据进行sil测试,并在测试过程中使用预设编译器对代码进行编译;测试过程中得到的算法中间数据与所述自动驾驶软件在实际车辆中运行时得到的实际中间数据相同;所述预设编译器不使用许可证进行编译;
[0077]
数据输出模块330,用于将所述算法中间数据写入目标位置。
[0078]
可选地,所述软件测试模块320,包括:断点设置单元321和数据输出单元322。
[0079]
断点设置单元321,用于接收用户通过所述预设编译器执行的断点设置操作;
[0080]
数据输出单元322,用于在编译过程中,在执行至所述断点设置操作指示的断点位置时,输出所述断点位置之前已编译的代码对应的算法中间数据。
[0081]
相关细节参考上述方法实施例。
[0082]
需要说明的是:上述实施例中提供的自动驾驶软件的自动测试装置在进行自动驾驶软件的自动测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将自动驾驶软件的自动测试装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的自动驾驶软件的自动测试装置与自动驾驶软件的自动测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0083]
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的自动驾驶软件的自动测试方法。
[0084]
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的自动驾驶软件的自动测试方法。
[0085]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0086]
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1