综合编译:TesterHome
“90% 以上的汽车创新是基于电子和软件的。这就是为什么创造性的自由和横向思维对于追求真正的新解决方案是如此重要。”
这是德国宝马,设在慕尼黑的一个汽车软件工程师岗位,其招聘信息最开始的一段话。这个岗位的英文名称是:Automotive Software Engineer C++ (f/m/x)。
可见,在世界顶尖汽车制造商宝马的眼里,未来的汽车是由 “软件定义” 的。
那么,你对汽车软件测试了解多少呢?
预计到 2030 年,汽车软件市场将迅速增长,预测显示它将从 310 亿美元(2019 年)增加到约 800 亿美元。这意味着整个市场的年复合增长率超过 9%,更具体地说,信息娱乐、连接、安全和连接服务的年复合增长率为 9.1%。
这意味着,汽车行业,像其他许多行业一样,正在经历前所未有的创新、技术进步,以及反过来的竞争。当汽车及其零部件制造商竞相保持盈利并处于曲线的顶端时,这场战斗正在后台的代码行中获胜。
当大多数人想到汽车测试时,脑海中浮现的是碰撞测试、速度测试和其他机械干预的画面。然而,在现实中,大多数汽车测试在汽车零部件组合之前就已经发生了。
一辆汽车有大约 30,000 个零件,这些零件由几十个原始设备制造商(OEM)提供,他们一起合作创造汽车。每个部件,无论是硬件还是软件,在汽车最终组装前都要经过数十万次的测试,甚至在上路前还要进行更多的测试。
今天道路上的汽车,无论是你的标准轿车还是顶级的性能车,都是由软件驱动的。对于 2022 年制造的车辆,可能会安装多达 150 个电子控制单元。
电子控制单元(ECU,又称 “车载电脑”)是一种控制汽车特定功能的小型计算机。在 ECU 之前,机械系统使用点火时间、燃料、空气和发动机旋转来完成功能。现在,所有需要发生的事情都被编入 ECU 内部的芯片。
比如:发动机控制模块(ECM)和制动控制模块(BCM)等一些包括关键功能的 ECU;或非关键的 ECU,如汽车信息导航系统内的 ECU;或在一般电子模块(GEM)中,控制诸如锁定和解锁车门、打开窗户或控制空调的功能。
考虑到每个电子控制单元在功能上都是一台小型计算机,必须进行严格的软件测试以确保其功能、可用性和安全性。
现实情况是,传统的汽车测试是昂贵的,耗时的,而且不容易重复 。目前,常用的解决方案是:硬件在环(Hardware-in-the-loop ,HIL) 和软件在环(Software-in-the-Loop ,SIL) 测试。
软件在环测试在模拟中测试和验证软件的代码,从而减少错误,提高代码质量并大大减少构建时间。
随着汽车品牌和原始设备制造商继续创新以获得竞争优势,真正的战斗是在 “代码上获胜”。无论产品的类型如何(安全、仪表盘、导航系统或其他),软件在被批准用于汽车之前必须经过广泛的测试。
SIL 的一些好处包括:
HIL 测试,顾名思义,是一种与车辆中的硬件有关的测试和验证的方法。这些模拟器或多或少是最终产品的模型,然后再将真正的 ECU 连接到测试系统之前进行彻底测试。
HIL 测试台通过实时执行数学模型,使用来自摄像机和雷达等设备的数据输入,模拟实际的汽车发动机动态。一般来说,HIL 测试比 SIL 测试更昂贵、更耗时,所以它是在 SIL 测试之后进行。
汽车软件测试很重要,除了纯粹的道路安全外,还有其他原因 -- 例如:网络安全、OEM 信任和可靠性,以及汽车品牌的良好形象。
当然,围绕汽车的硬件和软件组件的测试标准是严格的。
ISO 26262:道路车辆 -- 功能安全
ISO 26262《道路车辆功能安全》国际标准是针对总重不超过 3.5 吨八座乘用车,以安全相关电子电气系统的特点所制定的功能安全标准,基于 IEC 61508《安全相关电气/电子/可编程电子系统功能安全》制定,在2011年11月15日正式发布。
该标准适用于大规模生产的乘用车,并为公共汽车、卡车、拖车和半挂车的 E/E 系统提供指导。
ISO 21434:道路车辆 -- 网络安全
ISO 21434 是基于 ISO 26262 的后续标准,只是它特别关注汽车软件和子系统的设计和开发中的网络安全问题,目的是就重要的网络安全问题达成全行业协议,并确保整个供应链具有支持设计方法安全的过程。
该标准的主要组成部分包括安全管理、依赖于项目的网络安全管理、持续的网络安全活动、相关的风险评估方法,以及道路车辆概念产品开发和开发后阶段内的网络安全。其全称实际上是 ISO/SAE DIS 21434。
AUTOSAR
AUTOSAR(Automotive Open System Architecture),中文是 “汽车开放系统架构”,是一家致力于制定汽车电子软件标准的联盟(参与者有全球各家汽车制造商、零部件供应商以及各种研究、服务机构)。成立于 2003 年。他们制定了一套专门用于汽车的开放性的框架和行业标准,它将用作管理将来的应用程序和标准软件模块中功能的基本基础结构。虽然不要求 OEM 和制造商参与或遵守 AUTOSAR 架构,但许多世界领先的公司都参与其中。
MISRA
MISRA (The Motor Industry Software Reliability Association 汽车工业软件可靠性联会) 是位于英国的一个跨国汽车工业协会。其成员包括了大部分欧美汽车生产商。其核心使命是为汽车工业提供服务和协助,帮助厂方开发安全的、高可靠性的嵌入式软件。
他们的编码指南首次发布于 1998 年,现在涵盖了基于 C 和 C++ 编码语言的系统。同样,虽然 MISRA 是一套非强制性的标准,但它被许多行业广泛采用,因为它促进了安全和安全关键系统的安全、可靠和可移植代码的开发。
汽车系统软件测试的特殊性在于其对内部和外部不同组件的接触和适应性。一个软件一般在其开发生命周期中,都要经过严格的测试。
在现代的汽车软件产业链中,一个组件由多个不同的供应商开发,用于不同的汽车生产线,这意味着每个模块的供应商必须与共同的板上和板下组件和功能集成,坚持特定的系统架构和不同的区域生态系统 -- 这就是软件测试工程师开始做第一个噩梦的地方。
例如,一个典型的自动驾驶模块或驾驶辅助模块的测试包括从成千上万的测试里程中收集大量的实时数据。这些数据包括不同的道路类型、复杂的多层次高架桥、交通状况、外部互动,包括行人、自行车、偶然的交通或道路状况等信息。仿真测试工程师计算这些数据并在系统上多次循环播放,还要根据需要在不同测试周期的实时数据中加入自己的修改和复杂因素。这也适用于交互式信息娱乐系统的测试场景,为一辆车试驾记录的导航日志可以在多个测试车辆或模拟设置上自适应地播放多个不同的信息娱乐系统变体,以分析确定的变化。
当然,质量是任何产品的最终目标,任何软件或系统随着时间的推移都是可消耗的,并且随着周围因素的变化,必须不断地更新。同样地,当一个系统软件被更新时,最好的做法是也要升级验证测试。
我们以行业岗位招聘所透露出来的信息,管中窥豹,来看看汽车软件开发测试类岗位需要具备什么样的能力。
1.德国宝马慕尼黑的软件开发测试岗位:
2.美国阿肯色州电动汽车初创公司 Canoo Technologies 的车辆软件测试工程师岗位:
3.一家位于德国波鸿的三星集团旗下公司的汽车软件测试岗位:
4.科大讯飞设于上海的智能汽车软件测试工程师岗位:
最后,对于想入行或转行的同学,不妨参考一下。
参考来源:
https://www.qt.io/blog/quality-assurance/automotive-software-testing
https://www.telematicswire.net/automotive-software-integration-testing/