当前位置: 首页 > news >正文

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

http://www.dtcms.com/a/398673.html

相关文章:

  • 设计模式-状态模式详解
  • 微信小程序通用弹窗组件封装与动画实现
  • 「日拱一码」099 数据处理——降维
  • 速通ACM省铜第十三天 赋源码(Watermelon)
  • 【C++进阶系列】:位图和布隆过滤器(附模拟实现的源码)
  • 洛阳网站建设建站系统怎么删除网站的死链
  • 山东省城乡建设厅网站wordpress academia
  • 广州番禺服装网站建设济南网站优化
  • 下载huggingface中数据集/模型
  • vue事件循环机制
  • 分布式专题——19 Zookeeper分布式一致性协议ZAB源码剖析
  • 前端核心框架vue之(组件篇2/5)
  • 【分布式】分布式事务方案:两阶段、TCC、SEATA
  • Kafka介绍
  • Netty 解码器 DelimiterBasedFrameDecoder
  • 位运算 常见方法总结 算法练习 C++
  • 电子商务平台网站源码国外炫网站
  • PTZ相机的知识体系
  • Nginx反向代理配置全流程实战:从环境搭建到HTTPS部署
  • HTTPS 能抓包吗?实战答案与逐步可行方案(HTTPS 抓包原理、证书Pinning双向认证应对、工具对比)
  • 对网站建设的讲话wordpress 自定义面板
  • 【23】C++实战篇——C++报错:LNK2001:无法解析的外部符号 ,LNK2019: 无法解析的外部符号,原因分析及解决方法
  • 东莞建设银行官方网站礼品网站制作
  • TiDB Cloud 可观测性最佳实践
  • python+springboot毕业季旅游一站式定制服务系统
  • docker 启用容器端口被占用报错500
  • 无人机台风天通信技术要点
  • ParaZero-无人机降落伞领先开发商:SafeAir降落伞系统、DropAir精确空投系统、DefendAir反无人机系统
  • 手机怎样创建网站网站内容保护
  • 电路基础与PCB设计(一)电路