このセクションでは、テスト ケースを検証してテスト ケースを回帰テスト ケースに変換する方法について説明します。
このセクションの内容 :
検証を必要としない回帰テストの生成
たとえば確実にコードの動作が正しい場合など、回帰テストのスナップショットを作成したい場合には、[ビルトイン] > [Unit Testing] > [Generate Regression Base]を使用します。
このテスト コンフィギュレーションを実行すると、C/C++test は自動的にすべてのテスト結果を検証済みにします。
今後のテストにおいて、最初のテストでキャプチャされた動作と異なる動作が検出された場合、タスクがレポートされます。検証する必要ありません。
テスト ケースの検証とは
期待どおりに動作しているコードについて C/C++test が自動生成した単体テストは、「機能のスナップショット」になります。つまり、正しいと推測される「コードの現在の動作」をキャプチャした単体テスト スイートであり、実行可能な仕様です。このテスト スイートは今後のテストのためのベースラインとなり、今後コードを新規に追加/変更したときに、動作の変化や問題を特定するために使用できます。アプリケーションの現在の機能を検証することよりも、テストのベースラインを確立することが目的である場合、テスト ケースの結果をレビューする必要はありません。さらに、このベースラインの整合性を保つには、同じコードの単体テストを再作成してはいけません。アプリケーションの開発が進むにつれて、追加/変更したコードをこのベースラインに対してテストすれば、以前検証した「正しい動作」がコードの変更によって変わっていないかを確認できます。
回帰テストに使用するテスト ケースはすべて「検証済み」にする必要があります。テスト ケースの事後条件は、テストの実行中に変数またはクラス メンバーが保持した実際の値をキャプチャします。テスト ケースを検証済みにすると、この事後条件がアサーションに変換され、今後のすべてのテストでアサーションがチェックされます 。同じ値が得られない場合、テストは失敗します。つまりテストは回帰テストになります。
すでにレビューして回帰テストに役立つと判断した自動生成テスト ケースだけでなく、事後条件を使用するユーザー定義テスト ケースも検証済みにすることを推奨します。自動生成テスト ケースをレビューする場合、テスト ケース ノードを展開して事後条件の詳細を表示するのが役立ちます。事後条件は関数の戻り値およびテスト対象オブジェクトのメンバー変数について自動的に追加されます。
テスト ケースを検証済みにするための操作
「未検証の結果」のテスト ケースを自動的に検証済みにする
未検証の結果 (アサーションではなく事後条件) を持つテスト ケースは自動的に検証済みにできます。
「未検証の結果」としてマークされたテスト ケース出力を自動的に検証済みにするには、次の操作を行います。
- [品質タスク] ビューで、未検証の結果を右クリックし、ショートカット メニューの [結果を検証する] をクリックします。
選択したコンテキストのすべての事後条件マクロが適切なアサーションに変換されます。 自動的に追加されたマクロもユーザーが自分で追加したマクロも変換されます。次のコードはマクロの変換の例です。
変換前:CPPTEST_POST_CONDITION_INTEGER("{int}_return=", _return)
変換後:CPPTEST_ASSERT_EQUAL(0, _return)
変換前:CPPTEST_POST_CONDITION_FLOAT("{float}_return=", _return)
変換後:CPPTEST_ASSERT_DOUBLES_EQUAL(1.000000e+000, _return, 0.00001)
変換前:CPPTEST_POST_CONDITION_PTR("{int *}_return=", _return)
変換後:CPPTEST_ASSERT(_return != 0)
ユーザーによる検証
ユーザーが自分でソース テスト ケースを検証済みにするには、次の操作を行います。
- [C/C++ プロジェクト] ビューで、生成されたテスト スイートを探します。
- デフォルトでは、自動生成テスト クラスはテスト対象プロジェクト内の tests/autogenerated ディレクトリに保存されます。
- テスト スイート ファイルの保存先を確認または変更するには、テストに使用したテスト コンフィギュレーションを開き、[生成] タブの [テスト スイート] タブの [テスト スイート出力ファイルとレイアウト] フィールドを参照します。詳細については 「[テスト スイート] タブ 」 を参照してください。
- プロジェクト ツリーで、生成されたテスト クラスのノードをダブルクリックします。エディターが開き、テスト クラス ファイルが表示されます。
- マクロを使って事後条件をアサーションに変換します。
- マクロの一覧については 「C/C++test API ドキュメント」 を参照してください。
- 必要に応じて他の変更を加えます。
- 変更したファイルを保存します。