APP下载

FOTA功能测试的研究与分析

2020-07-24李志涛

汽车电器 2020年7期
关键词:功能测试实车服务器端

李志涛

(长城汽车股份有限公司保定技术研发分公司,河北 保定 071000)

随着汽车智能化、网联化的不断提升,汽车电控单元越来越多,汽车的软件也变得越来越复杂。目前一辆豪华的车型上一般有60~80个电控单元,上亿条代码,庞大的代码量会不可避免地增加缺陷发生概率,同时汽车行业新技术新功能的更新越来越快,车辆上市之后电器功能的优化,售后问题的及时维修,降低车辆召回风险及提升客户满意度等,已成为各主机厂重点关注与急需解决的问题。为解决以上相应问题,一种新的远程刷写技术——FOTA技术,在汽车行业得以迅速发展。本文基于FOTA工作实践,对FOTA系统架构、测试流程、测试方法等进行了详细阐述及介绍。

1 FOTA系统概述

FOTA(Firmware Over The Air)移动终端的空中下载软件升级,简称无线升级,是指通过云端升级技术,为联网设备进行固件升级。汽车应用此云端升级技术,服务器端与车辆客户端之间通过云端进行连接,实现车辆上相关电子控制单元软件的远程升级或提供软件补丁,可以快速、有效地解决软件故障,不需要去车辆4S店或者返厂,应用FOTA远程升级既可解决90%以上的软件故障,同时可快速导入新功能,优化人机界面,提升用户体验。

相对于传统车辆,新能源、智能驾驶车辆的软件持续迭代、优化已成为常态。特斯拉早在2013年已经使用FOTA技术进行远程升级,大众、通用、丰田等OEM厂商在传统车辆领域也在积极推广应用该项技术[1]。国内外主流OEM厂商在车型研发中均已规划并快速匹配FOTA技术,来实现车辆远程数据刷写。

1.1 系统架构

整车FOTA系统架构主要由服务器端、云端和车辆终端组成。云服务器端和车辆客户端采用一对多的方式,云服务器端为部署在数据中心的私有云服务平台,借助于公有云的CDN(内容分发技术)来实现位于不同区域的不同车辆同时更新[2]。FOTA系统架构示意如图1所示。

图1 系统架构示意图

依据车辆终端升级需求,后台管理人员配置升级任务,可进行差分升级、全量升级、固件升级、系统升级等多种类型的升级需求,如HUT、IP等软件升级包较大的ECU,采用差分升级,GW后软件升级包较小的ECU可采用全量升级。

服务器端主要实现升级车辆管理、软件管理、升级日志目录管理、升级实时监控和报告、软件升级包生成等,后台管理人员在服务器端部署固件和软件更新任务。车辆终端需部署FOTA客户端软件,客户端软件需由相应的ECU制造商集成到ECU控制器中。客户端软件与服务器端通信,用于管理车辆端相关ECU的软件更新、安装或删除等,执行待升级ECU升级管理任务。客户端软件可以安装在任何ECU控制单元上,带有客户端的ECU控制单元为FOTA升级主控单元或管理单元,若客户端软件安装在HUT中,则HUT为车辆终端的主控单元。对于支持FOTA差分升级的目标ECU,需集成升级代理软件,用于支持差分包的还原、软件包的更新,降低软件升级包的数据传输时间,通常车辆终端的主控单元中集成客户端软件、升级代理软件。

HUT作为主控单元,通过云端与后台服务器端进行通信,完成软件升级包数据的下载、存储,然后主控单元与待升级ECU之间执行BT刷写流程,完成对目标ECU的刷写。

1.2 升级流程

功能测试通过的软件包,在FOTA测试服务器完成刷写流程验证,然后经正式服务器管理人员在服务器端部署ECU的软件包,建立升级任务,通过主控单元客户端与服务器端无线通信,匹配和下载目标升级文件,实现待升级目标ECU的软件升级、安装过程,主要升级流程见图2。

图2 升级流程

