在本篇文章中,我们将简要讨论汽车软件行业的前景、汽车软件的最新进展、有关汽车软件测试的法律法规,以及拥有GUI产品的公司如何利用汽车软件测试在日益不稳定和充满挑战的市场中保持竞争力。
汽车软件产业前景展望
到未来 2030 年,汽车软件市场将实现快速增长,预计将从 310 亿美元(2019 年)增至约 800 亿美元。这意味着整个市场的复合年增长率将超过 9%,更具体地说,信息娱乐、连接、安全和互联服务的复合年增长率将达到 9.1%。
这意味着汽车行业和其他许多行业一样,正在经历前所未有的创新、技术进步和竞争。当汽车及其零部件制造商为保持利润和领先地位而竞争的同时,后台代码行上的竞争也在激烈地进行着。
汽车测试概述
提起汽车测试,大多数人脑海中都会浮现出碰撞测试、速度测试和其他机械干预的画面。但实际上,大多数汽车测试早在汽车零部件组装之前就已经开始了。
一辆汽车大约有 3 万个零部件,这些零部件由数十家原始设备制造商(OEMs)提供,这些原始设备制造商共同合作制造汽车。每个部件,无论是硬件还是软件,在汽车最终组装之前都要经过成千上万次的测试,而在汽车上路之前更是如此。
汽车软件测试
如今在路上行驶的汽车,无论是普通轿车还是顶级高性能汽车,都是由软件驱动的。2022 年生产的汽车可能安装了多达 150 个电子控制单元。
电子控制单元(ECU)是一种控制汽车特定功能的小型计算机。在使用 ECU 之前,机械系统通过点火正时、燃油、空气和发动机旋转来完成功能。现在,所有需要发生的事情都被编程到 ECU 内部的芯片中。
汽车中的电子控制单元包括发动机控制模块(ECM)和制动控制模块(BCM)等关键功能电子控制单元,以及汽车信息导航系统或通用电子模块(GEM)中的非关键电子控制单元,后者可控制车门上锁和解锁、打开车窗或控制空调等功能。
考虑到每个电子控制单元在功能上都是一台微型计算机,因此必须进行严格的软件测试,以确保其功能性、可用性和安全性。
现实情况是,传统的汽车测试既昂贵又耗时,而且不容易重复。因此,我们要感谢技术解决了这个问题:硬件在环 (HIL) 和软件在环 (SIL) 测试。
软件在环 (SIL) 测试
软件在环测试测试通过模拟测试和验证软件代码,消除bug,提高代码质量,并显著减少构建时间。
随着汽车品牌和原始设备制造商不断创新,为了获得竞争优势,真正的战斗是在代码行数上获胜的。无论是哪种类型的产品(安全、仪表盘、导航系统或其他),软件在被批准用于汽车之前都必须经过广泛的测试。
SIL的一些好处包括:
- 代码可以定期测试,因为程序的每个部分都完成了,而不是等到最终构建时才进行测试
- 测试可以自动化并同时运行。
- 测试结果易于共享和分析。
- 它将软件从硬件开发中分离出来,因此软件制造商可以跟上硬件行业的步伐,并继续超越创新。
- 无需专门的测试平台(如下面将讨论的 HIL 测试)。
- 与手动测试相比,SIL 测试易于扩展、可重复且速度更快
硬件在环 (HIL) 测试
HIL 测试,顾名思义,是一种与车辆硬件相关的测试和验证方法。这些模拟器或多或少是最终产品的模型,在将真正的 ECU 连接到测试系统之前,要对其进行全面测试。
HIL 测试台利用摄像头和雷达等设备输入的数据,通过实时执行数学模型来模拟实际的汽车发动机动态。一般来说,HIL 测试比 SIL 测试更费钱费时,因此要在 SIL 测试之后进行。
汽车软件测试的重要性不仅仅体现在道路安全上,还体现在网络安全、OEM信任和可靠性以及汽车品牌的健康和形象等方面。
汽车软件测试中的法律要求
有关车辆硬件和软件组件测试的规定是非常严格的。
ISO 26262: 公路车辆 —— 功能安全
汽车安全的主要立法要求是 ISO 26262: 道路车辆 —— 功能安全,它适用于大规模生产的乘用车,并为公共汽车、卡车、拖车和半挂车的的E/E系统提供指导。
ISO 21434:道路车辆 —— 网络安全工程
ISO 21434 是基于 ISO 26262 的后续标准,但它特别侧重于汽车软件和子系统设计与开发中的网络安全。该标准涵盖的主题包括风险管理和缓解、风险评估、持续安全、安全管理等。
AUTOSAR
AUTOSAR 是 AUTomotive Open System ARchitecture(汽车开放系统架构)的缩写,是 “汽车制造商、供应商、服务提供商以及汽车电子、半导体和软件行业公司的全球开发合作伙伴”。AUTOSAR 的目标是为汽车 ECU 创建一个全球开放的标准化软件架构。虽然并不要求原始设备制造商和生产商参与或遵守 AUTOSAR 架构,但许多世界领先的公司都会这样做。
MISRA
MISRA 是一个汽车安全组织,由供应商、工程咨询公司、静态代码分析师和OEM制造商组成。该组织的编码指南于 1998 年首次发布,目前已涵盖使用 C 和 C++ 编码语言构建的系统。同样,虽然 MISRA 是一套非强制性标准,但由于它有助于为安全和安保关键系统开发安全、可靠和可移植的代码,因此被许多行业广泛采用。
企业开展汽车软件测试的最佳实践
虽然产品在车辆中的功能(安全关键型、机械型、美观型)会影响所需的安全测试水平,但无论何种产品,软件测试的最佳实践都是一致适用的。
需要根据具体情况考虑的是什么工具适合这项工作。例如,生产制动系统的OEM可能需要复杂的 HIL 测试,而信息娱乐或导航系统可能只需要 SIL 测试。
汽车产品的自动化GUI测试
Squish是一个用于跨平台桌面、移动、嵌入式和web应用程序的自动化GUI测试工具。在汽车测试方面,Squish通常用于测试导航系统、触摸面板、仪表盘和前面板。
为什么Squish适用于汽车GUI测试
用户界面变得越来越动画化,图形通过令人难以置信的动画水平快速移动。通过这种方式,从GUI角度进行测试是具有挑战性的,因为一切都是不断变化的,并且您需要确保应用程序的状态和测试是同步的。
如果我们将动画视为人类,测试人员将需要手动截图,然后比较指示器是否位于正确的位置,是否具有正确的颜色,是否以正确的速度动画(如果它打算移动)。
我们的目标是通过使用Squish模拟最终用户的行为。Squish会自动地以终端用户的方式(点击、拖放、触摸)与应用程序进行交互。Squish还可以截图以检查应用程序的当前状态,以及图像是否按设计和开发团队的预期方式呈现。
减轻风险的压缩特性包括基于图像的测试,它使用多个验证点来检查视觉外观是否符合预期。它还支持光学字符识别(OCR)引擎,帮助验证文本和数字是否按预期显示在屏幕上。