このトピックでは、SOAtest で静的解析違反を抑制する方法について説明します。
このセクションの内容:
抑制とは
抑制は、レポートされたタスクの特定のオカレンスを無視しつつ、テストを実行したり静的解析ルールに従うことができる特別なマーカーです。機能テストに関連するタスクを抑制することで、テストの初期段階で生成されるノイズを削減したり、失敗が期待されるステップを無視したりすることができます。
静的解析の抑制では、アプリケーションの重要部分に影響を与えない例外を定義することにより、プログラミング ガイドラインに準拠できます。1 つの静的解析ルールに対して複数のタスクがレポートされる場合がありますが、その解析ルールが特定のケースに適用できない場合、抑制を適用できます。
抑制を適用すると、 parasoft.suppress ファイルがテスト ファイルと同じ場所に作成されます。この抑制ファイルには、どのファイルに抑制があるか、抑制の作成者、抑制の理由などの情報が含まれます( 「手動による抑制ファイルの定義」を参照)。抑制されたタスクは [品質タスク] ビューからも削除されます。
抑制の設定はテスト コンフィギュレーションとは無関係です。テスト コンフィギュレーションは、テスト実行の範囲、カバレッジ設定、その他の機能、および静的解析中にチェックされる一連のルールを定義します。抑制は、失敗したテストに関連付けられているタスク、または静的解析結果によってレポートされるタスクを、[品質タスク] ビューとレポートに表示する必要があるかどうかを定義します。
タスクの抑制
- [品質タスク] ビューで、レポートされたタスクを右クリックし、[タスクの抑制] を選択します。
タスク(ルールカテゴリ、特定のルール、ファイルなど)を含むノードを右クリックして、すべての子タスクを抑制することもできます。
- 抑制を保存する場所を選択します。Team Server での抑制の保存は非推奨になり、デフォルトで無効化されています。Team Server での抑制は将来のバージョンで削除される予定です。詳細については「Team Server での抑制の有効化(非推奨)」を参照してください。
- タスクを抑制する理由を入力し、[OK] をクリックします。
タスクは抑制され、 [品質タスク] ビューから抑制ファイルに移動されます。このファイルは、テスト ファイルと同じディレクトリに作成されます。抑制を確認するには、SOAtest エディターまたはプレーンテキスト エディターでファイルを開きます。parasoft.suppress ファイルの内容の詳細については 「手動による抑制ファイルの定義」を参照してください。
手動による抑制ファイルの定義
テスト ファイルと同じ場所にテキスト ファイルを作成し、以下の形式で抑制情報を記述することで、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 | 抑制の最後を指定します。 | 必須 |
抑制を適用するには、抑制で指定されたすべてのプロパティがタスクのプロパティと一致する必要があります。
抑制ファイルの例
以下は、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
非推奨の抑制の処理
抑制を XML スタイルの形式でローカルまたは TeamServer に保存することは推奨されません。代わりに、抑制は parasoft.suppress ファイルに保存されます。SOAtest の IDE 機能を使用して ( Suppressing Tasks を参照)、または手動で parasoft.suppress ファイルに追加することによって ( 手動による抑制ファイルの定義 を参照)、抑制を作成できます。非推奨の形式で保存された抑制は、引き続きコードに適用され、非推奨の [抑制] ビュー で確認できますが、抑制の移行機能を使用して parasoft.suppress ファイル形式に移行することができます。
非推奨の形式からの抑制の移行
- メイン メニューから [Parasoft] > [ビューの表示] > [抑制(非推奨)] を選択して、非推奨の [抑制] ビューを開きます。
- メニューから [抑制の移行] を選択します。
- プロンプトが表示されたら、移行を確認します。
次のいずれかのシナリオが適用されます。
Team Server との接続
Team Server に接続されている場合、SOAtest は、ローカル ワークスペースではなく Team Server に保存されているチーム抑制をチェックします。
- SOAtest で検出された非推奨のチーム抑制は、プレーンテキストに変換され、対応するソース ファイルと同じ場所にある parasoft.suppress ファイルに保存されます。
- 非推奨のチーム抑制は、引き続き Team Server で利用可能です。
- 非推奨のチーム抑制は、手動で削除されるまで [抑制(非推奨)] ビューに残ります ( Removing Suppressions を参照)。
Team Server に保存されている抑制で、リモート URL (http://mycompany.com/dir/file.html など) を指しているものは移行されません。URL を含む抑制は、Scanning Tool またはブラウザーのテスト シナリオを実行して得られた静的解析結果に対してのみ作成されます ( Web ツール を参照)。抑制は、parasoft.suppress ファイルに追加して、手動で移行する必要があります。
ローカル ワークスペース
Team Server に接続されていない場合、SOAtest は Team Server ではなくローカル ワークスペースに保存されている抑制をチェックします。
- SOAtest で検出された非推奨のローカル抑制は、プレーンテキストに変換され、対応するソース ファイルと同じ場所にある parasoft.suppress ファイルに保存されます。
- ローカル抑制を非推奨の形式で保存したバックアップ ファイルが作成されます。ファイルの場所がコンソールに出力されます。
- 非推奨のローカル抑制は、ワークスペースおよび非推奨の [抑制] ビューから削除されます。
非推奨のローカル抑制をバックアップファイルから復元する
- IDE を終了します。
バックアップ ファイルが保存されている場所に移動します (場所はコンソールに出力されています)。local_suppressions_backup.zip ファイルが含まれています。
local_suppressions_backup.zip の内容を同じ場所に展開します。
復元されたローカル抑制は、次回の IDE 起動時に再移行することができます。
Team Server での抑制の有効化(非推奨)
XML スタイルの抑制の表示に関連する [抑制] ビューは非推奨ですが、Team Server の抑制を有効にして、[抑制 (非推奨)] ビューから、旧バージョンの SOAtest で作成された抑制を表示できます。
- メイン メニューから [Parasoft] > [ビューの表示] > [抑制(非推奨)] を選択します。
- 省略記号メニューから [非推奨の抑制を有効化] を選択します。
抑制の削除
parasoft.suppress ファイルから抑制を削除して、タスクの抑制を解除することができます。テストまたは解析を再実行すると、タスクが再び [品質タスク] ビューに表示されます。
抑制が TeamServer に保存されている場合は、[抑制(非推奨)] ビューで抑制を選択して削除(X)ボタンをクリックします。