このトピックでは、SOAtest で静的解析違反を抑制する方法について説明します。このセクションの内容:

抑制とは

抑制は、レポートされたタスクの特定のオカレンスを無視しつつ、テストを実行したり静的解析ルールに従うことができる特別なマーカーです。機能テストに関連するタスクを抑制することで、テストの初期段階で生成されるノイズを削減したり、失敗が期待されるステップを無視したりすることができます。 

静的解析の抑制では、アプリケーションの重要部分に影響を与えない例外を定義することにより、プログラミング ガイドラインに準拠できます。1 つの静的解析ルールに対して複数のタスクがレポートされる場合がありますが、その解析ルールが特定のケースに適用できない場合、抑制を適用できます。 

抑制を適用すると、 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 抑制の最後を指定します。必須

抑制を適用するには、抑制で指定されたすべてのプロパティがタスクのプロパティと一致する必要があります。

抑制ファイルの例

以下は、2 つの機能テスト ステップの抑制を含む抑制ファイルの例です。

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