このチュートリアルでは、Static Analysis vs Coverage サンプル フローがどのように新しい違反を収集し、同じリソース中のカバレッジ データと違反を相関させるかについて説明します。カバレッジ データと変更可能なカバレッジしきい値に基いて、潜在的リスクを反映して違反に優先順位を付けます。違反のリスク/影響は以下のいずれかの値に設定されます。
Extreme | ファイルにカバレッジがない |
---|---|
High | ファイルのカバレッジ率が低い (指定のしきい値より下) |
Low | 許容されるカバレッジ率である (指定のしきい値と同じかそれより下) |
目次:
使用する DTP REST API
- GET /v1.2/staticAnalysisViolations
- POST /v1.4/staticAnalysisViolations/metadata
- GET /v1.4/metadata/priority
要件
DTP および Extension Designer が正しく設定されていること。「サーバーの設定」を参照。
- Violation Events フローがサービスにデプロイされていること。「Violations Event フローについて」を参照。
- DTP が Parasoft 静的解析/テスト ツール (C++test、dotTEST、Jtest) からテスト カバレッジ データを収集済みであること。
- サンプルをデプロイした後に、新しい違反として静的解析データを送信できること。
Violations Event フローについて
この例は Violations Event を使用します。これはExtension Designer に付属する一般的なユーティリティ フローです。このフローは、DTP に送られる新規または修正済みの静的解析違反に関連するイベントをサブスクライブするために使用します。[読み込み] > [ライブラリ] > [Common] > [Violation Events] を選択して、このフローをサービスにデプロイします。
サンプルのセットアップ
- Extension Designer で、既存のサービスをクリックするか、新規にサービスを作成します (「サービスの使用」を参照)。
- 新規にフローを作成し (「フローの使用」を参照)、Extension Designer のメニューから [読み込み] > [ライブラリ] > [Examples] > [Static Analysis vs Coverage] を選択します。
- [デプロイ] をクリックします。
- 新しい静的解析違反データを DTP に送ります (Parasoft 静的解析/テスト ツールのドキュメントを参照)。違反は、カバレッジ データを持つ同じプロジェクトの違反でなければなりません。
ファイル カバレッジのしきい値の設定
Set the file coverage threshold ノードをダブルクリックします。カバレッジのしきい値は、ノードの [Rules] セクションで定義します。デフォルトは 30.0 であり、これはファイル カバレッジのしきい値が 30.0% であることを表します。
違反のフィルタリングとカバレッジ計測の適用
Filter and group violations ノードをダブルクリックして JavaScript を確認します。デフォルトでは、コードの書式に関連する違反はカバレッジ計測から除外されます。違反の中には、リソース リークや null ポインタ例外、および同種の違反と比較した場合に重大なリスクを必ずしも生じないものもあります。そのような違反をカバレッジ計測から除外して、それらの違反に対する “リスク/影響” が上昇するのを防止します。
フィルタリング方法を追加して適用することで、カバレッジ リスク解析を適用する違反をさらに絞り込むことができます。また、フィルタリングを削除して、新しい違反をすべてカバレッジ リスク計測の対象にすることもできます。
モジュール カバレッジ データを取得し、違反をフィルタリングした後、違反は projectResourcePath によってグループ化されます。projectResourcePath パラメーターは、違反を含むファイルを表します。違反のセット全体に対して “リスク/影響” を設定できるよう、違反のグループごとに projectResourcePath のファイル カバレッジが取得され、違反のセットが DTP REST API ノードに渡されます。