Rational Functional Tester のオブジェクト認識とオブジェクト・マップに関するよくある質問

このトピックでは、オブジェクト認識とテスト・オブジェクト・マップに関するよくある質問のいくつかに答えます。

オブジェクト・マップとは何ですか? なぜそれが必要なのですか?

オブジェクト・マップには、記録中に対象とされた各オブジェクト、およびオブジェクトの認識プロパティーが含まれています。 マップはまた、認識にあたって Rational® Functional Tester がどの程度各プロパティーに依存するかを示す重みも含んでいます。

オブジェクト・マップへのデータの取り込みは、スクリプトを記録するときに自動で行うことも、手動でオブジェクトをマップに追加して行うこともできます。

オブジェクト・マップによって、スクリプトの保守を効率よく行うことができます。 テスト中のアプリケーションのオブジェクトが変更された場合、オブジェクト・マップは更新可能な単一のソースとなります。マップを更新すれば、変更されたオブジェクトを参照するすべてのスクリプトは、更新されたオブジェクト情報を使用するようになります。

別の 2 つのオブジェクトが同じ名前を持っているとどうなりますか?

Rational Functional Tester は、認識プロパティーと階層に基づいてオブジェクトを区別します。例えば、別のトップレベル・ウィンドウに存在するボタンは、マップでは別のボタンとして表示されます。2 つ以上の別のオブジェクトが同じ名前を持っている場合、名前を固有にするために、Rational Functional Tester は、2 番目、3 番目などのオブジェクトの名前に数字のサフィックスを追加します。

オブジェクトに、ブラウザーの 2 つのインスタンスなど、同一の 2 つのインスタンスがある場合、Rational Functional Tester は ID を処理するメソッドを提供します。

専用オブジェクト・マップと公用オブジェクト・マップの違いは何ですか?

専用オブジェクト・マップは、単一のスクリプトによって使用されます。公用 (共用) オブジェクト・マップは、複数のスクリプトによって使用されます。デフォルト設定では、各スクリプトが専用オブジェクト・マップを使用します。この設定は、単一のユーザーがツールの学習を始める場合に適しています。ただし、共通のアプリケーションで作業しているテスターのチームは、単一のマップでグローバルに定義されているオブジェクトを利用できるように、共用オブジェクト・マップを使用する必要があります。

認識プロパティーで重みはどのような意味を持ち、どのように使用されますか?

重みは、スクリプトの実行中にオブジェクトを識別する上で、特定のプロパティーがどの程度重要かを示します。指定可能な設定は 0 (重要でない) から 100 (非常に重要) です。ほとんどのプロパティーの重みを変更できます。.class プロパティーは固定で、変更できません。

重みを 0 に設定すると、オブジェクトを識別しようとするときに、そのプロパティーの値は無視されます。

各プロパティーに割り当てられたデフォルトの重みは変更できますか?

新しいデフォルトの重みをプロパティーに割り当てたり、今後の記録中にオブジェクトを識別するときに使用する新しいプロパティーを定義したりするには、オブジェクトのプロパティー構成ツールを使用します。

プロジェクトのすべてのオブジェクト、または特定のタイプのすべてのオブジェクトについて、プロパティーの重みまたは値を変更できますか?

オブジェクト・マップの検索と変更ユーティリティーを使用して、プロパティー名、プロパティーの値などの条件、またはさまざまなカスタム・フィルターに一致するすべてのオブジェクトを検索できます。一致したオブジェクトに対して実行できるアクションには、プロパティーの追加、プロパティーの除去、値の変更、および重みの変更があります。オブジェクトへの変更は、一度に 1 つずつ、またはグローバルに適用できます。

専用マップを使用して作成されたスクリプトを公用マップにマージできますか?

はい。スクリプトをマージするには、「ファイル」 > 「新規」 > 「テスト・オブジェクト・マップ」をクリックして、新しい公用マップを作成します。ウィザード・ページが開いたら、それを閉じます。作成されたマップを右クリックして、「オブジェクトのマージ先」を選択します。表示されたダイアログ・ボックスで、マージするスクリプトを選択します。「選択した Functional Tester スクリプトを接続」チェック・ボックスを必ず選択し、選択したスクリプトをマージ対象の新しいオブジェクト・マップに接続します。

