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

自动驾驶集成测试方法、装置、设备及存储介质与流程

2023-02-02 00:53:50 来源:中国专利 TAG:


1.本发明涉及集成测试领域,尤其涉及一种自动驾驶集成测试方法、装置、设备及存储介质。


背景技术:

2.在自动驾驶汽车开发过程中,hil(hardware-in-the-loop,硬件在环)作为软件开发的功能验证环节,在自动驾驶汽车的整个控制器开发环节中起着软件质量把关的作用,它将真实的控制器和虚拟的环境模型连接起来构成一个闭环系统,将集成后的可执行文件下载到目标控制器,在不同工况下验证开发控制器的功能性、稳定性和安全性,对控制器进行系统的、全面的测试。现有技术中,在开发不同控制器过程中都会搭建hil测试台架,不同控制器的hil测试台架基于平台也会有不同,测试中测试人员操作hil测试台架独立进行测试工作,每个hil测试都需要由一个测试人员进行测试环境搭建,测试用例编写,不同控制器软件的测试用例无法复用,测试报告基于不同平台也不同,对每个测试项目无法统一管理。随着控制器开发项目的不断增多,这种测试方式耗时耗力,测试效率偏低,测试项目管控难度大。


技术实现要素:

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.重启单元,用于对未关闭进程的测试模块进行重启,在各测试模块重启过程中检测其余测试模块是否存在相互干扰和内存泄露,得到第一测试结果。
48.可选的,在本发明第二方面的第二种实现方式中,所述重启单元具体用于:
49.对未关闭进程的测试模块进行重启,在各测试模块重启过程中分别检测所述未关闭进程的测试模块的信息收发是否正常、信息发发送频率是否正常和所述未关闭进程的测试模块的进程是否异常退出;
50.若所述未关闭进程的测试模块的信息收发不正常或信息发送频率不正常或所述未关闭进程的测试模块的进程异常退出,则除所述未关闭进程的测试模块之外的测试模块存在相互干扰;
51.在各测试模块重启过程中获取所述硬件在环仿真系统的内存占用信息;
52.若所述内存占用信息持续升高,则对应的测试模块存在内存泄露;
53.根据各测试模块重启过程中检测是否存在内存泄露和/或其余测试模块是否存在相互干扰,生成第一测试结果。
54.可选的,在本发明第二方面的第三种实现方式中,所述自动驾驶集成测试装置还包括软件测试模块,所述软件测试模块具体用于:
55.软件无害化测试单元,用于当所述测试对象是软件时,对所述软件进行软件无害化测试,得到软件无害化测试结果;
56.资源测试单元,对所述软件进行软件资源测试,得到软件资源测试结果;
57.结果汇总单元,用于将所述软件无害化测试结果和所述软件资源测试结果加入所述第一测试结果中。
58.可选的,在本发明第二方面的第四种实现方式中,所述软件无害化测试单元具体用于:
59.获取所述软件的新版本的第一软件代码和旧版本的第二软件代码;
60.比对所述第一软件代码和所述第二软件代码之间的差异,得到第三软件代码;
61.基于所述第三软件代码和预设的映射关系,获取所述软件进行无害化测试的测试用例;
62.基于所述无害化测试的测试用例运行所述软件的新版本和旧版本,并根据所述软件的新版本和旧版本运行后的输出结果生成软件无害化测试结果。
63.可选的,在本发明第二方面的第五种实现方式中,所述资源测试单元具体用于:
64.获取所述软件资源测试的测试用例,并基于所述软件资源测试的测试用例将所述软件设置为多模块并行模式;
65.基于所述软件资源测试的测试用例运行所述软件,并在所述软件在运行所述软件资源测试的测试用例时记录所述软件的处理器占用情况和内存占用情况;
66.基于所述处理器占用情况和所述内存占用情况生成软件资源测试结果。
67.可选的,在本发明第二方面的第六种实现方式中,所述对硬件无害化测试模块具体用于:
68.确定所述硬件的更换硬件;
69.基于所述更换硬件和预设的映射关系,获取所述硬件进行无害化测试的测试用例;
70.基于所述硬件的无害化测试的测试用例对所述硬件进行测试,获取所述更换硬件驱动模块的检查日志,并获取所述更换硬件在更换前硬件的驱动模块的检查日志;
71.根据所述更换硬件驱动模块的检查日志和所述更换硬件在更换前硬件的驱动模块的检查日志生成第二测试结果。
72.本发明第三方面提供了一种自动驾驶集成测试设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述自动驾驶集成测试设备执行上述的自动驾驶集成测试方法的步骤。
73.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的自动驾驶集成测试方法的步骤。
74.本发明的技术方案中,通过获取集成测试指令,并根据所述集成测试指令确定对应的测试对象,其中,所述测试对象包括软件和硬件;若所述测试对象是软件,则对所述软件进行回归测试,确定所述软件的测试用例;基于所述测试用例确定所述软件的多个测试模块,并对多个所述测试模块分别单独进行重启,以检测所述测试模块之间是否存在相互干扰,得到第一测试结果;若所述测试对象是硬件,则对所述硬件进行硬件无害化测试,得到第二测试结果;根据所述第一测试结果和所述第二测试结果生成所述测试对象的测试报告。本方法通过将自动驾驶系统中的硬件软件进行集成测试,可有效的缩短硬件在环测试
的时间,提高测试效率,并有效发现软件硬件更换。
附图说明
75.图1为本发明实施例中自动驾驶集成测试方法的第一个实施例示意图;
76.图2为本发明实施例中自动驾驶集成测试方法的第二个实施例示意图;
77.图3为本发明实施例中自动驾驶集成测试装置的一个实施例示意图;
78.图4为本发明实施例中自动驾驶集成测试装置的另一个实施例示意图;
79.图5为本发明实施例中自动驾驶集成测试设备的一个实施例示意图。
具体实施方式
80.本技术实施例提供了一种自动驾驶集成测试方法、装置、设备及存储介质,用于解决解决现有的交互式自动驾驶集成测试准确度低的技术问题。
81.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
82.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中自动驾驶集成测试方法的第一个实施例包括:
83.101、获取集成测试指令,并根据集成测试指令确定对应的测试对象,其中,测试对象包括软件和硬件;
84.可以理解的是,本发明的执行主体可以为自动驾驶集成测试装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
85.在本实施例中,集成测试指令可以为测试人员在通过网页访问服务器时,在网页上的操作,如,点击集成测试指令等,也就是说,用户在网页上执行点击操作之后,服务器响应于该点击操作,向测试设备的上位机发送测试任务。
86.在实际应用中,硬件在环测试是以实时处理器运行仿真模型来模拟受控对象的运行状态,通过i/o接口与被测的ecu连接,对被测ecu进行全方面的、系统的测试,其中的实时处理器可以理解为硬件设备,运行的仿真模型理解为软件,所以硬件在环系统中包括要测试的软件和硬件,测试人员在发出集成测试指令时,会选定测试对象,系统基于获取的集成测试指令,确实需要进行测试的测试对象,并根据测试对象是软件或硬件选择不同的测试流程。
87.102、若测试对象是软件,则对软件进行回归测试,确定软件的测试用例;
88.在本实施例中,对于测试对象是软件的情况,主要进行回归测试,回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,在本实施例中,主要通过在启动多个底层驱动模块同时,对单独模块进行重启,并获取重启过程中各底层驱动模块的信息,以检测其余模块是否有相互干扰,内存泄漏,回归测试主要是
为了测试底层驱动模块与其他底层驱动模块之间是否存在影响,此外,还可以对软件进行无害化测试,无害化测试主要是测试新的底层驱动模块对自动实现的功能是否有影响。
89.103、基于测试用例确定软件的多个测试模块,并对多个测试模块分别单独进行重启,以检测测试模块之间是否存在相互干扰,得到第一测试结果;
90.在本实施例中,所述相互干扰包括多个测试模块之间进程的相互干扰以及多个测试模块之间干扰导致的内存资源占用升高,存在内存泄露的风险,对于单独的测试模块的重启主要是采用进程池中关键字的搜索来查找相应的pid(process identification,进程控制符),来关闭相关进程,然后再通过启动程序重新拉起相关测试模块,检查测试模块间的互相干扰是通过观察该测试模块关闭和拉起的过程中,其余测试模块有无干扰情况的发生,通常包括信息的收发是否正常,信息发送频率是否正常,是否有进程异常退出等,内存泄漏的原理是,如果有内存在测试模块退出过程如果没有完全释放,则会占用一部分内存,通过重启可以观察机器的资源占用是否在增加来判断,如果启动的测试模块数不变的情况下,资源占用在重启时会升高则说明有内存无法释放存在泄漏的可能,在本实施例中,为了避免误差,可以对测试模块进行反复重启,避免由于一次重启导致资源占用增加过小或者其他原因导致资源占用,没有增加的情况,通过反复重启,如果启动的测试模块数不变的情况下,资源占用在反复重启时会一直升高则进一步说明有内存无法释放存在泄漏的可能。
91.104、若测试对象是硬件,则对硬件进行硬件无害化测试,得到第二测试结果;
92.在本实施例中,硬件的集成测试主要为硬件无害化测试,通常包含对于更换硬件的驱动模块的检查日志和系统层面的报警检查日志,检查日志的生成是底层驱动模块生成,一般产生的数据都是驱动模块的管理人员感兴趣的数据或者是报错,通过获取硬件进行无害化测试的测试用例;基于硬件的无害化测试的测试用例对硬件进行测试,获取更换硬件驱动模块的检查日志,并获取更换硬件在更换前硬件的驱动模块的检查日志;根据更换硬件驱动模块的检查日志和更换硬件在更换前硬件的驱动模块的检查日志生成第二测试结果。
93.105、根据第一测试结果和第二测试结果生成测试对象的测试报告。
94.在本实施例中,测试对象的测试报告参考了大多数人能读懂的方式生成,直接以第一测试结果和第二测试结果是通过或者失败,将pass/fail作为开头生成测试报告。
95.在本实施例中,在所述根据所述第一测试结果和所述第二测试结果生成所述测试对象的测试报告之前,还包括:获取客户端上传的测试用例,并基于所述客户端上传的测试用例,调用对应的函数接口;将所述客户端上传的测试用例中的函数传入所述函数接口中,得到函数结果,并生成对应的检查日志记录;将所述函数结果和所述检查日志记录加入所述测试报告中。
96.具体的,本实施例对单模块的测试模块方面具有一定的扩展性,可以自行开发测试案例,并调用框架中使用函数的接口,传入想要测试的函数,系统会会自动生成结果并生成检查日志。
97.在本实施例中,通过获取集成测试指令,并根据所述集成测试指令确定对应的测试对象,其中,所述测试对象包括软件和硬件;若所述测试对象是软件,则对所述软件进行回归测试,确定所述软件的测试用例;基于所述测试用例确定所述软件的多个测试模块,并对多个所述测试模块分别单独进行重启,以检测所述测试模块之间是否存在相互干扰,得
到第一测试结果;若所述测试对象是硬件,则对所述硬件进行硬件无害化测试,得到第二测试结果;根据所述第一测试结果和所述第二测试结果生成所述测试对象的测试报告。本方法通过将自动驾驶系统中的硬件软件进行集成测试,可有效的缩短硬件在环测试的时间,提高测试效率,并有效发现软件硬件更换。
98.请参阅图2,本发明实施例中自动驾驶集成测试方法的第二个实施例包括:
99.201、获取集成测试指令,并根据集成测试指令确定对应的测试对象,其中,测试对象包括软件和硬件;
100.202、若测试对象是软件,则对软件进行回归测试,确定软件的测试用例;
101.203、根据测试用例从预设的进程池中获取对应的进程关键字;
102.204、根据进程关键字从软件中搜索对应的进程控制符,并根据进程控制符关闭对应测测试模块的进程,并启动未关闭进程的测试模块的程序;
103.在本实施例中,通过对于单独模块的重启主要是采用进程池中关键字的搜索来查找相应的pid,来关闭相关进程,然后再通过启动程序重新拉起相关模块,例如使用从预设的进程词中获取到的关键字为“keyword”,系统根据命令“ps-ef|grep keyword|grep-v grep|cut-c 9-15|xargs kill-9”批量杀死包含关键字“keyword”的进程,其中"ps-ef"表示查看所有进程,"grep keyword"表示列出所有含有关键字"keyword"的进程,"grep-v grep"表示在列出的进程中去除含有关键字"grep"的进程,"cut-c 9-15"表示截取输入行的第9个字符到第15个字符,而这正好是进程号pid,"xargs kill-9"表示xargs命令是用来把前面命令的输出结果(pid)作为"kill-9"命令的参数,并执行该命令,"kill-9"会强行杀掉指定进程,然后再将没有被杀掉的经常进行重启。
104.205、对未关闭进程的测试模块进行重启,在各测试模块重启过程中检测其余测试模块是否存在相互干扰和内存泄露,得到第一测试结果;
105.在本实施例中,所述对未关闭进程的测试模块进行重启,在各测试模块重启过程中检测其余测试模块是否存在相互干扰和内存泄露,得到第一测试结果包括:对未关闭进程的测试模块进行重启,在各测试模块重启过程中分别检测所述未关闭进程的测试模块的信息收发是否正常、信息发发送频率是否正常和所述未关闭进程的测试模块的进程是否异常退出;若所述未关闭进程的测试模块的信息收发不正常或信息发送频率不正常或所述未关闭进程的测试模块的进程异常退出,则除所述未关闭进程的测试模块之外的测试模块存在相互干扰;在各测试模块重启过程中获取所述硬件在环仿真系统的内存占用信息;若所述内存占用信息持续升高,则对应的测试模块存在内存泄露;根据各测试模块重启过程中检测是否存在内存泄露和/或其余测试模块是否存在相互干扰,生成第一测试结果。
106.具体的,对未关闭进程的测试模块进行重启,在各测试模块重启过程中分别检测所述未关闭进程的测试模块的信息收发是否正常、信息发发送频率是否正常和所述未关闭进程的测试模块的进程是否异常退出主要是通过测试模块的信号输出间隔,模块的时间戳,单个模块是否重启,程序自身是否崩溃,占用的资源是否变化,自定的检测条件,数据输出的间隔,格式,内容是否正确等判断的。
107.206、对软件进行软件无害化测试,得到软件无害化测试结果;
108.在本实施例中,所述对所述软件进行软件无害化测试,得到软件无害化测试结果包括:获取所述软件的新版本的第一软件代码和旧版本的第二软件代码;比对所述第一软
件代码和所述第二软件代码之间的差异,得到第三软件代码;基于所述第三软件代码和预设的映射关系,获取所述软件进行无害化测试的测试用例;基于所述无害化测试的测试用例运行所述软件的新版本和旧版本,并根据所述软件的新版本和旧版本运行后的输出结果生成软件无害化测试结果。
109.具体的,回归测试主要是为了测试底层驱动模块与其他底层驱动模块之间是否存在影响,此外,还可以对软件进行无害化测试,无害化测试主要是测试新的底层驱动模块对自动实现的功能是否有影响,软件的无害化测试主要通过比较软件的前后新旧两个版本之间的代码差异,确定进行了改变的第三软件代码,并根据第三软件代码确定该代码执行的功能进而根据映射关系确定进行无害化测试的测试用例,并同时通过该测试用例运行软件的新旧两个版本,根据所述软件的新版本和旧版本运行后的输出结果确定新版本的软件是否存在错误,对自动实现的功能是否有影响。
110.207、对软件进行软件资源测试,得到软件资源测试结果;
111.在本实施例中,所述对所述软件进行软件资源测试,得到软件资源测试结果包括:获取所述软件资源测试的测试用例,并基于所述软件资源测试的测试用例将所述软件设置为多模块并行模式;基于所述软件资源测试的测试用例运行所述软件,并在所述软件在运行所述软件资源测试的测试用例时记录所述软件的处理器占用情况和内存占用情况;基于所述处理器占用情况和所述内存占用情况生成软件资源测试结果。
112.208、将软件无害化测试结果和软件资源测试结果加入第一测试结果中;
113.209、若测试对象是硬件,确定硬件的更换硬件;
114.210、基于更换硬件和预设的映射关系,获取硬件进行无害化测试的测试用例;
115.211、基于硬件的无害化测试的测试用例对硬件进行测试,获取更换硬件驱动模块的检查日志,并获取更换硬件在更换前硬件的驱动模块的检查日志;
116.212、根据更换硬件驱动模块的检查日志和更换硬件在更换前硬件的驱动模块的检查日志生成第二测试结果;
117.213、根据第一测试结果和第二测试结果生成测试对象的测试报告。
118.本实施例在上一实施例的基础上,详细描述了软件测试和硬件测试的过程,通过根据测试用例从预设的进程池中获取对应的进程关键字;根据进程关键字从软件中搜索对应的进程控制符,并根据进程控制符关闭对应测测试模块的进程,并启动未关闭进程的测试模块的程序;对未关闭进程的测试模块进行重启,在各测试模块重启过程中检测其余测试模块是否存在相互干扰和内存泄露,得到软件测试的第一测试结果,通过确定硬件的更换硬件;基于更换硬件和预设的映射关系,获取硬件进行无害化测试的测试用例;基于硬件的无害化测试的测试用例对硬件进行测试,获取更换硬件驱动模块的检查日志,并获取更换硬件在更换前硬件的驱动模块的检查日志;根据更换硬件驱动模块的检查日志和更换硬件在更换前硬件的驱动模块的检查日志生成硬件测试的第二测试结果。本方法通过将自动驾驶系统中的硬件软件进行集成测试,可有效的缩短硬件在环测试的时间,提高测试效率,并有效发现软件硬件更换。
119.上面对本发明实施例中自动驾驶集成测试方法进行了描述,下面对本发明实施例中自动驾驶集成测试装置进行描述,请参阅图3,本发明实施例中自动驾驶集成测试装置一个实施例包括:
120.指令获取模块301,用于获取集成测试指令,并根据所述集成测试指令确定对应的测试对象,其中,所述测试对象包括软件和硬件;
121.用例确定模块302,用于当所述测试对象是软件时,对所述软件进行回归测试,确定所述软件的测试用例;
122.重启测试模块303,用于基于所述测试用例确定所述软件的多个测试模块,并对多个所述测试模块分别单独进行重启,以检测所述测试模块之间是否存在相互干扰,得到第一测试结果;
123.硬件无害化测试模块304,用于若所述测试对象是硬件,则对所述硬件进行硬件无害化测试,得到第二测试结果;
124.报告生成模块305,用于根据所述第一测试结果和所述第二测试结果生成所述测试对象的测试报告。
125.本发明实施例中,所述自动驾驶集成测试装置运行上述自动驾驶集成测试方法,所述自动驾驶集成测试装置通过获取集成测试指令,并根据所述集成测试指令确定对应的测试对象,其中,所述测试对象包括软件和硬件;若所述测试对象是软件,则对所述软件进行回归测试,确定所述软件的测试用例;基于所述测试用例确定所述软件的多个测试模块,并对多个所述测试模块分别单独进行重启,以检测所述测试模块之间是否存在相互干扰,得到第一测试结果;若所述测试对象是硬件,则对所述硬件进行硬件无害化测试,得到第二测试结果;根据所述第一测试结果和所述第二测试结果生成所述测试对象的测试报告。本方法通过将自动驾驶系统中的硬件软件进行集成测试,可有效的缩短硬件在环测试的时间,提高测试效率,并有效发现软件硬件更换。
126.请参阅图4,本发明实施例中自动驾驶集成测试装置的第二个实施例包括:
127.指令获取模块301,用于获取集成测试指令,并根据所述集成测试指令确定对应的测试对象,其中,所述测试对象包括软件和硬件;
128.用例确定模块302,用于当所述测试对象是软件时,对所述软件进行回归测试,确定所述软件的测试用例;
129.重启测试模块303,用于基于所述测试用例确定所述软件的多个测试模块,并对多个所述测试模块分别单独进行重启,以检测所述测试模块之间是否存在相互干扰,得到第一测试结果;
130.硬件无害化测试模块304,用于若所述测试对象是硬件,则对所述硬件进行硬件无害化测试,得到第二测试结果;
131.报告生成模块305,用于根据所述第一测试结果和所述第二测试结果生成所述测试对象的测试报告。
132.可选的,所述重启检测303具体包括:
133.关键字获取单元3031,用于根据所述测试用例从预设的进程池中获取对应的进程关键字;
134.进程关闭单元3032,用于根据所述进程关键字从所述软件中搜索对应的进程控制符,并根据所述进程控制符关闭对应测测试模块的进程,并启动未关闭进程的测试模块的程序;
135.重启单元3033,用于对未关闭进程的测试模块进行重启,在各测试模块重启过程
中检测其余测试模块是否存在相互干扰和内存泄露,得到第一测试结果。
136.可选的,所述重启单元3033具体用于:
137.对未关闭进程的测试模块进行重启,在各测试模块重启过程中分别检测所述未关闭进程的测试模块的信息收发是否正常、信息发发送频率是否正常和所述未关闭进程的测试模块的进程是否异常退出;
138.若所述未关闭进程的测试模块的信息收发不正常或信息发送频率不正常或所述未关闭进程的测试模块的进程异常退出,则除所述未关闭进程的测试模块之外的测试模块存在相互干扰;
139.在各测试模块重启过程中获取所述硬件在环仿真系统的内存占用信息;
140.若所述内存占用信息持续升高,则对应的测试模块存在内存泄露;
141.根据各测试模块重启过程中检测是否存在内存泄露和/或其余测试模块是否存在相互干扰,生成第一测试结果。
142.可选的,所述自动驾驶集成测试装置还包括软件测试模块306,所述软件测试模块306具体用于:
143.软件无害化测试单元3061,用于当所述测试对象是软件时,对所述软件进行软件无害化测试,得到软件无害化测试结果;
144.资源测试单元3062,对所述软件进行软件资源测试,得到软件资源测试结果;
145.结果汇总单元3063,用于将所述软件无害化测试结果和所述软件资源测试结果加入所述第一测试结果中。
146.可选的,所述软件无害化测试单元3061具体用于:
147.获取所述软件的新版本的第一软件代码和旧版本的第二软件代码;
148.比对所述第一软件代码和所述第二软件代码之间的差异,得到第三软件代码;
149.基于所述第三软件代码和预设的映射关系,获取所述软件进行无害化测试的测试用例;
150.基于所述无害化测试的测试用例运行所述软件的新版本和旧版本,并根据所述软件的新版本和旧版本运行后的输出结果生成软件无害化测试结果。
151.可选的,所述资源测试单元3062具体用于:
152.获取所述软件资源测试的测试用例,并基于所述软件资源测试的测试用例将所述软件设置为多模块并行模式;
153.基于所述软件资源测试的测试用例运行所述软件,并在所述软件在运行所述软件资源测试的测试用例时记录所述软件的处理器占用情况和内存占用情况;
154.基于所述处理器占用情况和所述内存占用情况生成软件资源测试结果。
155.可选的,所述对硬件无害化测试模块304具体用于:
156.确定所述硬件的更换硬件;
157.基于所述更换硬件和预设的映射关系,获取所述硬件进行无害化测试的测试用例;
158.基于所述硬件的无害化测试的测试用例对所述硬件进行测试,获取所述更换硬件驱动模块的检查日志,并获取所述更换硬件在更换前硬件的驱动模块的检查日志;
159.根据所述更换硬件驱动模块的检查日志和所述更换硬件在更换前硬件的驱动模
块的检查日志生成第二测试结果。
160.在本实施中,详细说明了自动驾驶集成测试装置的各模块的具体功能和部分模块的单元构成,通过本装置的各模块和各单元,获取集成测试指令,并根据所述集成测试指令确定对应的测试对象,其中,所述测试对象包括软件和硬件;若所述测试对象是软件,则对所述软件进行回归测试,确定所述软件的测试用例;基于所述测试用例确定所述软件的多个测试模块,并对多个所述测试模块分别单独进行重启,以检测所述测试模块之间是否存在相互干扰,得到第一测试结果;若所述测试对象是硬件,则对所述硬件进行硬件无害化测试,得到第二测试结果;根据所述第一测试结果和所述第二测试结果生成所述测试对象的测试报告。本方法通过将自动驾驶系统中的硬件软件进行集成测试,可有效的缩短硬件在环测试的时间,提高测试效率,并有效发现软件硬件更换。
161.上面图3和图4从模块化功能实体的角度对本发明实施例中的中自动驾驶集成测试装置进行详细描述,下面从硬件处理的角度对本发明实施例中自动驾驶集成测试设备进行详细描述。
162.图5是本发明实施例提供的一种自动驾驶集成测试设备的结构示意图,该自动驾驶集成测试设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,处理器)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对自动驾驶集成测试设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在自动驾驶集成测试设备500上执行存储介质530中的一系列指令操作,以实现上述自动驾驶集成测试方法的步骤。
163.自动驾驶集成测试设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的自动驾驶集成测试设备结构并不构成对本技术提供的自动驾驶集成测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
164.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述自动驾驶集成测试方法的步骤。
165.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
166.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全
部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
167.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献