このセクションの内容

パターンベース解析

パターンベース解析は、CWE や OWASP などのプログラミング規約に基づいて、ソフトウェアの欠陥をもたらすことが知られているコード構造を検出します。パターンベースの静的解析は、開発者がコーディングのベスト プラクティス、単体テストのベスト プラクティス、組織の開発ポリシーに従っていることを保証するのに役立ちます。

すべてのタイプの解析は、ビルトイン テスト コンフィギュレーションまたはユーザー定義テスト コンフィギュレーションを使用して実行されます。参照: テスト コンフィギュレーションの設定

重複コード解析

C/C++test  は重複コードをチェックし、アプリケーションの設計の向上とメンテナンス コストの削減を支援します。重複コード解析では、コードが比較的小さな言語要素 (トークン) に分解されます。何を重複コードとみなすかを指定するルールのセットに従って、トークンが解析されます。トークンの解析には次の 2 つのタイプのルールが使用されます。

Find Duplicated Code ビルトイン テスト コンフィギュレーションを実行すると、重複コード解析ルールが実行されます。

builtin://Find Duplicated Code

メトリクス解析

C/C++test は、cyclomatic complexity、オブジェクト間の結合、凝集性の欠如などのコード特性を計測し、コード構造の潜在的な弱点を指摘します。Metrics テスト コンフィギュレーションを実行すると、メトリクス解析ルールが実行されます。 

builtin://Metrics

メトリクス解析の結果は、HTML および XML レポート ファイルに追加されます。 レポートの参照

メトリクスのしきい値の設定

メトリクスの上限と下限を設定すると、メトリクスの計算結果が指定された範囲を超えとたとき、静的解析の指摘事項がレポートされます。たとえば、プロジェクト内の論理行数を制限したい場合、論理行数メトリクスが制限を超えた場合に指摘事項をレポートするよう Metrics テスト コンフィギュレーションを設定できます。

ビルトインの Metrics テスト コンフィギュレーションには、デフォルトのしきい値が設定されています。ファイル数 (METRIC.NOF) など、しきい値を設定できないルールもあります。

メトリクスのしきい値を設定するには、以下の方法があります。

フロー解析

フロー解析は、実行パスをシミュレートして、実行時にしか明らかにならない潜在的な欠陥を検出します。検出される欠陥には、未初期化メモリ、null ポインターの間接参照、ゼロによる除算、メモリ リークおよびリソース リークなどがあります。

フロー解析は複雑なパスを特定してトレースするため、人間によるテストや検査では発見が難しく、静的解析や単体テストでも発見されないことが多いバグを検出できます。

コードを実行せずにバグを検出するフロー解析の機能は、特にレガシー コード ベースや組込みコード、つまりそのようなエラーの実行時検出が効果的ではなかったり不可能だったりするコードに有効です。

フロー解析ルールを実行するには、以下のいずれかのビルトイン テスト コンフィギュレーションを実行します。

builtin://Flow Analysis Fast builtin://Flow Analysis Standard builtin://Flow Analysis Aggressive

フロー解析の設定方法については「フロー解析の設定」を参照してください。