...
を防止するために、バグ作り込みの防止や、ソースファイルの可読性向上を目的とした「コーディング規約」が存在します。
その中でも、ソフトウェア開発現場で利用されている「コーディング規約」で解析を行ってみましょう。
Anchor | ||||
---|---|---|---|---|
|
ここで利用するC++test機能は、コーディングルールチェック機能になります。コーディングルールチェック機能は、4200種類以上のルールを搭載
しており、C/C++両言語を解析します。
右の図に記載されている一部のルールカテゴリは、コンプライアンスパック(別売り)のライセンスをアクティベートする必要があります。
|
|
Anchor | ||||
---|---|---|---|---|
|
- [ソリューション エクスプローラー]上のプロジェクトを選択した状態で、[緑の三角アイコン横の▼]>[テストの実行]>[ユーザー定義]>[Static Analysis]>[2 2_コーディング規約チェック(チュートリアル)]を選択します。緑の進捗バーが表示され、左から右に到達すると解析が完了になります。
- [品質タスク]ビューに解析結果が表示されます。
- [品質タスク]ビューに解析結果が表示されます。
Anchor | ||||
---|---|---|---|---|
|
解析結果は、[品質タスク]ビューに表示され、下図に示す3つのポイントで確認します。
Anchor | ||||
---|---|---|---|---|
|
これまでコーディング規約を適用しなかったソースコードでチェックを行うと、多くの違反が見つかるでしょう。
全て直さなくてはいけないと考えると途方にくれると思います。しかし、最初から全てを直すことを目的としてはいけません。
違反の修正を考える前に確認することがあります。
それは、今の開発現場の方々がどういう習慣や癖を持ってコーディングしているかを確認します。
確認ポイント1 | 違反が検出されたルールの内、違反件数が多いルールと少ないルールに分けます。 |
---|---|
確認ポイント2 | 違反件数が少ないルールは、「開発現場の方が守ろうとして守りきれなかったルール」の可能性が高いと予測されます。 |
確認ポイント3 | 違反件数が多いルールは、「開発現場の方が守ろうと考えていなかったルール」です。その中で、過去のバグを防止できるコーディングルールが無いかを確認します。 |
...
を、今後の新規追加コードに対し適用を徹底化し、開発現場の悪い習慣を防止します。
Anchor | ||||
---|---|---|---|---|
|
一回目のコーディングルールチェック結果から、今の開発現場の方がどういう習慣や癖を持ってコーディングしているかを確認したら、開発現場に適した解析をするルールセットをチューニングする必要があります。
C++testでは全ての静的解析ルールを取捨選択可能です。
ここでは、2_コーディング規約チェック(チュートリアル)ルールセットの中から、「暗黙的にキャストしているコードを禁止する」ルールを抜き出して、別途ルールセットを作成する方法をご紹介します。
- [Parasoft]>[テストコンフィギュレーション]を選択します。
- 表示される画面左側の[ユーザー定義]>[Static Analysis]>[2_コーディング規約チェック(チュートリアル)]を右クリックし、[複製]を選択します。
- 生成される[ユーザー定義]>[Static Analysis]> [2_コーディング規約チェック(チュートリアル) (1)]を選択後、画面右側の[静的]>[ルールツリー]を選択し、表示します。
- 画面右にある[有効なルールのみ表示]を選択するとチェックの入っているルールのみが表示されます。
[2_コーディング規約チェック(チュートリアル) (1)]カテゴリのチェックボックスを全て無効にします。 - [すべてのルールの表示]を選択します。
- [フィルター]に「暗黙」と入力します。名前に「暗黙」が含まれているルールが表示されます。
- [コーディング規約]、[バグの可能性]カテゴリのルールの内、暗黙的なキャストを違反として検出するルールであることを確認し、チェックボックスを有効にします。
- [名前]に「5_USER_RULES」テストコンフィギュレーションを入力します。
- [適用]を選択後、[閉じる]を選択します。
Anchor | ||||
---|---|---|---|---|
|
C++testに搭載されている静的解析用の各ルールにはルールの説明ヘルプ画面が搭載されています。
静的解析での違反結果のレビュー時に、説明ヘルプ画面を表示することが可能であるため、開発現場の方々は都度ルールの内容を暗記する必要はありません。
- [静的解析ルールアイコン(赤い帽子)]を右クリックし、[ルールドキュメントを参照]を選択します。
- ブラウザが開き、下記の情報が表示されます。
- ルール名
- ルールの説明
- 利点
- 違反サンプルコード
- 違反修正例
- 関連資料やルールの引用元
Anchor | ||||
---|---|---|---|---|
|
C++testの静的解析で検出された違反は、レビュー後、次回違反として検出されないように「抑制」を設定することができます。
- 正当なレビュー結果から、次回違反として検出したくない解析結果を右クリックし、[タスクの抑制]を選択します。
- 抑制情報を格納する先を指定します。
- 抑制ファイル内で抑制 :ファイル形式で抑制情報を格納します。
- ソースコード内での抑制 :抑制情報をコメント形式でソースコードに格納します。
- [抑制された理由]画面が表示されたら、[理由]を入力します。
[OK]を選択します。
|