EN JP CN

定義したメトリックに基づいたカスタムレポートの追加

定義したメトリックに基づいたカスタムレポートの追加

Klocwork では、Klocwork Static Code Analysis で独自のカスタムメトリクスとそれらのレポートを定義できます。このプロセスには、次の 3 つの手順があります。

  1. ユーザー定義のメトリックファイル (.ume) でカスタムメトリクスを定義します。
  2. ユーザー定義のメトリックファイルを Klocwork サーバープロジェクトにインポートします。
  3. メトリックレポート構成ファイル (metrics.xml) でカスタムメトリクスレポートを定義します。

ユーザー定義のメトリックファイル (.ume) の作成

カスタムメトリクスを作成して、これを特定のソースファイルに適用できます。たとえば、追加した数、削除した数、変更された行数など、ソースコードの変更を追跡できます。

ユーザー定義のメトリックファイルは、拡張子 .ume が付けられたテキストファイルです。ユーザー定義のメトリックファイルで、各行は 1 つのソースファイルに対する 1 つのメトリックの定義を表します。

行の書式は次のようになります。

<metric_name>;<metric_value>;<file_path>

フィールド

  • <metric_name> には任意の名前 (最大 255 文字の記号) を指定できます。セミコロンは (;) 使用できません。
  • <metric_value> は、指定されたファイルのメトリックの値を表す任意の数値です。ソースコードからこのデータを収集します (たとえば、スクリプトを通じて)。
  • <file_path> はソースファイルへのパスです。

LINES_ADDED;5;c:\my_project\src\main.cpp<br>LINES_ADDED;15;c:\my_project\src\driver.cpp

これらの例では、最後の Klocwork 解析以降に各ソースファイルに追加された行数を指定する 2 つのメトリックを定義します。

注: 1 つの .ume ファイル内のすべてのメトリクスを定義します。Klocwork では、プロジェクトごとに 1 つの .ume ファイルが使用されます。

解析に対するユーザー定義のメトリックファイルの適用

新しい構成ファイルを統合ビルド解析に適用するには、プロジェクトまたは projects_root にインポートします。

metrics.xml ファイルの編集

Static Code Analysis に表示されるようにカスタムレポートを metrics.xml ファイルに追加するには:

  1. 次のファイルをバックアップします。
    <projects_root>/config/metrics.xml
  2. 編集する元の metrics.xml ファイルを開きます。
  3. いずれかの <metric> 要素をコピーして、適切なカテゴリに貼り付けます。
  4. 必要に応じて要素を編集します。
    TotalMetricValue カテゴリのレポートについて、次の要素を編集します。
    <name>
    <description>
    <custom_metric_names>
    EntityCountOverThreshold カテゴリのレポートについて、次の要素を編集します。
    <name>
    <description>
    <custom_metric_names>
    <entityKids>
    <default_threshold>
  5. ファイルを保存します。
  6. Klocwork サーバーを kwservice restart または Windows Services 管理で再起動します。
    Klocwork Review ユーザーがログインしたとき、または [レポート] ページを更新したときに、行った変更の内容がすべての Static Code Analysis ユーザーに表示されます。

ウォークスルー

サンプルプロジェクトを my_project と呼びます。my_project には、2 つのファイル、main.cppdriver.cpp が含まれています。このプロジェクトでは、2 種類のカスタムメトリクスレポートを定義します。

  • 最後の Klocwork 解析以降に各ソースファイルに追加された行数
  • 最後の Klocwork 解析以降に追加された行数が 10 を超えるプロジェクト内のファイル数
  1. my_metrics.ume という名前のテキストファイルを作成し、このファイルに次の行を追加します (スクリプトによってソースコードにこの情報を提供できる場合もあります)。
    LINES_ADDED;5;c:\my_project\src\main.cpp
    LINES_ADDED;15;c:\my_project\src\driver.cpp
    これらの行は、最後の解析以降に 5 行が main.cpp に追加され、15 行が driver.cpp に追加されたことを示しています。
  2. プロジェクトにファイルをインポートします。
    kwadmin import-config my_project C:\Klocwork\my_metrics.ume
    
  3. これらのユーザー定義のメトリックごとに、カスタムメトリクスレポートを定義します。
    最初のカスタムレポートでは、Static Code Analysis の [レポート] メニューに短い名前、"追加された行数" が表示され、レポートの上部にタイトル、"ファイルに追加された行数" が表示されるようにします。
    要素 <category catid="TotalMetricValue"> の metrics.xml ファイルに、次のテキストを追加します。
    <metric>
    <name>Lines added</name>
    <description>Lines Added to File</description>
    <custom_metric_names>LINES_ADDED</custom_metric_names>
    <enable>true</enable>
    </metric>
  4. 2 番目のカスタムレポートでは、Static Code Analysis の [レポート] メニューに短い名前、"行追加しきい値" が表示され、レポートの上部にタイトル、"追加された行数が 10 を超えるファイル数" が表示されるようにします。
    要素 <category catid="EntityCountOverThreshold"> の metrics.xml ファイルに、次のテキストを追加します。
    <metric>
    <name>Line addition threshold</name>
    <description>Number of Files With More Than {threshold} Lines Added</description>
    <custom_metric_names>LINES_ADDED</custom_metric_names>
    <entityKids>1</entityKids>
    <default_threshold>10</default_threshold>
    <enable>true</enable>
    </metric>
  5. ファイルを保存します。
  6. Klocwork サーバーを kwservice restart または Windows Services 管理で再起動します。
  7. my_project で Klocwork 統合ビルド解析を実行します。
  8. 変更内容が反映されたことを確認するには、Static Code Analysis にログインします。
  9. プロジェクトの [レポート] をクリックします。
  10. [新規レポートの作成] をクリックします。
    注: レポートタイプを既に表示している場合は、ブラウザーを更新して metrics.xml に変更内容を反映します。
  11. レポートタイプが右側に表示されます。下へスクロールして [もっと見る] をクリックします。
    これで、Lines addedLine addition threshold レポートタイプがリストに含まれます。
  12. Line addition threshold を選択して、デフォルトのしきい値が 10 に設定されていることを確認します。