本主题说明如何在 SOAtest 中抑制静态分析违规。章节目录:
关于抑制
抑制是一种特殊标记,能够让您在运行测试或遵循静态分析规则的同时忽略特定的报告任务。抑制与功能测试相关的任务,可以减少测试在早期阶段或某些步骤预计会失败的情况下产生的噪音量。
静态分析抑制通过定义不影响应用程序关键部分的异常,从而遵守编程准则。单个静态分析规则可能会报告多个任务,但如果该规则不适用于特定情况,则可以应用抑制。
应用抑制时,会在与测试文件相同的位置创建 parasoft.suppress 文件。该抑制文件包含的信息有:存在抑制的文件、抑制作者以及抑制原因(请参阅Manually Defining Suppression Files)。被抑制的任务也会从质量任务视图中删除。
抑制设置独立于测试配置。测试配置定义了测试执行的范围、覆盖率设置和其他功能,以及静态分析期间检查的规则集。抑制定义了与失败测试相关或由静态分析结果报告的哪些任务在质量任务视图和报告中可见。
抑制任务
- 右键点击质量任务视图中的报告任务,然后选择抑制任务。
您还可以右键点击包含任务(规则分类、特定规则、文件等)的节点,以抑制所有子任务。
- 根据提示,选择存储抑制的位置。
- 根据提示,输入抑制任务的原因,然后点击 OK。
然后任务将被抑制,并从质量任务视图移至抑制文件中。该文件将在与测试文件相同的目录下创建。如需查看抑制结果,请在 SOAtest 编辑器或任何纯文本编辑器中打开该文件。有关 parasoft.suppress 文件内容的更多信息,请参阅Manually Defining Suppression Files。
手动定义抑制文件
您可以手动构建 parasoft.suppress 文件,方法是在与测试文件相同位置创建一个文本文件,并包含以下格式的抑制信息:
suppression-begin file: <FILE> line: <LINE NUMBER> rule-id: <RULE ID> test-id: <TEST CASE ID> message: <TASK MESSAGE> reason: <REASON FOR SUPPRESSION> author: <SUPPRESSION AUTHOR> suppression-end
下表列出了 parasoft.suppress 文件支持的字段。
字段 | 说明 | 必须 |
---|---|---|
suppression-begin | 表示单个抑制的开始。所有后续字段(包括 suppression-end 字段)都属于同一抑制范围。 | 必须 |
file | 指定测试文件的名称。 | 必须 |
line | 指定出现违规的代码行号。 此字段仅适用于静态分析。 请注意,如果行号发生变化,即代码的更新改变了违规发生的位置,抑制将会失效。 | 可选 |
rule-id | 指定报告违规的静态分析规则 ID。 此字段仅适用于静态分析。 | 可选 |
test-id | 指定测试 ID。这样就能在测试文件中锁定要抑制的特定测试。测试 ID 显示在 XML 报告中 该字段适用于功能测试的执行。 | 可选 |
message | 指定打印到质量任务视图中的违规或测试失败消息。该值必须与打印的消息完全一致,抑制才能生效。如果指定了 message ,但没有报告匹配的消息,则抑制无效。 | 可选 |
reason | 指定抑制违规或抑制测试失败的原因。 如果确定该任务为误报,需在声明开头使用 | 可选 |
author | 指定代码或测试的作者。 | 可选 |
date | 指定应用抑制的日期。 | 可选 |
suppression-end | 表示抑制结束。 | 必须 |
抑制中指定的所有属性必须与任务属性相匹配,抑制才能生效。
抑制文件示例
下面的示例展示了一个包含两个功能测试步骤抑制的抑制文件:
suppression-begin file: com.parabank.login.tests_testParabank_parasoft_com202007301253532.tst message: The value of the property "balance" has changed from "5022.93" to "-2692". reason: The return value does not need to be tested author: user1 suppression-end suppression-begin file: com.parabank.login.tests_testParabank_parasoft_com202007301253532.tst message: The value of the property "id" has changed from "13344" to "12345". reason: The return value does not need to be tested author: user1 suppression-end
使用已弃用的抑制
抑制存储在 parasoft.suppress 文件中。您可以使用 SOAtest 的 IDE 功能(请参阅Suppressing Tasks)来创建抑制或手动将抑制添加到 parasoft.suppress 文件中(请参阅Manually Defining Suppression Files)。
如果您的项目中存在使用已弃用格式的抑制内容,而您想要应用新的格式,请联系 Parasoft 技术支持。
删除抑制
您可以从 parasoft.suppress 文件中删除抑制来取消对任务的抑制。重新运行测试或分析,任务将重新出现在质量任务视图中。