このセクションでは、C/C++test のテスト結果を解析して処理する方法について説明します。

このセクションの内容

レポートされたタスクのレビュー

テストの実行後、C/C++test は優先順位が付けられたタスク リストを生成し、エラー カテゴリと重要度で分類して表示します。GUI からテストを実行した場合、タスクは [品質タスク] ビューに次のようにカテゴリ分けされて表示されます。

  • 単体テストの問題の修正: このカテゴリには、明確な「単体テストの問題」がレポートされます。該当する問題は、機能テストの失敗、予想外のキャッチされない実行時例外、およびタイムアウトです。
  • 単体テストの結果の検証: このカテゴリには、テスト ケースの自動生成中に作成されたテスト ケースに対する「未検証の結果」が含まれます。「未検証の結果」がレポートされるのは、まだアサーションに変換されていない事後条件がある自動生成またはユーザー定義のテスト ケースを実行した場合です。 結果は期待どおりの動作かもしれませんし、問題を示しているのかもしれません。さらにレビューと検証が必要です。  ユーザーは、この結果が期待どおりの動作であると判断した場合、結果を「検証済み」にします。不正な動作であると判断した場合、正しい結果を指定します。

コマンドラインからテストを実行した場合、タスクはレポートの「テスト生成」および「テスト実行」セクションにレポートされます。「GUI へのテスト結果のインポート」にあるように、IDE にインポートされた結果は、[品質タスク] ビューで参照できます。

違反からのテスト コンフィギュレーションの参照

[品質タスク] ビューの違反から、その違反を検出したテスト コンフィギュレーションを表示できます。違反を右クリックし、ショートカット メニューの [テスト コンフィギュレーションの参照] をクリックします。

テストのカスタマイズを担当し、不適切な設定をすぐに無効化したいグループ アーキテクトにとって、品質タスク ビューからテスト コンフィギュレーションにすぐにアクセスできるのはとても便利です。また、サーバー ベースの実行からテスト結果をインポートする開発者も、タスクを検出したテスト コンフィギュレーションをレビューしなければならない場合があります。

スタック トレースのレビュー

単体テストの問題ごとに、問題を引き起こしたテスト ケースのスタック トレースが表示されます。

スタック トレースで参照されているコードをレビューするには、そのノードをダブルクリックするか、ノードを右クリックしてショートカット メニューの [移動] をクリックします。エディターが開き、該当するコード行がハイライト表示されます。

事後条件のレビュー

事後条件マクロの結果 (レポートされたすべてのアサート値) は [品質タスク] ビューに表示されます。事後条件は、テストで使用されたグローバル変数またはテスト オブジェクトの状態をキャプチャします。

事後条件がレポートされたテスト ケースは、回帰テストで使用するために自動的に検証済みにできます。検証済みにすることによって、 *_POST_CONDITION_* マクロがアサーションに変換されます。今後のテストで「期待される値 (検証済みの値)」が出力されなかった場合、このアサーションは失敗します。この機能は特に、レガシー コードのための回帰テストを自動生成するのに役立ちます。テスト ケースの検証の詳細については 「自動生成テスト ケースの検証と回帰テスト」を参照してください。

タスクの重要度レベル

各カテゴリ内で、タスクは重要度レベルに従って分類されます。これは、ユーザーが最も重大な問題を特定して集中的に作業するのに役立ちます。

[品質タスク] ビューで各タスクの重要度を表示するには、プルダウン ボタンをクリックして [内容の構成] を選択し、重要度を表示するよう設定します。

テスト ケースの詳細情報の参照

[テストケースエクスプローラー] ビューは、プロジェクトのテストケース、テストスイート、お よび関連するデータソースを管理するのに役立ちます。[テスト ケース エクスプローラー] ビューにはテストの統計 (実行、成功、失敗、スキップ) が表示され、ユーザーはテスト ケース ツリーを検索/フィルターすることができます。

デフォルトでは、テスト ケース エクスプローラーは UI の左側に表示されます。表示されていない場合にこのビューを開くには、[Parasoft] メニューの [ビューの表示] > [テスト ケース エクスプローラー] をクリックします。

