コンプライアンスレポートの作成

Validate でコンプライアンスレポートを作成できます。これは、MISRA などの業界標準に準拠している場合に、コードベースの健全性を判断する上で役立ちます。このレポートは、関係のある各コンプライアンス規則に現在のコードベースが準拠するかどうかを識別するドキュメントを生成します。

各レポートでは、コンプライアンスの概要だけでなく、ビルドの抑制構成ファイル (.sconf) によって適用されたグローバルまたはファイルベースの抑制の詳細も提供されます。指摘抑制の詳細については、「マクロまたはファイルを使用した指摘の除去」を参照してください。

QAC プロジェクトに関連するコンプライアンスレポートを作成する場合は、QAC RCF ファイルに適用される分類基準を選択します。C/C++ の分類基準は、Klocwork プロジェクト専用です。プロジェクトに QAC 結果しかない場合は、レポートが空になるため、Klocwork の分類基準は使用しないでください。
 まず、以下の手順でコンプライアンスレポートツールを開きます。
  1. Validate の [レポート] タブで、メニューの最下部にある [コンプライアンスレポート] をクリックします。コンプライアンスレポートの UI が表示されます。左側のパネルでは、以前に生成したレポートにアクセスできます。右側のパネルには、レポートの生成に使用できるコントロールが表示されます。
  2. C や C++ などに対して、レポートを実行する分類基準を選択します。
  3. [ビルド] で、レポートで使用するビルドを選択します。
  4. [ビュー] で、レポートで使用するビューを選択します。このフィールドが空白の場合、レポートではデフォルトのビューが使用されます。
  5. [レポート形式] で、MISRA オプションを選択すると、MISRA 2020 ガイドライン形式でレポートを生成できます。
  6. [出力ファイルタイプ] で、レポートの出力タイプを選択します。デフォルトは PDF です。
  7. [出力ファイル名] で、レポートの名前を選択します。デフォルトでは、ファイル名は '<project_name> <指定されたビルド>' になります
  8. [出力フォルダー名] で、レポートの保存場所を選択します。デフォルトは、左側のサイドバー内のコンプライアンスレポートのルートフォルダーです。
  9. レポートに規則違反のサマリーのみを表示するには、[サマリーのみ] を選択します。デフォルトでは、サマリーテーブルと詳しい違反/逸脱テーブルの両方がレポートに含められます。
  10. オプションとして、生成されたレポートに関する [欠陥制限] (レポートに含められる指摘の数) を選択します。これを増やすと、レポートのサイズと生成にかかる時間が両方とも増えることに注意してください。欠陥制限を追加すると、逸脱の詳細テーブルでの指摘の数に制限が適用されるため、サマリーではない完全版のレポートのみに影響します。多数の逸脱を含めてサマリーではないレポートを生成する場合などに、必要に応じて使用してください。
  11. [生成] をクリックしてレポートをビルドします。
生成されたレポートは、左側の [レポート] パネルで確認できます。
以前に生成されたレポートを削除する場合は、そのレポートを 'projects_root/projects/custom_reports' フォルダーから削除する必要があります。

違反リストおよび逸脱リストの解釈

違反としてまたは逸脱として表示されるかは、指摘のステータスによって決まります。

レポートでは、デフォルトで以下のタイプの指摘が違反として分類されます。

  • 解析
  • 要修正
  • 今後のリリースで要修正
  • 次回のリリースで要修正

レポートでは、デフォルトで以下のタイプの指摘が逸脱として分類されます。

  • 保留
  • フィルター
  • 無視 (Ignore)
  • 問題ではない
管理者は、<projects root>/config/ にある issue_aggregation_config.yaml を利用して、コンプライアンスレポートでの逸脱と違反の集計方法をカスタマイズすることができます。詳細については、「ステータス構成ファイルの編集」を参照してください。

コンプライアンスレポートの削除

個々のコンプライアンスレポートまたはフォルダーは、そのレポートまたはフォルダーを選択して [レポートの削除] をクリックすると、削除することができます。

あるいは、Web API を使用して、または projects_root 内のプロジェクトの compliance_reports フォルダーから、手動でファイルを削除することができます。

コンプライアンスレポートとそれらに含まれているフォルダーを削除するには「コンプライアンスレポートの削除」パーミッションが必要なので、注意してください。このパーミッションは、プロジェクトルート管理者、プロジェクト管理者、およびストリーム管理者に事前に割り当てられています。 プロジェクトルート管理者以外の任意のロールまたはユーザーに追加したり、それらから削除したりすることができます。