专注于产品开发平台解决方案

汽车软件测试:需求和最佳实践
分享:

本文翻译自:Automotive software testing: requirements and best practices

原文作者:Qt Group 市场经理 Sebastian Polzin

校审:Tengxiao Yu


本篇博文将浅析汽车软件行业的前景、汽车软件行业的近期发展、汽车软件测试相关的立法规定,以及推出GUI产品的公司如何利用汽车软件测试在日益动荡且充满挑战的市场中保持竞争力。

汽车软件行业前景

预计到2030年,汽车软件市场将迅速增长,预计将从2019年的310亿美元增加到约800亿美元。这意味着整个市场的复合年增长率将超过9%,尤其是信息娱乐、网络连接、安全性和互联服务的复合年增长率将达到9.1%。

这意味着汽车行业像许多其他行业一样,正在经历前所未有的创新、技术进步,以及随之而来的竞争。虽然汽车及零部件制造商都竞相保持盈利,并试图保持行业领先地位,但这场交锋的主战场发生在汽车软件的后台,在代码的字里行间轮番上演。

汽车测试概述

大多数人对于汽车测试的第一印象就是碰撞测试、速度测试和其他机械干预的测试。但实际上,大多数的汽车测试早在汽车组装完毕之前就已经完成了。

一辆汽车上的零部件大约有3万个,由数十家合作制造车辆的原始设备制造商(OEM)提供。无论是硬件还是软件,每个汽车部件在最终组装之前都经过了数十万次测试,在汽车上路之前更是如此。

汽车软件测试

如今上路的车辆,无论是标准轿车还是高性能车辆,都是由软件驱动的。一辆2022年生产的汽车可能安装有多达150个电子控制单元。

电子控制单元(ECU)是控制汽车某一特定功能的小型计算机。在ECU出现之前,机械系统利用点火时机、燃料、空气和发动机旋转来运作。而现在,所有的必要步骤都被编程至ECU内部的芯片中。

汽车上一些常见的ECU示例包括关键功能ECU,如发动机控制模块(ECM)和制动控制模块(BCM);或者非关键ECU,如汽车信息导航系统中的ECU,或者控制锁定和解锁门、打开窗户或控制空调等功能的通用电子模块(GEM)。

考虑到每个电子控制单元都在功能上等同于一台微型计算机,这些ECU模块必须经过严格的软件测试,以确保它们的功能性、可用性和安全性符合要求。

现实情况是,传统的汽车测试既昂贵又耗时且不易重复的。多亏了技术的进步,为我们带来了这个问题的解决方案:硬件在环仿真(HIL)和软件在环仿真(SIL)测试。

软件在环仿真(SIL)测试

软件在环仿真测试通过模拟环境中测试和验证软件代码,能够消除bug、提高代码质量并显著缩短构建时间。

在各大汽车品牌和OEM厂商试图通过不断创新以夺得竞争优势的背后,真正的交锋发生在代码的字里行间。无论是何种类型的产品(安全、仪表盘、导航系统或其他),软件在获准用于车辆之前都必须经过广泛测试。

SIL的优点包括:

  • 软件测试可随每个程序模块完成后定期进行测试,而无需等待最终构建

  • 测试可以实现自动化并同时运行

  • 测试结果可共享且易于分析

  • 它可以将软件开发与硬件开发分离,因此软件制造商可以在不受硬件行业瓶颈制约的情况下持续创新

  • 无需要专用的测试台(下文中提到的HIL测试则需要此类测试台)

  • SIL测试易于扩展、可重复性高并且比手动测试更快

硬件在环仿真(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),即汽车开放系统架构,由全球汽车制造商、零部件供应商、服务提供商及汽车电子、半导体和软件系统公司建立,目标是为汽车ECU创建一个全球开放且标准化的软件架构。虽然OEM厂商和汽车制造商不需要参与或遵守AUTOSAR架构,但许多世界领先的公司都选择遵循该架构进行实践。

MISRA

MISRA是一个汽车安全组织,由供应商、工程咨询公司、静态代码分析师和OEM制造商组成。MISRA编码标准指南于1998年首次发布,现已涵盖基于C和C++编码语言构建的系统。同样,虽然MISRA是一套非强制性标准,但由于它有助于关键安保系统中安全、可靠和可移植的代码开发,所以它仍然被许多行业广泛采用。

汽车软件测试最佳实践示例

虽然产品在车辆中的功能(安全关键、机械、美学等方面)会影响所需的安全测试水平,但无论产品如何,软件测试的最佳实践始终如一。

在实际情况中,您需要考虑的是如何选择适合某项测试的工具。例如,生产制动系统的OEM可能需要复杂的HIL测试,而信息娱乐或导航系统可能只需要SIL测试。

汽车产品的GUI自动化测试

Squish是一款用于跨平台桌面端、移动端、嵌入式和Web应用程序的GUI自动化测试工具。在汽车测试方面,Squish通常用于测试导航系统、触摸面板、仪表盘和前面板。

为什么Squish适用于汽车GUI测试

汽车软件的用户界面近年来变得越来越生动,动画效果令人眼花缭乱。在这种情况下,从GUI的角度进行测试具有挑战性,因为视觉元素都在不断变化,而您需要确保应用程序的状态和您的测试保持同步。

如果我们从手动测试的角度来测试动画,那么测试人员需要手动截取屏幕截图,然后比较指示器是否在正确的位置、颜色是否正确、动画速度是否正确(如果指示器需要按预期设定移动)。

在Squish的帮助下,我们的目标是模拟终端用户的行为。Squish能够完全按照终端用户的方式自动与应用程序交互(单击、拖放、触摸)。Squish还可以截屏以检查应用程序的当前状态,以及图像是否按照设计和开发团队的预期呈现。

Squish提供的缓解风险的功能包括基于图像的测试,使用多个验证点来检查视觉外观是否符合预期。它还支持光学字符识别(OCR)引擎,帮助验证文本和数字是否按预期显示在屏幕上。


行业痛点
解决方案
应用案例