テスト ケース エクスプローラー詳細については「GUI の概要」 を参照してください。

テスト ケースの詳細を参照する

テスト ケースの詳細を表示するには、テスト ケース エクスプローラーで [表示] > [詳細] を有効にします。 

テスト ケース エクスプローラーに次の追加情報が表示されます。

  • テスト ケースによってテストされる関数についての情報CPPTEST_TEST_CASE_CONTEXT コメントから収集されます。 このコメントは、自動生成テスト ケースおよびテスト ケース ウィザードを使って作成されたテスト ケースに対して C/C++test が自動的に追加するコメントです。
  • テスト ケースの説明についての情報CPPTEST_TEST_CASE_DESCRIPTION コメントから収集されます。このコメントは、自動生成テスト ケースに C++test が追加するか、またはテスト ケース ウィザードを使って作成されるテスト ケースにユーザーが追加できます (「[全般] タブ」 および 「テスト ケースの設定のヒント」を参照)。
  • テスト実行の詳細についての情報。テスト構成によって、次の物が含まれます (「[実行] タブ - テストの実行方法を定義する」を参照)。
    • テスト ケース レポート / メッセージ
    • レポートされたタスクについての情報 (たとえば、例外、アサーションの失敗、未検証の結果)
    • チェックされたアサーションまたは成功したアサーションについての情報

テストまたはテスト スイートのソース コードを表示する

[テスト ケース エクスプローラー] ビューでテスト スイートまたはテスト ケースのソース コードを表示するには、テスト スイートまたはテスト ケースのノードを右クリックしてショートカット メニューの [開く] をクリックするか、ノードをダブルクリックします。


[テスト ケース エクスプローラー] と [品質タスク] ビューの間での移動

[テスト ケース エクスプローラー] ビューから [品質タスク] ビューのテスト結果にアクセスするには、テスト ケースのノードを右クリックして [タスクの表示] をクリックします。逆に、[品質タスク] ビューのノードから、[テスト ケース エクスプローラー] ビューの対応するテスト ケースにアクセスするには、ノードを右クリックして [テスト ケース エクスプローラーで表示] をクリックします。

データ ソース テスト ケースの結果の参照

実行したデータ ソース テスト ケースについての詳細情報を参照するには、テスト ケース エクスプローラーで [表示] > [データ ソース テスト] を有効にします。データ ソース テスト ケースの各実行についての情報が表示されます。

ツリー表示されたデータ ソース テスト ケースの要素は、各実行についての統計情報を表します。たとえば「成功した実行」や「失敗した実行の数」です。 データ ソース テスト ケースのすべての親ノードに対する統計には、特定のデータ ソース テスト ケースの実行についての情報も含まれます。

トレーサビリティの詳細の取得

単体テストの実行とトレーサビリティについての情報を最大限に含むレポートを作成するには、いくつか方法があります。

ここから…次の操作を実行...
テスト ケースの自動生成
  1. テスト コンフィギュレーションの [生成] > [全般] > [テスト ケースの説明を追加] フィールドでテスト ケースの説明を入力する。
  2. テスト コンフィギュレーションの [生成] > [全般] > [事前条件および事後条件をレポートするコードを挿入] を有効にする。
テスト ケース ウィザードを使ったテスト ケースの作成
  1. テスト ケースの説明を入力する。
  2. [事前条件および事後条件の値をレポートするコードを追加] を有効にする。
テストの実行
  1. テスト コンフィギュレーションの [実行] > [実行時] > [単体テスト実行の詳細をレポート] を有効にする。
  2. テスト コンフィギュレーションの [実行] > [実行時] > [タスクの詳細を含める] を有効にする。
  3. テスト コンフィギュレーションの [実行] > [実行時] > [成功したアサーションの詳細を含める] を有効にする。
レポートの生成
  1. [Parasoft] > [設定] > [レポート] > [チェックされたファイルおよび実行されたテストの概要] を有効にする。
  2. レポートのフォーマットとして [HTML (C++test 単体テストの詳細)] を選択する。
