このセクションの内容:
概要
違反エクスプローラーは、静的解析違反をシステマティックにレビューし、簡単に修正することができるインターフェースです。すべての静的解析違反ウィジェットから、項目をクリックして違反エクスプローラーに移動できます。
同じラン コンフィギュレーションを使った複数のブランチでの静的解析の実行
同じラン コンフィギュレーションを使って複数のブランチに静的解析を実行する場合、複数のビルドにまたがって、違反の同じインスタンスが新規違反としてレポートされます。そのため、違反の数の変化を表すウィジェットのデータが不正確になります。この動作は 静的解析の設定 で変更できます。
違反エクスプローラーは 4 種類の主要パーツから構成されます。
- 検索パネル: 違反の検索 を参照。
- 検索結果パネル: 検索結果の参照 を参照。
- ソース パネル: ソースの参照 を参照。
- アクション パネル: 違反の対応、フロー解析トレースの参照、および 重複コード違反の参照 を参照。
違反の検索
DTP の違反は、パラメーターを使って検索できます。検索エリアを使って特定の種類の違反に絞り込みます。検索エリアで条件を変更して、開発プロジェクト全体で違反を探すことができます。
[検索条件] をクリックして検索オプション画面を表示します。以下の検索条件を利用できます。
フィルター ビルド | フィルターおよびビルド ID は違反を検索するための最低条件です。デフォルトではフィルターを変更するときに最新のビルドが選択されますが、ドロップダウン メニューから別のビルドを選択できます。ベースライン ビルドが選択されるときに、選択したビルドはターゲット ビルドとして機能します。詳細については以下のセクションを参照してください。 |
---|---|
ベースライン ビルド ステータス | ベースライン ビルドは、他のビルドとの比較に使用される履歴ビルドです。ドロップダウン メニューからベースライン ビルドを選択して、ベースライン ビルドからフィルターで選択されたビルドにレポートされた違反を検索します。 [ステータス] ドロップダウン メニューからステータスを選択して、新規、修正済、または既存の違反を検索できます。 |
重要度 | 1 つ以上の重要度レベルを指定して検索を実行できます。重要度はテスト コンフィギュレーションで決定されます。ルール マップを作成して、ルールに設定された重要度レベルをカスタマイズできます。詳細については「ルールの設定」を参照してください。 |
優先度 | 1 つ以上の優先度を指定して検索を実行できます。優先度は REST API でカスタマイズできます。 |
作成者 | 1 人以上のコード作成者を指定して検索を実行できます。作成者は、コード解析ツールの設定から決定されます。 |
担当者 | 1 人以上の担当者を指定して検索を実行できます。 |
アクション | 1 つ以上の割り当てられたアクションを指定して検索を実行できます。アクションは REST API でカスタマイズできます。 |
種類 | 通常の違反、抑制された違反、またはすべての違反を検索できます。 |
リソース グループ | リソース グループは、1 個以上の Ant ファイル パターンによって定義されたリソース (ファイルあるいはフォルダー) の集合です。1 つ以上のリソース グループを指定して検索を実行できます。リソース グループは REST API で定義できます。 |
包含ファイル パターン 除外ファイル パターン | Ant パターンを指定して、検索範囲を広げたり狭めたりすることができます。ファイル パターンの設定については「ファイル単位で違反を検索する」を参照してください。 |
リスク/影響度 | 1 つ以上のリスク/影響度を指定して検索を実行できます。リスク/影響度は、違反がビジネスに与える度合いです。リスク/影響度は REST API でカスタマイズできます。 |
参照番号 | 特定の参照番号に検索を制限することができます。参照番号は、手動で追加するか、REST API で自動化することができます。 |
カテゴリ | 1 つ以上の静的解析カテゴリを指定して検索を実行できます。静的解析ルールはカテゴリに分類されますが、ルール マップを作成して、ルールとカテゴリを定義したりマッピングを変更したりすることができます。詳細については「ルールの設定」を参照してください。 |
モジュール | 1 つ以上のモジュールを指定して検索を実行できます。 |
最大数 | 違反エクスプローラーに表示する違反の数を制限できます。 |
ファイル単位で違反を検索する
ファイルを検索してそのファイル中で発見された違反を返すことができます。以下の表は、ファイル パスの設定方法の例です。
値 | 結果 |
---|---|
test | 文字列 "Test" を含むファイル パスで発見されたすべての違反を返します。例:
しかし、以下は返しません。
|
com/ex | 文字列 "com/ex" を含むファイル パスで発見されたすべての違反を返します。例:
しかし、以下は返しません。
|
com/parasoft/** | "com/parasoft" ディレクトリ ツリーで発見されたすべての違反を返します。例:
しかし、以下は返しません。
|
**/test/*.java | ディレクトリ ツリー中の任意の test ディレクトリにある、接尾辞が ".java" のファイルで発見されたすべての違反を返します。例:
しかし、以下は返しません。
|
検索結果の表で違反をクリックすると、その違反があるコード部分が表示されます。
DTP を設定して、ソース管理システムからソースを表示するか、あるいはコード解析/テスト実行の最中に接続した Parasoft ツールから送られたソースを表示することができます。ソースをどのように表示するかを DTP で指定する方法については「ソース コード ビューの設定」を参照してください。
検索結果の参照
検索パラメーターに従って発見された違反は、検索結果パネルに表示されます。
違反をクリックして、ソース ファイルの内容を参照したり、違反の詳細を確認したり、修正のためのアクションを有効にします。違反を選択すると、ファイル名とそのファイルを開いたコンポーネントがコード パネルに表示されます。
データをソートしたり表をカスタマイズしたりして、ニーズに合わせて違反データを見やすくすることもできます。詳細については「エクスプローラー ビューの使用方法」を参照してください。
デフォルトでは、最大で 1000 件の違反が表示されます。URL に &limit=[number] パラメーターを追加して上限を変更できます。たとえば以下の URL の場合、最大で 2000 件まで違反を表示できます。
[DTP_HOME]/grs/dtp/explorers/violations?filterId=11&limit=2000
limit パラメーターには任意の値を設定できます。ただし、非常に大きな値を指定すると、違反エクスプローラーのパフォーマンスに影響する場合があります。
ソースの参照
ソース パネルでは、コード中の違反を参照することができます。Report Center エクスプローラー ビューでソースを参照するには適切な権限が必要です (詳細については 「ユーザー権限とグループの設定」 を参照してください)。
行番号の横のマーカー上にマウス ポインタを置くと、違反のエラー メッセージについてのツールチップが表示されます。
情報アイコンにマウス ポインタを置くと、ソースがどこから表示されているかが示されます。
フロー解析トレース機能を使用する場合、コード パネルでその違反の原因になったコードのパスを参照することもできます。
違反エクスプローラーでコードを参照する方法の詳細については 「フロー解析トレースの参照」を参照してください。
違反の対応
違反エクスプローラーには、組織のポリシー、ニーズ、目的に合わせて違反を処理するのに役立つツールが用意されています。[優先度] パネルからソフトウェア品質ワークフローに違反を置くことができます。
違反の優先度を設定する権限だけでなく、ソースを参照するための権限も必要です。違反に優先度を設定するための権限は、そのユーザーが所有するすべての違反か、あるいは一部の違反だけに許可されます。以下の表は、プロジェクトのメンバーシップの状況とどのように権限が割り当てられるかを示したものです (詳細については 「権限」 を参照してください)。
ユーザーの種類 | 追加権限 | 許可されるアクセス |
---|---|---|
管理者 |
| |
リーダー |
| |
メンバー |
| |
非メンバー 1 | なし | |
非メンバー 2 | project |
|
非メンバー 3 | project, prioritizeOwner |
|
非メンバー 4 | project, viewSources |
|
違反を開発者に割り当てる
他の作成者、またはフィルターに関連付けられたプロジェクトのメンバーに違反を割り当てることができます。
- 検索結果エリアで違反を選択します。コード ビュー パネルにファイル名が表示されます。
- [優先度] タブをクリックし、[担当] フィールドをクリックします。
- ユーザー名を入力します。入力を始めると、オートフィル機能が実行されます。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反にコメントを追加する
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[コメント] フィールドにコメントを入力します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反を抑制する
抑制と [非表示] 優先度
5.4 より前のバージョンの DTP では、静的解析違反を抑制する唯一の方法は優先度を [非表示] に設定することでした (「違反の優先度」を参照)。この方法は DTP で違反を非表示にしますが、プログラム的な抑制ではありません。[非表示] 優先度でマークされた違反を本当に抑制に変換できます。詳細については 5.4.0 リリースノートの「アップグレードについての注意事項」を参照してください。
- 検索結果エリアで違反を選択し、[優先度] タブをクリックします。
- [以降の解析実行では、選択された違反を抑制します] オプションを有効にし、[理由] テキスト フィールドに抑制の理由を入力します。抑制は次回の静的解析の実行で実施されます。このオプションを無効にすると、違反の抑制を解除できます。変更は、次回の解析で実施されます。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反の優先度を設定する
- 検索結果エリアで違反を選択します。コード ビュー パネルにファイル名が表示されます。
- [優先度] タブをクリックし、ドロップダウン メニューから優先度を選択します。
- 必要な変更を加えて [適用] をクリックします。デフォルトでは [すべてのブランチに適用] オプションが有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反にアクションを割り当てる
アクションとは、テストの失敗の修正方法を定義するために使用できるメタデータの文字列です。DTP には、定義済みのアクションが用意されています。[なし]、[修正]、[再割当て]、[レビュー]、[抑制]、および [その他] です。API を使用して、[なし] 以外の定義済みアクション タイプを編集または削除することができます。アクションの設定の詳細については、Report Center のナビゲーション バーの [ヘルプ] ドロップダウン メニューから [API ドキュメント] を参照してください。
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[アクション] ドロップダウン メニューから値を選択します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反リスクと影響度レベルを設定する
違反エクスプローラーでは、リスクをもたらす違反や、アプリケーションに関連するポリシー目標に影響する違反に目印を付けて警告することができます。
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[リスク/影響] ドロップダウン メニューから値を選択します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反に期限を設定する
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[期限] フィールドのカレンダー アイコンをクリックして日付を選択します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反に参照番号を設定する
- 検索結果エリアで違反を選択します。
- [優先度] タブをクリックし、[参照 #] フィールドに値を入力します。
- 必要に応じて他の設定を行って、[適用] をクリックします。[すべてのブランチに適用] がデフォルトで有効化されています。選択した違反にだけ変更を適用したい場合、このオプションを無効化してください。「違反に変更を適用する」を参照してください。
違反に変更を適用する
違反を更新する場合、違反の 1 つのインスタンスに変更を適用するか、あるいは違反が発生しているすべてのソース管理ブランチ中の違反に変更を適用できます。変更を適用すると、確認メッセージが表示されます。
違反情報の参照
違反に適用されたすべての変更は、アクション パネルで参照することができます。アクション パネルには、選択した違反に関連する詳細な履歴情報が表示されます。選択した違反についてのルールの説明も参照できます。
変更履歴
アクション パネルの [変更履歴] タブをクリックすると、選択した違反に対する優先度の変化のサマリー (再割当て、影響度レベルの変更など) が表示されます。複数の違反の変更履歴を参照することはできません。
[コメントだけを表示] オプションをクリックして、コメント ログを除いたすべての更新を表示/非表示にすることができます。
違反の履歴
アクション パネルの [違反の履歴] タブをクリックすると、静的解析の実行および選択した違反の検出日が表示されます。複数の違反について違反の履歴を参照することはできません。
[違反の履歴] タブには、違反に関連するソース管理の履歴も表示されます。異なる違反 ID で、同じ違反が複数のブランチに出現する場合があります。[Violations in Branch] ドロップダウン メニューからブランチを選択し、選択した違反の履歴を他のブランチで確認します。
別のブランチに切り替えると、[違反の履歴] タブの表がリフレッシュされます。ただし、違反エクスプローラーの他のエリアは、選択した違反のインスタンスについての情報を表示し続けます。
DTP からビルド情報が削除された場合 (つまり定期的なデータベースの最適化が実施されたか、手動でビルド情報を削除した場合)、違反の履歴の表は空になります。
トレース
フロー解析または CDD (重複コードの検出) を実行した場合、 (コードの)[トレース] タブをクリックしてそれらの実行結果を確認できます。
フロー解析トレースの参照
データ フロー解析 (動的解析) を実行した場合、違反に到達するまでのパスが [トレース] タブに表示されます。フロー解析を使用すると、コードがどのように構成されるかを決定したり、なぜ違反が発生したのかを理解したり、違反の重要性を判断したりするのに役立ちます。
トレースをクリックすると、コード パネルに違反のパスが表示されます。
ソース コードを参照するための権限が必要です。詳細については「権限」を参照してください。
重複コード違反の参照
CDD (重複コードの検出) 解析ルールで違反が検出された場合、[トレース] タブでそれらの違反を参照できます。重複コードの存在は、アプリケーション設計が良くないことを示している可能性があるだけでなく、保守のコストが増大する可能性も示している可能性があります。違反エクスプローラーの検索結果パネルで CDD 違反をクリックすると、違反のパスが開きます。
このパネルには、ファイル名、行番号、および重複コードの各インスタンスのパスが表示されます。ソース パネルには、重複コードがあるソースも表示されます。
ソース コードを参照するための権限が必要です。詳細については「権限」を参照してください。
[重複コードの検出] パネルでエントリをクリックして、重複コードのインスタンスを確認します。
優先度の設定や開発者への違反の割り当てなど、通常の違反修正アクションを実行できます。「違反の対応」を参照してください。
ヘルプ
[ヘルプ] タブをクリックすると、コードが違反している静的解析ルールの説明が表示されます。複数の違反についてルールの説明を参照することはできません。
詳細
アクション パネルの [詳細] タブをクリックすると、選択した違反の場所、所有者、ルール ID、およびメッセージについての現在の情報が表示されます。
検索結果の中から違反を選択している場合、[違反 ID] フィールドが表示されます。違反 ID のリンクは、その違反と選択したフィルターに直接リンクします。このリンクを共有すると、他の開発者が DTP でこの違反に直接アクセスすることができます。