汽车软件开发的下一阶段是什么样的?
文摘
2024-09-24 07:00
上海
多年来,汽车行业一直在朝着软件定义汽车的方向发展,在这种汽车中,更多的特性和功能主要通过可快速轻松更新的软件来实现。
如今,数千万行代码为汽车提供动力,但汽车行业的发展还仅仅停留在表面。连接性、自主性和用户体验方面的巨大变革还在后头,而每项创新都需要复杂的软件来运行。确保开发人员拥有卓越的工具、流程和结构来高效地创建、测试和更新软件,是整个行业的当务之急。答案在于持续集成和持续部署(CI/CD),但该平台必须拥有强大的云原生开发和协调环境,既能实现实时的全球协作,又能执行汽车应用所需的严格、广泛的测试。
随着软件将汽车的安全性、舒适性和便利性提升到新的水平,开发人员现在需要比传统系统更现代化、功能更强大的软件开发环境。过去,软件开发遵循僵化、缓慢的 “瀑布式 ”方法,并使用高度分散的工具链。开发过程会经历几个不连续的阶段,每个阶段完成后才开始下一个阶段。许多开发流程都是手动完成的,从工具链的一个部分到下一个部分也是如此。在这种方法下,一个新版本的软件需要六到八个月的时间才能出现。如今,在汽车领域,软件与硬件的抽象程度越来越高,开发人员有机会利用这一架构转变。他们可以使用现代敏捷和 DevOps 方法,按照自己的计划更新软件,速度更快,而且不受硬件变化或其他物理更新的影响。这种方法可提供前所未有的速度、可扩展性、质量和安全性。在持续集成(CI)中,构建软件的工作是自动化的,软件生产的所有步骤都包含在 “CI 链 ”中,因为一个部分的输出将成为下一个部分的输入。持续部署(CD)是在现场自动部署软件的新版本。CI/CD 以及持续测试(CT)现在在汽车行业已经成为可能,但在汽车行业,测试新的先进应用程序是一个独特的问题,因为测试需要在实体车辆上或在测试台上的复杂模拟中进行。例如,想象一下测试软件的复杂性,该软件需要分析来自多个雷达和摄像头的输入,以便自动执行一个动作,如在高速公路上超越一辆速度较慢的汽车,或在有车辆、行人和其他障碍物的复杂城市环境中导航。
当开发人员每天要编写数百万行代码时,传统的软件开发、测试、集成和部署方法已难以为继。对 HIL 测试的要求意味着,当代码变更在 CI 过程中被集成到软件中时,CI 系统必须实际位于 HIL 工作台旁边。这种方法有许多缺点: - 在需要几分钟或更短时间内完成的情况下,一次构建可能需要数小时。这是一个影响上市速度和质量的重要瓶颈,因为较长的构建时间往往会导致执行自动测试的时间减少。如果构建时间过长,就会消耗宝贵的时间,而这些时间本可以更好地用于额外的测试或功能开发。- 传统基础设施成本高昂,缺乏规模、安全性和程序间的灵活性。- 每个程序都要从头开始,不能重复使用代码或使用现成的解决方案。- 由于没有普遍接受的软件方法,影子 IT 不可避免地会悄然出现,这意味着开发人员有时会使用自己喜欢的工具。这不仅会造成效率低下,而且由于 IT 部门对开发流程缺乏可视性,还可能带来安全风险。而且,当开发人员使用不同的工具集时,他们就更难与客户或彼此协作。- 同一软件程序的 CI 链分布在全球多个技术中心,每个中心都有自己的 HIL 测试台。没有标准的方法,公司就无法进行云开发,也无法实现全球标准化所带来的一致性和可重复性。- 随着多个团队甚至供应商为当今的移动软件产品做出贡献,集成点的增加导致了质量、交付和时间问题的增加。最佳做法是尽早并经常集成代码,但传统方法会在开发过程中创建不灵活的门,导致在下一个合并门之前无法测试问题。这导致整个项目出现不必要的延误。
由于汽车是生命安全系统,汽车公司长期以来一直采用以需求为中心的方法来设计和测试汽车。他们根据一系列要求对系统进行验证,以确保安全和法律方面的考虑因素得到妥善解决--事实上,该行业的 ISO 26262 功能安全标准要求对功能的每个要求进行测试。简而言之,制造商必须证明他们的解决方案在推出的第一天就符合规格要求,而且在推出后的每一次更新中,他们都必须确保昨天还能正常工作的所有功能今天依然能正常工作。在过去 10 年中,汽车行业应用中的软件需求数量已从数百种增至数万种。其中许多要求都必须通过嵌入式软件进行测试,这些软件必须运行在与汽车中相同的电子控制单元(ECU)硬件上。测试还必须实时进行,以确保响应时间可预测,这意味着每次测试平均需要几分钟时间。此外,软件通常分布在多个 ECU、传感器和其他设备上,并可能由不同公司同样分布的团队开发。这些因素导致公司在多个地点使用多个 CI 链,所有 CI 链都有自己的 HIL 测试台,并且都为同一个项目做出贡献。更好的方法是为每个项目创建一个统一的工具链。该工具链应基于云,并在全球范围内可用。此外,还应建立一种机制,以便快速、轻松地部署新的工具链。基于云的工具链具有可扩展性,可确保 CI 构建时间不会成为瓶颈--这一点非常重要,因为瓶颈会压缩测试时间,延误开发。使用基于云的方法,开发过程不会产生摩擦,因为代码更新会在各开发团队之间共享,因此每个人都能对项目的状态了如指掌。这样就能提高自动化程度、实现远程故障排除、快速反馈、明确团队任务和产品所有权。使用基于云的 CI 意味着开发团队创建的新代码会自动集成到更大的代码库中,而基于云的 CD(使用空中下载(OTA)更新)可确保成功构建的代码自动部署到测试或生产环境中,无论它们位于何处。如果操作得当,云方法还能在整个过程中建立安全性,包括灾难恢复。云中托管的集中式基础架构可以实现对所有这些高度安全和弹性的 CI 链的单一管理视图。此外,这种灵活性还允许开发人员在开发周期的后期完善产品。开发人员不必在今天就决定消费者几年后的需求,而是可以在前一年就确定需求,并根据这些需求进行测试,从而构建出更接近消费者期望的系统。然后,他们就可以在未来几年内根据需要部署 OTA 软件更新,从而降低保修成本,确保软件持续满足消费者的期望。测试是汽车行业的关键所在。以每英里 7 到 10 美元的价格计算,将新软件实际装载到汽车中并进行可能需要数十万英里的试驾,以确保软件在各种驾驶条件下都能正常运行,这样做的成本极高,更不用说耗费时间了。模拟程序使为汽车行业编写软件的公司能够降低成本,同时提供灵活性和可重复性。此外,通过仿真路线,企业可以在开发过程中测试复杂解决方案的代码片段或组件,而不是等到整个产品完成后再进行测试,然后返回进行修正,然后再重新进行测试。利用仿真技术,结合 SIL 或 HIL,可以对日常构建进行测试和验证。多线程 SIL 或 HIL 可以同时进行多项测试,而不是按顺序进行,这也节省了时间,提高了效率。SIL 测试完全在软件生成的建模环境中进行。SIL 测试的优点是不需要特殊硬件(几乎可以在任何笔记本电脑或其他计算平台上进行),最适合在设计的早期阶段进行测试。在 HIL 测试中,系统为 ECU 模拟车辆和环境输入,使其认为自己连接到了真实的车辆。HIL 工作台包含所有相关的车辆组件。模拟器向实际的摄像头和雷达系统提供输入,这些系统反过来向被测系统发送信号,以观察它是否对输入做出正确响应。例如,测试脚本可以创建这样的场景:一辆汽车在雨中以 60 英里/小时的速度在弯道上行驶,遇到路面上的不明物体或迎面而来的汽车横穿中线。连接到 HIL 测试台的摄像头和雷达会向 ECU 发送图像,而被测系统必须实时处理这些数据,并决定采取何种行动。利用这些方法,Aptiv 测试人员每天可以执行 100 多万次对象级模拟,每天通过真实的传感器模拟(包括雷达和摄像头输入)“行驶 ”20 万英里。
这些模拟还允许测试人员快速测试罕见或潜在危险的用例。 通常情况下,测试人员可能需要行驶数百或数千英里才能重现特定的驾驶条件或组件故障。模拟可按需进行测试,重新模拟特别具有挑战性的场景,展示不同版本的软件如何对相同的输入做出反应。基于开放标准和敏捷软件开发原则的全球集成云原生架构消除了传统瓶颈,为开发汽车行业先进软件的公司带来了关键优势。这些优势包括- 性能:基于云的全球可用架构可实现从世界任何地方远程集中控制测试台。这提高了可扩展性和灵活性。- 速度:自动化可将构建时间缩短 80%。公司可以通过基于容器的架构和代码合并去瓶颈的方法消除瓶颈。他们可以只重建和测试发生变化的部分,从而将部署速度提高 60%。- 共同开发:当多个合作伙伴可以针对彼此的代码进行实时测试时,每个人都能在供应商提交代码的同一天发现、修复和测试集成问题。其结果是为原始设备制造商快速、高质量、低风险地交付复杂的软件功能,以及在后期制作中进行经济高效、简化的维护和增强。- 质量与远程 SIL/HIL 测试台的完全集成(这是汽车行业敏捷开发的传统挑战)可提高产品质量,因为开发人员可在任何地方进行测试,并可同时进行无限次测试。- 透明度:无论项目规模、复杂程度或地点如何,整个团队都能全面了解所有软件开发链的最新状态。可以执行和支持 CI 最佳实践,并在质量受到影响之前发现问题。这也大大简化了安全策略的执行。Aptiv 在其 CI 软件开发工具链中使用了基于云的放大/缩小技术,允许并行进行多个测试。这支持了新的工作方式,使功能的定义更接近发布日期,而不是在开发之初。此外,它还实现了 Aptiv、原始设备制造商和第三方开发人员之间的深度合作,他们都在使用相同的工具集,并在相同的仪表板上实时工作。结果令人印象深刻。如今,该平台每天要构建和测试 1,000 万行代码,在速度和质量上都有了突破性的提高。例如,在应用 Aptiv 的工具链之前,一个高级安全系统的完整构建时间超过 12 小时,虽然它是基于当前的行业标准构建技术,但它要求在开始下一个构建之前完成整个构建过程。Aptiv 为每个客户项目驱动和记录 40 万至 100 万英里的数据。这个庞大的原始感知和场景数据数据库包括来自世界各地各种环境、一天中不同时间段和各种天气条件下的雷达和摄像头数据。产品开发人员可以分析日志文件,了解 Aptiv 传感器和控制装置与原始设备制造商的车辆作为一个整体系统是如何相互作用的,然后利用这些数据为进一步开发提供信息。该平台可将构建时间平均缩短 70%。消除了汽车 CI 中最大的瓶颈,使每次构建都能完整执行更广泛的测试集,从而实现质量上的飞跃。它有助于实现持续测试的一个关键活动,即代码合并门,它包括一次完整的构建,然后在每次代码签入时全面执行自动测试。汽车解决方案复杂性的指数级增长已经超过了基于静态基础设施的传统 CI 链的能力。Aptiv 的 CD 平台通过采用全新的云原生方法(包括智能构建和弹性基础设施技术)解决了这些挑战。利用这些技术,该平台可以轻松地从几十个并发构建扩展到几百个并发构建,并自动为代码构建和测试的最佳执行提供恰到好处的计算量。新的 CI 链可在几分钟内部署完毕,不会出现瓶颈。单一管理视图可实现全球所有 CI 链的可见性,并内置安全和灾难恢复功能。只需点击一下按钮,就能推出更新,而且每次冲刺都会集成增强功能。此外,工具链还提供需求和流程合规性的全面可追溯性,包括支持 ASPICE 和 TISAX 3。结果:降低了开发成本,加快了上市速度,提高了灵活性,并实现了 Aptiv、原始设备制造商和第三方之间真正的实时共同开发。过去,开发人员手动测试软件。软件每月发布一次,测试时间几乎与此相当。随着每次构建的代码行数急剧增加,不可能再继续使用这种方法。随着 Aptiv 在大型汽车软件项目的开发和测试方面积累了丰富的经验,我们也对所面临的挑战和解决这些挑战所需的工具有了深刻的了解。如今,得益于 CI/CT 管道,96% 的测试流程实现了自动化,执行时间以天计算,即使需要测试的需求更多。我们将继续提高自动化水平,将完整构建的测试窗口缩短到 6 到 10 个小时的单个工作日。Brian Murphy 热衷于利用尖端技术和流程提高产品开发的质量和效率。他在金融、卫生、电信和汽车行业的软件开发、架构和管理方面拥有超过 25 年的经验。建立高绩效团队、以业务速度交付和超预期创新是布莱恩作为标准工作实践的三个核心价值观。--------------------------
水轻言
探讨汽车软件项目管理、质量管理及AI数字化。