主要内容

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 ServerPolyspace 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/R2025b,另请参阅安装文件夹)的 polyspace/bin 子文件夹运行所有 Polyspace 可执行文件。要开始使用示例 C 源文件和示例脚本运行 Polyspace Server,请参阅:

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

如果您已安装 Polyspace 桌面端产品,则可以在桌面端产品的用户界面中准备分析配置。然后,您就可以生成要在持续集成期间运行的 Polyspace 选项文件了。请参阅Configure Polyspace Analysis Options in User Interface and Generate Scripts

使用 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 结果。