このスライスは、定義済みの重み付けされたルール プロファイルを開発プロジェクトに適用することで、KPI (METRIC.KPIIF) スコアを計算します。重み付けされたルール プロファイルを利用すると、ルールのカスタム セットを定義し、各ルールに個別に重み付けを適用することができます。このスライスを呼び出すと、プロジェクト中の各ファイルのルール違反の数がカウントされます。ルールごとに、「ルール違反の数」が「ルール プロファイルで指定されたルールの重み付け」で乗算されます。ルールに対してルール プロファイルに定義された重みがない場合、そのルールのカウントは収集されません。KPI スコアを出すために、重み付けされたカウントの合計がファイルの論理コード行 (METRIC.NOLLOCIF) で除算されます。このアーティファクトには Security Compliance Pack for DTP 5.4.1 が同梱されていますが、Parasoft 製品テクニカル サポート センターに問い合わせてアーティファクトを個別にダウンロードすることもできます。
このセクションの内容:
要件
- DTP および DTP Enterprise Pack 5.4.0
- ファイルの論理コード行数 (METRIC.NOLLOCIF) を DTP にレポートするようにコード解析ツールを設定する必要があります。正しいフィルターとビルド ID を使って設定する必用もあります。フィルターとビルドの詳細およびコード解析ツールでこれらを設定する方法については、「DTP の概念」を参照してください。
- 静的解析データを持つビルドが DTP になければなりません。静的解析を持つ最新ビルドでメトリクスが DTP にレポートされます。
追加されるコンポーネント
KPI スライスをインストールすると、4 つのサンプル プロファイル (下記で説明) が追加されます。
インストール
- アーティファクトのインストール方法については 「アーティファクトのダウンロードとインストール」 を参照してください。
- Extension Designer のアクション メニューから [読み込み] > [ライブラリ] > [Process Intelligence] > [Key Performance Indicator] > [Key Performance Indicator] を選択してサービスにアーティファクトをインポートします。
- [デプロイ] をクリックします。
アップグレードについての注意事項
KPI 2.1 にアップグレードしている場合、モデルとプロファイルを含め、アーティファクトから以前のバージョンをアンインストールします。
バージョン 2.1 より、プロファイルごとにメトリクス ID を定義することができます。特定のメトリクス ID とプロファイルを関連付けると、結果を上書きせずに複数のメトリクスについて KPI を参照できます。
以前のバージョンに同梱のデフォルト プロファイルを変更した場合、またはカスタム プロファイルを作成した場合、プロファイルをエクスポートし、以下の属性を追加します (「プロファイルのエクスポートとインポート」も参照)。
- metricId: METRIC.KPIIF
- metircName: KPI in File
デフォルト値を変更する場合、メトリクス ID 接頭辞を METRIC.KPI.<スペースなしのプロファイル名>
に設定することを推奨します。メトリクスには完結な名前を使用してください (最大 30 文字)。
設定
このスライスは、KPI モデル プロファイル タイプを使って KPI スコアを計算します。プロファイルは、ウィジェット リクエストで送られた “profile” クエリー パラメーターから決定されます。このスライスにはサンプル プロファイルがいくつか含まれており、[モデル プロファイル] タブで確認できます。
詳細については「モデル プロファイルの使用」を参照してください。
フィルター ID はウィジェットによってクエリー パラメーターとして渡されます。これは、プロファイルがどの DTP フィルターに対して計算すべきかを決定します。以下のサンプル プロファイルは、モデル プロファイルの設定を簡単にするためにディストリビューションと共にインストールされます。
All Rules | このプロファイルはすべての Jtest 静的解析ルールに等しく「100/重要度」の重みを割り当てます (たとえば、重要度 1 の違反には 100 を、重要度 2 の違反には 50 を割り当てます)。 |
---|---|
Recommended Rules | このプロファイルは、Recommended Rules テスト コンフィギュレーションでアクティブな Jtest 静的解析ルールに重みを割り当てます。重みは、All Rules プロファイルと同じ方法で計算されます。 |
Flow Analysis | このプロファイルは、Flow Analysis テスト コンフィギュレーションでアクティブな Jtest 静的解析ルールに重みを割り当てます。重みは、All Rules プロファイルと同じ方法でマッピングされます。 |
計算の実行
KPI スライスは長時間実行するスライスです。理想的には夜間ジョブの一部として、サード パーティによって実行されたときにだけ計算されます。
- [サービス] タブでサービス カテゴリをクリックし、エンドポイントを表示します。API または直接のエンドポイント パスを使用できます (詳細については「サービス カテゴリ ページ」を参照してください)。
- エンドポイントをコピーし、必須パラメーターと共に REST リクエストをエンドポイントに送ります。利用可能な場合 API エンドポイントを使用します (詳細については「フローの使用」を参照してください)。以下の表で必須パラメーターについて説明します。
filterId | 計算を実行するプロジェクトのフィルター ID。 |
---|---|
profile | 計算に使用するルールと重み付けのプロファイル名。 |
buildId | 計算を実行するビルド ID。違反データおよび計算されたメトリクスのある最新のロックされていないビルドを使用したい場合、このパラメーターの値として latestBuild を使用できます。ビルド ID を指定しない場合、このパラメーターのデフォルトは latestBuild です。 |
サンプルの実行
以下のコマンドを実行して、スライスを実行して計算を行うことができます。
curl "http://localhost:8321/slices/a37fbfb6.59b87?filterId=71&profile=All%20Rules&buildId=latestBuild"
成功の場合、以下のようなレスポンスを受け取ります。
{{success: {title: "KPI", message: "Calculation has successfully started for filter 'Parabank-v3' using profile 'Security Impact'."}}
HTTP(S) 準拠のパラメーターを使用する
パラメーターを追加する際は、文字列パラメーターにスペース、プラス (+)、スラッシュ (/)、その他 HTTP(S) プロトコルが許可しない文字を必ず適切にエンコードしてください。
たとえば、以下のパラメーターは許可されないため、アーティファクトが正しく動作しません。
buildId=c++test
このパラメーターをエンコードすると、以下のようになります。
buildId=C%2D%2Dtest
エンコーディング ツール (たとえば http://www.url-encode-decode.com) を使用すると、規格に準拠するよう適切にパラメーターをエンコードするのに役立ちます。
DTP でのデータの確認
計算が完了して KPI メトリクスが DTP にレポートされたら、DTP のダッシュボードにメトリクス ウィジェットを追加し、[メトリクス] ドロップダウン メニューから Key Performance Indicator を選択できます。詳細については「ウィジェットの追加」を参照してください。
ユーザーの指定に従ってウィジェットにメトリクスが表示されます。
ウィジェットをクリックすると、その詳細を メトリクス エクスプローラー で確認できます。