在智能汽车软件研发中,标准化流程是保障质量与合规的基石。ASPICE与ISO 26262等标准要求开发团队在功能安全与过程成熟度之间保持平衡,但随着车载软件复杂度持续增加,传统CI/CT流程在动态测试环节依然严重依赖人工用例,导致效率与覆盖率难以满足高频迭代的需求。
人工智能(AI)的引入,为这一困境提供了全新的最佳实践范式:AI能够基于需求自动生成高覆盖率的测试用例,并通过CI/CT流水线与标准化流程无缝衔接,从而实现“需求即测试”的端到端闭环。这不仅提升了效率,更推动CI/CT流程从自动化走向智能化。
标准化流程的重要性
在汽车软件开发中,ASPICE(Automotive SPICE)和 ISO 26262 是广泛采用的两个重要标准:
- ASPICE:为软件开发与验证过程提供规范,旨在提升过程成熟度;
- ISO 26262:专注于汽车电子与电气系统的功能安全。
虽然两者聚焦的重点不同(ASPICE 关注过程稳定性,ISO 26262 关注安全性),在测试与验证环节却有高度的契合,特别是在以下测试阶段:
- 单元测试(ASPICE: SWE.4, ISO 26262: Part 6 - Section 9)
- 集成测试(ASPICE: SWE.5, ISO 26262: Part 6 - Section 10)
- 软件合格性测试(ASPICE: SWE.6, ISO 26262: Part 6 - Section 11)
在这三大测试阶段中,CI/CT 起到了将流程落地与工程自动化的核心作用,使得开发过程既符合规范要求,又能够持续优化和反馈。通过 CI/CT 流程的自动化,开发团队能够在软件开发的各个环节中实现更高的效率与准确性。
AI技术下的CI/CT 的分阶段最佳实践
在传统CI/CT的自动化框架基础上,引入AI可实现需求/代码自动解析、测试用例自动生成与标准化导入,推动验证工作从“阶段性执行”转变为“持续运行”。其核心理念是:“每次提交即一次验证,每次变更都可追溯”。这一理念推动了从单元测试到集成测试,再到软件合格性测试的全流程标准化管理。
1. 软件单元测试
在软件开发过程中,单元测试是确保代码质量的最基本步骤。传统的开发流程中,动态测试由于需要人工介入,往往会远远滞后于开发进度,导致后期修复成本较高。通过引入 CI/CT,并借助AI自动生成测试用例,静态检查与动态测试被前置至代码提交阶段,问题能够早期发现并修复。
- 静态模型测试:在提交模型文件至版本管理系统后,CI/CT平台自动触发静态分析工具(如 MXAM)对模型进行规范检查,生成的测试报告自动上传至测试管理系统,并通过企业通讯工具通知相关人员。
- 动态模型测试:CI/CT平台检测到模型变更后,然后调用模型测试工具(如TPT)创建测试工程并完成测试环境配置。TPT内置的 TASMO 功能可根据模型逻辑自动生成高覆盖率的测试用例,随后由平台自动执行测试并生成报告。测试报告最终会被上传至版本管理与需求管理平台,实现全流程的闭环管理。
- 模型生成代码:在模型测试通过后,系统会自动生成目标代码并回传至版本管理工具,同时由CI/CT平台统一调度,记录构建产物并通过邮件通知相关人员,确保代码生成与交付过程的可追溯与高效性。
- 静态代码测试:在检测到代码提交后,CI/CT平台自动调度工具(如 QAC)对手写代码进行静态分析,发现潜在的代码问题,并生成报告,自动上传分析结果,通过邮件或即时通讯工具通知相关人员。
- 动态代码测试:当CI/CT平台检测到代码变更时,自动从需求管理平台中获取对应代码的测试需求,会自动调用专业领域大语言模型的API,对代码结构进行解析,基于函数逻辑生成覆盖度测试用例,同时结合需求描述生成功能性测试用例。随后,CI/CT平台调度代码测试工具(如VectorCAST),完成测试环境适配、用例加载与执行,并自动生成测试报告,上传至管理平台,并将结果实时通知相关人员,实现需求验证与覆盖度验证的双重保障。
2. 软件集成测试
集成测试是确保模块之间接口一致性与系统行为稳定性的关键环节。在传统流程中,模块接口变动频繁,集成测试无法及时跟进,导致缺陷漏测或被覆盖。通过 CI/CT,集成测试流程得到标准化,测试结果实时反馈,提升了团队的响应速度。
- 模型集成测试:CI/CT平台自动触发静态和动态模型测试,平台自动比对模型与代码的接口一致性,识别潜在冲突,并生成风险报告。模型代码生成后,自动集成至主工程,与手写代码一起进行后续测试。
- 代码集成测试:通过执行 QAC 静态分析和 VectorCAST 动态测试,对整个系统的集成进行验证,实现闭环追溯。
- 编译验证:在每次集成后,CI 流程自动拉取最新代码,执行编译与构建操作,确保每次提交都能够顺利集成,并及时通知责任人。
3. 软件合格性测试
软件合格性测试是验证软件系统在真实硬件环境中能否稳定运行的最后环节。通过 CI/CT,合格性测试流程被完全自动化,从烧写到台架测试,所有环节都能实现自动执行,确保系统在目标平台上的稳定性和功能完整性。
- 自动刷写阶段:当构建产物或台架测试工程在版本管理平台发生变更时,CI流程会自动触发,获取上一阶段生成的刷写文件(如 HEX/S19),并调用刷写工具(如 CANoe、UDE、劳德巴赫等)完成自动烧录。烧录结束后,系统会记录日志并通过邮件通知相关的开发与测试人员,确保信息及时同步。
- 台架测试执行:CI流程会自动拉取测试工程并配置对应的台架环境,随后调用台架工具(如 CANoe、ecu.test)执行测试工程并自动运行对应的测试用例。测试结果会被上传至版本管理仓库、测试管理平台和需求管理平台,实现需求与用例的双向追溯,同时系统会将结果实时推送给对应负责人,支持按项目或功能模块快速定位与追溯。
AI加持下CI/CT解决方案
在CI/CT的标准化落地过程中,企业往往会面临以下共性挑战:
- 工具链整合:不同测试工具之间缺乏统一接口,难以自动化衔接;
- 用例维护:人工维护测试用例成本高、易失真;
- 协作流程不统一:开发、测试、运维团队之间缺乏一致的方法论。
北汇信息已有成熟的解决方案:
- 通过与主流工具厂商的合作,打通MXAM、TPT、VectorCAST、QAC、ecu.test等市面主流工具,实现自动化集成;
- 搭建统一的测试管理平台,支持用例的自动同步与版本控制,降低人工维护成本;
- 制定标准化CI/CT流程手册,并提供培训和辅导,确保不同团队高效协作。
在AI深度融合的过程中,又带来了新的挑战:
- 需求规范性不足:测试需求的不完整或不规范,会直接影响AI生成用例的准确性与覆盖率。
- AI输出的不确定性:由于AI本身可能存在“幻觉”问题,生成的用例未必完全符合实际需求或准确反映系统行为,这可能引发测试用例失效或遗漏。
针对这一点,北汇信息可提供方法论与指导:例如,指导客户建立标准化需求模板、制定需求编写规范,从源头保障AI生成用例的质量。同时,依托VectorCAST等工具支持自然语言用例导入的能力,北汇信息可指导企业通过AI生成符合格式的用例文件,实现自动化导入和执行,逐步形成从需求到验证的闭环。
为了应对AI输出的不确定性,建议客户建立质量控制环节,这不仅限于通过人工审核来确保AI生成的测试用例符合功能安全标准。比如:客户可以通过多智能体机制(例如,一个智能体生成测试用例,另一个智能体进行验证),对AI生成的测试用例进行二次检查与验证,确保测试用例准确覆盖需求并反映系统的正确行为。通过这种方式,可以发现AI可能忽略的细节问题,避免误判导致的测试失效或遗漏,从而确保测试质量和系统安全性。
结语
AI赋能下的CI/CT不仅是效率的提升,更是标准化流程的升级。北汇信息凭借在工具链集成、流程标准化和AI自动生成测试用例的经验,帮助企业构建起符合ASPICE与ISO 26262要求的CI/CT体系。通过AI驱动的自动生成、自动导入与自动验证,研发测试团队不仅能够提升效率,还能建立起可追溯、可迭代、可扩展的全新测试体系,推动CI/CT真正迈入智能化阶段。