作者 | 李伟 上海控安安全测评部总监
来源 | 鉴源实验室
引言:上一篇文章我们以车载Tbox为例介绍了相关的性能测试(车载TBOX嵌入式设备软件的性能测试),本篇我们介绍另外一个重要功能的专项测试:OTA(Over the air)测试。OTA测试会因为不同厂家选择使用的OTA实现方案的不同出现测试上的差异,对于这一点大家要注意,即使是同一个主机厂,不同车型选择的OTA方案不一样测试方法也会不一样。
01 正式开始之前
车辆OTA升级目前已经非常普及了,本篇我们不再重复概念上的说明。SOTA(software OTA)主要针对的是客户应用软件的升级,通常由用户从应用商城下载安装升级实现,技术实现和测试相对FOTA(Firmware OTA)来说较为简单,本次我们也不做分析,本篇给大家讲的主要是FOTA。
整车FOTA升级的复杂程度与参与升级的设备数量密切相关,两个零部件参与升级和整车二十个零部件升级的复杂程度是完全不一样的,这一点在实施一次完整的升级测试所花费的时间上体现得更为明显。特别提醒测试人员对于类似场景的测试设计,必须考虑到测试效率的问题,在不影响测试准确性和有效性的情况下,尽可能在一次升级过程中完成多项单独的测试设计点。
不同主机厂整车FOTA的技术方案不一样,通常来讲整车升级中的零部件可以分为3类。第一类零部件,升级过程可以完全由零配件自己完成(不考虑后端FOTA升级服务器的情况下),包括独立完成网络连接、主动检查是否有可用升级软件、主动下载存储软件包、主动完成包的升级,如Tbox。第二类零部件,有比较强的自主控制功能,如可以完成独立的升级包下载存储和包的自主升级,但是需要其他零部件配合,如娱乐主机系统和智能行车电脑等,能自主独立下载升级包并检校存储,可以独立完成包的升级更新,但是需要Tbox配合提供上网通道。第三类零部件,不能自主完成程序的升级,需要车辆的FOTA升级主控设备控制自身的软件升级,如雨刷控制器、空调系统控制器、座椅控制器等。
整车FOTA升级的拓扑图如下所示:
图 1
02 整车FOTA升级的过程
整车FOTA升级的业务过程大体可以分为以下4个步骤:
第一步,首先在FOTA后台服务器端创建任务,根据车型、车辆、升级的ECU软件包等创建升级策略和升级任务。这个过程中要准备好被测试件的软件包,测试车辆,以及被测试车辆的车型和车辆相关信息。
第二步,车端自动触发或人为触发升级过程,下载FOTA升级包到车端本地,并进行升级包的检验校准和存储。不同主机厂采用FOTA方案的不同,升级的主控设备就不一样,大家需要根据具体项目中的实际情况区分对待。
第三步,ECU执行软件包的升级。
第四步,升级完成后主控设备控制退出整车FOTA状态,恢复整车的通讯,诊断更新配置字,清除故障码,上传升级记录到FOTA服务端等。
FOTA功能业务的流程示意图如下所示:
图 2
03 FOTA升级零部件的交互
整车FOTA的全过程是比较复杂的,我们做测试设计时通常按照需求文档来编制,将FOTA的测试按升级步骤进行逻辑上的划分,在各个步骤内部的功能需求点测试设计通常参考需求文档和当前项目的FOTA技术规范,对本步骤内的升级信息交互进行验证。
下图是一个简单的FOTA升级交互图,需要主控ECU来控制FOTA升级的过程大体如下图所示,不依靠主控控制升级的零配件不适用下图,具体项目中跟本例可能存在差异,大家需要以实际情况为准进行变通。
图3 FOTA升级交互图
交互的步骤大体如下:
(1)车辆启动后,达到一定条件,ICC(智能计算控制器)默认触发整车OTA版本升级的检查,通过IAM(智能联网控制器)的网络服务,连接到OTA升级服务后台端进行任务查询,对比本机和OTA后台服务中的版本记录,确认ECU软件是否存在更新和需要升级。
(2)如果存在新版本软件且符合服务端的升级策略,则开始进行升级包的下载工作,在这个过程中会有各种下载前置的判断设定,有的升级方案还规定了版本下载的中断和续传,软件下载完成后会执行软件包的校准检查,确认包的正确性和完整性。
(3)新版本下载确认后,ICC主控件会检查车辆的状态,确认是否符合当前升级的要求,如车辆档位在P档,车辆蓄电池电量大于70%等,在满足升级条件的情况下,主控零部件会控制车辆或者零配件进入固件刷写状态,然后ICC主控零配件会执行刷写过程,刷写过程中的进度情况也会同步上报直至升级完成。
(4)软件版本升级完成后,ICC主控件会执行相应的刷写后检查和更新配置信息,如更新被升级件物流信息中的软件版本、清除故障码、将整车状态从FOTA升级状态恢复到正常状态、上报本次FOAT升级的过程记录和结果等等。
升级过程节点步骤的触发条件如下:
图 4
04 测试要点
整车FOTA测试较复杂,通常主机厂会进行专项测试任务。当整车升级的零配件多达几十个的时候,测试人员刚接触会觉得无从下手,同时执行单次完整升级的时间,从准备工作算起到执行结束可能需要花费1天,甚至更多的时间。我们把FOTA测试的要点进行了梳理,希望给大家有所帮助。
(1)FOTA升级涉及零配件多,场景复杂,整个过程和步骤漫长,因此测试设计通常会将FOTA的测试分类、分阶段、分步骤地进行。
(2)从少量零配件测起,逐渐增加参与升级的零配件,直至所有部件都参与。
(3)零配件测试增加的顺序,通常按照本文第1章节的叙述,从Tbox这类完全独立自主控制自身升级的零配件,到娱乐主机这类半独立自主升级零配件,最后扩大到需要ICC主控件来控制自身升级的无独立自主升级零配件。
(4)FOTA的升级过程通常安装本文第2章节的4个阶段进行划分,在每个阶段的开始和结束设立可观察条件,测试人员对每个阶段的输入输出进行验证和确认。
(5)在集成测试阶段,特别是零配件的集成测试阶段,测试需要深入到FOTA升级协议的报文间交互中,这就需要在本小节第4点的说的阶段基础上,进一步深入到交互步骤,通过通讯协议来确认升级的零配件每个交互步骤是否正确。
(6)异常测试的场景,通常是按照技术规范给出的各阶段或者各步骤的触发条件,来反向设计,如整车电源状态、档位状态、蓄电池电量、车辆速度等异常条件逐个和组合设计。