汽车行业是一个科技行业。如果你不相信我,特斯拉就是一个例子,它会卖给你一台价值5万美元的超级计算机,并随汽车一起提供。在最高层面上,软件为从发动机性能和安全性到娱乐和导航的一切提供支持。车载软件和应用程序提供实时诊断数据,并与智能手机和其他设备无缝集成(驾驶员希望如此)。
使汽车保持最新应用程序和性能增强的无线软件更新也变得越来越普遍。我们看到越南电动汽车制造商 VinFast 采用了这种技术,当公众对其车辆的性能和功能提出强烈反对时,该公司承诺在未来的软件更新中做出改变。
行业随科技而变
在讨论汽车行业的软件测试时,有两个主要因素在起作用:
1.每辆车平均有数千万行代码,原始设备制造商 (OEM) 必须快速高效地编写、集成、测试和部署代码。他们使用先进的技术来加速这个过程(稍后会详细介绍)。
2.同时,正在开发的软件已经从辅助发动机和信息娱乐功能发展到驾驶员辅助系统和自动驾驶,这增加了测试的复杂性。
与此同时,开发人员的冲刺时间正在缩短,对完美运行的应用程序的需求迫使原始设备制造商推动其新功能更接近生产开始。开发人员和测试人员需要更短的反馈循环(通过持续测试实现)来持续更新代码。
这些变化以一些熟悉的方式出现
与2020年代的许多其他行业一样,汽车行业拥抱敏捷开发,这为加速其他流程打开了大门,例如专注于持续测试的 DevOps 交付。
这种向迭代开发的转变,即团队不断编写、集成和测试代码,非常适合 OEM。API 将应用程序和功能集成在持续集成/持续部署 (CICD) 环境中,这使得开发团队能够在车辆的整个生命周期中更新代码,采用最成功的代码并在其他地方重用它,以最大限度地减少错误并降低成本。
为影响做好准备
由于各行业数字化转型的不断深入,汽车正在演变成依赖软件系统来充分发挥其潜力的互联机器。
我想到的第一个用例是发动机和传动系统。发动机控制单元 (ECU) 有助于优化性能和燃油效率。这些 ECU 使用算法来管理燃油喷射、点火正时和其他参数,从而提高燃油经济性并减少排放。在一些高端超级跑车中,这些参数是可定制的,为驾驶员提供根据他们的喜好定制的独特驾驶体验。
除了性能之外,还有更多东西。在一个注重安全的世界中,汽车行业正在推出软件作为其主要创新的一部分。车道保持辅助、自适应巡航控制和自动紧急制动等高级驾驶员辅助系统 (ADAS) 严重依赖软件算法。该软件具有在发生碰撞时制动或转向的功能,有助于减少事故并挽救生命。
与我们的讨论最相关的用例是信息娱乐系统提供的无缝连接。这些系统提供许多功能,从智能手机集成到导航、语音识别和许多其他车载应用程序。特斯拉的信息娱乐系统甚至有一个百日咳坐垫选项,可以让驾驶变得更加方便,而且我敢说,也很有趣。复杂性的增加使得需要自动化连续测试来确保可靠性。
开发和测试汽车软件的挑战
当我们深入研究挑战时,我们需要将列表分开,因为它有两层。整体测试汽车软件和测试信息娱乐系统都面临着挑战。让我们仔细看看两者。
整个行业的自动化连续测试面临以下挑战:
-
安全关键系统:确保高级驾驶辅助系统 (ADAS) 完美运行至关重要。主要挑战是创建可以严格模拟现实场景的自动化测试来测试这些功能。
-
复杂的集成:这些系统都是互连的,从 ADAS 系统开始,一直到发动机控制和信息娱乐系统。这里的挑战在于这些系统的复杂性以及保持跨车型兼容性的能力。
-
合规性:作为一个受到严格监管的行业,测试工作必须符合现行法规,以确保并证明合规性。
-
数据量和分析:我们都知道持续测试过程会产生大量数据。现在,再加上汽车系统的复杂性,您就会了解分析数据以识别问题并进行改进是多么重要和困难。
-
遗留系统:较旧的汽车仍然使用遗留的软件和硬件系统。然而,随着产品线的其余部分转向更新的系统和测试流程,这些系统仍然必须得到支持和维护,以确保兼容性。
让我们进一步深入了解信息娱乐的本质,并解决测试这些系统的一些挑战:
-
以用户为中心的测试:自动化测试必须模拟真实的用户交互,因为信息娱乐系统为最终用户提供服务。测试需要关注 UX 可用性和 UI 设计。
-
集成:这些系统与安全和导航等其他车辆系统集成。测试必须确保这些集成是无缝的并且不会影响车辆性能。
-
多模式界面:由于支持语音命令、触摸屏、物理按钮和手势,必须对每个界面进行测试,以确保全面的行为一致。
-
内容和连接:信息娱乐系统使用不同的内容源,例如流媒体服务、智能手机连接和无线更新。测试必须考虑所有这些内容格式、网络条件和兼容性。
-
性能和资源使用:这些系统必须高效运行,以免影响车辆的整体性能。性能测试需要分析CPU和内存的消耗,以保证系统的响应能力。
人工智能和机器学习正在成为装配线的一部分
当我们谈论不断期待最具创新性发展的汽车行业的自动化测试时,我们需要概述如何利用人工智能和机器学习来测试这些系统。
-
人工智能驱动的测试创建:使用自然语言处理软件等人工智能算法,可以分析需求以生成测试用例。它减少了手动创建测试所需的时间和精力。
-
智能分析:自动化测试使用机器学习生成大量数据来分析测试结果并识别缺陷模式,这将帮助测试人员确定优先级并专注于关键问题。
-
预测智能:使用机器学习模型对历史数据进行训练有助于识别与软件缺陷相关的模式。然后,模型可以使用该训练来预测新代码中存在缺陷的可能性,从而在问题成为问题之前主动消除问题。
-
自我修复:损坏的测试用例可以在测试执行过程中自动修复,有助于减轻测试维护的负担。它确保测试套件随着软件的增长和发展而继续运行。
人工智能和机器学习通过自动化重复、耗时的任务,帮助汽车制造商彻底改变自动化测试。人工智能和机器学习有助于提高测试过程的可靠性、有效性和效率。其结果是大规模、快速交付更高质量的软件。
一些大型制造商已经在采用这些技术
-
特斯拉使用人工智能来分析车队数据并识别潜在缺陷。该数据用于改进车载软件。
-
通用汽车利用机器学习进行预测智能来解决新代码中的缺陷。他们使用这些数据来确定测试工作的优先级。
-
福特使用人工智能为其信息娱乐系统生成测试用例。它可以帮助他们减少手动创建测试用例所需的时间和精力。
汽车行业越来越依赖软件,因此不断出现测试来解决质量和可靠性问题。这并非没有挑战,因为 ADAS 系统、互连组件和数据分析需要强大的测试流程。
人工智能和机器学习技术不断涌现,通过自动化重复任务和提高测试的有效性,彻底改变了自动化连续测试,这有助于缺陷预测和识别。
采用自动化持续测试并利用人工智能和机器学习将帮助汽车制造商快速可靠地为其汽车提供高质量、可靠的软件。它将确保汽车行业的未来是创新、安全和互联的。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。