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