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

このセクションの内容 :

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

C++test では、カテゴリ分けされたタスク リストとしてテスト実行の結果がレポートされます。

テストの実行後、C++test は優先順位が付けられたタスク リストを生成し、エラー カテゴリと重要度で分類して表示します。

GUI からテストを実行した場合 、タスクは [品質タスク] ビューに次のようにカテゴリ分けされて表示されます。

  • 単体テストの問題の修正 このカテゴリには、「単体テストの問題」がレポートされます。該当する問題は、機能テストの失敗、予想外の例外、およびタイムアウトです。  
  • 単体テストの結果の検証 このカテゴリには、テスト ケースの自動生成中に作成されたテスト ケースの「未検証の結果」がレポートされます。「未検証の結果」がレポートされるのは、アサーションに変換されていない事後条件があるテスト ケースを C++test が実行した場合です。 結果の違いは期待どおりの動作かもしれませんし、エラーかもしれません。レビューと検証が必要です。テスト結果に「期待される動作」が反映されていると判断した場合、結果を「検証済み」にします。そうでない場合、正しい結果を指定します。  

コマンドラインからテストを実行した場合、タスクはレポートの「テスト生成」および「テスト実行」セクションにレポートされます。テスト結果を Team Server に送信した場合は、 「 GUI へのテスト結果のインポート」にあるようにテスト結果を GUI にインポートできます 。インポートしたタスクは、[品質タスク] ビューで上記のカテゴリのいずれかの下に表示されます。

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

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

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

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

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

スタック トレースで参照されているコードをレビューするには、次のいずれかの操作を行います。

  • 行番号のあるノードをダブルクリックします。  
  • 行番号のあるノードを右クリックし、ショートカット メニューの [移動] をクリックします。  

エディターが開き、該当するコード行が表示されます。

事後条件のレビュー

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

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

タスクの重要度レベル

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

ヒント

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

テスト ケースの詳細情報の参照 - テスト ケース エクスプローラー

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

このビューを表示するには、[Parasoft] メニューの [ビューの表示] > [テスト ケース エクスプローラー] をクリックします。

詳細については「GUI の概要」 を参照してください。

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

テスト ケースの詳細を表示するには、テスト ケース エクスプローラーで [表示] > [詳細] を有効にします。テスト ケース エクスプローラーに次の追加情報が表示されます。

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

 

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

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

「即時修正」機能を使用すると、単体テスト タスクの処理でよく行うアクションを自動化できます。

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

  1. [品質タスク] ビューで、処理するタスク メッセージを探します。  
    • タスク メッセージの隣に次のアイコンがある場合、そのタスクは即時修正が可能なことを表します。
  2. タスク メッセージを右クリックし、ショートカット メニューから適切な「即時修正」オプションを選択します。  
    • 「即時修正」オプションについては下記の「即時修正オプション」を参照してください。  
  3. 変更したファイルを保存します。  

即時修正オプション

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

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

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

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

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

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

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

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

 

  • No labels