テスト・オブジェクト・モデル
関連:GUI テストおよびコンポーネント
UFT One は、テスト・オブジェクトとその期待プロパティおよび期待値を学習、識別することによって、動的に変化するアプリケーションをテストします。これを行うために、UFT One は、人間が写真を見てその詳細を記憶するのとほぼ同じ方法で、アプリケーションの各オブジェクトを分析します。UFT One は、オブジェクトを学習して分類することにより、テスト・オブジェクト・モデルを作成します。
UFT One によるオブジェクトの学習方法
UFT One は人と同じように学習します。たとえば、ある実験で、Alex という被験者にピクニックの様子を写した写真を 2 ~ 3 秒間見て、その写真に写っているある何かを覚えてもらうと予告したとします。そして、1 週間後に同じ写真か別の似たような写真を見て、その何かを識別してもらうとします。
写真を見せられる前に、Alex は自分が学ぶ必要がある特性を考えて準備します。もちろん、Alex はそれが人、物、動物、植物のどれであるかを、記憶します。記憶する対象が人ならば、性別、皮膚の色、そして年齢を記憶します。そして、動物ならば、その動物の種類や色などといったことを記憶します。
テスト担当者は、Alex に写真を見せ、地面に敷いたシートの上に座っている 3 人の子供のうちの 1 人を指差します。Alex は女の子が白人で 8 歳ほどだと記憶します。さらに、その記述に当てはまる子供が写真にもう 1 人いることに気付きます。そこで、覚える予定だった特徴に加え、その女の子の髪が茶色で長いことも覚えます。
これで、写真の中で Alex が覚えた特徴と一致するのは 1 人だけになりますから、1 週間後に見せられる写真が少し違っていても、かなり確実にその女の子を見分けられるでしょう。それでもまだ少し写真を見る時間が残っているので、念のために、ほかの子供達とのもっと微妙な違いを見つけられるかどうか試みます。
UFT One では、オブジェクトを学習するときに、これに非常に似た方法を使います。
まず、学習対象のオブジェクトを「見て」、これを「テスト・オブジェクト」として保存し、そのオブジェクトに合うテスト・オブジェクト・クラスを決定します。UFT One は、テスト・オブジェクトを、たとえば標準 Windows ダイアログ・ボックス(Dialog)、Web ボタン(WebButton)、あるいは Visual Basic スクロール・バー・オブジェクト(VbScrollBar)のようにクラス分けします。
次に、UFT One では、テスト・オブジェクトの記述プロパティが「考慮」されます。UFT One には、テスト・オブジェクト・クラスごとに、常に学習する必須プロパティのリストがあります。オブジェクトを学習するとき、UFT One は必ずこれらの標準プロパティ値を学習し、ページ、ダイアログ・ボックス、その他の親オブジェクト上にある残りのオブジェクトを「見て」、その記述がオブジェクトを一意に識別するのに十分であるかどうかを確認します。そうでない場合、UFT One は、一意の説明をコンパイルするまで、説明に補足プロパティを 1 つずつ追加します。補足プロパティがない場合や、あっても一意の記述を作成するには足りない場合、UFT One は、オブジェクトのページやソース・コードでの位置のような、特殊な順序識別子を追加して、一意の記述を作成します。
UFT One でのテスト・オブジェクト・モデルの使用方法
テスト・オブジェクト・モデルとは、アプリケーション内のオブジェクトを表す、オブジェクト・タイプまたはクラスの大規模なセットです。各テスト・オブジェクト・クラスには、UFT One がオブジェクトについて学習する記述プロパティのリスト、当該クラスのオブジェクトを一意に識別できるプロパティのサブセット、UFT One がオブジェクトに実行できる関連操作のセットがあります。
例: たとえば、次の HTML ソース・コードで[Search]ボタンを追加したとします。
<INPUT TYPE="submit" NAME="Search" VALUE="Search">
UFT One ではオブジェクトが WebButton テスト・オブジェクトとして識別されます。オブジェクト・リポジトリで、UFT One が Search という名前の WebButton オブジェクトを作成し、オブジェクトの一連の記述プロパティを学習して、Search WebButton を一意に識別する次のプロパティと値の使用を決定します。
テストまたはコンポーネントを実行すると、UFT One は、テスト・オブジェクト・クラスと、「記述」(オブジェクトを一意に認識するための記述プロパティと値のセット)に基づいて、アプリケーションに含まれている各オブジェクトを認識します。
テストのオブジェクトの階層構造
UFT One テスト・オブジェクト階層構造は、1 つ以上のレベルのテスト・オブジェクトで構成されています。最上位オブジェクトは、環境に応じて、ウィンドウ、ダイアログ・ボックス、またはブラウザ・タイプ・オブジェクトになります。操作を実行する実際のオブジェクトは、最上位オブジェクト、第 2 レベル・オブジェクト(Window.WinToolbar など)、または第 3 レベル・オブジェクト(Browser.Page.WebButton など)として学習されます。
アプリケーション内のオブジェクトが複数レベルのオブジェクトに埋め込まれていても、テストオブジェクトの階層にはそれらのオブジェクトは含まれません。たとえば、アプリケーション内の WebButton オブジェクトが、ブラウザやページ内にある複数の WebTable オブジェクトに含まれている場合であっても、学習されるオブジェクト階層構造は「Browser.Page.WebButton」のみになります。
より低いレベルのオブジェクトを含むことができるオブジェクトは、コンテナ・オブジェクトと呼ばれます。オブジェクト階層構造のすべての最上位オブジェクトは、コンテナ・オブジェクトです。UFT One のオブジェクト階層構造に従って、第 2 レベルのオブジェクトに第 3 レベルのオブジェクトが含まれる場合、そのオブジェクトもコンテナ・オブジェクトと見なされます。たとえば、「Browser.Page.Edit.Set "David"」ステップでは、Browser と Page はコンテナ・オブジェクトです。
オブジェクトのプロパティの定義
テスト・オブジェクトのプロパティと操作を表示、変更します。
-
テストまたはコンポーネントの設計時に手動で値を取得または変更するか、または実行セッション中に SetTOProperty ステートメントを使用します。
詳細については、「オブジェクト・リポジトリ内のテスト・オブジェクト」、「値の取得と設定」、および 『UFT One Object Model Reference for GUI Testing』 の「Common Methods and Properties」の項の SetTOProperty メソッドを参照してください。
-
関数ライブラリで正規表現を使用して、定義した条件やパターンに基づいてプロパティ値を識別します。詳細については、「正規表現」を参照してください。
-
[オブジェクトのプロパティ]または[オブジェクト リポジトリ]ウィンドウで、テストまたはコンポーネントとともに格納されている値を表示または変更します。詳細については、「オブジェクト・リポジトリ内のテスト・オブジェクトの保守」を参照してください。
-
オブジェクト・スパイの[プロパティ]タブで表示されているオブジェクトの現在の値を表示します。詳細については、「 オブジェクト・スパイの使用」を参照してください。