比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

悪い習慣1 コードの可読性・拡張性を考慮してコーディングしていない
悪い習慣2  過去のバグを防止するためのコーディングルールを用意し、開発者にルール遵守を徹底させていない

...

このページの内容:

目次
minLevel1
maxLevel72
outlinefalse
styledefault
typelist
printabletrue

アンカー
_Toc14164521
_Toc14164521
コーディングルール自動チェックとは

ここで利用するC/C++test機能は、コーディングルールチェック機能になります。コーディングルールチェック機能は、5000種類以上のルールを搭載しており、
Ctest機能は、コーディングルールチェック機能になります。コーディングルールチェック機能は、5000種類以上のルールを搭載しており、C/C++両言語を解析します。

図に記載されている一部のルールカテゴリは、コンプライアンスパック(別売り)のライセンスをアクティベートする必要があります。 下記に記載されているルールセットを使用したい場合は、"コンプライアンスパック"をご検討ください [

コンプライアンスパックが必要なルールカテゴリ

...

  • DISA - ASD - STIG

  • AUTOSAR C++14 Coding Guidelines

  • フロー解析[BD]における[BD-SECURITY]カテゴリ

  • SEI CERT C/C++

  • Common Weakness Enumeration

  • High Integrity C++

  • Joint Strike Fighter

  • MISRA C 1998

  • MISRA C 2004

  • MISRA C++ 2008

  • MISRA C 2023(MISRA C 2012)

  • MISRA C++ 2023

  • OWASP Top 10 Most Critical Web Application Security Risks (2017)

  • OWASP API Security Top 10 (2019)

  • OWASP Top 10 Most Critical Web Application Security Risks (2021)

  • セキュリティ

...

アンカー
_Toc14164522
_Toc14164522
解析実行手順

  1. [プロジェクト・エクスプローラー]ビュー上のプロジェクトを選択した状態で、ビュー上のShapesプロジェクトを選択した状態で、[青い三角アイコン横の▼]>[テストの実行]>[ユーザー定義]>[Static Analysis]>[2 2_コーディング規約チェック(チュートリアル)]を選択します。緑の進捗バーが表示され、左から右に到達すると解析が完了になります。

    Image Removedcoding_check01-20240620-053428.pngImage Added

  2. [品質タスク]ビューに解析結果が表示されます。

アンカー
_Toc14164523
_Toc14164523
解析結果の見方

解析結果は、[品質タスク]ビューに表示され、下図に示す3つのポイントで確認します。

...

アンカー
_Toc14164524
_Toc14164524
コーディングルール自動チェック機能 運用ワンポイント アドバイス

これまでコーディング規約を適用しなかったソースコードに「2_コーディング規約チェック(チュートリアル)」でチェックを行うと、多くの違反が見つかるでしょう。
全て直さなくてはいけないと考えると途方にくれると思います。しかし、最初から全てを直すことを目的としてはいけません。
違反の修正を考える前に確認することがあります。
それは、今の開発現場の方々がどういう習慣や癖を持ってコーディングしているかを確認します。

違反が検出されたルールの内、違反件数が多いルールと少ないルールに分けます。

違反件数が少ないルールは、「開発現場の方が守ろうとして守りきれなかったルール」の可能性が高いと予測されます。

違反件数が多いルールは、「開発現場の方が守ろうと考えていなかったルール」です。その中で、過去のバグを防止できるコーディングルールが無いかを確認します。

確認ポイント1

違反が検出されたルールの内、違反件数が多いルールと少ないルールに分けます。

確認ポイント2

違反件数が少ないルールは、「開発現場の方が守ろうとして守りきれなかったルール」の可能性が高いと予測されます。

確認ポイント3

違反件数が多いルールは、「開発現場の方が守ろうと考えていなかったルール」です。その中で、過去のバグを防止できるコーディングルールが無いかを確認します。

...

  1. [Parasoft]>[テストコンフィギュレーション]を選択します。

  2. 表示される画面左側の[ユーザー定義]>[Static Analysis]>[2_コーディング規約チェック(チュートリアル)]を右クリックし、[複製]を選択します。

    Image Removedcoding_check02-20240620-053810.pngImage Added

  3. 生成される[ユーザー定義]>[Static Analysis]>[2_コーディング規約チェック(チュートリアル) (1)]を選択後、画面右側の[静的]>[ルールツリー]を選択し、表示します。

    Image Removedcoding_check03-20240620-053954.pngImage Added

  4. 画面右にある[有効なルールのみ表示]を選択するとチェックの入っているルールのみが表示されます。
    [2_コーディング規約チェック(チュートリアル)(1)]カテゴリのチェックボックスを全て無効にします。

    コーディングルール自動チェック02-20240131-045713.pngImage Removedコーディングルール自動チェック02-20240131-045713.pngImage Added
  5. [すべてのルールの表示]を選択します。※これまでの変更を保存するかどうかダイアログが表示されるため、保存して続行します。

  6. [フィルター]に「暗黙」と入力します。名前に「暗黙」が含まれているルールが表示されます。

  7. [コーディング規約]、[バグの可能性]カテゴリのルールの内、暗黙的なキャストを違反として検出するルールであることを確認し、チェックボックスを有効にします。

    コーディングルール自動チェック03-20240131-045943.png
  8. [名前]に「5_USER_RULES」テストコンフィギュレーションを入力します。

  9. [適用]を選択後、[閉じる]を選択します。

...

  1. 正当なレビュー結果から、次回違反として検出したくない解析結果を右クリックし、[タスクの抑制]を選択します。

    コーディングルール自動チェック04-20240131-050657.png
  2. 抑制情報を格納する先を指定します。

抑制方法

説明

抑制ファイル内で抑制

...

ファイル形式で抑制情報を格納します

ソースコード内での抑制

...

抑制情報をコメント形式でソースコードに格納します

  1. [抑制された理由]画面が表示されたら、[理由]を入力します。
    ※本チュートリアルでは、ソースコード内抑制にチェックを入れています

    コーディングルール自動チェック05-20240131-050746.pngImage Added
  2. [OK]を選択します。

  3. 抑制で選択したファイルを開き、ソースコード内に抑制情報が追加されています。

...

  1. suppress01-20240708-002138.pngImage Added