このセクションの内容

パターンベース解析

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

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

.NET Core プロジェクトのサポート

dotTEST は .NET Core プロジェクトに対してパターン解析を実行できますが、一部のルールはサポートされていません。.NET コアプロジェクトに対して解析を実行するときに利用できるルールの一覧は「.NET Core 対応ルール」を参照してください。

dotTEST での Microsoft Code Analysis の実行

dotTEST を使用して Microsoft Code Analysis のルールを実行できます。dotTEST の標準的な静的解析ワークフローとレポート機能を利用できます。それには、次のいずれかをマシンにインストールする必要があります。

  • Visual Studio 2013、2015、2017 または 2019
  • "Static analysis tools" オプションを有効にした Build Tools for Visual Studio 2017
  • Build Tools for Visual Studio 2019

.NET Core プロジェクトに対しては、Microsoft Code Analysis はサポートされていません。

重複コード解析

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

  • 単一のトークン (文字列リテラルなど) の重複を検出する単純なルール
  • 複数のトークン (重複するメソッドやステートメントなど) の重複を検出する複雑なルール

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

builtin://Find Duplicated Code

メトリクス解析

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

builtin://Metrics

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

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

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

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

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

  • DTP のテスト コンフィギュレーション インターフェイスを使用する (詳細については『DTP ユーザー マニュアル』の「Report Center」> 「テスト コンフィギュレーション」> 「テスト コンフィギュレーションの編集」>「[メトリクス] タブ」を参照)
  • IDE のインターフェイスを使用して Metrics テスト コンフィギュレーションを編集する (「カスタム テスト コンフィギュレーションの作成」を参照)
  • テスト コンフィギュレーション ファイルを手動で編集する。

    1.ビルトインの Metrics テスト コンフィギュレーション ([INSTALL_DIR]/configs/builtin) をユーザー コンフィギュレーション ディレクトリ ([INSTALL_DIR]/configs/user) にコピーします。

    2.複製したコンフィギュレーションをエディターで開き、[METRIC.ID].ThresholdEnabled プロパティに true を設定します。

    3.次の形式に従って、[METRIC.ID].Threshold プロパティに下限と上限を設定します。[METRIC.ID].Threshold=l [lower boundary value] g [upper boundary value]

    4.テスト コンフィギュレーションを保存し、カスタム メトリクス テスト コンフィギュレーションを使用して解析を実行します。

フロー解析

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

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

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

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

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

フロー解析の設定

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



  • No labels