面向SDV的在环测试深度解析——持续集成篇

一、引言

在软件定义汽车(SDV)时代,软件在环(Software-in-the-Loop,SIL)测试已然成为缩短开发周期、从源头保障质量的核心环节,不可或缺。通过将SIL与持续集成/持续测试(CI/CT)环境相结合,开发团队可在每一次代码提交后自动完成软件模块的功能与性能验证,摆脱传统硬件依赖,显著缩短开发周期、降低验证成本、提升软件迭代效率。

在往期《面向SDV的在环测试深度解析------自动化测试篇》文章中,我们基于SIL KIT中间件,成功构建了集成DYNA4动力学模型、VTD场景仿真与vTESTstudio自动化测试的完整SIL闭环测试环境。那么本期文章我们将进一步探讨该自动化测试方案在云端的部署实践,及其如何与CI/CT流程无缝衔接,赋能更快速的软件迭代周期。

二、CI/CT云端环境搭建

为实现 SIL 测试的自动化、云端化与规模化执行,本方案基于云原生架构搭建统一的 CI/CT 测试环境,以 Kubernetes (K8S)平台完成容器化资源调度与环境编排,构建标准化、可弹性扩展的云端测试底座。

整体环境采用"代码 + 模型 + 配置 + 工具"全托管模式:

  1. 以GitLab作为代码与工程配置托管平台,统一管理测试脚本、仿真模型、总线配置等关键资产
  2. 以Jenkins作为流水线调度引擎,负责构建、部署、测试、报告的全流程自动化编排
  3. 以K8S平台作为 DevOps 管控入口,实现集群资源可视化、任务状态监控与环境生命周期管理。

在仿真层面,方案采用模块化、松耦合架构,各组件通过标准化接口协同工作:

  1. CANoe SE 提供测试脚本执行基础能力
  2. DYNA4 导出面向 Linux 环境的车辆动力学 FMU 模型
  3. vVIRTUALtarget 导出符合 AUTOSAR 标准的 ACC 算法 vECU 模型(.fmu)
  4. SIL KIT承担仿真总线与数据分发核心作用,实现各工具、各模型之间实时的数据交互

运行时,CANoe SE、SIL KIT、FmuImporter 等工具均以容器化方式部署在云端 K8S 集群中,按需调度、弹性扩缩。仿真所需的 rtcfg 工程文件、FMU 模型文件、SIL KIT 配置文件、脚本与参数文件统一纳入 GitLab 版本管理,确保环境可回溯、可复现、可协同,为后续自动化持续集成测试提供稳定可靠的环境基础。

图1 CI/CT环境

三、CI/CT持续集成测试

本文以往期《面向SDV的在环测试深度解析------自动化测试篇》文章中的SIL Demo为例阐述CI/CT全流程。

  1. Docker镜像打包/上传

将用到的工具链打包成Docker镜像后推送至Harbor仓库,包含的镜像有:

  1. CANoe SE程序 + 自动化脚本运行环境
  2. SIL KIT程序 + 运行环境
  3. FMU模型运行环境FmuImporter程序

标准化镜像保证每一次构建与测试都运行在完全一致、可复现的环境中。

图2 Harbor仓库

  1. 代码提交

研发工程师将测试脚本、算法模型、动力学模型、流水线配置等提交至 GitLab,每次Push后Jenkins会自动触发CI Pipeline,主要文件包括:

  1. 自动化测试脚本
  2. 算法模型
  3. 动力学模型
  4. 流水线配置Jenkinsfile文件

图3 GitLab仓库

  1. K8S平台触发Jenkins任务

代码提交后,K8S平台作为统一管控平台自动监测变更,通过内置DevOps工程触发Jenkins流水线:

  1. 自动监测代码变更
  2. 触发Jenkins流水线
  3. 动态分配Kubernetes资源
  4. 自动从Harbor拉取测试镜像

整个资源调度与任务分发过程由K8S平台统一编排,无需人工干预,实现测试环境的按需创建与销毁。

图4 K8S平台流水线任务

  1. CANoe SE自动执行测试

