预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于VS的智能驾驶软件测试系统的设计与实现曲延羽邓琬云熊铎程林智桂冉毅德关键词:软件测试;软件开发;逻辑验证0引言随着智能驾驶技术的快速发展,目前智能驾驶辅助系统产品已占了汽车市场的一席之地并快速迭代[1]。为了保证智能驾驶辅助系统软件的质量及安全性能,相应需求的软件测试成为软件开发过程中必不可少的一部分[2]。不同平台开发的软件代码,测试模式也不尽相同。目前,常见的开发模式是基于Matlab数字软件平台搭建Simulink模型开发,或基于MicrosoftVisualStudio(VS)编译环境使用C++语言进行编程开发。对于Simulink开发的模型,可以在Matlab平台上完成单元模块的部分测试和仿真验证[3];但对于C++语言编程开发的软件,需要通过借助不同工具进行测试和仿真验证。智能驾驶辅助系统软件代码具有严密的逻辑性,需要完善的测试手段对各源代码模块进行充分验证,最大限度地提高软件性能。单一的单元测试不能满足对控制模块内部逻辑结构的完整测试。而集成测试需采用黑盒模型且过程较长,这种验证过程耗费大量的时间,会降低开发与测试效率。因此,针对C++语言编程的智能驾驶辅助系统软件,本文提出了一种基于VS编译环境,以模块作为测试单元,对模块逻辑功能进行测试的方法。本方法结合白盒测试与黑盒测试的方式对模块的算法进行测试与验证,快速精准定位到源代码中的问题代码和逻辑漏洞,提高了代码开发与测试效率。1智能驾驶软件测试系统设计原理及架构1.1智能驾驶软件测试系统设计原理智能驾驶软件测试系统的设计原理,是使用数据文件或实车数据的输入信号,形成输入参数,在测试驱动程序中建立读取测试数据与选取测试模块的接口。再通过确定读取的测试数据及选取的测试模块,将相应的输入参数传入测试驱动程序,测试驱动程序调用相应的待测模块工作函数执行测试程序。待执行测试程序结束后,将测试结果输出,并在测试结果模块中,将预期输出结果与实际输出结果进行比较。之后,系统对不符合预期结果的部分进行标记,提示开发人员对不符合预期结果的部分进行检查或修正(图1)。1.2智能驾驶软件测试系统设计架构智能驾驶软件测试系统架构主要由测试数据存储、测试执行程序和输出结果处理三大功能模块组成(图2)。待测模块代表具有相对独立且逻辑结构完整的源代码模块,其中小模块1、小模块2等代表具有不同逻辑判断的模块。整个测试执行过程维持待测模块源代码“黑盒”状态,确保待测模块与测试执行程序模块间的相对独立性。这样既保证了测试的可执行性,又保证源代码的安全性。智能驾驶软件测试系统的主要功能模块如下。1.2.1测试数据存储模块测试数据存储模块存储读取的輸入参数与预期结果变量数据信息,可接收实车采集数据与模拟数据两种数据模式。这些数据传输到测试执行程序模块,作为模拟运行的输入参数。1.2.2测试执行程序模块测试执行程序调用待测模块工作函数,对输入信号进行循环读取执行,模拟多帧连续运行模式,再将每次读取运行后的输出结果变量传输给结果处理模块。除了待测模块固定的测试值外,可以依据功能需求将模块类成员变量的测试值同时输出。整个测试执行过程不涉及开发模块内部源代码的改动,既保证测试的可执行性,又保证源代码的安全性。1.2.3数据结果处理模块测试得到的运算输出变量(测试值)逐帧存储到结果处理模块,并与测试数据存储模块的预期输出变量(期望值)进行逐一比对,将测试值与期望值的比对结果作为源代码测试验证的最终结果。2智能驾驶软件测试系统策略智能驾驶软件测试系统策略如下:编写测试用例数据文件,读取测试用例数据文件的输入信号,对待测试模块进行测试。测试系统根据每帧的模块输出信号、中间值信号与数据文件的期望值之间产生的差异,对当前帧的计时器信号进行标记。测试人员通过计时器信号的标记进行定位查找,找出导致测试失败的输出信号与中间值信号。然后通过观察测试值与期望值之间的差异,再梳理待测模块中包含导致测试时报的输出信号与中间值信号的部分代码逻辑,缩小搜索代码逻辑漏洞的范围,快速定位待测试模块问题,提高更正代码的效率(图3)。3智能驾驶软件测试系统的应用本次测试采用符合LKA按键逻辑功能规范的实车测试数据真实信号,作为测试数据文件的输入信号与期望值信号。LKA按键是是车道保持功能的物理开关被按下时,从CAN总线传过来的信号。通过选择测试用例,将实车测试数据文件导入测试系统中,点击开始测试,则对LKA按键逻辑模块进行逻辑测试。整个测试结果如图4所示,其中,红色点线为输入数据(LKA按键状态),蓝色点线与黑色点线,分别表示LKA功能状态是否激活的预期输出变量信号和测试输出变量信号。除此之外,在测试结束后,可输出数据测试报告(图5)。图5中标出了LKA按键帧数及功能状态在2.00~2.26s的相关数据。可以看出,在2.00s时,LKA开关按