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

在过去的20年中,技术进步的such as mobile, smart devices, IoT, and the cloud have led to creation of millions of new applications. To develop applications faster with quality and predictability, companies are evolving their software development processes. In the early 2000s, “lightweight” agile software development started gaining popularity. Agile is an iterative software development process that places importance on collaboration, continuous planning, and continuous testing.

连续集成和交付(CI/CD)是敏捷的扩展,主要集中在集成代码和自动化测试和软件交付所需的工具和过程上。CI/CD正在越来越受欢迎,因为它可以更快地进行应用程序开发和交付。

Diagram of CI/CD Workflow

Diagram of CI/CD Workflow

What Is Continuous Integration (CI)?

连续集成是一种开发实践,开发人员每天几次将其代码集成到共享主线中。以少量增量制定和集成代码有几个优点。由于每个代码增量与主线的分歧并没有太大差异,因此合并快速,容易出错,并且查找缺陷要容易得多。在CI工作流程中,开发人员首先在本地测试其新的或修改的代码(上图中的步骤1),然后将代码集成到主线(步骤2),最后,验证CI构建(步骤3)和自动化测试是否(步骤4)成功通过了。开发人员在继续执行下一个任务之前解决了构建或测试失败。

什么是连续交付(CD)?

CI构建和自动测试成功完成后,团队可以决定自动将软件释放到生产中。自动化整个发行过程的这种做法称为连续交付(上图中的步骤5)。CI是实施CD的先决条件,但根据业务需求,团队可能决定不实施CD。

Benefits of CI/CD

以下是采用CI或CI/CD的关键好处:

  1. Lower Risk- Developing and delivering in small increments reduces project risk.
  2. 更好的沟通– All code changes are made on the mainline of code, promoting code sharing and collaboration.
  3. 快速和成本效益- 较小的增量减少合并代码和缺陷所需的时间和精力更容易检测和修复。
  4. 提高生产率- 过程是完全自动化的,可以消除耗时和容易出错的手动活动,例如手动测试。
  5. Greater Consistency and Quality– Automated tests provide greater predictability, repeatability, and reliable output.

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

静态代码分析工具通过检查代码而无需执行程序来查找代码缺陷。因此,静态代码分析已成为CI的重要组成部分,因为:

  1. 它在识别数百种类型的缺陷(例如并发,数据流,动态内存和数值缺陷)方面非常有效。
  2. 它在开发周期的早期发现缺陷,也就是说,一旦编写或修改代码。
  3. It verifies compliance with coding standards such as MISRA C®,Misra C ++,JSF ++和自定义命名约定。
  4. It finds security vulnerabilities and checks for adherence with security standards such as CERT®C,CERT C ++,ISO 17961和MISRA C:2012修正案1。
  5. 通过使用正式方法,它可以证明没有溢出,截至零,外部阵列访问和其他运行时错误。

Polyspace®静态代码分析产品旨在在CI中使用,并且可以下载188bet金宝搏使用Jenkins™和Bamboo等CI工具轻松自动化。

Polyspace代码供供商品™ uses formal methods to prove the absence of critical run-time errors under all possible control flows and data flows. Code proving can be integrated with CI build testing (step 4 in the above CI workflow diagram) to test robustness of the software.

PolySpace Bug Finder™检查编码规则违规,安全漏洞,数百个其他类别的错误以及计算代码指标。开发人员可以使用Polyspace错误查找器查找缺陷,并在提交代码之前检查遵守编码标准(即,在上述CI工作流程图中的步骤1)。Polyspace错误查找器也可以与CI构建测试(上图中的步骤4)集成在一起,以分析整个应用程序。

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