このセクションの内容:
はじめに
Key Performance Indicator (KPI) スライスは、開発プロジェクトでコード解析ルールに割り当てられた重み付けに基づいて、スコアを計算します。重み付けは、開発目標に合わせてカスタマイズできるプロファイルで定義されます。このスライスが呼び出されると、プロジェクトの各ファイルについてルール違反の数がカウントされます。各ルールについて、プロファイルで指定されたルールの重み付けで違反カウントを乗算します。ルールに対してルール プロファイルに定義された重みがない場合、そのルールのカウントは収集されません。KPI スコアを出すために、重み付けされたカウントの合計が論理コード行 (METRIC.NOLLOCIF) で除算されます。このアーティファクトは Security Compliance Pack に同梱されています。これには、セキュリティ コンプライアンス標準に関連する KPI を計算するためのコンフィギュレーションが含まれます。
KPI Slice Workflow
- Security Compliance Pack をインストールします。KPI スライスおよび重み付けされたプロファイルがインストールされます。
- DTP 環境に KPI スライスをデプロイします。
- Security Compliance Pack テスト コンフィギュレーションのいずれかを使用してコード解析ツールを実行します (詳細については「Security Compliance Pack」を参照)。
- Metrics テスト コンフィギュレーションを使用してコード解析ツールを実行します。ファイルの論理行数メトリクス (METRIC.NOLLOCIF) を有効にする必要があります。
- KPI スライスの REST エンドポイントを呼び出して計算を実行します。フィルター ID、ビルド ID、および重み付けが定義された KPI プロファイルを含める必要があります。計算は長時間実行されるプロセスであり、通常、自動夜間コード解析の一部として実行するのが最適です。
- KPI プロファイルに従ってデータを表示するように構成されたメトリクス ウィジェットを追加します。
要件
- DTP および DTP Enterprise Pack 2020.1
- Parasoft C/C++test、dotTEST、Jtest バージョン 2020.1 以降
- ファイルの論理コード行数 (METRIC.NOLLOCIF) を DTP にレポートするようにコード解析ツールを設定する必要があります。正しいフィルターとビルド ID を使って設定する必用もあります。フィルターとビルドの詳細およびコード解析ツールでこれらを設定する方法については、「DTP の概念」を参照してください。
- 静的解析データを持つビルドが DTP になければなりません。KPI 計算リクエストにビルド ID を含めない場合 (「計算の実行」を参照)、メトリクスは、静的解析データを含む最新のビルドで DTP にレポートされます。それ以外の場合、計算は指定されたビルドにレポートされます。
インストール
KPI スライスは Security Compliance Pack と共にインストールされます。Security Compliance Pack をインストールした後、Extension Designer を使用してスライスをデプロイする必要があります。
以前のバージョンからのアップグレード
KPI スライスのスタンドアロン インスタンスからアップグレードする場合は、最新バージョンをインストールする前に、モデルやプロファイルを含め、以前のバージョンのアーティファクトをアンインストールしてください。以前のバージョンに同梱のデフォルト プロファイルを変更した場合、またはカスタム プロファイルを作成した場合、プロファイルをエクスポートし、以下の属性を追加します (「プロファイルのエクスポートとインポート」も参照)。
- metricId: METRIC.KPIIF
- metircName: KPI in File
デフォルト値を変更する場合、メトリクス ID 接頭辞を METRIC.KPI.<スペースなしのプロファイル名>
に設定することを推奨します。メトリクスには完結な名前を使用してください (最大 30 文字)。
スライスのデプロイ
- Extension Designer を開き、[サービス] タブをクリックします。
- サービス カテゴリを展開し、既存のサービスをクリックするか、KPI スライス用に新しいサービスを作成します。
- スライスを既存のサービスにデプロイする場合は、[+] ボタンをクリックして新しいタブを追加します。それ以外の場合は、次の手順に進みます。
- 縦の三点メニューをから [読み込み] を選択し、[ライブラリ]> [Workflows] > [Security] > [Key Performance Indicator] を選択します。
- [読み込み] をクリックし、空いている任意の箇所をクリックしてサービスにアーティファクトをドロップします。
- [デプロイ] をクリックし、DTP ダッシュボードに戻ります。
- ブラウザーを更新します。
構成
Security Compliance Pack をインストールすると、いくつかの KPI プロファイルが追加されます。各プロファイルには、一連のセキュリティ コンプライアンス ガイドラインをチェックする Parasoft ルール用の重み付けが含まれています。デフォルトの重み付けを使用するか、各ルールを確認して独自の重み付けを適用できます。
重み付けを変更するには:
- プロファイルをクリックし、[編集] をクリックします。
- ルールをクリックして [重み] フィールドの値を変更します。
- [保存] をクリックします。
プロファイルにないルールを追加して、計算に含めることもできます。詳細については「モデル プロファイルの使用」を参照してください。
計算の実行
KPI スライスは長時間実行するスライスです。理想的には夜間ジョブの一部として、サード パーティによって実行されたときにだけ計算されるべきです。
- [サービス] タブでサービス カテゴリをクリックし、エンドポイントを表示します。API または直接のエンドポイント パスを使用できます (詳細については「サービス カテゴリ ページ」を参照してください)。
- エンドポイントをコピーし、必須パラメーターと共に REST リクエストをエンドポイントに送ります。利用可能な場合 API エンドポイントを使用します (詳細については「フローの使用」を参照してください)。以下の表で必須パラメーターについて説明します。
filterId | 計算を実行するプロジェクトのフィルター ID。 |
---|---|
profile | 計算に使用するルールと重み付けのプロファイル名。 |
buildId | 計算を実行するビルド ID。ビルド ID を指定しない場合、このパラメーターのデフォルトは最新ビルドです。 |
サンプルの実行
以下のコマンドを実行して、スライスを実行して計算を行うことができます。
curl "http://localhost:8314/api/v1/services/5dcc38b803c7380f707268b9/slices/bd858e5f.965978?filterId=2&buildId=docs-2019-11-13&profile=CWE%20Security%20Impact%20-%20Java"
成功の場合、以下のようなレスポンスを受け取ります。
{ "success": { "message": "Calculation has started for filter 'jtest' using profile 'CWE Security Impact - Java'. Check debug output for any errors during calculation.", "title": "KPI" } }
HTTP(S) 準拠のパラメーターを使用する
パラメーターを追加する際は、文字列パラメーターにスペース、プラス (+)、スラッシュ (/)、その他 HTTP(S) プロトコルが許可しない文字を必ず適切にエンコードしてください。
たとえば、以下のパラメーターは許可されないため、アーティファクトが正しく動作しません: buildId=c++test
。このパラメーターをエンコードすると、次のようになります: buildId=C%2D%2Dtest
エンコーディング ツール (たとえば http://www.url-encode-decode.com) を使用すると、規格に準拠するよう適切にパラメーターをエンコードするのに役立ちます。
DTP でのデータの確認
計算が完了して KPI メトリクスが DTP にレポートされたら、DTP のダッシュボードにメトリクス ウィジェットを追加し、セキュリティ コンプライアンス ガイドラインに関連するメトリクスを [メトリクス] ドロップダウン メニューから選択できます。ドロップダウン メニューの値は、プロファイルの [メトリクス名] フィールドから取得されます (「構成」を参照)。DTP ダッシュボードへのウィジェットの追加に関する情報については「ウィジェットの追加」を参照してください。
ユーザーの指定に従ってウィジェットにメトリクスが表示されます。
ウィジェットをクリックして 単一メトリクスの概要 レポート を表示します。
メトリクス エクスプローラー でデータを確認するには、レポートのリンクをクリックします。