新版软件本地刷写至对应ECU控制器产品中,基于软件变更点进行影响分析,识别电器功能测试范围,确定测试需求,结合测试需求选择对应的测试环境,如HIL、系统台架、实车等,进行针对性的电器功能测试,验证软件更新后电器功能的正确性及完整性。

功能测试验证通过后的软件,依据版本管理规则定义版本序列号,软件包上传至测试服务器端,软件包进行MD5加密,在测试服务器上生成差分包或全量包,对差分包或全量包进行数字签名、加密,然后选择测试车辆,建立升级任务,完成车辆端目标ECU的升级,确认FOTA升级的正确执行。

软件升级包经测试服务器验证可正确实现FOTA升级后,新版软件包上传至正式服务器端,软件包进行MD5加密,在正式服务器端生成差分包或全量包,对差分包或全量包数字签名、加密,选择待升级的目标车辆,建立升级任务,定义软件包信息,升级包版本管理、升级内容管理、升级操作日志等,向目标升级车辆推送软件升级、更新请求。

在升级任务有效的时间内,每次车辆上电会与云端建立连接,云端对车辆内部所有支持FOTA升级的控制器软件版本进行收集,服务器端获取各相关ECU软件版本后,与部署的软件版本比对,若存在新版本,云端会将新版本软件下载到车辆终端的主控单元HUT,显示升级信息提示车辆用户。

升级中的信息提示及互动是汽车FOTA中进行人机交互的核心,是获取车主授权确认,启动升级的重要环节[3]。用户车辆收到服务器端推送的软件更新任务后,在主控单元HUT屏幕上通过UI显示升级提示,用户对升级提示进行确认。

当服务器端收到用户升级确认指令之后,车载通信终端通过云端与服务器端进行通信,服务器端通过云端进行FOTA升级包的推送,升级包数据传输校验及下载至主控单元,车载客户端判断下载条件是否满足,升级条件满足后进行车机端ECU软件升级,待车机端ECU更新完成后,主控单元收集各ECU升级日志信息,将日志信息上传至服务器端记录。

为提升FOTA升级效率与确保升级的正确性、可靠性,软件升级包需最大限度地进行数据压缩,以便于节省数据流量消耗,升级包下载过程中车辆端需保持电源正常提供,网络连接正常,支持升级回滚机制、断点续传功能,确保升级包完整下载。同时,要在一个合适的时间、合适的地点以及合适的车辆状态下进行车辆FOTA升级。

FOTA的应用既提升了效率,节省了时间成本,又为消费者带来了便利,但是值得注意的是,FOTA的布局亦对车企提出了新的要求,例如安全防御体系以及相应的测试和验证体系的构建等[4]。

2 FOTA测试验证

FOTA测试验证工作主要分为3个层级,零部件级测试、系统级测试、实车验收测试。①零部件级测试进行主控单元ECU与各目标ECU之间的测试,测试主控单元ECU到目标刷写ECU之间的正向刷写流程;②系统级测试,基于系统台架测试环境,主控单元ECU连接各目标刷写ECU,进行正向FOTA刷写流程测试,包含安全、推送、CDN等集成交互测试内容;③实车验收测试,主要在实车环境下,基于客户需求规范,车辆用户角度,开展验收确认测试。

2.1 测试工具

开展FOTA各层级的测试验证工作,需选择相应的测试工具,构建测试环境,达成测试条件,执行测试操作。基于FOTA测试需求,进行人工测试,测试工具主要包含基础测试工具、仿真模拟工具、网络连接工具、数据采集记录工具等,相应FOTA测试工具需求及作用见表1。

基于以上相关测试工具,测试人员在测试过程中需进行正向流程刷写测试、故障注入测试,场景模拟测试、异常操作测试、用户模拟测试等。FOTA各层级测试,需要测试人员密切参与,熟练掌握各测试工具应用技能,测试工作还处在一个手动测试的阶段,测试效率低,需结合测试需求及测试工具资源,开发自动化测试系统,持续提升测试效率。

2.2 测试内容

