Polyspace 平台:用于静态分析和动态测试的统一平台
Polyspace® 平台是一个集成环境,支持使用 Polyspace 产品对 C/C++ 代码进行静态分析和动态测试。
术语 Polyspace 平台是一个总称,涵盖了多种 Polyspace 产品:
支持静态分析的产品,例如 Polyspace Bug Finder™ 和 Polyspace Code Prover™。
支持动态测试的产品,例如 Polyspace Test™。
使用这些产品,可以覆盖大多数 C/C++ 代码分析和测试需求,并可以在一个统一用户界面中查看分析和测试结果。例如:
您可以查找 Bug、检查运行时错误、编写和运行单元测试以及执行与 C/C++ 开发相关的其他活动。
您可以在一个通用仪表板上查看来自所有 Polyspace 产品的结果的概要信息。您可以将该仪表板作为一个通用起点,深入查看结果的更多详细信息。
使用 Polyspace 平台的桌面端和服务器端工作流
您可以在单个桌面端运行 Polyspace 平台涵盖的产品,也可以在服务器端执行自动运行。
桌面端
在桌面端,Polyspace 平台提供用户界面,您可以在其中进行工程设置、配置、运行静态分析或测试以及审查结果。您还可以使用 Windows® 或 Linux® 脚本运行之前配置的分析。
要在单个桌面上运行,您需要以下一个或多个产品:
Polyspace Bug Finder,用于查找 Bug、检查编码标准违规、计算代码复杂度度量以及执行其他相关的任务。
Polyspace Code Prover,用于对某些类别的运行时错误执行详尽检查、计算堆栈使用量以及执行其他相关的任务。
Polyspace Code Prover 需要 Polyspace Bug Finder。
Polyspace Test,用于编写和运行动态测试以及计算代码覆盖率。
请注意,只有拥有 Polyspace Test 许可证才能使用 Polyspace 平台用户界面。如果只拥有 Polyspace Bug Finder 或 Polyspace Bug Finder 和 Polyspace Code Prover 的许可证,那么您将无法访问此用户界面,尽管可以从此用户界面运行所有产品。安装 Polyspace Test 后,您可以通过双击桌面上的 Polyspace Test R2025a 快捷方式或使用可执行文件
来打开此用户界面,其中 polyspaceroot
\polyspace\bin\polyspace-desktop-ui
是 Polyspace 的安装文件夹,例如 polyspaceroot
C:\Program Files\Polyspace\R2025a
。
持续集成 (CI) 服务器
Polyspace 平台还支持各种类型的多用户工作流。在最常见的工作流中,您可以设置持续集成 (CI) 服务器,用于在每次向该服务器提交新的代码更改时运行代码分析和测试。
要在服务器上执行自动运行,您需要以下一个或多个产品:
Polyspace Bug Finder Server™,与 Polyspace Bug Finder 执行的任务相同,但支持在服务器上自动运行。
Polyspace Code Prover Server,与 Polyspace Code Prover 执行的任务相同,但支持在服务器上自动运行。
Polyspace Code Prover Server 需要 Polyspace Bug Finder Server。
Polyspace Test,在桌面端和服务器端均可运行。
Polyspace Access™,它可以托管来自所有 Polyspace 产品的结果,供用户通过 Web 浏览器进行访问。
Polyspace 平台的优势
Polyspace 平台可在一个通用界面中覆盖大多数代码分析和测试需求。实际上,这意味着:
对于单用户桌面端工作流,您可以在一个界面中执行与 C/C++ 代码检查相关的所有活动:查找 Bug、检查编码标准违规、运行测试、检查代码覆盖率等等。
对于多用户服务器端工作流,您可以运行脚本来执行与代码检查相关的所有活动。
接下来的几部分将针对单用户桌面端工作流描述这些优势。在多用户服务器端工作流中具有同等的优势。
共享工程设置
Polyspace 平台用户界面中的工作流起始于工程。以下面的典型工程为例:
您可以向该工程中添加 C/C++ 源文件,配置编译选项,视需要更改静态分析或测试选项的默认设置,以及开始运行静态分析或测试。无论您是想查找 Bug 还是想编写和运行测试,添加源文件和配置编译选项都只需要执行一次。
共享编译配置
以下面的 Polyspace 平台工程中的编译配置为例:
您可以将此编译配置用于静态分析和运行测试:
在运行静态分析之前,Polyspace Bug Finder 和 Polyspace Code Prover 使用该编译信息来模拟您的编译器并检查您的源代码是否符合 C/C++ 语言标准。
Polyspace Test 使用该编译信息来使用您的编译器编译和运行源代码和测试。
用于静态分析和测试结果的统一仪表板
在 Polyspace 平台用户界面中,您可以在单个仪表板上查看所有结果的概要信息。
每一族别的结果都有自己的仪表板。例如,显示使用 Polyspace Bug Finder 发现的缺陷的仪表板如下所示:
各种族别的结果(缺陷、编码标准违规、测试、覆盖率)的仪表板遵循类似的布局。
用于静态分析和测试结果的相同布局
Polyspace 平台以类似的布局显示所有结果,无论结果是来自静态分析还是动态测试。
要在 Polyspace 平台用户界面中审查结果,首先要从工程或从结果仪表板打开一组结果。您可以在结果左侧看到问题列表,在右侧看到问题详细信息以及突出显示的代码。
您可以通过点击结果列表窗格中的项并向下钻取到结果详细信息和源代码窗格中的详细信息来开始审查结果。审查结果后,您可以添加审查信息,例如状态、严重性和可选注释。对于所有族别的结果(缺陷、编码标准违规、测试、覆盖率),此工作流都是类似的。
静态分析产品补充动态测试
静态分析产品可以提供使动态测试工作流更容易的信息。尤其是:
您可以分析测试以检查是否存在运行时错误,从而提高测试结果的可靠性。请参阅Check for Bugs and Run-Time Errors in C/C++ Tests and Functions Under Test (Polyspace Test)。
您可以指定覆盖率目标并自动生成测试以达到这些目标。请参阅Generate C/C++ Tests for Code Coverage Objectives (Polyspace Test)。
如果现有测试没有覆盖源代码中的某个分支,静态分析产品可以确定该分支是否静态不可达,这免去了您尝试编写测试来增加覆盖率的麻烦。您还可以选择自动对静态不可达的未覆盖语句、条件和决策进行申述。请参阅Justify Missing Coverage Using Results from Polyspace Static Analysis (Polyspace Test)。