コードを使用しないループ処理と条件分岐の実装

対象アプリケーションの画面で、あるオブジェクの状態が変化するまで処理を繰り返すようなテストの作成方法に関するお問合せを受けることがあります。

顧客情報や、入力データなどの条件によって、遷移するページが異なり、アプリケーションの画面操作が変わるようなテストシナリオや、オブジェクトの状態を検証したい際に、何度も同じ処理を繰り返し実行したいテストシナリオなど、複雑なテストの作成において、ループ処理や、分岐処理を使用したい場合があります。

たとえば、オブジェクトの状態(属性値や表示されるテキストなど)が変わるまで、同じ処理を繰り返し実行するようなテストシナリオや、顧客情報や入力データなどのある条件によって、アプリケーションの画面操作が変わるようなテストシナリオでは、テスト作成においてループ処理や分岐処理を必要とします。

コード(C#または、VB.NETによるコーディング)を使用することにより、ループ処理や分岐処理を実装することもできますが、コーディングスキルが必要となるため、テスト作成のハードルが高くなります。しかし、Ranorex バージョン8以降ではコードを使用せずに、これらの処理を実装することができます。その方法として「リトライ」と、「Validate アクション」の2つの機能を使用します。 また分岐処理を行いたい場合は、「条件分岐」の機能と合わせて使用することで対応できます。

※ループ処理や、分岐処理を多用するとテストケースの管理が複雑になり、メンテナンス性が下がる可能性がありますので、計画的にご使用ください。

ループ処理

たとえば、Ranroexのデモアプリにおいて、「Test Database」の「Number of entries」のエントリー数の表示が “3” になるまで、エントリーの登録処理を繰り返すようなテストを作成します。

(Ranorex デモアプリ)

テストシナリオ

  1. Ranorex デモアプリを起動する
  2. 「Test Database」タブを開く
  3. エントリー情報(First name、Last name、Age、Gender)を設定する
  4. 「Add Entry」ボタンをクリックする(エントリー登録)
  5. 「Number of entries」のエントリー数の表示を確認する(表示が “3” 以外の場合、#3、4の繰り返し)
  6. Ranorex デモアプリ を閉じる

モジュール構成

  • StartAUT:#1
  • RecordingModule1:#2
  • RecordingModule2:#3~5
  • CloseAUT:#6

テストケースの作成方法

テストケースにループ処理を行うためのスマートフォルダー(ループ処理)を追加し、そのスマートフォルダーにループ処理(#3、4)を行いたいモジュール(RecordingModule2)を配置します。

(テストスイート画面)

スマートフォルダーのプロパティを開き(キーボードの”F4″キーを入力します)、プロパティにある「Retry Count」の値を変更します。ループ処理を行う上限の回数を指定します。

ループ処理の設定は、スマートフォルダーだけでなく、テストケースでも行えます。

(テストスイート画面・プロパティ)

スマートフォルダーに配置したモジュール(RecordingModule2)を開き、Validateアクションを追加します。 Validateアクションには、ループ処理を抜けるための条件(「Number of entries」のエントリー数の表示が “3” になる )を設定します。

(レコーディングモジュール画面)

上記のテストケースを実行すると、 Validateアクションの結果が成功になるか、リトライ処理の実行回数の上限に達するまで、ループ処理が行われます。

(Ranorexデモアプリ)
(テスト結果レポート)

※テスト結果レポートには、最後の実行されたモジュールの実行ログのみがレポートされます。すべての繰り返し処理を確認したい場合は、Ranorex v9で追加された「ビデオレポート」を使用してください。テスト実行時の画面を動画として出力できます。

※Validateアクションの結果(失敗・成功)において、「レポートレベル」を変更したい場合は、 Validateアクションのプロパティにある、「Report Level on failure」(失敗時)および、「Report Level on success」(成功時)を変更してください。

※「リトライ」機能の動作として、 設定したテストケース・スマートフォルダー内でエラーが発生した際に繰り返し処理を実行します。そのため、Validateアクション以外の実行アクションなどでエラー発生した場合にも繰り返し処理が実行されます。

ループ処理+分岐処理

繰り返し処理に条件分岐を追加することで、特定の条件において異なる処理を行うようなテストを作成することもできます。たとえば、「ループ処理」の例において「Number of entries」のエントリー数の表示が “2” の時だけ、異なるエントリー情報を登録するようなテストを作成します。

テストシナリオ

  1. Ranorex デモアプリを起動する
  2. 「Test Database」タブを開く
  3. エントリー情報(First name、Last name、Age、Gender)を設定する
  4. 「Number of entries」のエントリー数の表示を確認し、表示が “2” の場合、エントリー情報(#3とは異なるエントリー情報)を再設定する
  5. 「Add Entry」ボタンをクリックする(エントリー登録)
  6. 「Number of entries」のエントリー数の表示を確認する(表示が “3” 以外の場合、#3、4の繰り返し)
  7. Ranorex デモアプリ を閉じる

モジュール構成

  • StartAUT:#1
  • RecordingModule1:#2
  • RecordingModule2:#3
  • RecordingModule3:#4
  • RecordingModule4:#5、6
  • CloseAUT:#7

テストケースの作成方法

繰り返し処理を設定したテストケース・スマートフォルダーに分岐処理のためのスマートフォルダー(分岐処理)を設定し、そのスマートフォルダーに分岐処理で実行するモジュール(RecordingModule3)を配置します。また、スマートフォルダーには「条件分岐」の設定を行います。

※「条件分岐」の設定方法については、本Blog記事(条件分岐)を参照ください。

(テストスイート画面)

上記のテストケースを実行すると、 Validateアクションの結果が成功になるか、リトライ処理の実行回数の上限に達するまで、ループ処理が行われ、ループ処理中に「Number of entries」のエントリー数の表示が “2” の場合のみ、エントリー情報を変えて登録します。

(Ranorexデモアプリ)
(テスト結果レポート)