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,请执行以下操作:
以 zip 文件格式下载安装程序。
解压缩该文件并启动 Cluster Admin。从 Cluster Admin 界面中启动各种服务。请参阅安装用于 Web 审查的 Polyspace Access。
完成安装后,要查看已上传的结果,您和其他评审可以登录到:
https://<hostName>:<portNumber>/metrics/index.html
hostName
和 portNumber
分别是安装 Polyspace Access 的服务器计算机的主机名和 Polyspace Access 用于与客户端计算机通信的端口。例如,example-server.com:9443
。如果不知道该主机名和端口号,请联系您的 Polyspace Access 管理员。安装网络许可证管理器
Polyspace Server 和 Polyspace Access 使用的许可证都需要与网络许可证管理器进行通信以签出许可证。
要为 Polyspace Server 安装,配置并启动网络许可证管理器,请参阅管理网络许可证。
要为 Polyspace Access 安装、配置并启动网络许可证管理器,请参阅管理 Polyspace NNU 许可证。
设置 Polyspace 分析
前提条件
您或您组织的 IT 部门必须按照所需数量安装 Polyspace Server 和 Polyspace Access 实例。本指南帮助您设置使用单一 Polyspace Server 和 Polyspace Access 实例的 Polyspace 分析,以作为持续集成的一部分。
要检查您安装的 Polyspace Server 和 Polyspace Access 是否可以相互通信,请参阅检查 Polyspace 安装。
运行 Polyspace Server 并将结果上传到 Polyspace Access
您可以在操作系统的命令行上运行 Polyspace Server 产品:
要运行分析,请使用
polyspace-bug-finder-server
和polyspace-code-prover-server
(Polyspace Code Prover) 可执行文件。要上传分析结果,请使用
polyspace-access -upload
(Polyspace Access) 命令。您还可以使用polyspace-access -export
(Polyspace Access) 命令从 Polyspace Access 将结果导出为文本文件,以进行存档或用作电子邮件附件。
您可以从 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 URL。
在 Polyspace Access 界面中,评审可以打开此工程 URL,基于文件过滤结果,并修复问题或者为结果设置一个状态。另请参阅:
Filter and Sort Results in Polyspace Access Web Interface (Polyspace Access)
通过 Bug 修复或申述在 Polyspace Access 中处理结果 (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 结果。