同时使用 Polyspace Bug Finder 和 Polyspace Code Prover 的工作流
Polyspace® Bug Finder™ 和 Polyspace Code Prover™ 执行具有不同目标的不同类型的静态分析。Code Prover 尝试用数学方法证明不存在某一组运行时错误。Bug Finder 检测多种类型的编码违规和编码缺陷。
如果您同时拥有 Bug Finder 和 Code Prover,可将它们集成到软件开发工作流的不同步骤中。例如:
您的组织中的所有开发人员都可以对新开发的代码运行 Bug Finder。要在整个组织中维护标准,您可以部署仅查找特定缺陷类型的通用配置。
可以将 Code Prover 部署为您的单元测试套件的一部分。
您可以仅对您的工程的关键组件运行 Code Prover,而对整个工程运行 Bug Finder。
您可以在单元测试级别对代码模块运行 Code Prover,并且在集成模块时运行 Bug Finder。
您可以在进行单元测试前运行 Code Prover。Code Prover 会详尽地检查您的代码,并尝试证明是否存在错误。然后,您就可以仅为未经证明的代码编写测试,而不必为全部代码编写单元测试。在进行单元测试前使用 Code Prover 可以大大减少您的测试工作量。
根据软件开发工作流的性质和可用资源,还可以采用许多其他方法来组合使用这两种分析。在开发期间,您可以在桌面端同时运行这两款产品,也可以在远程服务器端将这两款产品用于自动测试。请注意,距离开发时间越近,越容易解释和修复 Bug。如果您在开发过程中尽早部署并经常同时使用这两款产品,您会因此而受益良多。
如果您同时对同一代码运行 Bug Finder 和 Code Prover,请注意两个重要事项。
从 R2022a 开始,建议使用 Polyspace Bug Finder 来检查是否符合 AUTOSAR C++14 或 MISRA C++:2008 等外部编码标准。对您的代码使用 Bug Finder 时请检查是否违反了这些编码标准。您可能已使用 Polyspace Code Prover 进行了这样的检查。请迁移您的工作流以使用 Bug Finder。请参阅Migrate Code Prover Workflows for Checking Coding Standards and Code Metrics to Bug Finder。
您可以对同一个工程同时使用 Bug Finder 和 Code Prover 分析。以下选项集是 Bug Finder 和 Code Prover 共有的:
运行 Code Prover 验证时,您可能需要更改更多的默认选项,因为 Code Prover 对编译和链接错误更为严格。