前言 


汽车行业的开发模式正经历前所未有的变革,软件功能的复杂度激增、OTA更新频率提升、用户体验需求多样化……传统的“开发-测试-交付”流程正在变得捉襟见肘。面对这些挑战,CICD(持续集成/持续部署)作为敏捷开发的核心支撑,越来越多地被引入汽车研发流程,尤其是在造车新势力中已成标配。


然而,汽车不是一部手机,软件功能是否“真能跑得起来”,必须通过真实硬件环境验证。这就引出了一个关键命题:汽车行业如何将CICD扩展到硬件层面,真正形成从代码到实车验证的闭环?


本文将围绕“基于规模化HIL台架的CICD测试方案”展开,探讨其在汽车研发体系中的价值、落地思路、关键挑战与进阶方向。希望为致力于构建高效测试体系的团队,提供一份可操作的技术参考。




1

CICD:从互联网

迁移到智能汽车

CICD的概念最早在互联网行业中落地,用以解决高频次迭代与质量保障之间的矛盾。持续集成(CI)确保每次代码提交都能被自动构建与验证,持续部署(CD)则确保通过验证的软件可以自动部署到运行环境中。


这种机制已经被特斯拉等头部车企验证。详见我之前写过的一篇文章,写在懂车帝辅助驾驶测试之后——50%汽车人都在拒绝敏捷开发,我们在拒绝什么? 特斯拉在10天之内,对其Model 3进行了OTA,从而缩短了其刹车距离,让“消费者报告”将其从“不推荐”改为“推荐”。这并不是因为特斯拉有更多的人力,而是因为他们拥有更快的反馈闭环:以CICD为核心驱动的快速迭代体系。




2

为什么HIL是

汽车CICD的关键

在传统的软件行业,验证代码是否生效,只需跑完单元测试、集成测试、UI测试即可。但在汽车行业,这还远远不够。


智能座舱、自动驾驶、动力控制……这些系统都和硬件深度耦合。即使代码层面没有bug,也可能因为CAN帧响应慢、传感器读数异常等原因导致实际功能失效。因此,只有在真实或模拟硬件环境中验证,才能判定软件是否可交付。


这便是HIL(Hardware-in-the-Loop)技术的意义——它通过模拟车辆硬件与外部环境,使控制器在“拟真”环境下运行,实现对ECU功能的系统性验证。


然而问题在于:


HIL台架资源昂贵,一套动辄数十万


多人并发开发时,提交代码的频率显著提高,测试请求激增,排队现象严重


测试台架部署分散,忙的台架-在特定功能开发期间,24小时连轴转仍无法满足需求。闲的台架-由于当前阶段不涉及相关功能,完全闲置


测试结果与V模型左侧文档缺乏可追溯性,无法真正形成闭环


于是,我们需要一个更先进的解决方案。




3

中央调度+HIL测试集群

+自动追溯的CICD体系


为了破解这些挑战,我们构建了一个三层架构的测试体系:中央调度系统 + HIL测试集群 + 追溯增强的ALM系统。


它的架构图如下:





它具备如下几个关键能力:


1. 中央调度系统:实现资源的最优分配


中央调度系统负责管理所有测试资源,包括:


每个HIL台架的配置、状态、软件版本


当前队列中待测试的任务


各类测试工具(如Polartest、CANoe、ECU-TEST、Python脚本)的分布


当开发者触发CI流程(如提交代码或Merge Request)或手动触发时,系统自动:


分析测试任务所需资源


调用合适的台架


安装待测软件包


启动测试工具运行用例


调度系统还能动态分配任务负载,实现自动负载均衡,确保台架不空转也不拥堵。


2. 测试集群:从单点部署到弹性测试


测试集群由多个HIL台架组成,每个台架包含:


测试PC(搭载测试软件,如Polartest)


测试板


I/O接口


通过统一调度,这些台架从“局部服务”变成“共享资源池”,极大提升资源利用率。


3. ALM:构建测试结果与需求的闭环


传统测试报告常常只回答一个问题:通过还是失败?


但在整车V模型的背景下,我们更关心:


这个失败用例对应哪个需求?


哪些架构块受影响?


这次测试计划,是否完整覆盖所有关键需求?


为此,中央调度系统进一步将测试报告送到MappingSpace ALM,实现:


自动解析测试结果


自动关联需求、架构、设计信息


生成可视化测试覆盖度报告


点击测试结果,直接跳转至需求详情


这使得测试报告不再是一个孤立的、静态的PDF或者html文件,而是一个动态的、可交互的、可追溯、闭环的数字资产。



4

实战启示:如何从0到1构建

这样的体系?

从“小而精”的台架做起

不需要一开始就上百个台架。先选取关键子系统(如泊车、HMI交互),搭建1-2个自动化台架跑通流程,再逐步扩展。


调度系统优先构建
优先建设中央调度系统,确保流程打通,再逐步接入不同厂商/工具链的测试节点。


ALM追溯能力要“插针”式接入
不改变原有文档和工具,采用API实现文档的解析与跳转。


数据驱动优化
建立用例执行日志、失败原因统计、资源使用情况分析,从而动态优化测试策略与台架配置。