This topic explains how to suppress static analysis violations in SOAtest. In this section:
Table of Contents | ||
---|---|---|
|
About Suppressions
Suppressions are special markers that enable you to run a test or follow a static analysis rule while ignoring specific occurrences of the reported tasks. Suppressing tasks related to functional testing can reduce the amount of noise tests generate during early-stage testing or for cases when then certain steps are expected to fail.
Suppressions for static analysis enables you to comply with programming guidelines by defining exceptions that do not impact the critical parts of the application. Multiple tasks may be reported for a single static analysis rule, but you can apply a suppression if the rule is not applicable for a particular case.
When you apply a suppression, a parasoft.suppress file is created in the same location as the test file. The suppression file includes information, such as which file has a suppression, the suppression author, and the reason for the suppression (see Manually Defining Suppression Files). Suppressed tasks are also removed from the Quality Tasks view.
Suppression settings are independent of Test Configurations. The Test Configuration defines the scope of the test execution, coverage settings, and other features, as well as the set of rules that are checked during static analysis. Suppressions define which tasks associated with a failing test or reported by static analysis results should be visible in Quality Tasks view and reports.
Anchor | ||||
---|---|---|---|---|
|
- Right-click on a reported task in the Quality Tasks view and choose Suppress Task.
You can also right-click on a node containing task (rule category, specific rule, file, etc.) to suppress all children tasks.
- Choose where you want to store your suppression(s) when prompted. Storing suppressions on Team Server is deprecated and disabled by default. See Enabling Team Server Suppressions (Deprecated) for instructions.
- Enter your reason to for suppressing the task when prompted and click OK.
The task will then be suppressed and moved from the Quality Tasks view to a suppression file. The file will be created in the same directory as the test file. To review the suppression, open the file in the SOAtest editor or any plain text editor. See Manually Defining Suppression Files for additional information about the content of parasoft.suppress files.
Anchor | ||||
---|---|---|---|---|
|
You can manually build the parasoft.suppress file by creating a text file in the same location as the test file and include suppression information in the following format:
Code Block | ||
---|---|---|
| ||
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 |
The following table describes the fields supported in the parasoft.suppress file.
Scroll Table Layout | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Field | Description | Required |
---|---|---|
suppression-begin | Indicates the beginning of an individual suppression. All subsequent fields up to and including the suppression-end field are part of the same suppression. | Required |
file | Specifies the name of the test file. | Required |
line | Specifies the line number in the code where the violation occurred. This field applies to static analysis only. Note that if the line number changes, i.e., updates to the code changes where the violation occurs, the suppression will become invalid. | Optional |
rule-id | Specifies the static analysis rule ID that reported the violation. This field applies to static analysis only. | Optional |
test-id | Specifies the test ID. This enables you to target specific tests within the test file to suppress. The test ID appears in the This field applies to functional test execution. | Optional |
message | Specifies the message printed to the Quality Tasks view for the violation or test failure. The value must match the printed message exactly for the suppression to be valid. If the message is specified but no matching message is reported, the suppression will be invalid. | Optional |
reason | Specifies the justification for suppressing the violation or test failure. If it is determined that the task is reported as a false positive, begin the statement with | Optional |
author | Specifies the code or test author. | Optional |
date | Specifies the date the suppression was applied. | Optional |
suppression-end | Indicates the end of the suppression. | Required |
All properties specified in the suppression must match task properties for the suppression to be applied.
Example Suppression File
The following example shows a suppression file containing two functional test step suppressions:
Code Block | ||
---|---|---|
| ||
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 |
Working with Deprecated Suppressions
Storing suppressions in the XML-style format locally or on Team Server is deprecated. Instead, suppressions are stored in the parasoft.suppress file. You can create suppressions using SOAtest's IDE functionality (see Suppressing Tasks) or by manually adding them to the parasoft.suppress file (see Manually Defining Suppression Files).
If there are suppressions in the deprecated format available for your project that you want to migrate to the new format, please contact Parasoft Support.
Anchor | ||||
---|---|---|---|---|
|
You can delete suppressions from the parasoft.suppress file to un-suppress a task. Re-run the test or analysis and the task will reappear in the Quality Tasks view.