V模型在OEM电子电器产品开发中广泛应用,依据此模型OEM在电子电器功能测试流程中,需经过部件测试、系统集成测试、实车测试[5]。借鉴功能测试流程,FOTA测试基于产品开发流程需开展零部件级测试、系统级测试、实车验收测试。①零部件级测试,进行主控ECU与目标升级ECU之间测试,如HUT&T_BOX、HUT&IP、HUT&GW、HUT及GW后ECU;②系统级测试,依据系统架构搭建测试台架,进行主控ECU与多ECU组合测试,如HUT&T_BOX&IP、HUT&T_BOX&IP&GW、HUT&T_BOX&IP&GW&GW后ECU等;③实车验收测试,基于实车环境,模拟用户进行主控ECU与单个或多个ECU的组合测试。

表1 测试工具

零部件级测试与系统级测试需覆盖正向测试,如正常升级测试;非正向测试 (加入异常场景的测试),如验签测试、升级错误安装包、安装过程中掉电等;压力测试;USB升级测试等。实车验收测试,基于实车测试环境,进行ECU软硬件版本信息获取,多ECU组合升级测试,车辆端所有支持FOTA刷写ECU的同时升级测试,升级更新条件检查,升级过程中安装条件检查,升级过程中整车电源异常测试等。测试涉及的主要功能点见表2。

零部件级测试是测试的关键,同时也是系统级测试开展的前提,系统级测试便于异常操作及故障注入的测试,实车验收测试是对系统测试的补充与用户应用内容的确认,测试内容更接近用户的实际操作。FOTA功能点的测试验证,需依据测试策略,结合测试目标,在各层级合理分配、互相补充,确保测试的充分性及测试覆盖度。

3 FOTA测试示例

测试人员在测试服务器端建立任务,获取待升级车辆相关ECU的软硬件信息,验证可通过服务器端任务创建,正确获取待升级车辆ECU的软硬件版本信息,相关测试要求及执行如下。

表2 功能点

3.1 测试前提条件

主控单元 (HUT)已连接网络,测试服务器正常运行,待升级车辆已在服务器端成功注册;测试人员已知车辆端待升级相关ECU的软硬件版本信息;测试人员在测试服务器端建立任务,任务内容为获取目标车型ECU软硬件版本信息,设置升级类型为常规升级,非服务器启动,无任务重试次数限制。

3.2 测试步骤

1)服务器端创建待升级车辆ECU软硬件版本信息获取任务。

2)在主控单元 (HUT)界面,点击“检查更新”按钮。

3)等待主控单元检查完毕,查看主控单元界面显示。

4)在服务器端的车辆信息列表页查看测试车辆ECU的软硬件版本信息。

3.3 期望结果

1)在服务器页面的任务列表页查看新增了一个任务。

2)HUT界面显示检查更新窗口。

3)检查完毕,HUT界面显示整车各系统软件均为最新版本。

4)在服务器端车辆信息列表页,正常显示车辆端待升级相关ECU的软硬件版本信息,如图3所示。查看服务器车辆信息列表页中获取的各ECU软硬件版本信息与已知的各ECU软硬件版本信息,确认是否一致,若信息一致则测试通过,不一致则测试失败。

图3 车辆信息列表

4 结束语

万物互联正在以惊人的速度在全球渗透,汽车正在被具有颠覆性的信息化技术所颠覆,FOTA技术在汽车上的应用,使得汽车实现了前所未有的变革,这将带给用户对汽车前所未有的惊喜和体验,为主机厂创造巨大的经济效益,同时会进一步促进汽车电动化、网联化、智能化、共享化的发展。本文旨在结合实践工作对FOTA功能测试的研究分析,阐述了FOTA系统基本架构、主要升级流程,测试验证等内容,期望能够对相关测试人员具有一定的指导意义。

猜你喜欢

功能测试实车服务器端
实车碰撞试验牵引系统钢丝绳疲劳损伤问题分析
某内花键等速传动轴八功能测试夹具设计
基于手机蓝牙的奥迪A4L发动机故障设置系统设计
基于WiFi的奥迪A4L发动机故障设置系统
无需多言
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
一种基于Java的IM即时通讯软件的设计与实现
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用