软件行业|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 工具链深度集成,为嵌入式软件开发提供端到端的质量保障。该解决方案已广泛应用于金融、医疗、汽车、工业控制等对软件质量有严苛要求的行业,通过覆盖代码静态分析、单元测试、覆盖率分析及运行时检测的全流程测试能力,为企业建立贯穿软件开发全生命周期的自动化质量保障体系,助力企业实现高质量软件的可靠交付与数字化转型。

相关推荐
程序员杰哥1 天前
UI自动化测试实战:从入门到精通
自动化测试·软件测试·python·selenium·测试工具·ui·职场和发展
codeの诱惑1 天前
Azure DevOps CI/CD 流水线中 Java 17 容器化部署 NullPointerException 解决方案
ci/cd·azure·devops
测试19981 天前
Jmeter是如何实现接口关联的?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·接口测试
递归尽头是星辰1 天前
Docker容器化核心知识体系:从入门到实践
docker·云原生·devops·容器化·镜像构建
hkNaruto1 天前
【DevOps】基于Nexus部署内网ubuntu 2204系统APT代理镜像仓库操作手册
运维·ubuntu·devops
怪异的bug1 天前
DevOps学习笔记
devops
hkNaruto1 天前
【DevOps】基于Nexus3部署Docker内网私有代理仓库docker proxy
docker·devops·nexus3
JanelSirry1 天前
DevOps是什么,有什么作用,一般用来干嘛
linux·运维·devops
西欧伯爵2 天前
Playwright自动化实战一
自动化测试·自动化·playwright
测试老哥2 天前
测试用例之正交试验法、功能图法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例