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