コマンドラインからのレポートの生成
  1. 設定ファイルで report.contexts_details=true オプションを設定し、[実行されたテスト ケース] セクションを有効にする。
  2. 設定ファイルで report.format=html_ut_details オプションを設定し、レポート フォーマットを指定する。

トレーサビリティのレポートについてのヒント

  • テスト ケースからさらにメッセージをレポートするには、テスト ケース レポート マクロを使用します (「テスト ケース レポート マクロ」 を参照)。
  • データ ソース テスト ケースの場合、レポートされるメッセージはデータ ソースから読まれる可能性があります。例:
    CPPTEST_REPORT_CSTR("Requirement number", CPPTEST_DS_GET_CSTR("req_no"))
  • たとえば http:// または ftp:// など、有効な URL がテスト ケースの説明またはテスト ケースのメッセージに含まれる場合、生成される HTML レポートにこの URL がリンクとして追加されます。



レポートされたタスクへの対処

タスクの種類によって、その対処方法は異なります。下記の表に従ってそれぞれのセクションの説明を参照してください。

カテゴリサブカテゴリ参照先
単体テストの問題の修正アサーションの失敗アサーションの失敗」および タイムアウト
実行時例外 実行時例外
単体テストの結果の検証未検証の結果 未検証の結果

単体テスト タスクの即時修正

「即時修正」機能は、単体テストの結果のレビュー/対処中によく実行される操作を自動化します。

「即時修正」を使ってタスクを処理するには、次の操作を行います。

  1. [品質タスク] ビューで、処理するタスク メッセージ (行番号があるメッセージ) を探します。
    • タスク メッセージの隣に次のアイコンがある場合、そのタスクは即時修正が可能なことを表します。
  2. タスク メッセージを右クリックし、ショートカット メニューから適切な「即時修正」オプションを選択します。C/C++test は指定されたアクションを実行します。
    • 利用可能な即時修正オプションは下で説明されています。
  3. 変更したファイルを保存します。

即時修正オプション

このセクションでは即時修正オプションについて説明します。タスクの種類によって、適用できるオプションは異なります。

「アサーションの失敗」の即時修正

  • アサーションを検証済みにする: 現在の値が正しいこと (および結果が機能に関連する問題ではないこと) を示します。
  • アサーションを無視する: 今後のテストでこのアサーションをチェックしないようにします。今後、アサーションはチェックされませんが、テスト ケースは実行されます。チェックしたくない項目をチェックしている場合、または日付のような変化する項目をチェックしている場合、この即時修正アクションを推奨します。
  • テスト ケースを削除する: ある結果を生成するテスト ケースを削除します。たとえば、テスト結果をレビューしたところテスト ケースが無効であった場合などにこのコマンドを使用します。

「未検証の結果」の即時修正

  • 結果を検証済みにする: テスト ケースの結果出力が正しいこと (および検出された単体テスト タスクが機能的な問題ではないこと) を示します。
  • 結果を無視する: 今後のテストでこの結果をチェックしないようにします。今後、結果はチェックされませんが、テスト ケースは実行されます。チェックしたくない項目をチェックしている場合、または日付のような変化する項目をチェックしている場合、この即時修正アクションを推奨します。
  • テスト ケースを削除する: ある結果を生成するテスト ケースを削除します。たとえば、テスト結果をレビューしたところテスト ケースが無効であった場合などにこのコマンドを使用します。

レポートされたタスクが膨大な場合 (たとえばレガシー コードのテスト後)

レポートされた複数の問題に同じアクションを適用する場合、次の操作を行います。

  1. アクションを適用する複数の問題を選択します。
  2. 選択した問題を右クリックしてショートカット メニューを表示し、目的のコマンド (たとえば [すべての結果を検証する] など) を実行します。

テスト実行の詳細レポートの生成

テスト実行の詳細レポートは、通常のレポートから生成可能な追加のレポートです。このレポートには、以下の詳細情報が含まれます。

  • テスト対象ファイル
  • テスト ハーネスのビルドに使用されたツールチェーン
  • 追加の設定ファイル
  • テスト スイート
  • テスト ケース (テスト ケース定義およびテスト実行ログ セクションを含む)

 詳細については「テスト実行の詳細レポートの生成」を参照してください。

  • No labels