谈谈 OTA 测试

2023-10-10 16:19
领克08带着豪华智享超电的title重磅上市,在接受市场检阅之前,OTA测试已经得到验证。整车OTA功能通过IPCP协议进行服务访问,OTA测试策略怎么制定;内部处理逻辑在报文定义中无法覆盖怎么处理,诸如此类的问题都需要一套专业的OTA测试解决方案。
随着智能化和网联化技术的快速发展,汽车已经从单纯的交通工具转变为智能移动终端。在这个过程中,当前OTA技术的发展越来越迅速,逐步的标准化,车辆的软件系统变得越来越复杂,如何确保这些软件的稳定性和安全性,成为一个重要的问题。这正是汽车OTA测试的重要性和价值所在。

01.

OTA测试



OTA测试是确保汽车更新过程顺利进行的重要环节。它涵盖了从下载任务到安装包的升级全过程,旨在验证OTA系统的功能正确性、稳定性和安全性。在软件定义汽车的时代,OTA测试可以确保软件的快速迭代和修复漏洞,使车辆更加智能、安全和高效。

02.
OTA测试流程和内容

全链路软件验证
OTA测试从整个OTA开发交付体系上来说,属于中间环节。它涉及到云端和车端两大部分的测试内容,具体包括功能测试、接口测试、性能测试、HMI交互测试、安全测试、实车场景测试等。这些测试涵盖了整个OTA系统的各个方面,从云端服务器到车端设备,确保软件的正确性和稳定性。

图片

在OTA测试流程中,每个步骤都是至关重要的,以确保最终交付的软件质量。艾拉比基于行业专业的OTA测试经验总结了OTA测试的几个阶段和关键节点,包括需求分析、设计开发、测试验证、部署上线以及客户支持等。其中,测试验证是软件质量检查的重要环节,通过自动化测试或人工审核来发现潜在的缺陷和错误,确保软件的质量和稳定性;市场反馈和服务支持则决定了软件的用户体验和价值,有助于改善用户的满意度并促进销售增长。
图片
图片来源:(艾拉比OTA测试流程)

03.
多维OTA测试场景


为了确保OTA系统的全面性和可靠性,OTA测试场景需要涵盖正向和异常两种情况。下面我们列举部分内容分别来看看这两种情况。
1、正向测试场景
注册业务版本检测:在这个阶段,OTA系统需要检查新注册的设备是否能够正确地识别和处理软件版本信息。
OTA下载测试:这部分测试需要验证系统在下载新软件时是否能够正常进行,包括下载速度、稳定性以及断点续传等功能。
OTA安装测试:这部分主要验证新软件的安装过程是否顺畅,能否正确地处理各种安装依赖关系,以及静默升级和预约升级等功能的正确性。
数据上报测试:这部分测试需要验证系统在升级过程中是否能正确地处理和上报各种事件和日志信息。
2、异常测试场景
电源异常工况测试:这部分测试需要验证系统在电源异常(如突然断电)时是否能正确地处理和保护数据。
网络异常工况测试:这部分测试需要验证系统在网络连接异常(如网络中断、连接超时)时是否能正确地处理和恢复连接。
重试机制验证:当升级失败时,系统是否能自动重试升级,以及重试的次数和间隔是否符合预期。
回滚机制验证:当升级过程中出现严重错误时,系统是否能正确地回滚到原来的版本,并保证数据的完整性。

04.
合规性测试

基于GB和R156对于OTA的功能要求,需要满足法规所对应的所有验证项目。
另外,OTA压力测试包括OTA升级业务流程稳定性,OTA升级链路稳定性,覆盖不同的升级链路,覆盖所有的零件刷写,可采用自动化测试平台。

图片


05.
自动化测试系统:提升OTA测试效能

自动化测试平台的产生可以追溯到软件测试的早期阶段。
在软件测试的早期,大部分的测试工作都是手动完成的,包括测试用例的设计、执行以及测试结果的分析等。然而,随着软件行业的快速发展,软件系统的复杂度不断提高,手动测试的方式逐渐暴露出一些问题,如效率低下、错误易发等。
在此背景下,自动化测试平台应运而生。
自动化测试平台使用计算机程序来执行测试用例,并自动分析测试结果,从而大大提高了测试效率,降低了错误发生的概率。
以艾拉比自动化测试平台为例,采用了先进的数据驱动框架和模块化设计思想,支持多种协议和接口的仿真与自动化操作,可对云端和车端进行全方位的覆盖性测试。

图片

图片来源(艾拉比自动化测试平台)
随着更新速度的加快,自动化测试平台能够快速地执行大量的测试用例,帮助开发团队快速地发现和修复软件中的问题。
此外,随着人工智能和机器学习技术的发展,自动化测试平台还将具备了自我学习和自我优化的能力,能够根据测试结果自动调整测试用例和策略,进一步提高测试的准确性和效率。
需要注意的是,自动化测试平台虽然具有很多优点,但是并不能完全替代手动测试。一些复杂的测试场景,例如用户体验测试、非功能性测试等,仍然需要人工参与。因此,自动化测试平台通常与手动测试相结合,形成一种综合的测试策略,以达到更好的测试效果。
1.自动化测试系统的优势
·提高效率:自动化测试系统可以快速地执行大量的重复性测试用例,大大提高了测试效率。
·减少误差:由于自动化测试系统不会疲劳或犯错,它可以减少人为误差,提高测试的准确性。
·降低成本:自动化测试系统可以节省大量的人力资源,降低测试成本。
2.自动化测试系统的实现方式
·云端自动化测试:通过使用API自动化工具或者Selenium等Web应用自动化工具对云端服务器进行模拟交互,检测服务器响应的正确性和稳定性。
·车端自动化测试:通过使用车辆协议仿真器、CANoe等专用设备来模拟车端设备和车辆行为,检测车端软件的功能和性能。
·实车场景模拟:通过使用硬件在环(HIL)仿真系统来模拟实车环境,包括各种传感器、执行器等设备,检测车辆在实际运行中的性能表现。