测试环境创建完成后,CANoe SE以命令行模式自动运行vTESTstudio测试脚本:

  1. FmuImporter加载模型文件
  2. SIL KIT建立各模型与工具间的通信
  3. CANoe SE命令行自动执行测试脚本

执行完毕后,测试报告将自动归档至指定存储位置,或通过邮件通知反馈给开发团队,完成CI/CT全流程闭环。

图5 CANoe SE测试结果

四、优点

  1. 开放性:SIL KIT开源中间件生态比较丰富,灵活可扩展,可以兼容SIL测试中各种常用软件ECUTEST、CarMaker、DYNA4、VTD、几乎所有vECU生成软件。
  2. 适应性:适用于所有ECU的SIL测试,可兼容AUTOSAR与非AUTOSAR软件测试,同时支持本地化、公有云和私有云部署。
  3. 云原生:基于 K8S 容器编排技术搭建 CI/CT 云测环境,无缝集成 Harbor、GitLab、GitHub、Jenkins 等工具链,实现环境标准化、弹性调度与自动化测试闭环。

五、

在软件定义汽车时代,软件在环(SIL)测试与持续集成/持续测试(CI/CT)的深度融合已成为加速软件交付、保障质量稳定性的关键路径。该方案消除了硬件依赖,实现了测试环境的弹性调度与可复现性。展望未来,随着云原生技术持续成熟,仿真测试将向深度数字孪生、AI 驱动智能用例生成、全生命周期持续测试方向深度演进。通过将CI/CT流程与研发工具链更紧密地集成,并结合数据驱动的方法优化测试覆盖率和执行效率,汽车软件开发有望实现真正的"测试左移"和更短的反馈周期。Vector工具链也将持续赋能汽车电子研发,助力行业迈向更智能、更高效的验证新阶段。

仿真驱动研发,数据定义体验,闭环验证未来。东信创智将竭力为您提供高效、可靠的智能驾驶XIL测试解决方案,欢迎随时联系我们的团队,或将需求发送至邮箱market@dotrustech.com,了解更多详细信息。

相关推荐
测试那点事儿31 分钟前
第8章 零基础接口自动化到 Jenkins 持续集成【云服务器安装 Docker 并部署 Jenkins】
ci/cd·自动化·jenkins
测试员周周17 小时前
【免费福利】AI测试:测试技能包进阶:造数、压测、视觉回归、CI 全流程串联
开发语言·人工智能·python·功能测试·测试工具·ci/cd·测试用例
梵得儿SHI2 天前
(第三篇)Spring AI 架构设计与优化:容器化与云原生部署,基于 K8s 的 AI 应用全生命周期管理
java·ci/cd·docker·云原生·kubernetes·容器化·spring ai
zhangfeng11333 天前
CI/CD 是软件开发中的两个核心实践,合起来指代一套自动化的软件交付流程
运维·ci/cd·自动化
前端不太难3 天前
鸿蒙游戏 CI/CD:为什么你还在手动打包?
游戏·ci/cd·harmonyos
牛奶咖啡133 天前
CI/CD——使用Jenkins自动化构建java项目之使用传统方式部署java web项目jpress
ci/cd·jenkins·jenkins创建任务·实现jpress的自动化部署·git的ssh主机密钥问题解决·配置ssh免密登录·在线安装jdk1.8环境
牛奶咖啡134 天前
CI/CD——使用Jenkins实现自动化部署与持续集成之jenkins插件与凭据配置
ci/cd·jenkins·jenkins必备插件安装·jenkins全局工具配置·jenkins的凭据配置·jenkins自动化部署流程·jenkinsgitlab集成
庚昀◟5 天前
腾讯云 CVM + Docker + Jenkins + GitLab CI/CD 全流程指南(python、flask实现简单计算器)
python·ci/cd·docker·flask·jenkins
牛奶咖啡135 天前
CI/CD——使用Jenkins实现自动化部署与持续集成
ci/cd·jenkins·jenkins是什么?有啥用·jenkins有哪些适用场景·jenkins的优缺点·jenkins的安装部署·jenkins安装必备环境
测试那点事儿6 天前
第10章 零基础接口自动化到 Jenkins 持续集成【定时监控与邮件告警完整落地】
ci/cd·自动化·jenkins