このセクションでは、静的解析を実行して、静的解析ルールに準拠していないコードを検出する方法について説明します。このセクションの内容

インクリメンタルな静的解析

C/C++test は、開発プロセスへの影響を最小限に抑えるよう最適化されています。前回の解析実行で収集された情報を再利用することで、その後の実行での解析時間を短縮できます。情報は ソリューションの .cpptest フォルダーに格納されます。 最適なパフォーマンスを保つため、.cpptest フォルダーやフォルダーの内容を削除しないでください。

ヘッダーの解析

C/C++test は、テスト対象のソース ファイルがヘッダーをインクルードしていない限り、ヘッダーを直接解析しません。詳細については「ヘッダー ファイルを解析するには ? どのファイルが解析されるのか ?」 を参照してください。

テンプレート関数の解析

C/C++test は、インスタンス化された関数テンプレートとインスタンス化されたクラス テンプレー トのメンバーに対して静的解析を実行できます。詳細については「C++ テンプレート関数のサポート」を参照してください。

静的解析の実行

静的解析を実行するための基本手順は次のとおりです。

  1. 静的解析を実行するテスト コンフィギュレーションを選択します。
  2. 選択したテスト コンフィギュレーションを使ってテストを開始します。
  3. テスト結果をレビューして修正を行います。
  4. (オプション) 必要に応じて静的解析の設定を調整します。

cpptestcli によるコマンドライン モード解析の設定

定期的にコマンドライン モードで静的解析を実行するには、チームにとって重要な静的解析ルールを使ってプロジェクトを解析するテスト コンフィギュレーションを実行します。例:

  • cpptestcli -solution “C:\temp\*.sln” –config team://CodingStandardsAnalysis -publish
コマンドライン モード テストの詳細については、「コマンドライン インターフェイスからのテスト」を参照してください。

静的解析による重複コードの検出

重複コードを特定して削除することで、コードをより簡潔で読みやすくし、保守をより容易にすることができます。たとえばコピーと貼り付けのミスなどによってほとんど同じコード フラグメントが開発プロセスで入り込んだ場合に、そのようなコードを検出できます。  大規模なプロジェクトの場合、手動で重複を検出することは非効率的なため、重複コードの検出機能は特に有用です。

重複コードを検出するには、ビルトイン テストコンフィギュレーションの [Find Duplicated Code] を実行するか、重複コード [CDD] カテゴリの適切なルールを有効化したユーザー定義テスト コンフィギュレーションを実行します。

2 つのコード フラグメントを重複コードとしてレポートするかどうかの判定には、コードの類似性レベルが使用されます。このレベルはユーザーがカスタマイズできます。ルール プロパティを設定することで、変数名、文字列リテラル、数字リテラル、および論理リテラルを無視することができます。タブ、スペース、改行、コメントのようなテキスト フローのすべての違いは常に無視されます。

詳細については、重複コード [CDD] カテゴリのルールの説明を参照してください。

MSBuild ベースのプロジェクトの解析

C/C++test には、.bdf ファイルを生成するよう MSBuild プロジェクトをすばやく再設定するスクリプトが付属しています。このスクリプトは、Visual Studio および CMake で生成された MSBuild プロジェクトの両方をサポートします。スクリプトはターゲットの .vcxproj ファイルのバックアップを作成し、要求された Parasoft 機能をすべてのビルド ターゲットで使用できるようにプロジェクトを変更します。

C/C++test には、インクルードされたツールを実行するための Python スクリプトが付属しています。スクリプトは次の場所にあります。

<CPPTEST_INSTALL_DIR>/engine/bin/cpptestpy.exe
MSBuild 統合スクリプトは次の場所にあります。

<CPPTEST_INSTALL_DIR>/integration/msbuild/msbuild_cpptest.py

MSBuild ベースのプロジェクトを解析するには、次の作業を行います。

  1. 環境変数をセットアップします。

= の後にダブル クオーテーションを使用しないようにしてください。使用すると、文字列が誤って解釈されます。  

    1. CPPTEST_INSTALL_DIR 変数をセットアップします。

      set CPPTEST_HOME=<CPPTEST_INSTALL_DIR>
  1. (CMake のみ) CMake を使用して MSBuild ファイルを生成します。 

    cd <PROJECT_DIR> mkdir build cd build cmake ..
  2. 統合スクリプトを実行します。 

    <cpptestpy.exe> <msbuild_cpptest.py> -b -f project.vcxproj
  3. MSBuild を使用してプロジェクトをビルドします。

    msbuild -t:Rebuild project.sln

    現在の作業ディレクトリに .bdf ファイルが作成されます。 

  4.  静的解析を開始し、.bdf ファイルをインポートします。詳細については 「既存のビルド システムを使った C++test プロジェクト」を参照してください。 コマンドライン インターフェイスからのテスト


  • No labels