実行セッション中のオブジェクトの識別
関連:GUI テストおよびコンポーネント
UFT One は、人間的なテクニックを使って実行セッション中にオブジェクトを識別します。
UFT One がランタイムでオブジェクトを検出する方法
「UFT One によるオブジェクトの学習方法」で説明されている実験の続きとして、新しいけれども似たような環境で、最初に識別したものと同じ「項目」を識別するように Alex が指示されたとします。
最初に、元の写真を見せます。Alex は、記憶するように指示された、8 歳くらいの長い茶色の髪の同じ白人の女の子を探し、すぐに見つけます。2 番目の写真では、子供達は遊具を使って遊んでいますが、Alex はやはり、同じ基準を使ってその女の子を簡単に識別できます。
同様に、実行セッション中、UFT One は以前に学習したテスト・オブジェクトの記述と正確に一致する実行環境オブジェクトを探します。オブジェクトの学習中に一意の記述を作成するのに使われた必須およびすべての補足プロパティが完全一致することが期待されます。アプリケーションのオブジェクトが大きく変更されていなければ、学習した記述は UFT One がそのオブジェクトを識別するのにほとんど常に十分です。これは、ほとんどのオブジェクトに当てはまりますが、アプリケーションには以降の実行セッションで識別が困難なオブジェクトが含まれている可能性もあります。
たとえば、Alex は写真に写っている複数の樹木から特定の樹木を識別するように言われており、異なる角度から撮影した写真でも、その樹木を識別できなければならないということを理解しています。樹木そのものを明確に識別するための情報が十分になければ、近くの街灯やピクニック・テーブルなど、ほかの不変の項目からの相対的な位置に留意するかもしれません。そうすれば、次に見る写真が異なる角度から撮影したものでも、(すべての必要な項目が写真に写っているかぎり)その樹木をもう一度識別できます。
これは、ビジュアル関係識別子プロパティと似ています。このプロパティにより、UFT One はアプリケーションの近隣オブジェクトに基づいて、テスト・オブジェクトを識別できるのです。このプロパティを使って、安定性が低いテスト・オブジェクトを一意性の高いテスト・オブジェクトにリンクすると、これらのオブジェクトがアプリケーションにおいて相対的な位置を維持しているかぎり、アプリケーションのユーザ・インタフェースに予測可能な変更が加わった後も、UFT One はそのテスト・オブジェクトを識別できます。
Alex の実験の最終フェーズを考えてみましょう。このフェーズでは、テスト担当者は Alex に、同じ場所で同じ家族を写したもう 1 枚の写真を見せますが、子供達は成長しており、運動場ではもっと多くの子供達が遊んでいます。Alex はまず、別の写真で女の子を見分けるために使ったのと同じ特徴を持った女の子を探します(テスト・オブジェクト)が、写真の中には長い茶色の髪の女の子は 1 人もいません。幸運にも Alex は、前の週に最初に写真を見たときにその女の子について、ほかの情報も覚えていました。彼は、その女の子の髪が短くブロンドになっているにもかかわらず彼女を見つけ出す(実行環境オブジェクト)ことができました。
どうやってこのようなことができたのでしょうか。まず、見つけなければならない、自分が知っている特徴は何であるかを考えました。Alex は、探しているのが白人の女性であることに変わりはないことをわかっており、この基準に一致する人が誰も見つからなければ、彼女は写真に写っていないと判断します。
この新しい写真に写っている 4 人の白人女性に的を絞ると、今度は問題の女の子を見分けるために使ってきたほかの特徴(年齢、髪の色、髪の長さ)について考えます。同じ人物であっても、年月が経過しており、覚えているほかの特徴も変わっているかもしれないことはわかっています。
したがって、白人の女の子は誰一人として長い茶色の髪ではありませんでしたが、そうした特徴は無視し、記憶にある目と鼻を持つ女の子を探します。目の似ている少女が 2 人いますが、元の写真で見たような小さな鼻をしているのは、そのうちの 1 人だけであることに気付きます。あまり目立つ特徴ではありませんが、これらを使って少女を識別できます。
UFT One のスマート認識メカニズムでは、これに非常によく似た消去法を使って、学習時の記述がもはや正確とはいえなくなっているオブジェクトを識別します。記述プロパティの値が変更されていても、UFT One はスマート認識でオブジェクトを識別することによって、テストまたはコンポーネントの再利用可能性を維持します。スマート認識の詳細については、「オブジェクトの認識の設定」を参照してください。
次に、本
記述プロパティとランタイム・プロパティ
UFT One は固有の用語を使用して、テスト・オブジェクトと実行環境オブジェクトのプロパティと操作を区別します。
テスト・オブジェクト |
実行環境オブジェクト |
---|---|
記述プロパティは UFT One 固有のプロパティであり、UFT One はこれによって、アプリケーション内のオブジェクトの識別、それらのオブジェクトに関する情報の格納、格納されている値とアプリケーション内のオブジェクトの現在の値との比較を行います。 テスト・オブジェクトで使用できる記述プロパティは、そのテスト・オブジェクト・クラスによって決まります(アプリケーションのオブジェクトで使用できる実際のプロパティによって決まるのではありません)。 |
ネイティブ・プロパティは、各実行環境オブジェクトに対してオブジェクト作成者が作成したプロパティです。(オブジェクト作成者の例としては、Microsoft Internet Explorer オブジェクトを作成する Microsoft、および ActiveX オブジェクトを作成する製品開発者などが挙げられます)。 |
テスト・オブジェクト操作は、UFT One が特定のテスト・オブジェクト・クラスで実行可能なメソッドまたはプロパティです。 例:UFT One は WebButton テスト・オブジェクトで Click メソッドを実行できます。 |
ネイティブ操作は、オブジェクト作成者によって定義される、アプリケーション内のオブジェクトのメソッドです。 |
ランタイム・プロパティの定義
テスト・オブジェクトおよび実行環境オブジェクトのプロパティと操作は、次のようにさまざまな方法で表示および変更します。
-
表示されているオブジェクトのネイティブ操作の構文の表示:オブジェクト・スパイの[操作]タブで表示します。詳細については、「 オブジェクト・スパイの使用」を参照してください。
-
実行環境オブジェクトからネイティブ・プロパティの値を取得:実行セッション中に GetROProperty ステートメントを追加します。詳細については、「値の取得と設定」を参照してください。
-
利用可能なテスト・オブジェクト操作および記述プロパティに必要な機能がない場合は、Object プロパティまたは Web オブジェクトのattributeオブジェクト・プロパティを使って実行環境オブジェクトの内部操作およびネイティブ・プロパティにアクセスできます。詳細については、「ネイティブ・プロパティ/ネイティブ操作」および 『UFT One Object Model Reference for GUI Testing』 の「Common Methods and Properties」の項の Object プロパティを参照してください。
注意: Insight テスト・オブジェクトまたはテキスト・テスト・オブジェクトを使用しており、UFT One がオブジェクトの外観に基づいてアプリケーション内のオブジェクトを認識している場合、UFT One はオブジェクトのプログラミング・インタフェースを使用しないため、ネイティブの操作やプロパティは関連しません。