テスト内でステップが失敗する理由の 1 つの例は、アプリケーションのバージョンが更新された場合です。テストは、アプリケーションの 1 つのバージョンを使用して記録します。 そのアプリケーションの新しいバージョンでテストを再利用すると、新しいバージョンでは例えば、ボタンが新しくなっていたり、オブジェクト・ロケーションが新しくなっていたりするため、テストの再生時にそのようなオブジェクトが見つかりません。ステップ失敗のもう 1 つの理由は、テストが記録された後にテスト内のデータ (例えば、日付) が変更された場合です。
オブジェクト・プロパティーは、テストの記録中にキャプチャーされ、「モバイルおよび Web UI データ」ビューの「プロパティー」テーブルに読み取り専用モードで表示されます。再生中にテスト対象アプリケーション内のオブジェクトを検出するために、テスト・ワークベンチは、記録中にキャプチャーされたオブジェクト・プロパティーを、テスト・エディターの「ユーザー・アクションの詳細」エリアに表示されるプロパティーの記述と比較します。これらのプロパティーは、Android アプリケーション、iOS アプリケーション、Web UI アプリケーションでそれぞれ異なります。
記録されたテストでステップを選択すると、テスト・エディターには、アクションを実行する対象のオブジェクト・プロパティーが表示されます。オブジェクト・プロパティーは「オブジェクトの識別基準」フィールドにリストされ、その後に演算子フィールドとプロパティー値の挿入フィールドが表示されます。
これらのパラメーター (プロパティー、演算子、プロパティー値) は、テスト・エディターの「ユーザー・アクションの詳細」エリアか、またはコンテキスト・メニューを使用して「モバイルおよび Web UI データ」ビューで変更できます。「テスト・コンテンツ」リストでアクションが選択されているときには、「モバイルおよび Web UI データ」ビューが自動的に同期されて、選択されたステップの画面キャプチャーが表示されます。プロパティーは、「画面キャプチャー」タブまたは「エレメント」タブ、あるいはコンテキスト・メニューを使用して「プロパティー」テーブルで変更できます。
テスト実行時には、テスト内のグラフィカル・オブジェクトが自動的に検出される必要があります。しかし、場合によっては、アクションを実行する対象のエレメントを識別するのが困難であることがあります。この場合、テスト・スクリプトを更新して、アクションを実行する対象のオブジェクトを検出するためのより正確な情報を提供する必要があります。
例を示します。テストを記録し、その 1 つのステップが「コンテンツが「2013 年 8 月 30 日」である編集テキストをクリックする」であるとします。テストが自動的に再生された場合、日付が 2013 年 8 月 30 日ではなくなっていると、テストは失敗します。ステップを変更して、アクションを実行する対象のオブジェクトを検出するためのより正確な情報を提供する必要があります。この方法により、テストが実行されるときに、オブジェクトを自動的に検出および使用できます。テスト・ワークベンチは、オブジェクトを識別および検出し、テスト・スクリプトの信頼性を高めるためのさまざまな方法を提供しています。
テスト・ワークベンチでは、Android アプリケーション、iOS アプリケーション、および Web アプリケーション用のさまざまなオブジェクト・ロケーション演算子を使用して、テスト対象アプリケーション内のオブジェクトを識別できます。これらは、テスト・エディターの「ユーザー・アクションの詳細」エリア内の「オブジェクト・ロケーション」フィールドに表示されます。1 つのテスト・ステップ内で 2 つのオブジェクト・ロケーションを使用して、ロケーション条件を設定し、テスト内のターゲット・オブジェクトを検出することができます。詳細については、テスト・スクリプト内のオブジェクト・ロケーション条件の設定を参照してください。
テスト内のオブジェクトを識別するためのさまざまな方法のデモを含むビデオ・チュートリアルを参照するには、How to create robust test scripts for mobile and desktop web applications にアクセスしてください。
テストを記録するときに、アクションを実行する対象のオブジェクトはそのメイン・プロパティー (通常はテキスト・プロパティー) によって識別されます。 テキスト・プロパティーは簡単には識別できない場合があります。例えば、テスト・ステップ内のターゲット・エレメントを識別するためのプロパティー記述やラベルがない場合です。そのような場合、テスト・ジェネレーターはイメージ・プロパティーを使用してテスト・ステップ内のエレメントを識別します。
イメージ認識に関連して起こり得る問題を修正するために、テスト・ワークベンチでは、再生中にイメージ相関を使用してオブジェクトの認識と管理を行います。アクションを実行する対象のイメージ (参照イメージ) がテスト記録時にキャプチャーされ、再生時のテスト対象アプリケーションのイメージ (候補のイメージ) と比較されます。認識しきい値を使用して、参照イメージと候補のイメージとの間の調整可能な差異比率を受け入れ、イメージが一致するかどうかが評価されます。デフォルトの認識しきい値は 80 に設定され、デフォルトの縦横比の許容範囲は 20 に設定されています。
場合によっては、テスト対象アプリケーションにカスタム・オブジェクトや、テスト・ワークベンチが検出できないオブジェクトが含まれている可能性があります。また、選択されたイメージが不適切であるため、テストが失敗する場合もあります。 再生時の認識の問題の場合、テスト・ステップ内のターゲット・オブジェクトを識別するために使用するイメージを変更したり、編集対象のテスト内でしきい値スコアと縦横比の許容範囲を変更したりできます。
しきい値を 0 に設置した場合、参照イメージと同じでなくても、参照イメージに最も似ている候補のイメージが選択されます。しきい値を 100 に設定した場合、イメージ間にわずかでも差異があると、イメージが認識されません。例えば、タブレット・デバイスでの再生時にイメージがサイズ変更され、イメージの幅または高さが異なる場合、たとえそれが同じイメージであったとしても、しきい値が 100 に設定されていると、そのイメージは選択されません。同じ画面比率ではないデバイスでテスト再生が失敗した場合、またはテスト記録時に使用可能なイメージと違うものが再生時にアプリケーションで使用可能である場合は、縦横比の許容範囲を変更できます。
テスト・エディターで認識しきい値を設定した場合、テスト・ワークベンチにイメージ一致プレビュー が表示され、テスト再生時にターゲット・オブジェクトを識別するための正確なイメージを見つけるのに役立ちます。最も適切な候補のイメージは緑色で、しきい値よりも上のスコアのイメージは黄色です。黄色は最も適切なイメージではありません。しきい値よりも下のスコアのイメージは赤です。このような候補のイメージは参照イメージと一致しません。
イメージ相関の詳細は、テスト実行の完了時に表示されるテスト・レポートで確認できます。
詳細については、メイン・プロパティーとしてイメージを使用してステップ・ターゲットを変更を参照してください。
一部のアプリケーションでは、レスポンシブ・デザインを使用しています。つまり、アプリケーションの動作またはグラフィック・ディスプレイが、使用されるターゲット・デバイスに適応します。例えば、画面サイズや画面方向、あるいは使用されているオペレーティング・システムのバージョンその他のパラメーターに応じて、グラフィック・エレメントのフォーマットが変わるように設計されたアプリケーションが増えています。
ログインして位置を入力するようにユーザーに求めるアプリケーションもあります。さらに、アプリケーションが初めてインストールされ、実行されたときに、アプリケーションの使用方法のチュートリアルを再生するアプリケーションもあります。初回以降は、そのチュートリアルは表示されません。このような状況によってテストの失敗が生じる可能性があります。
このようなテスト失敗の問題を修正するために、選択された可変アクションに対する実行条件を設定できます。そうすれば、テストの初回実行時には一連のアクションを実行し、次回にテスト内のアクションを実行するときは、その一連のアクションは実行されません。これが、レスポンシブ・デザイン条件の例です。詳細については、テストでのレスポンシブ・デザイン条件の作成を参照してください。この機能は、テスト・ワークベンチ のバージョン 8.7.1 で Android アプリケーションのみに使用可能です。