複数のマップのマージについて詳しくは、複数のテスト・オブジェクト・マップのマージを参照してください。

専用マップを公用にできますか?

はい。次のステップを実行すると、専用マップの内容を公用マップにコピーできます。
  1. 「ファイル」 > 「新規」 > 「テスト・オブジェクト・マップ」を選択します。
  2. 新しい公用マップを作成するフォルダーを選択して、新しいマップの名前を入力します。また、このテスト・オブジェクト・マップを新しい Rational Functional Tester スクリプトのデフォルト選択項目として設定するチェック・ボックスを選択することもできます。 「次へ」をクリックします。
  3. 「テスト・オブジェクトのコピー元となるテスト・オブジェクト・マップとスクリプト」を選択します。
  4. 公用にする専用マップを含んでいるスクリプトを選択します。また、「新規テスト・オブジェクト・マップと選択したスクリプトの接続」チェック・ボックスを選択することもできます。

オブジェクト・マップの階層を変更すると、すべての子オブジェクトに対してオブジェクト・マップで新しいセクションが必要ですか?

挿入や削除のために親ノードのプロパティーが変更された場合、あるいは新しいノードが階層に追加された場合は、マップを変更できます。 マップを更新するには、マップ・エディターを使用して、新しく親が挿入されたオブジェクトへの参照を挿入します。新しいオブジェクトの子オブジェクトに対して参照が複製されます。これらの各参照で、古いオブジェクトを新しいオブジェクトにドラッグすると、マップ・エディターがオブジェクトを統合します。同じステップを使用して、マップの階層からオブジェクトを削除できます。

オブジェクト認識に使用されているプロパティーを変更できますか?

はい。オブジェクト・マップでオブジェクトを開き、「テスト・オブジェクト」 > 「認識プロパティーの更新」を選択します。 オブジェクトを指定するには、オブジェクト・ファインダーを使用します。3 つのペインを持つ「認識プロパティーの更新」ダイアログ・ボックスが表示されたら、「すべてのアクティブ・プロパティー」ペインでプロパティーを右クリックして、「統合されたテスト・オブジェクトのプロパティーに追加」を選択します。

スクリプトは複数のオブジェクト・マップを参照できますか?

いいえ。

個別のオブジェクトをマップ間でコピーできますか?

いいえ。

サイズが大きくなったときのオブジェクト・マップのパフォーマンスの測定基準はどのようなものですか?

オブジェクト・マップが大きくなるにつれて、マップを開いたりロードしたりするのに必要な時間が増えます。

スクリプトを実行するとき、オブジェクト・マップは実行中初めて必要になったときにロードされます。機能テスト・スクリプトを使用するテスト・ケース・スイートがある場合、各スクリプトは別のプロセスであるため、マップは各スクリプトを実行するときにロードされます。標準的なアプリケーションは、約 2000 個から 3000 個のオブジェクトを持っています (マップによってはこれより大きい場合も小さい場合もあります)。

表 1 の測定基準は、スクリプトの実行時に計算されていますが、マップのロード時にも適用できます。この表から、マップのロード時間の大幅な増加は、マップが標準のサイズを超えるまでは発生しないことがわかります。再生時間は、スクリプト実行の始めにマップをロードするときにのみ増加し、マップのロード後にスクリプトの実行速度が低下することはありません。また、同じオブジェクト・マップを共有する、ネストされたスクリプト (callScript 関数を使用) も、スクリプト実行中に同じマップのインスタンスを共有します。このため、ネストされたスクリプトによって、ロード時間が増加することはありません。

表 1. オブジェクト・マップの測定基準
マップ内のオブジェクト スクリプト実行の合計時間 (秒)
10 X 秒
600 から 2000 X + 2 秒
2000 から 11000 X + 3 秒
11001 以上 X +10 秒

フィードバック