このセクションの内容
パターンベース解析
パターンベース解析は、CWE や MISRA などのプログラミング規約に基づいて、ソフトウェアの欠陥をもたらすことが知られているコード構造を検出します。パターンベースの静的解析は、開発者がコーディングのベスト プラクティス、単体テストのベスト プラクティス、組織の開発ポリシーに従っていることを保証するのに役立ちます。
すべてのタイプの解析は、ビルトイン テスト コンフィギュレーションまたはユーザー定義テスト コンフィギュレーションを使用して実行されます。参照: テスト コンフィギュレーションの設定
重複コード解析
C/C++test は重複コードをチェックできます。重複コードはアプリケーションの設計が不適切であることを表す場合があり、保守のコストが増大する可能性があります。重複コードの解析では、コードが小さな言語要素 (トークン) に分解されます。重複と見なすコードを定義したルールのセットに従ってトークンが分析されます。
トークンを解析するルールには次の 2 つのタイプがあります。
- 文字列リテラルなど、単一のトークンの重複を発見するための単純なルール
- 重複メソッドやステートメントなど、複数のトークンの重複を発見するための複合ルール
重複コード検出ルールを実行するには、Find Duplicated Code テスト コンフィギュレーションを実行します。
builtin://Find Duplicated Code
メトリクス解析
C/C++test はコードの複雑性、オブジェクト間の結合、凝集性の欠如などのコードの潜在的な弱点を理解するのに役立つコード メトリクスを計測できます。メトリクス解析ルールを実行するには、Metrics テスト コンフィギュレーションを実行します。
builtin://Metrics
メトリクス解析の結果は、HTML および XML レポートファイルに追加されます。「レポートの参照」を参照してください。
メトリクスしきい値の設定
上限または下限を指定して、メトリクスが指定された値範囲を超えた場合に静的解析違反をレポートすることができます。たとえば、論理行数を制限する場合、論理行数メトリクスが制限を超えた場合に違反をレポートするよう、Metrics テスト コンフィギュレーションを設定することができます。
Metrics ビルトイン テスト コンフィギュレーションには、デフォルトのしきい値が設定されています。ファイル数 (METRIC.NOF) など、しきい値を設定できないルールもあります。
メトリクスしきい値を設定するには、次の方法があります。
- DTP のテスト コンフィギュレーション インターフェイスを使用する (詳細については『DTPユーザーズ ガイド』の 「Report Center」 > 「テスト コンフィギュレーション」 > 「テスト コンフィギュレーションの編集」 > 「[メトリクス] タブ」を参照)
- IDE のインターフェイスを使用してテスト コンフィギュレーションを編集する (「カスタムテスト コンフィギュレーションの作成」を参照)
- テスト コンフィギュレーション ファイルを手動で編集する
- Metrics ビルトイン コンフィギュレーション (
[INSTALL_DIR]/configs/builtin
) をユーザー コンフィギュレーション ディレクトリ ([INSTALL_DIR]/configs/user
) に複製します。 - 複製されたコンフィギュレーションをエディターで開き、
[METRIC.ID].ThresholdEnabled
プロパティにtrue
を設定します。 - 次の書式に従って
[METRIC.ID].Threshold
プロパティに上限および下限を指定します。[METRIC.ID].Threshold=l [lower boundary value] g [upper boundary value]
- テスト コンフィギュレーションを保存し、カスタム メトリクス テスト コンフィギュレーションを使用して解析を実行します。
フロー解析
フロー解析は、静的解析テクノロジの一種です。アプリケーションの実行パスのシミュレーションをはじめ、複数の解析手法を利用して実行時のバグを引き起こす可能性があるパスを特定します。フロー解析が検出するバグには、未初期化メモリの使用、NULL ポインターの間接参照、ゼロによる除算、メモリ リーク、リソース リークなどが含まれます。
フロー解析は複雑なパスを特定してトレースするため、人間によるテストや検査では発見が難しく、静的解析や単体テストでも発見されないことが多いバグを検出します。 コードを実行せずにバグを検出するフロー解析の機能は、特にレガシー コード ベースや組込みコード (つまりそのようなエラーの実行時検出が効果的ではなかったり不可能だったりするコード) に有効です。
フロー解析ルールを実行するには、解析にフロー解析用テスト コンフィギュレーションのいずれかを実行します。
builtin://Flow Analysis Fast builtin://Flow Analysis Standard builtin://Flow Analysis Aggressive
Configuring Flow Analysis
フロー解析オプションの設定方法については「Configuring Flow Analysis」を参照してください。