業界標準のコード カバレッジ メトリクスに加えて、C/C++test はアセンブリ レベルでコード カバレッジ レポートを収集する機能があります (このカバレッジはオブジェクト コード カバレッジとも呼ばれます)。これを利用すると、テスト実行中にアセンブリ コードのどのセクションがカバーされたかや、分岐点の実行に関する詳細を知ることができます。
C/C++ コード カバレッジとは異なり、アセンブリ カバレッジの結果は、C/C++test ビューには統合されません。レポートは外部的な HTML、XML、CSV ファイルとして利用できます。詳細については「アセンブリ カバレッジ レポートの生成」を参照してください。
このセクションでは、IDE でのオブジェクト コード カバレッジの収集について説明します。 アセンブリ レベルでカバレッジを収集する Parasoft ツールの詳細については、C/C++test の [INSTALL_DIR]\engine\asmtool\manuals
ディレクトリにある Parasoft ASMtools のドキュメントを参照してください。
アセンブリ コード カバレッジは、以下の GHS コンパイラをサポートしています。
C/C++test は、Green Hills Software の PPC シミュレーターからアセンブリ レベルのカバレッジ データを収集するようにあらかじめ設定されています。 ターゲット上でのテスト実行からオブジェクト カバレッジ データを収集したい場合は、テクニカル サポートにお問い合わせください。
アセンブリ コード カバレッジは、以下のx86 (32-bit) 対応 GNU GCC コンパイラをサポートしています。
C/C++test でサポート対象コンパイラ (「サポート対象コンパイラ」を参照) 用に単体テストまたはアプリケーション メモリ検出のためにプロジェクトがすでに準備できている場合、他の設定を行う必要はありません。
(C/C++test が追加した) テストハーネスのイニシャライザーをアセンブリ カバレッジのレポートから除外できます。それには、[プロジェクト プロパティ] の [Parasoft] > [C++test] > [ビルド設定] > [コンパイラ オプション] をクリックし、以下のオプションを追加します。
-DCPPTEST_USE_GLOBAL_OBJECTS_TO_INIT_RUNTIME=0 |
これにより、テストハーネスのイニシャライザーがテスト対象のコンパイル単位に追加されなくなります。C++test は個別の「テスト ランナー」を生成してテストハーネスの初期化を行います。
C/C++test には、アセンブリ カバレッジの監視を行う単体テストのためのビルトイン テスト コンフィギュレーションが用意されています。 このテスト コンフィギュレーションの設定を確認するには、以下の操作を行います。
テスト コンフィギュレーションを実行すると、カバレッジ データがテスト対象プログラムのメモリ バッファーに蓄えられます。スケジュールされたテストが完了してテスト モジュールが終了した後、収集されたカバレッジ情報が定義済みのチャネル (通常はファイルに直接) を通じて保存されます。
テスト実行モジュールがクラッシュしたり、メモリが破壊された場合は、カバレッジ情報を格納したバッファーが破壊され、保存されない場合があります。そのため、すべての単体テスト ケースをレビューしてアプリケーションのクラッシュの原因となる可能性があるテスト ケースをテスト セッションから除外することを推奨します。
アセンブリ カバレッジ レポートはテスト実行後に生成され、テスト コンフィギュレーションで指定したフォーマットで参照できます (「レポート オプションのカスタマイズ」を参照)。C/C++test のカバレッジ ビュー、ソース コード エディター、あるいはその他の C/C++test の UI には、アセンブリ カバレッジのデータは表示されません。
この設定によって、メイン レポートの最後にある [追加のレポート] セクションの [アセンブリ カバレッジ] 列にアセンブリ カバレッジ レポートへのリンクが表示されるようになります。
HTML レポートのリンクは相対パスであり、レポートを別の場所に移動したときもリンクは壊れません。 |
テスト ケースの実行に使用するテスト コンフィギュレーションを変更すると、アセンブリ カバレッジ レポートのフォーマットとエンコーディングをカスタマイズできます (「アセンブリ コードの収集」を参照)。[全般] > [テスト実行フロー] に移動し、以下のオプションを設定します。
オプション名 | 値 |
---|---|
Assembly coverage report format | 利用可能なフォーマット: html,xml,txt, flattxt, csv デフォルト値は html です。 |
Assembly coverage report encoding | HTML レポートに使用するエンコーディング デフォルト値は UTF-8 です。 |
ターゲット上でのテスト実行からオブジェクト カバレッジ データを収集したい場合は、テクニカル サポートにお問い合わせください。