本主题说明如何在 SOAtest 中抑制静态分析违规。章节目录:

关于抑制

抑制是一种特殊标记,能够让您在运行测试或遵循静态分析规则的同时忽略特定的报告任务。抑制与功能测试相关的任务,可以减少测试在早期阶段或某些步骤预计会失败的情况下产生的噪音量。 

静态分析抑制通过定义不影响应用程序关键部分的异常,从而遵守编程准则。单个静态分析规则可能会报告多个任务,但如果该规则不适用于特定情况,则可以应用抑制。 

应用抑制时,会在与测试文件相同的位置创建 parasoft.suppress 文件。该抑制文件包含的信息有:存在抑制的文件、抑制作者以及抑制原因(请参阅Manually Defining Suppression Files)。被抑制的任务也会从质量任务视图中删除。 

抑制设置独立于测试配置。测试配置定义了测试执行的范围、覆盖率设置和其他功能,以及静态分析期间检查的规则集。抑制定义了与失败测试相关或由静态分析结果报告的哪些任务在质量任务视图和报告中可见。 

抑制任务

  1. 右键点击质量任务视图中的报告任务,然后选择抑制任务。  

    您还可以右键点击包含任务(规则分类、特定规则、文件等)的节点,以抑制所有子任务。
     
  2. 根据提示,选择存储抑制的位置。 
  3. 根据提示,输入抑制任务的原因,然后点击 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 报告中 <Test>id 属性中。 

该字段适用于功能测试的执行。

可选
message 指定打印到质量任务视图中的违规或测试失败消息。该值必须与打印的消息完全一致,抑制才能生效。如果指定了 message,但没有报告匹配的消息,则抑制无效。可选
reason 

指定抑制违规或抑制测试失败的原因。

如果确定该任务为误报,需在声明开头使用 false positive,这样,如果您的组织使用 Parasoft DTP,合规报告中就不会出现相应违规或失败信息。

可选
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 文件中删除抑制来取消对任务的抑制。重新运行测试或分析,任务将重新出现在质量任务视图中。

  • No labels