このセクションの内容:

はじめに

Risky Code Changes は、コード変更のメトリクスを計測し、DTP のウィジェットとレポートに表示します。Risky Code Changes は、ファイルごとに 3 種類のメトリクスを取得します。

  • テスト スコア
  • 保守性スコア
  • リスク スコア

メトリクスは以下の計算に従って求められます。

  • Test Deficit (テスト不足): 100 – (テスト数 / 2 * メソッド数 * 100 (上限は 100) + 4 * カバレッジ (パーセンテージ * 100) / 5
  • Maintenance Burden (保守の負担): 200 – 保守性インデックス (上限は 200)
  • Quality Debt (品質負債): (重要度 1 および 2 の違反の数 + テスト失敗数)/ 論理コード行数

計算されたスコアは、リクエストで送られたモード パラメーターによって、さまざまな形式で表示できます。

Risky Code Changes を更新する場合はデータを再びサブミットする

バージョン 2.0.0 以前の Risky Code Changes を使用していて、バージョン 5.3.1 以前の DTP からアップグレードした場合、新しいテストとカバレッジ レポートを DTP Server に送り、ウィジェットを構成するときに そのレポートをベースライン ビルドとして設定しなければなりません。

以前のビルド レポートを Data Collector に再びサブミットして、データを投入できます。データが DTP に格納されたら、通常のデータベースのクリーンアップ時にデータが削除されないように、必ずビルドをアーカイブしてください (「ビルドのロックとアーカイブ」を参照)。

要件

  • DTP フィルターのために以下のメトリクスをコード解析ツールで有効化します (メトリクスの有効化とメトリクスの詳細については「[メトリクス] タブ」を参照)。
    • METRIC.MI (保守性インデックス)
    • METRIC.NOLLOCIF (ファイルの論理行数)
    • METRIC.NOMIT (型のメソッド数)
  • DTP フィルターは、静的解析、メトリクス、テスト、およびカバレッジ データを含むラン コンフィギュレーションで構成する必要があります。このウィジェットで構成されたビルドに静的解析、メトリクス、テスト、およびカバレッジ データがない場合、Risky Code Changes のロジックは機能しません。「カバレッジ イメージとフィルターの関連付け」を参照してください。

DTP で ビルド管理 ページを確認することで、これらの要件をフィルターとビルドが満たしているかを確認できます:

インストール

Risky Code Changes は、is installed as part of the the Process Intelligence Pack の一部としてインストールされます (詳細については「Process Intelligence Pack」を参照してください)。Process Intelligence Pack をインストールしたら、Risky Code Changes の機能を有効にするアセットを DTP 環境にデプロイする必要があります。 

  1. まだインストールしていない場合は、Process Intelligence Pack をインストールしてください。
  2. Extension Designer を開き、[サービス] タブをクリックします。
  3. Process Intelligence Engine サービス カテゴリを展開します。アセットはどのサービス カテゴリにもデプロイできますが、Parasoft のアセットのカテゴライズに合うように Process Intelligence Engine カテゴリを使用することを推奨します。[カテゴリの追加] をクリックして独自のサービス カテゴリを作成することもできます (詳細については「サービスの使用」を参照)。
  4. 既存のサービスにアーティファクトをデプロイするか、新しいサービスを追加できます。サービスにデプロイしたアーティファクトの数は、全般的なパフォーマンスに影響します。詳細については「Extension Designer のベスト プラクティス」を参照してください。既存のサービスを選択し、ステップ 6 まで継続するか、または  [サービスの追加] をクリックします。
  5. サービスの名前を指定して [確認] をクリックします。
  6. タブ化されたインターフェイスは、サービス内でアーティファクトを配置するのに役立ちます。複数のタブにまたがってアーティファクトを配置してもシステムのパフォーマンスには影響しません。タブをクリックし (または [+] ボタンをクリックして新しいタブを追加し)、縦の三点メニューから [読み込み] を選択します。
  7. [Local] > [Flows] > [Workflows] > [Process Intelligence] > [Risky Code Changes] を選択し、[読み込み] をクリックします。
  8. 空いている任意の箇所をクリックしてサービスにアーティファクトを追加します。
  9. [デプロイ] をクリックし、DTP 環境へのアーティファクトのデプロイを完了します。
  10. DTP に戻ってダッシュボードをリフレッシュします。これで、関連するウィジェットを追加できるようになりました。

プロファイルの設定

Risky Code Changes スライスは demo モデル プロファイルに同梱されており、これは関連するウィジェットとレポートでしきい値をどのように可視化するかを定義します。このスライスはデータを計算しますが、プロファイルはマーカーを決定します。

demo プロファイルは、3 種類のリスク レベルしきい値を含む、完全に構成されたサンプルです。

  • low
  • medium 
  • high

モデル プロファイルの構成方法については「モデル プロファイルの使用」を参照してください。

データのキャッシュ

Risky Code Changes スライスにはキャッシュ機能があります。このスライスを長時間実行する場合に、同じデータに対する複数のリクエストを迅速に処理できます。データがフィルターのためにリクエストされるとき、このスライスはまずデータがすでに計算されてキャッシュされているかを判断します。キャッシュが存在する場合、データは直接返され、時間のかかる計算はスキップされます。ただし、データがキャッシュされていない場合、キャッシュされたデータが別のビルドの組み合わせに関連付けられている場合、またはビルドの組み合わせにさらに解析データがレポートされた場合、キャッシュは消去されて再計算されます。フィルターおよびベースライン ビルドとターゲット ビルドの組み合わせごとに最大で 1 つのキャッシュが存在します。

キャッシュの消去

このスライスは自動的にキャッシュを削除しないため、フィルターが増えるにつれてキャッシュが大きくなることがあります。古いキャッシュ データの消去を簡単にするために、このスライスには PIE データベースからすべてのキャッシュを削除する方法が用意されています。この方法は、キャッシュされた計算をすべて消去します。また、毎日 00:00 にもキャッシュを消去します。キャッシュの自動消去は、Clean Cache ノードを編集することで設定できます。

ウィジェットの設定

Risky Code Changes ウィジェットはプロセス インテリジェンス カテゴリに追加されます。ウィジェットの追加の詳細については「ウィジェットの追加」を参照してください。

以下のウィジェット設定を行うことができます。

タイトルウィジェットのタイトルを変更するか、デフォルトのタイトルを使用できます。
フィルター[ダッシュボード設定] を選択するか、ドロップダウン メニューから特定のフィルターを選択します。詳細については「フィルターの作成と管理」を参照してください。
期間[ダッシュボード設定] を選択するか、ドロップダウン メニューから特定の期間を選択します。期間は、時間の長さまたはコード ドロップです。
ベースライン ビルド

ベースライン ビルドは、ウィジェットに表示される最初のデータ ポイントです。ダッシュボード設定、期間内の最初のビルド、または前回のビルドを選択できます。

ターゲット ビルドターゲット ビルドは、ウィジェットに表示される最後のデータ ポイントです。ダッシュボード設定または最新ビルドを選択できます。
プロファイルしきい値を決定してどのように可視化するかを指定するためにプロファイルが必要です。詳細については「Profile Configuration」を参照してください。
カバレッジ イメージカバレッジ イメージは、テスト実行に関連するカバレッジ データのための識別子です。詳細については「カバレッジ イメージとフィルターの関連付け」を参照してください。

正しいビルドを取得するためにビルド管理をチェックする

デフォルトでは、ウィジェットを構成するときに、ベースライン ビルドが「前回のビルド」に、そしてターゲット ビルドが「最新ビルド」に設定されます。このスライスは、最新の 2 つのビルドを自動的に選択しますが、これらのビルドにテストとカバレッジの詳細が含まれていない場合もあります。「要件」のセクションで説明するように、ウィジェットを構成する際に DTP でビルド管理ページを確認し、適切なベースライン ビルドとターゲット ビルドを使用するべきです。「ビルド管理」も参照してください。

ウィジェットとレポートの表示

Risky Code Changes スライスには、インストールとデプロイの後に DTP に追加できる以下のウィジェットがあります。

Risky Code Changes - Pie Chart 

このウィジェットは、リスクのあるコード変更の集約 (たとえばプロファイルで定義されたさまざまなリスク レベルに該当するファイルの数) を表示します。

Risky Code Changes - Bubble

このウィジェットは、リスクのあるコード変更をファイルごとに表示します。テスト スコアは X 軸にマッピングされ、保守性スコアは Y 軸にマッピングされ、リスク スコアはバブルの大きさにマッピングされます。

詳細レポート

Risky Code Changes - Pie Chart ウィジェットのセクションまたは Risky Code Changes - Bubble ウィジェットのバブルをクリックすると、Risky Code Changes の詳細レポートが表示されます。ウィジェットでクリックしたデータのリスク レベルに従って、レポートはフィルターされます。 

レポートのヘッダーには、レポートで指定された検索パラメーターに従ってフィルターされるエクスプローラー ビューへのリンクがあります。 

[Maintenance Burden] 列には、ファイルについて計算された保守性インデックスが表示されます。この列のリンクをクリックすると、メトリクス エクスプローラー でファイルの保守性インデックス メトリクス値を確認できます。

[Test Deficit] 列には、ファイルに対して実行されたテストの数、メトリクスの計算で使用されたメソッドの数、およびコード カバレッジのレベルが表示されます。Test Deficit (テスト不足) スコアがこれらの値から計算されます。以下の操作を行うことができます。

[Quality Debt] 列には、重要度 1 および 2 の静的解析違反の数、テストの失敗の数、および “論理コード行数" スコアが表示されます。Quality Debt (品質負債) スコアがこれらの値から計算されます。以下の操作を行うことができます。

トラブルシューティング

カバレッジ情報にアクセスできない場合、ウィジェットではなくエラーが表示されます (「Requirements」を参照)。 

カバレッジ情報を含まないカバレッジ タグがフィルターにある場合、以下のエラーが返されます。

関連付けられたカバレッジ イメージがフィルターにあること (「カバレッジ イメージとフィルターの関連付け」を参照)、およびカバレッジ イメージを受け取るように Data Collector が構成されていること (「Controlling Coverage Data Processing for DTP Enterprise Pack Artifacts」を参照) を確認します。適切に構成した後、新しいレポートを DTP に送る必要があります。

カバレッジ データを受け取るように Data Collector が構成されているが、特定のカバレッジ イメージにデータがない場合、以下のエラーが返されます。

関連付けられたカバレッジ イメージがフィルターにあること (「カバレッジ イメージとフィルターの関連付け」を参照)、およびウィジェットを追加したときに正しいカバレッジ イメージが選択されたこと (「Widget Configuration」を参照) を確認してください。

根本原因に根本原因に対処した後もエラーが続く場合は、キャッシュをクリアする必要があります。

  • No labels