软件行业|Parasoft与IAR的嵌入式DevOps测试集成
Parasoft C/C++test 是一款专业的自动化软件测试工具,为嵌入式开发提供高质量的代码保障。覆盖了静态分析、单元测试与运行时错误检测等多个关键环节,能够与 IAR 开发工具有效互补,共同提升代码质量。二者在嵌入式、消费电子及工业控制领域应用很广泛。
IAR Systems于1983年在瑞典乌普萨拉成立,30多年来一直为嵌入式系统提供一的开发工具。这家领先的嵌入式开发软件和服务提供商专门从事C和C++编译器、调试器以及其他工具,用于为8、16、32位和64位处理器开发和调试固件。
挑战
嵌入式软件团队在向DevOps转型、采纳CI/CD的过程中,挑战具体体现在工具链与工作流程的整合上。开发人员在引入现代CI/CD工具链并实施持续集成管道时,主要面临三大困难。
1. 获取有关代码的反馈。
2. 及时地、尽早地获得有关代码的反馈。
3. 源代码质量差,减慢了下游审查和测试的速度。
为了提高开发效率和产品质量,致力于寻求实现CI/CD管道全流程自动化的解决方案。迁移到 CI/CD工作流程是一回事。自动化是另一回事。
方法
通过自动化CI/CD工作流程,开发人员几乎可以即时获得有关代码的反馈。为了将自动化无缝融入到工作流程中,开发人员需要构建工具和自动化软件测试技术。
IAR Systems的工具作为DevOps管道的一部分,集成到绝大多数持续集成构建系统中。除了CI/CD和自动化之外,Linux开发平台、具有动态分支方法的基于Git的工作流程以及docker 化工具链正在成为团队整合到其环境中的关键组件。
一套协同工具是无缝CI/CD管道不可或缺的一部分。比如:
- 编排
- 版本控制
- 构建、分析和测试工具
- 容器化开发环境
持续集成环境的工具组件。资料来源:IAR Systems
解决方案
为满足嵌入式团队对IAR工具链的自动化需求,IAR Systems与Parasoft通过工具集成,实现了以自动化CI/CD为核心的现代开发工作流程
采用DEVOPS进行嵌入式软件开发
通过IAR Systems和Parasoft的集成,开发和运营可以在整个 SLDC期间进行通信,包括:
- 开发软件。
- 查找和修复错误。
- 添加新功能。
DevOps 理念虽可应用于嵌入式软件开发,但其面临其他软件领域少有的约束。目标硬件资源受限可能影响工具链选型与可执行的测试类别,然而CI/CD流程的基本构成要素保持一致。
将传统的构建系统升级至CI/CD流水线,最佳方法是从简单的目标着手,例如:
- 将生成系统与业务流程协调程序集成。
- 通过软件的静态分析开始分析代码质量。
- 采用自动化单元测试。
持续集成流水线的关键,在于工具链需支持基于命令行的自动化操作,并主要运行于Linux服务器环境。所以IAR Systems 推出了其工具的Linux版本,这对嵌入式团队顺利引入CI/CD工作流具有重要意义。
使用Docker容器开发环境提高生产力
容器化开发环境近年来在软件团队中迅速普及,因其能够提供一套易于部署、版本可控且为所有开发者保持一致的工具链。可通过将适用于Linux的IAR构建工具进行容器化封装,并与Parasoft C/C++test配合使用,从而有效提升开发灵活性与整体效率

使用IAR Systems工具链的容器架构。资料来源:IAR Systems
与典型的CI工作流程集成
IAR Systems 的工具能够实现与典型CI工作流的全面集成。下图以GitHub或Jenkins为例展示了具体流程:集成始于原始生产分支,开发者从中拉取变更,并将生产级代码作为基准导入IAR嵌入式工作平台进行开发

GitHub运行器的典型CI工作流。资料来源:IAR Systems
结果
IAR Systems与CI/CD工作流程的集成为嵌入式开发人员提供了:
- 代码的即时反馈
- 更好的整体代码质量
- 针对高质量代码进行集中的手动测试工作和代码审查
- 更好的产品更快地出门
- 显著缩短构建和分析处理时间
Parasoft C/C++test凭借其强大的静态分析、单元测试与运行时错误检测能力,与 IAR 工具链深度集成,为嵌入式软件开发提供端到端的质量保障。该解决方案已广泛应用于金融、医疗、汽车、工业控制等对软件质量有严苛要求的行业,通过覆盖代码静态分析、单元测试、覆盖率分析及运行时检测的全流程测试能力,为企业建立贯穿软件开发全生命周期的自动化质量保障体系,助力企业实现高质量软件的可靠交付与数字化转型。