このセクションでは、 特定の静的解析違反をレポートしないようにする方法について説明します。たとえば、通常はルールに従って静的解析を実行するものですが、ときには例外的な状況のためにルールを無視したい場合もあります。抑制スキーマは、GUI で入力したりソースコードに直接定義したりすることができます。

このセクションの内容:

抑制とは

抑制は、 SOAtest が特定の静的解析タスクの追加発生をレポートさせないために使用します (ひとつのルールから複数のタスクがレポートされる場合もあります) 。抑制された違反メッセージは、 [品質タスク] ビューの代わりに [抑制] ビューに表示されます。そのため、ユーザーは必要に応じて抑制された違反をモニターし、解析結果エリアでは他のエラーにフォーカスすることができます。

通常はルールに従って静的解析を実行しますが、例外的な状況によってルールを無視したい場合に抑制機能を使用します。抑制機能を使用すると、意図的なルール違反を繰り返しレポートされることなく、コードのチェックを続けることができます。「特定の違反メッセージ」ではなく「あるルールのすべての違反メッセージ」をレポートしないよう設定するには、テスト コンフィギュレーションでそのルールを無効化します。

抑制の設定はテスト コンフィギュレーションとは無関係です。混乱を避けるために以下の点に留意してください。

  • テスト コンフィギュレーションは、静的解析中にチェックするルールのセットを定義します。
  • 抑制は、どの静的解析の結果を [品質タスク] ビューやレポートで表示するか定義します。

つまり、テスト コンフィギュレーションで選択したルールは解析中にチェックされますが、抑制の基準に一致する結果はレポートされません。 

 

抑制はメッセージ ベースであり、ルール ベースではない

抑制は指定の静的解析タスクをレポートしないようにする機能です (たとえば、「行 Y で発生したルール X の違反を修正してください」など) 。抑制は、ひとつのルールのすべての違反メッセージをレポートさせない機能ではありません。 

抑制の定義

[品質タスク] ビューに表示される静的解析タスクを抑制するには、次の操作を行います。

  1. [品質タスク] ビューで抑制したいタスク アイテムを右クリックし、ショートカット メニューの [タスクの抑制] をクリックします。
    • ルール カテゴリ、指定のルール、ファイルなどのグループすべてのタスクを抑制するには、対象グループのノードを右クリックし、 [すべてのタスクを抑制] をクリックします。
  2. [抑制された理由] ダイアログに抑制する理由を入力します。

タスクは "抑制" され、 [品質タスク] ビューから除去されます。代わりに [抑制] ビューにエントリが追加されます。プロジェクトの今後のテストで同じ静的解析違反が見つかった場合、 [抑制] ビューにレポートされ、 [品質タスク] ビューにはレポートされません。

抑制の参照

今後のテストでレポートされた抑制されたメッセージを参照するには、次の操作を行います。

  • [抑制] ビューを開きます。このビューが表示されていない場合、 [Parasoft] メニューの [ビューの表示] > [抑制] をクリックします。

[抑制] ビューには次の情報が表示されます。

  • 抑制された静的解析違反のメッセージ。
  • タスクが抑制された理由。
  • 抑制が適用されたリソース。
  • リソースを含むフォルダー。
  • タスクを抑制したユーザーの名前。
  • 抑制が初めて適用された日付。

[抑制] ビューのコンテンツを列に対してソートするには、列のヘッダーをクリックします。

 

抑制のメッセージや理由を編集できます。

編集するには、 [抑制] ビューで対象の抑制を右クリックし、ショートカット メニューの [メッセージの編集] または [理由の編集] をクリックします。編集ダイアログが開くので、メッセージまたは理由を修正します。

抑制フィルターで抑制の表示を制限する

抑制フィルターを使用して、 [抑制] ビューに表示させる抑制を制限できます。 

[抑制] ビューに表示させる抑制をフィルターするには、次の操作を行います。

  1. [抑制] ビューのツールバーの [フィルター] ボタンをクリックします。[フィルター] ダイアログが表示されます。
  2. フィルターを有効にするには、 [有効] チェックボックスをオンにします。
  3. 適用するフィルターを設定します。以下のオプションがあります。
    • 表示アイテムの制限: 指定の数までだけ抑制を表示します。
    • すべてのリソース:  すべてのプロジェクトのすべての抑制を表示します。
    • 同じプロジェクトのすべてのリソース: 現在選択しているプロジェクトのすべての抑制を表示します。
    • 選択されたリソースのみ: 現在選択しているリソースの抑制だけを表示します。
    • 選択されたリソースおよびその子: 現在選択しているリソースとそのリソースの子の抑制だけを表示します。

抑制の解除

[抑制] ビューで解除する抑制を選択し、 [抑制] ビューの右上にある赤い X マークの [選択された抑制の削除] ボタンをクリックします。

今後は、このプロジェクトのテストで同じ静的解析違反が検出された場合、そのタスクが [品質タスク] ビューに表示されます。

  • No labels