主要内容

Polyspace Server 和 Access 产品快速入门指南

为避免在开发过程的后期发现 Bug,请使用 Polyspace® 产品进行静态分析。

  • Polyspace Bug Finder™ 检查 C/C++ 代码中是否存在 Bug、编码标准违规、安全漏洞和其他问题。

  • Polyspace Code Prover™ 执行详尽的检查来检测除以零、溢出、数组访问越界和其他常见的运行时错误类型。

另请参阅Polyspace Bug Finder 与 Polyspace Code Prover 之间的差别

如果您在持续集成期间定期运行 Polyspace 检查项,可以防止新代码签入导致回归错误。要在持续集成期间在服务器端运行 Polyspace,请使用 Polyspace Bug Finder Server™Polyspace Code Prover Server。要托管 Polyspace 分析结果,请使用 Polyspace Access™

典型的工作流如下图所示。

安装

前提条件

根据您的工程、团队或组织的需求,您已决定获取一定数量的 Polyspace Server 和 Polyspace Access 产品许可证。本指南帮助您在计算机上安装这些产品的个体实例。

安装 Polyspace Server

要安装 Polyspace Server 产品,请下载并运行 MathWorks 安装程序。输入 Polyspace Server 产品的许可证(或申请试用版许可证)。另请参阅申请试用版许可证。Polyspace Server 产品安装在与其他 MathWorks® 产品不同的单独文件夹中。另请参阅安装 Polyspace Server 和 Access 产品

安装 Polyspace Access

在安装 Polyspace Access 之前,请考虑可能会同时审查 Polyspace 结果的用户数量。系统要求将取决于同时进行审查的评审人数。另请参阅Polyspace Access 的系统要求 (Polyspace Access)

Polyspace Access 包括多项服务:验证用户登录身份的用户管理器、将您的 Bug 跟踪工具与 Polyspace 集成的问题跟踪器、用于管理结果的数据库、用于显示结果的 Web 服务器,以及用于处理通信的网关。上述服务部署在 Docker® 容器中。您可以从名为 Cluster Admin 的统一界面启动所有服务。

要安装 Polyspace Access,请执行以下操作:

完成安装后,要查看已上传的结果,您和其他评审可以登录到:

https://<hostName>:<portNumber>/metrics/index.html
其中,hostNameportNumber 分别是安装 Polyspace Access 的服务器计算机的主机名和 Polyspace Access 用于与客户端计算机通信的端口。例如,example-server.com:9443。如果不知道该主机名和端口号,请联系您的 Polyspace Access 管理员。

安装网络许可证管理器

Polyspace Server 和 Polyspace Access 使用的许可证都需要与网络许可证管理器进行通信以签出许可证。

设置 Polyspace 分析

前提条件

您或您组织的 IT 部门必须安装所需数量的 Polyspace Server 和 Polyspace Access 实例。本指南帮助您设置使用单一 Polyspace Server 和 Polyspace Access 实例的 Polyspace 分析,以作为持续集成的一部分。

要检查您安装的 Polyspace Server 和 Polyspace Access 是否可以相互通信,请参阅检查 Polyspace 安装

运行 Polyspace Server 并将结果上传到 Polyspace Access

您可以在操作系统的命令行上运行 Polyspace Server 产品:

您可以从 Polyspace 安装文件夹(例如 /usr/local/Polyspace Server/R2026a,另请参阅安装文件夹)的 polyspace/bin 子文件夹运行所有 Polyspace 可执行文件。要开始使用示例 C 源文件和示例脚本运行 Polyspace Server,请参阅:

您还可以通过编译命令(联编文件)预先配置 Polyspace 分析选项,然后追加另一个带有分析设定(例如检查项)的选项文件。请参阅从编译命令 (makefile) 创建 Polyspace 分析配置

如果您已安装 Polyspace 桌面端产品,则可以在桌面端产品的用户界面中准备分析配置。然后,您就可以生成要在持续集成期间运行的 Polyspace 选项文件了。请参阅Generate Launching Script for Polyspace Platform Project to Run Static Analysis from Command Line

使用 Jenkins 之类的工具在持续集成中包括 Polyspace 运行

在拥有可正常运行 Polyspace 分析的脚本后,您可以使用诸如 Jenkins® 和 Bamboo 的持续集成工具按预定义的时间间隔运行那些脚本。在 Jenkins 中,您可以使用 Polyspace 插件指向您安装的 Polyspace,并在分析后根据新缺陷之类的准则向开发人员发送电子邮件通知。

从 Jenkins 界面中,搜索并安装 Polyspace 插件。要快速开始使用 Jenkins 插件和示例脚本,请参阅 Polyspace 插件的 GitHub 存储库。有关使用 Jenkins 时的完整工作流,请参阅使用 Jenkins 进行 Polyspace 分析的示例脚本

为结果评审人员创建工作流

您可以根据您已使用的工具,为结果评审人员设置一个方便的工作流。例如:

评审收到有关新结果的提醒并登录到 Polyspace Access

评审收到包含结果作为附件的定制电子邮件提醒

  • 在上传到 Polyspace Access 之前,持续集成 (CI) 工具将使用 polyspace-access -set-unassigned-findings (Polyspace Access) 命令,根据文件或组件所有权或其他准则,为新的分析结果分配负责人。

  • 在上传后,CI 工具使用 polyspace-access -export (Polyspace Access) 命令,将每个所有者的分析结果都导出到一个单独的文本文件。然后,该工具通过电子邮件附件将文本文件发送给所有者。文本文件包含结果及其在 Polyspace Access 界面中的对应 URL。

    如果您使用 Jenkins 作为 CI 工具,则 Jenkins 中的 Polyspace 插件直接支持此工作流。请参阅使用 Jenkins 进行 Polyspace 分析的示例脚本

  • 收到电子邮件时,所有者打开随附的文本文件,将每个结果的 URL 复制到 Web 浏览器并审查结果。

评审在 Bug 跟踪工具中打开工单

  • 某位评审(例如质量工程师)审查所有新结果,并为开发人员创建 JIRA 工单。请参阅从 Polyspace Access Web 界面创建 Bug 跟踪工具工单 (Polyspace Access)

  • 开发人员打开每个 JIRA 工单并在 Polyspace Access 界面中导航到对应的 Polyspace 结果。