(57)【要約】      （修正有）【課題】静的なユーザインタフェースレイアウトのテストにおいて、ユーザインタフェース画面の動的領域によって生じる雑音量を減らし誤判断を避ける。【解決手段】ユーザが、検証プロセス中に変化することが予想されるユーザインタフェースレイアウトの領域範囲を選択的に無視するために、画面の動的範囲にマスキング領域を追加する。【選択図】図４
2005251173.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインタフェースの相違を判定するために前記ユーザインタフェースの動的な領域をマスキングする、コンピュータによって実施される方法であって、
前記ユーザインタフェースの第１のスナップショットのためのマスクを生成するステップであって、前記マスクは、前記第１のスナップショット中の座標のセットに対応することと、
スナップショットキーに従って前記マスクをスナップショットのセットに関連付けるステップであって、前記スナップショットのセットは、前記第１のスナップショットを含むことと、
前記第１のスナップショットが前記スナップショットセットの別のスナップショットと比較される際に、前記マスクの座標に対応する各スナップショットの範囲が無視されるように、前記スナップショットのセットに前記マスクを適用するステップと、
を備えることを特徴とする方法。
【請求項２】
第１のスナップショットの前記マスクを生成するステップは、前記マスクがデフォルトマスクテーブルに含まれるのに応答して行われることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項３】
前記マスクは、前記第１のスナップショットと前記スナップショットセットの別のスナップショットとの比較の前に、前記スナップショットのセットに関連付けられることを特徴とする請求項２に記載のコンピュータによって実施される方法。
【請求項４】
前記第１のスナップショットと前記スナップショットセットの別のスナップショットとの比較の前に、前記デフォルトマスクテーブルからスナップショットマスクテーブルにマスクをコピーするステップをさらに備えることを特徴とする請求項２に記載のコンピュータによって実施される方法。
【請求項５】
第１のスナップショットの前記マスクを生成するステップは、前記マスクがスナップショットマスクテーブルに含まれるのに応答して行われることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項６】
前記マスクは、前記第１のスナップショットと前記スナップショットセットの別のスナップショットとの比較の前に、前記スナップショットのセットに関連付けられることを特徴とする請求項５に記載のコンピュータによって実施される方法。
【請求項７】
前記マスクは、前記第１のスナップショットと前記スナップショットセットの別のスナップショットとの比較の後に、ユーザにより前記スナップショットのセットに関連付けられることを特徴とする請求項５に記載のコンピュータによって実施される方法。
【請求項８】
前記マスクが前記スナップショットのセットに関連付けられるときに、前記スナップショットのセット中のスナップショットの巡回冗長検査値を再計算するステップをさらに備えることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項９】
前記マスクは、一括追加操作に従って前記スナップショットのセットに関連付けられることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項１０】
前記スナップショットキーは、前記第１のスナップショットに関係付けられたファイルに含まれる情報の選択可能な組み合わせから生成されることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項１１】
ユーザインタフェースの相違を判定するために前記ユーザインタフェースの動的な領域をマスキングするコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、
前記ユーザインタフェースの第１のスナップショットのためのマスクを生成するステップであって、前記マスクは、前記第１のスナップショット中の座標のセットに対応することと、
スナップショットキーに従って前記マスクを第２のスナップショットに関連付けるステップであって、前記第１のスナップショットと第２のスナップショットは、前記スナップショットキーに従って関係付けられることと、
前記第１のスナップショットが前記第２のスナップショットと比較される際に、前記マスクの座標に対応する前記第１のスナップショットと前記第２のスナップショットの範囲が無視されるように、前記第１のスナップショットと前記第２のスナップショットに前記マスクを適用するステップと、
を備えることを特徴とするコンピュータ読取り可能媒体。
【請求項１２】
第１のスナップショットの前記マスクを生成するステップは、前記マスクがデフォルトマスクテーブルに含まれるのに応答して行われることを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１３】
前記第１のスナップショットと前記スナップショットセットの別のスナップショットとの比較の前に、デフォルトマスクテーブルからスナップショットマスクテーブルに前記マスクをコピーするステップをさらに備えることを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１４】
第１のスナップショットの前記マスクを生成するステップは、前記マスクがスナップショットマスクテーブルに含まれるのに応答して行われることを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１５】
前記マスクが前記スナップショットのセットに関連付けられるときに、前記スナップショットのセット中のスナップショットの巡回冗長検査値を再計算するステップをさらに備えることを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１６】
前記マスクは、一括追加操作に従って前記スナップショットのセットに関連付けられることを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１７】
前記スナップショットキーは、前記第１のスナップショットに関係付けられたファイルに含まれる情報の選択可能な組み合わせから生成されることを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１８】
ユーザインタフェースの相違を判定するために前記ユーザインタフェースの動的な領域をマスキングするシステムであって、
前記ユーザインタフェースの第１のスナップショットと第２のスナップショットがとられるターゲットユーザインタフェースデバイスと、
前記ユーザインタフェースの前記第１のスナップショットのための、前記第１のスナップショット中の座標セットに対応するマスクを生成し、
スナップショットキーに従って前記マスクを前記第２のスナップショットに関連付け、前記第１のスナップショットと第２のスナップショットは前記スナップショットキーに従って関係付けられ、
前記第１のスナップショットが前記第２のスナップショットと比較される際に、前記マスクの座標に対応する前記第１のスナップショットと前記第２のスナップショットの範囲が無視されるように、前記第１のスナップショットと前記第２のスナップショットに前記マスクを適用する、
ように構成されたアプリケーションを含むサーバと、
を備えることを特徴とするシステム。
【請求項１９】
前記アプリケーションは、前記マスクがデフォルトマスクテーブルに含まれるのに応答して前記マスクを生成するようにさらに構成されることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記アプリケーションは、前記第１のスナップショットと前記スナップショットのセットの別のスナップショットとの比較の前に、デフォルトマスクテーブルからスナップショットマスクテーブルに前記マスクをコピーするようにさらに構成されることを特徴とする請求項１８に記載のシステム。
【請求項２１】
前記アプリケーションは、前記マスクがスナップショットマスクテーブルに含まれるのに応答して前記マスクを生成するようにさらに構成されることを特徴とする請求項１８に記載のシステム。
【請求項２２】
前記アプリケーションは、前記マスクが前記スナップショットセットに関連付けられるときに、前記スナップショットのセット中の前記スナップショットの巡回冗長検査値を再計算するようにさらに構成されることを特徴とする請求項１８に記載のシステム。
【請求項２３】
前記マスクは、一括追加操作に従って前記スナップショットのセットに関連付けられることを特徴とする請求項１８に記載のシステム。
【請求項２４】
前記スナップショットキーは、前記第１のスナップショットに関係付けられたファイルに含まれる情報の選択可能な組み合わせから生成されることを特徴とする請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静的なユーザインタフェースレイアウトのテストを支援する、ユーザインタフェースの動的な領域をマスキングするシステムおよび方法に関する。
【背景技術】
【０００２】
本発明は、本願と同時に出願される「Method and System for Automatically Determining Differences in a User Interface Throughout a Development Cycle」という名称の特許出願の関連出願である。同関連出願は、本特許出願の譲受人に譲渡され、参照により本明細書に組み込まれる。
【０００３】
携帯電話、携帯情報端末（ＰＤＡ）、ハンドヘルドコンピュータ、その他のデバイスなどのモバイルデバイスの複雑性は増大の一途をたどっている。そうしたデバイスの市場は着実に世界規模の市場になりつつあり、デバイスは、多数の異なる言語と多数の異なるプラットフォームによってコンテンツを提供することが必要となっている。異なる各プラットフォームは、さらに各種のオプションを含むことができ、その結果、選択されるオプションに応じて異なるユーザインタフェース出力が提供されることになる。
【０００４】
デバイスのユーザインタフェースは、デバイスのアプリケーションの内容がユーザに表示される手段を提供する。ユーザインタフェースは、ユーザがプログラムとやり取りをするためのコマンドまたはメニューのセットを提供する。コマンド駆動型のインタフェースは、コマンドを入力するインタフェースである。メニュー駆動型のインタフェースは、画面に表示される各種のメニューからコマンドの選択を選ぶインタフェースである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ユーザインタフェースは、行いたい事柄をどれだけ容易にプログラムに行わせることができるかを決定するので、どのプログラムにおいても最も重要な部分の１つである。高性能であってもユーザインタフェースの設計が優れないプログラムは、ほとんど価値がない。ウィンドウ、アイコン、およびポップアップメニューを使用するグラフィカルユーザインタフェース（ＧＵＩ）は、パーソナルコンピュータにおいて標準的になっている。そのため、存在する各種の言語について、ユーザインタフェースは、必要とされる言語で内容とコマンドを提供するように適合されている。加えて、ユーザインタフェース間には、他の違いのマトリクスが存在する可能性がある。例えば、ユーザインタフェースは、縦向きまたは横向きでの表示、異なる解像度での表示、ソフトウェア入力パネル（ＳＩＰ）を備える表示またはＳＩＰなしの表示、および多数の他の変動要素とともに表示されることが可能である。テストを通じてユーザインタフェースを検証する際に、ユーザインタフェースに表示された特定の特性が時間の経過とともに変化し、それが検証の結果に影響を与える可能性がある。例えば、ユーザインタフェースは、時計を表示する場合がある。表示される時刻は一定でないので、ユーザインタフェースの整合性を検証する際には、時計のために結果が損なわれてしまう。ユーザインタフェースを検証する際、予想される変化を通知しておくことでは、ユーザインタフェースの整合性を分析する助けとはならない。必要とされるのは、検証の結果がより効率的になるように、時計やその他の変化する可能性のある特性をユーザインタフェースの分析から排除する方法である。
【課題を解決するための手段】
【０００６】
本発明は、静的なユーザインタフェースレイアウトのテストを支援する、ユーザインタフェースの動的な領域をマスキングするシステムおよび方法を提供する。マスキング領域を使用して、検証プロセス中に変化することが予想されるユーザインタフェースレイアウトの領域を排除する。本発明は、ユーザが、テスト中にその範囲を選択的に無視するために画面の動的範囲にマスクを付加することを可能にする。言い方を変えると、本発明は、ユーザインタフェース画面の動的領域によって生じる可能性のある、誤判断（False Positive）の結果がテスト中に出ることを低減する方法を提供する。そのような誤判断（False Positive）結果は、テストの結果に「雑音」を生じさせ、その雑音が、テストによって調べられる実際の結果を圧倒してしまう可能性がある。時計や動画など画面上の動的な領域をマスキングして排除することができれば、そうした動的な領域によって生じる雑音量を減らす助けとなる。また、マスキング機能により、比較のための基準スナップショットを保持する能力に影響を与えずに、テストプロセスがユーザインタフェース（例えばメニューバーの表示）の複数部分に繰り返し行われることが可能になる。
【発明を実施するための最良の形態】
【０００７】
本発明について、以下で添付図面を参照してより完全に説明する。添付図面は、本発明の一部をなし、本発明を実施する具体的な例示的実施形態を例示として表す。ただし、本発明は、多くの異なる形態で実施することができ、本明細書に述べられる実施形態に限定されると解釈すべきではない。これらの実施形態は、この開示が完全なものとなり、本発明の範囲を当業者に十分に伝えるように提供される。特に、本発明は、方法またはデバイスとして実施することができる。したがって、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはソフトウェアとハードウェアの態様を組み合わせた実施形態の形をとることができる。したがって、以下の詳細な説明は、限定的な意味に解釈すべきでない。
【０００８】
例示的動作環境
図１は、本発明を実施するシステム１００に含まれることが可能な例示的コンピューティングデバイスを示す。コンピューティングデバイス１００は、本発明に適用することが可能な一般的な動作環境を示す。非常に基本的な構成で、コンピューティングデバイス１００は通例、少なくとも１つの処理装置１０２、およびシステムメモリ１０４を含む。処理装置１０２には、既存の物理的なプロセッサ、現在設計中のプロセッサ、連携して動作する複数のプロセッサ、仮想プロセッサ、およびバイナリの実行可能命令を解釈することが可能な他のデバイスまたはソフトウェアプログラムが含まれる。コンピューティングデバイスの正確な構成とタイプに応じて、システムメモリ１０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、またはその２種類の何らかの組み合わせとすることができる。システムメモリ１０４は、通例、オペレーティングシステム１０５、１つまたは複数のプログラムモジュール１０６を含み、またプログラムデータ１０７を含むことができる。図１では、この基本的な構成を点線１０８内の構成要素で表す。
【０００９】
コンピューティングデバイス１００は、追加的な特性または機能も有することができる。例えば、コンピューティングデバイス１００は、例えば磁気ディスク、光ディスク、またはテープなどの追加的なデータ記憶装置（取り外し可能、および／または取り外し不能）も含むことができる。そのような追加的ストレージを図１では取り外し可能ストレージ１０９および取り外し不能ストレージ１１０で表す。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための方法または技術として実施された、揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含むことができる。システムメモリ１０４、取り外し可能ストレージ１０９、および取り外し不能ストレージ１１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、または所望の情報を記憶するために使用することができ、コンピューティングデバイス１００によるアクセスが可能な他の媒体を含むことができる。そのようなコンピュータ記憶媒体をいずれもコンピューティングデバイス１００の一部とすることができる。コンピューティングデバイス１００は、キーボード、マウス、ペン、スタイラス、音声入力装置、タッチ入力装置などの入力装置１１２も有することができる。ディスプレイ、スピーカ、プリンタなどの出力装置１１４も含まれることができる。こうしたデバイスはすべて当技術分野で知られており、ここで詳細に説明する必要はない。
【００１０】
コンピューティングデバイス１００は、デバイスがネットワークなどを通じて他のコンピューティングデバイス１１８と通信することを可能にする通信接続１１６も含むことができる。通信接続１１６は、通信媒体の一例である。通信媒体は通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他の伝送機構などの変調データ信号として実施し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、その信号中に情報を符号化する方式によって、その特性の１つまたは複数を設定または変化させた信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。本明細書で使用される用語「コンピュータ可読媒体」は、記憶媒体と通信媒体の両方を含む。
【００１１】
図２は、本発明で実質的に使用されるモバイルデバイスの別の動作環境を示す。本発明の一実施形態においては、モバイルデバイス２００は、携帯情報端末（ＰＤＡ）と無線電話の一体化のようにコンピューティングデバイスと一体化される。
【００１２】
この実施形態において、モバイルデバイス２００は、プロセッサ２６０、メモリ２６２、ディスプレイ２２８、およびキーパッド２３２を含む。メモリ２６２は、一般に、揮発性メモリ（ＲＡＭなど）と不揮発性メモリ（ＲＯＭ、フラッシュメモリなど）の両方を含む。モバイルデバイス２００は、メモリ２６２に常駐しプロセッサ２６０で実行されるオペレーティングシステム２６４を含む。キーパッド２３２は、プッシュボタン式の数値ダイヤルパッド（通常の電話機などの）、マルチキーのキーボード（従来のキーボードなど）であっても、あるいは、タッチスクリーンやスタイラスがあるためモバイルデバイスに含まれない場合もある。ディスプレイ２２８は、液晶ディスプレイであっても、モバイルコンピューティングデバイスで一般的に使用される他のタイプのディスプレイであってもよい。ディスプレイ２２８は、タッチセンシティブであってもよく、その場合は入力装置としても機能する。
【００１３】
１つまたは複数のアプリケーションプログラム２６６が、メモリ２６２にロードされ、オペレーティングシステム２６４上で実行される。アプリケーションプログラムの例には、電話ダイヤルプログラム、電子メールプログラム、スケジュール管理プログラム、ＰＩＭ（個人情報管理）プログラム、ワードプロセッシングプログラム、表計算プログラム、インターネットブラウザプログラムなどが含まれる。モバイルデバイス２００は、メモリ２６２中の不揮発性ストレージ２６８も含む。不揮発性ストレージ２６８は、モバイルデバイス２００の電源が切られた場合に失われてはならない永続的な情報を記憶するために使用することができる。アプリケーション２６６は、電子メールアプリケーションで使用される電子メールまたは他のメッセージ、ＰＩＭで使用される連絡先情報、スケジュール管理プログラムで使用される予約情報、ワードプロセッシングアプリケーションで使用される文書など、ストレージ２６８中の情報を使用し、ストレージ２６８に情報を記憶することができる。モバイルデバイスには同期アプリケーションも常駐し、ホストコンピュータに常駐する対応する同期アプリケーションと対話して、ストレージ２６８に記憶された情報を、ホストコンピュータに記憶された対応する情報と常に同期するようにプログラムされる。
【００１４】
モバイルデバイス２００は、１つまたは複数のバッテリとして実施することが可能な電源２７０を有する。電源２７０は、さらに、バッテリを補助または充電するＡＣアダプタや電力が供給されるドッキングクレードルなどの外部電源を含むことができる。
【００１５】
図２では、モバイルデバイス２００には、ＬＥＤ２４０とオーディオインタフェース２７４の２種類の外部通知機構も示している。起動の際、バッテリ電力を節減するためにプロセッサ２６０と他の構成要素が停止されていても、通知機構によって指示された時間にわたり電源が入った状態を保つように、これらのデバイスは直接電源２７０に結合することができる。ＬＥＤ２４０は、ユーザが動作を行ってデバイスに電源が入っているステータスを示すまで、無期限に電源の入った状態を保つようにプログラムすることができる。オーディオインタフェース２７４は、ユーザに音声信号を提供し、ユーザから音声信号を受け取るために使用される。例えば、オーディオインタフェース２７４は、電話での会話を助けるためなどに、音声出力を提供するスピーカと、音声入力を受け取るマイクロフォンに結合することができる。
【００１６】
モバイルデバイス２００は、無線周波通信を送受信する機能を行う無線機２７２も含む。無線機２７２は、通信事業者あるいはサービスプロバイダを介したモバイルデバイス２００と外界との無線の接続を助ける。無線機２７２との送受信は、オペレーティングシステム２６４の制御下で行われる。すなわち、無線機２７２によって受信される通信は、オペレーティングシステム２６４を介してアプリケーションプログラム２６６に伝搬することができ、その逆も同様である。
【００１７】
無線機２７２は、モバイルデバイス２００がネットワークなどを介して他のコンピューティングデバイスと通信することを可能にする。無線機２７２は、通信媒体の一例である。通信媒体は、通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータにより、搬送波や他のトランスポート機構などの変調データ信号として実施され、任意の情報伝達媒体を含む。用語「変調データ信号」は、その信号中に情報を符号化する方式でその特性の１つまたは複数を設定または変化させた信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。本発明で使用される用語「コンピュータ可読媒体」には、記憶媒体と通信媒体の両方が含まれる。
【００１８】
ユーザインタフェースの動的領域のマスキング
図３は、本発明による例示的なスナップショットを示す。ここに含まれるスナップショットは、基準スナップショットとも称されるマスタスナップショット３１０、一番最近とられたスナップショットを指す新スナップショット３２０、およびマスタスナップショットと新スナップショットとの相違の視覚的表現を提供する差分スナップショット３３０である。
【００１９】
図３のこれらの例示的スナップショットはそれぞれ、グラフィック要素とテキスト要素を含む。他の実施形態においては、スナップショットは、動画などの他の要素も含むことができる。動画も、ユーザインタフェースのスナップショットをとる時に取り込むことができる。図３の例では、マスタスナップショット３１０は、グラフィック要素３１２、３１４、３１８と、テキスト要素３１６を含む。新スナップショット３２０は、グラフィック要素３１２、３１８、３２４と、テキスト要素３１６、３２２を含む。マスタスナップショット３１０と新スナップショット３２０を視覚的に調べると、その相違が容易に分かる。マスタスナップショット３１０と新スナップショット３２０の相違は、差分スナップショット３３０により、ピクセル単位で視覚的に表される。マスタスナップショット３１０と新スナップショット３２０とで異なる各ピクセルは、差分スナップショット３３０に黒いピクセルが描画される。一実施形態においては、マスタスナップショット３１０と新スナップショット３２０に違いがない場合は、「相違なし」のテキストなどの確認メッセージが提供される。
【００２０】
例えば、グラフィック要素３１４はマスタスナップショット３１０には含まれるが、新スナップショット３２０には含まれない。この違いのために、グラフィック要素３１４に対応するピクセルが、差分スナップショット３３０に黒いピクセルとして表される。同様に、テキスト要素３２２とグラフィック要素３２４は、新スナップショット３２０に含まれるが、マスタスナップショット３１０には現れない。この結果、テキスト要素３２２とグラフィック要素３２４に対応するピクセルが、差分スナップショット３３０では黒いピクセルとして描画されて、マスタスナップショット３１０と新スナップショット３２０がそれらの要素について異なることを表す。この差分スナップショット３３０の結果は、マスタスナップショット３１０と新スナップショット３２０との相違の容易に理解できる視覚的描写である。差分スナップショット３３０のピクセルの色は選択可能であり、黒いピクセルは単なる例として言及されていることを理解されたい。
【００２１】
図３の各スナップショットにはマスク３４０も図示されている。マスクは、ユーザインタフェースの一部分を比較から除外するために、選択的に各スナップショットに含めることができる。例えば、ユーザインタフェースに含まれる時計の要素は、時間の経過とともに変化する。その結果、時計の要素は、マスタスナップショット３１０と、その後開発サイクル中に取られる各スナップショットとの相違として示されてしまう。時計の動画に対応するユーザインタフェース部分をマスキングすることにより、各スナップショットの違いの結果、相違があると誤って判定されることを回避する。マスクは、ユーザインタフェースのスナップショット上の座標に対応して選択することができる。マスクは、デフォルトマスクとなるように選択することができ、その場合、開発サイクルを通じたすべてのスナップショットは、スナップショットがとられる際にユーザインタフェースのその部分が自動的にマスキングされる。マスクは、比較される単一のスナップショットグループの１つのスナップショットの一部分をマスキングする個別スナップショットマスクとして選択することもできる。
【００２２】
一実施形態においては、ユーザインタフェースのスナップショットが記録される際には、スナップショット画像のビットマップファイルが、拡張型マークアップ言語（ＸＭＬ）ファイルとともに記録される。ＸＭＬファイルは、そのスナップショットがとられるターゲットデバイスの言語、画面サイズ、ＳＫＵ（すなわちエディション）、および他の特性などの情報を含む。ビットマップファイルとＸＭＬファイルは、下記の図５との関連でより詳細に説明するデータベースに記憶される。
【００２３】
次に示すのは、本発明により生成することができるＸＭＬファイルの例示的な一部分である。
【００２４】
【表１】
2005251173.tif 000003
【００２５】
この例に示すように、ＸＭＬファイルは、ＵＩターゲットデバイスの表示に関連する複数の変数を含む。ＸＭＬファイルのこの情報により、特定のスナップショットをデータベースにおいて、一意に識別することができる。
【００２６】
図４は、本発明による、テストするユーザインタフェースにマスクを適用する例示的機構を示す。機構４００は、特定のスナップショットとそのスナップショットにマスクを追加または削除するオプションを提示するインタフェースを含んでいる。
【００２７】
図４の例では、ヘッダ情報４１０のリストによってスナップショット３１０が識別される。ヘッダ情報４１０は、スナップショットがとられた時に生成されたＸＭＬファイルから提供される、スナップショット３１０に関連するプロパティを提供する。ヘッダ情報４１０には、スナップショット３１０のタイトル、スナップショット３１０がとられたユーザインタフェースデバイスの製品またはタイプ、使用されるプラットフォーム、バージョンＩＤ、画面サイズ、領域識別子、およびｂｉｔｓ  ｐｅｒ  ｐｉｘｅｌ（ＢＰＰ）の指定が含まれる。
【００２８】
図４の例では、スナップショット３１０は、既存のマスク３４０を含む。マスク３４０のピクセル座標は、現在のマスクテーブル４２０に示される。ピクセル座標は、長方形のマスク３４０を定義する２つのＸ軸座標と２つのＹ軸座標を含む。現在のマスクテーブル４２０には、スナップショット３１０からマスクを削除するオプションが含まれる。
【００２９】
また、機構４００には、新規マスク追加テーブル４３０も含まれる。新規マスク追加テーブル４３０で、ユーザは、Ｘ座標とＹ座標のセットを提供することにより、スナップショット３１０に新しいマスクを挿入することができる。スナップショット３１０にはマスクをいくつでも追加できることは理解されよう。
【００３０】
図５に、本発明による、スナップショットを比較するために使用されるデータベースの例示的な機能ブロック図を示す。データベース５００は、スナップショットキーテーブル５１０、スナップショットテーブル５２０、差分テーブル５３０、デフォルトマスクテーブル５４０、およびスナップショットマスクテーブル５５０を含む。
【００３１】
スナップショットキーテーブル５１０は、スナップショットが生成されるのに伴いデータベース５００に記憶されたスナップショットの各グループを識別するスナップショットキーのリストを含む。一実施形態においては、各スナップショットキーは、そのスナップショットがとられた時に生成されたＸＭＬファイルから抽出される情報に従って定義される。したがって、キーは、デバイスのエディション、使用されるプラットフォーム、使用言語、デバイスの色深度、画面サイズ、およびスナップショットに関連する他の一意の特性に関する情報を使用して生成される。一実施形態では、スナップショットキーの言語の識別子は、マスクを生成する際に選択的に無視することができる。マスクは、特定のスナップショットキーに一致するスナップショットに適用される。特定のマスクについてのスナップショットキーから言語の識別子を排除すると、そのマスクが、そのスナップショットのすべての言語バージョンに適用される。
【００３２】
スナップショットテーブル５２０は、とられたスナップショットのファイル名によるリストと、そのスナップショットが、ある開発サイクルの確認された一番新しいスナップショットであることを示すように増分されるカウントとを含む。スナップショットテーブル５２０の個々のスナップショットのファイル名は、スナップショットキーテーブル５１０にリストされたスナップショットキーの少なくとも１つに関連付けられる。新しいスナップショットが生成されると、その新しいスナップショットは、スナップショットテーブル５２０に追加される。あるいは、あるスナップショットがスナップショットテーブル５２０中のスナップショットに対応し、一致する場合は、古い方のスナップショットが、一番新しい確認済みのスナップショットに置き換えられ、カウントが増分される。
【００３３】
差分テーブル５３０は、差分スナップショットを含む。特定のスナップショットキーを有する新しいスナップショットが、同じキーを有する以前のスナップショットと比較される。同じキーを有する新しいスナップショットと以前のスナップショットとの間に相違が存在しない場合は、以前のスナップショットが、確認された最新のスナップショットに置き換えられる。相違が存在する場合は、差分スナップショットが差分テーブル５３０に含められる。
【００３４】
デフォルトマスクテーブル５４０は、デフォルトマスクのリストを含む。デフォルトマスクはそれぞれ、製品と画面サイズで識別される。スナップショットが生成され、スナップショットテーブル５２０にリストされると、デフォルトマスクテーブル５４０を調べて、適用可能なデフォルトマスクがあるかどうかを判定する。デフォルトマスクテーブル５４０中の任意数のデフォルトマスクを、その製品と画面サイズに従って特定のスナップショットに適用できる可能性がある。新しいスナップショットについて、そのスナップショットのスナップショットキーがデフォルトマスクと同じ製品および画面サイズに対応する場合は、そのデフォルトマスクがそのスナップショットに関連付けられる。一実施形態においては、スナップショットのＸＭＬファイル中に変数を設定して、デフォルトマスクが適用されないようにすることができる。デフォルトマスクが、スナップショットテーブル５２０にリストされるスナップショットに対応すると判定されると、そのデフォルトマスクがスナップショットマスクテーブル５５０にロードされる。
【００３５】
スナップショットマスクテーブル５５０は、スナップショットテーブル５２０にリストされたスナップショットに現在適用されているスナップショットマスクを含む。スナップショットマスクテーブル５５０は、デフォルトマスクテーブル５４０にあるデフォルトマスクを含んでよい。また、マスクは、上記の図４に示す機構に従って、特定のスナップショットのために生成されることができる。スナップショットマスクテーブル５５０は、そのようなユーザによって定義されたマスクも含み、したがって、スナップショットマスクテーブル５５０は、スナップショットテーブル５２０にリストされたスナップショットに適用されるデフォルトのマスクとユーザ定義のマスクを含む。
【００３６】
一実施形態においては、データベース５００がサーバに格納される。データベース５００の内容は、ターゲットユーザインタフェースデバイスからサーバにアップロードされる。生成されたデータを分析するウェブアプリケーションが提供される。ターゲットユーザインタフェースデバイスとのデータベースおよびサーバの相互動作性については、「Method and System for Automatically Determining Differences in a User Interface Throughout a Development Cycle」という名称の関連出願に記載される。同出願は、参照により本明細書に組み込まれる。
【００３７】
別の実施形態においては、スナップショットテーブル５２０に記憶された各スナップショットについて、スナップショットの値が計算される。スナップショットの値とは、その巡回冗長検査（ＣＲＣ）の値を指し、スナップショットのビットマップから生成される。計算されたＣＲＣ値から「高速チェック」の機構が得られ、この機構により、各自のＣＲＣ値でスナップショットを迅速に比較することができる。特定のスナップショットに新しいマスクが追加されると、ＣＲＣ値が再計算される。ＣＲＣ値を再計算することにより、ユーザによって定義されたマスクを有するスナップショットを「高速チェック」で比較し、再計算しなければ相違があると判定されることを確認することが可能になる。
【００３８】
さらなる実施形態においては、デフォルトマスクのスナップショットキーに対応するスナップショットに直接そのデフォルトマスクを適用することができる。このオプションは、対応するスナップショットがスナップショットテーブル５２０にある場合に、デフォルトマスクテーブル５４０のデフォルトマスクをスナップショットマスクテーブル５５０にロードする代わりに提供することができる。しかし、デフォルトマスクテーブル５４０のデフォルトマスクをスナップショットマスクテーブル５５０にロードすることにより、ユーザは、後に特定のスナップショットのためのデフォルトマスクを削除するオプションが得られる。
【００３９】
さらなる実施形態においては、本発明は、比較のセットから得られた複数の差分スナップショットにマスクを追加できる機構を提供する。例えば、前もって対処されなかった画面上の動画要素が原因で、差分スナップショットのセットが生成される場合がある。そのような場合、その動画の座標に対応する差分スナップショットにマスクを追加する「一括」マスク追加操作を選択することができる。「一括」マスク追加操作により、試験者は、動画によって生じたピクセルの相違を除去し、エラーおよび他の要素によって生じた相違に専念することができる。
【００４０】
図６は、本発明による、テストするユーザインタフェースにマスクを適用する際の論理的流れ図を示す。プロセス６００はブロック６０２で開始し、ここで、スナップショットのマスクを提供する機能を含む、スナップショット比較のアプリケーションが実施される。処理はブロック６０４に進む。
【００４１】
判定ブロック６０４で、スナップショットに適用するためにデフォルトマスクが選択されるかどうかが判定される。スナップショットにデフォルトマスクが適用されない場合、処理は判定ブロック６０８に進む。逆に、スナップショットに適用するためにデフォルトマスクが選択される場合、処理はブロック６０６に移る。
【００４２】
ブロック６０６で、デフォルトマスクが、対応するスナップショットまたはスナップショットのグループに追加される。一実施形態においては、自動的にデフォルトマスクが選択されてそのデフォルトマスクに関連するスナップショットのセットの各スナップショットに追加される。製品と画面サイズがデフォルトマスクに一致する新しいスナップショットがデータベースに入ると、その新しいスナップショットにデフォルトマスクが適用される。デフォルトマスクは、スナップショットマスクテーブルにコピーされ、データベースに入る新しいスナップショットはそれぞれ、マスクの比較が行われる前にそのデフォルトマスクを反映するように更新される。別の実施形態においては、スナップショットの比較が行われた後に、一連のスナップショットにデフォルトマスクを適用することができる。例えば、ユーザが、スナップショット間の比較の結果に基づいて、関連するスナップショットのグループにデフォルトマスクを追加することを選択する場合がある。この例では、デフォルトスナップショットテーブルは、新しいデフォルトスナップショットを反映するように更新される。したがって、すでにデータベースに記憶されているスナップショットにデフォルトマスクが適用され、それらのスナップショットは再度比較される。デフォルトマスクは、同じ製品と画面サイズを共有する、これから入ってくるスナップショットに適用されるようにも設定される。本発明の主旨および範囲から逸脱せずに、すでに存在するスナップショットにデフォルトマスクを適用するかどうかの選択をオプションとしてユーザに提供できることは理解されよう。処理は、判定ブロック６０８に進む。
【００４３】
判定ブロック６０８で、ユーザによって定義されたマスクが、スナップショットに適用するために選択されるかどうかの判定が行われる。ユーザによって定義されたマスクがスナップショットに適用されない場合、処理は判定ブロック６１２に進む。逆に、ユーザによって定義されたマスクが、スナップショットに適用するために選択される場合は、処理は、ブロック６１０に移る。
【００４４】
ブロック６１０で、ユーザによって定義されたマスクが、対応するスナップショットまたはスナップショットのグループに追加される。一実施形態においては、ユーザによって定義されたマスクは、スナップショットの比較が行われた後に一連のスナップショットに適用される。例えば、ユーザが、スナップショットの比較の結果に基づいて、それら関連するスナップショットのグループにユーザ定義マスクを追加することを選択することができる。図４に示す機構と同様の機構を使用して、新しいユーザ定義マスクを入力することができる。その新しいユーザ定義マスクを含むようにスナップショットマスクテーブルが更新され、そして、そのスナップショットまたは選択されたスナップショットのグループにマスクが適用される。したがって、ユーザによって定義されたマスクの座標中で生じる、ピクセルの相違が原因で生成された複数の差分スナップショットが除去される。処理は、判定ブロック６１２に進む。
【００４５】
判定ブロック６１２で、スナップショットマスクテーブルにリストされるすべてのマスクが、それぞれの関連するスナップショットに適用されたかどうかが判定される。リストされるすべてのマスクが各自の関連するスナップショットに適用されていない場合、処理は、判定ブロック６０４に戻り、処理が継続される。一方、すべてのマスクが関連するスナップショットに適用されている場合は、処理はブロック６１４に進み、プロセスが終了する。
【００４６】
プロセス６００によれば、本発明は、ユーザインタフェースの相違を判定する際に、ユーザインタフェースの動的な部分をマスキングして、誤って相違があると判定されないようにする方法およびシステムを提供する。
【００４７】
上記の詳細な説明、例、およびデータは、本発明の構成の製造と使用の完全な説明を提供する。その主旨および範囲から逸脱することなく本発明の多数の実施形態を作製することができるため、本発明は、頭記の特許請求の範囲に存する。
【図面の簡単な説明】
【００４８】
【図１】本発明の一例示的実施で使用することが可能な例示的コンピューティングデバイスの図である。
【図２】本発明の一例示的実施で使用することが可能な例示的モバイルデバイスの図である。
【図３】本発明による例示的スナップショットの図である。
【図４】本発明による、テストするユーザインタフェースにマスクを適用する例示的機構の図である。
【図５】本発明による、スナップショットを比較するために使用されるデータベースの例示的機能ブロック図である。
【図６】本発明による、テストするユーザインタフェースにマスクを適用する際の論理的流れ図である。
【符号の説明】
【００４９】
１００    コンピューティングデバイス
２００    モバイルデバイス
３１２、３１４、３１８、３２４  グラフィック要素
３１６、３２２    テキスト要素
３４０    マスク
４１０    ヘッダ情報
４２０    マスクテーブル
４３０    新規マスク追加テーブル
【図１】
2005251173.tif 000004
【図２】
2005251173.tif 000005
【図３】
2005251173.tif 000006
【図４】
2005251173.tif 000007
【図５】
2005251173.tif 000008
【図６】
2005251173.tif 000009
【外国語明細書】
2005251173000001.pdf