持续集成和持续交付中的静态代码分析(CI/CD)

由医学院毕业拉尔

在过去20年里,移动、智能设备、物联网和云等技术的进步催生了数以百万计的新应用程序。为了更快地开发具有质量和可预测性的应用程序,公司正在改进他们的软件开发过程。在21世纪初,“轻量级”敏捷软件开发开始流行起来。敏捷是一种迭代的软件开发过程,它重视协作、持续计划和持续测试。

持续集成和交付(CI/CD)是敏捷的扩展,主要关注集成代码、自动化测试和软件交付所需的工具和过程。CI/CD越来越受欢迎,因为它支持更快的应用程序开发和交付。

CI/CD工作流程图

CI/CD工作流程图

什么是持续集成(CI)?

持续集成是一种开发实践,开发人员每天多次将他们的代码集成到共享主线中。以小增量的方式开发和集成代码有几个优点。由于每个代码增量都没有偏离主线太多,所以合并是快速的,不容易出错的,并且发现缺陷也容易得多。在CI工作流中,开发人员首先在本地测试他们的新代码或修改的代码(上图中的步骤1),然后将代码集成到主线中(步骤2),最后,验证CI构建(步骤3)和自动化测试(步骤4)已经成功通过。开发人员在进行下一个任务之前处理构建或测试失败。

什么是持续交付(CD)?

一旦CI构建和自动化测试成功完成,团队就可以决定将软件自动发布到生产环境中。这种自动化整个发布过程的实践称为持续交付(上图中的第5步)。CI是实现CD的先决条件,但是基于业务需求,团队可能决定不实现CD。

CI / CD的好处

以下是采用CI或CI/CD的主要好处:

  1. 降低风险-小增量的开发和交付可以降低项目风险。
  2. 更好的沟通-所有代码变更都在代码主线上进行,促进代码共享和协作。
  3. 快速及具成本效益-更小的增量减少了合并代码所需的时间和精力,缺陷更容易检测和修复。
  4. 提高了生产率—流程是完全自动化的,消除了耗时和容易出错的手工活动,如手工测试。
  5. 更高的一致性和质量—自动化测试提供了更大的可预测性、可重复性和可靠的输出。

为什么静态代码分析对CI至关重要?

静态代码分析工具通过检查代码而不执行程序来发现代码缺陷。因此,静态代码分析已经成为CI的一个重要部分,因为:

  1. 它可以非常有效地识别数百种缺陷类型,如并发性、数据流、动态内存和数值缺陷。
  2. 它在开发周期的早期就发现缺陷,也就是说,在代码编写或修改时就发现缺陷。
  3. 它验证编码标准(如MISRA C)的遵从性®、MISRA c++、JSF++和自定义命名约定。
  4. 它发现安全漏洞,并检查是否符合CERT等安全标准®C、CERT c++、ISO 17961和MISRA C:2012修订1。
  5. 通过使用形式化方法,它可以证明没有溢出、被零除、数组越界访问和其他运行时错误。

Polyspace®静态代码分析产品被设计成在CI中工作,并且下载188bet金宝搏可以使用诸如Jenkins™和Bamboo这样的CI工具轻松地实现自动化。

Polyspace Code Prover™使用形式化的方法来证明在所有可能的控制流和数据流下都不存在关键的运行时错误。代码证明可以与CI构建测试(上面CI工作流图中的第4步)集成起来,以测试软件的健壮性。

Polyspace Bug Finder™检查代码规则违反,安全漏洞,数以百计的额外类的Bug,并计算代码指标。开发人员可以使用Polyspace Bug Finder来发现缺陷,并在提交代码之前检查代码是否符合编码标准(即,在上面的CI工作流图中的第1步)。Polyspace Bug Finder还可以与CI构建测试(上图中的第4步)集成,以分析整个应用程序。

有关Polyspace产品的更多信息,以及如何将它们集成到CI中,请下载188bet金宝搏访问: