説明

ツリ−構造を利用した、ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのプログラム

【課題】スクリプトやマクロを使うことなく自動化操作を構築出来、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生出来、なおかつ構築した手順を加工して二次利用し易い、グラフィカル・ユ−ザ・インタフェイス用ツ−ルを提供する。
【解決手段】コンソ−ルプログラム1では、使用者が自動化対象プログラム4に対して行おうとする様々なアクションを、ユ−ザ・インタフェイス情報記録デ−タベ−ス2に記録する。ユ−ザ・インタフェイス制御プログラム3はユ−ザ・インタフェイス情報記録デ−タベ−ス2からその情報を読み込んで実際に自動化対象プログラム4に対してアクションを実行する。また、ユ−ザ・インタフェイス制御プログラム3は自動化対象プログラム4の持つUI要素の情報を取得し、ユ−ザ・インタフェイス情報記録デ−タベ−ス2に記録する。コンソ−ルプログラム1では、その情報を読み込んでツリ−ビュ−形式で表示する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、様々なユ−ザ・インタフェイスを持つアプリケ−ションにおける、ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのプログラムに関する。
【背景技術】
【0002】
I.グラフィカル・ユ−ザ・インタフェイス
多くの現代のコンピュ−タ・システムでは、ユ−ザは、グラフィカル・ユ−ザ・インタフェイス(「GUI」)を介してソフトウェア・プログラムと対話している。基本的に、GUIは、コンピュ−タとユ−ザの間のインタ−フェ−スであり、ユ−ザ入力を求め、プログラムの出力を提示するために、単に言葉だけでなく画像を用いる。典型的なGUIは、ユ−ザ・インタフェイス要素(「UI要素」)から構成され、これは、ユ−ザに見える、聞こえる、あるいは、ユ−ザが知覚または対話する、コンピュ−タ・システムまたはプログラムの外観である。例えば、UI要素には、アイコン、ボタン、ダイアログ・ボックス、編集ボックス、リスト・ボックス、コンボ・ボックス、スクロ−ル・バ−、ピック・リスト、プッシュ・ボタン、ラジオ・ボタン、および、ワ−ルド・ワイド・ウェブのペ−ジの様々なコンポ−ネント(例えばハイパ−リンクや画像)などのアイテムが含まれる。典型的なコンピュ−タ・プログラムでは、誇張なしに、数千ものUI要素に遭遇するのは通常のことである。
【0003】
GUIの個々の要素は、ユ−ザに単一のアイテムに見えることがあるが、実際は、いくつかの別々のアイテムから構成されていたり、または下位要素が一緒に組み合わされていたりすることがある。例えば、ツ−ル・バ−・アイテムは、リスト要素、コンボ・ボックス要素、およびスクロ−ル・バ−要素などから構成される。さらに、これらの各下位要素それ自体が、他の下位要素から構成されることもある。このように、UI要素は、より複雑な他のUI要素を構築するための構築ブロックの役割をすることができる。このような手法は、ユ−ザ・インタフェイス(「UI」)を管理するソフトウェアが、一定の共通要素の定義を、それらを複合要素に組み立てるときに再利用することができるので便利である。
【0004】
GUI環境における多くのUI要素は、プログラムの機能を表し、コンピュ−タ・スクリ−ン上に表示され、したがって、ユ−ザは、それらを選択し、強調表示し、それにアクセスし、操作を行うことによって、プログラムと対話することができる。このユ−ザの対話は、画面上の(通常マウスまたはキ−ボ−ドによって制御される)ポインタを操作し、ポインタがUI要素を指しているときに、ボタンを押すかまたはクリックすることによって行われる。例えば、ワ−ド・プロセッサでは、ユ−ザは、マウスを操作することにより、プログラムのメニュ−・バ−上の項目を選択すること、ツ−ル・バ−にあるアイコンをクリックすること、または、表示ウィンドウ内の文字のブロックを強調表示することができる。同様に、ユ−ザは、コンピュ−タ・アプリケ−ションと対話するためにキ−ボ−ドによる入力を用いることができる。例えば、ワ−ド・プロセッサ・プログラムでは、ユ−ザは、「ALT−F」、「CTRL−B」、または他の予め定義されたキ−・ストロ−クの組合せを押すことによって、プログラムの諸機能にアクセスすることができる。マウスまたはキ−ボ−ドからの入力に基づいて、コンピュ−タは、画面上に表示されるものに対して追加、変更、および操作を行うことができる。GUI技術は、ユ−ザがコンピュ−タ・システムと対話するための便利でユ−ザ・フレンドリな環境を提供する。
【0005】
II.マクロ・ビルダおよびUIレコ−ダ
GUI環境においてユ−ザのコンピュ−タとの対話を記録および再生する能力は、事業体(または他の大規模な組織)、ユ−ザ、ソフトウェア開発者、テスト担当者、およびコンピュ−タ・サポ−ト担当者を含めた多数の当事者に利益をもたらす可能性がある。例えば、事業組織は、サプライ・チェ−ン・マネジメント用のソフトウェアを使用するなどして、ビジネスのプロセスの多くを自動化することによって、そのプロセスを合理化することができる。一連の入力されるアクションを、単一のステップで引き起こされる再生アクションに一体化するマクロまたはスクリプトを作成することによってユ−ザは利益を得る。ソフトウェア開発者は、開発中のソフトウェアのテスト・ケ−スを生成するのを支援する、ユ−ザのアクションを記録する能力を使用することができる。テスタは、自動回帰テストを実施するための試験を構築するために、記録および再生ツ−ルを使用することができる。コンピュ−タ・サポ−ト担当者は、コンピュ−タのクラッシュまたはハングの原因を発見するために、あるいはソフトウェアの使用の仕方をユ−ザが理解するのを援助するために、ユ−ザのアクションを記録することができる。
【0006】
A.市販のマクロ・ビルダ
多くの従来のマクロ・ビルダ・プログラムは、ある機能を実行するコンピュ−タまたはアプリケ−ションによって受け取られた内部コマンドおよびアクションを表すスクリプトを生成する。しかし、多くの事例では、ユ−ザは、1組のスクリプト・コマンドおよび複雑なプログラミング構成に基づいて、独力でスクリプトを開発しなければならない。したがって、ユ−ザは、プログラミング論理を理解し、ある程度、制御されるプログラムの内在する論理を理解して、マクロを作成し使用する必要がある。例えば、マクロ・プログラムの自動化は、ドラッグ・アンド・ドロップ・タスク・ビルダを使用して、具体的なステップを、それらが実行されるべき順序でドラッグ・アンド・ドロップすることによって、マクロ・スクリプトを作成するが、このことは、自動化のユ−ザが、どの順番でどのようにコマンドが発行されるべきかを理解する必要があることを意味する。マクロスケジュ−ラ−は、ユ−ザが、(実際に宣言された変数、および他のユ−ザ定義された構造体を含まずに)200余りのスクリプト・コマンドおよびプログラム構成を用いてマクロ・スクリプトを書くことを可能にするマクロ作成プログラムである。このようなマクロ・プログラムで生成されるスクリプトを作成し編集することに必要とされる複雑さ、ならびに、このようなマクロ・ビルダによって生成されるスクリプトが、UIアクティビティの実際のステップを追った分かり易い記録を表していない事実は、特に、初心者のユ−ザ、ならびに問題を解決しようとするコンピュ−タ・サポ−ト担当者およびソフトウェア開発者にとって、これらのマクロ・プログラムの実用性を低いものにする。
【0007】
B.内部マクロ言語
市販のマクロ作成ソフトウェアに対する代替として、多くのアプリケ−ションは、それら自体の専用のアプリケ−ション制御言語(「マクロ言語」)を使用してマクロを記録し再生するための組み込まれた能力を有している。アプリケ−ションのマクロ言語は、通常は、そのアプリケ−ションに固有のもので、一般に、アプリケ−ションの内部のオブジェクトモデル(「IOM」)に基づいている。オブジェクト指向の手法なしにマクロ言語を構築することが可能であるが、ほとんどの内部モデルは、プログラムの構造にオブジェクト指向表現を用いている。IOMは、プログラムに内在するオブジェクトの、クラス、属性、オペレ−ション、パラメ−タ、リレ−ションシップ、および関連付けについてのアクセス可能なアウトラインまたはモデルを提供する。マクロ言語は、そのアプリケ−ションのIOMにアクセスし、その通信メカニズム(イベント呼出しなど)をフックして、アプリケ−ション内の機能にアクセスしそれを呼び出す。例えば、MicrosoftWordのユ−ザは、文章を自動的にフォ−マットするためにマクロを記録することができる。しかしながら、ほとんどのマクロ言語の主な欠点は、それらがアプリケ−ション特有のものであることである。あるアプリケ−ションによって記録されたマクロは、通常、特に2つのアプリケ−ションが競合するソフトウェア会社によって開発された場合、他のアプリケ−ションによってサポ−トされない。いくつかのケ−スでは、アプリケ−ションのあるバ−ジョンで記録されたマクロは、そのアプリケ−ションのその後のバ−ジョンでサポ−トされない。
【0008】
C.マクロへの依存
マクロを開発することは難しいことがあり、多くのユ−ザおよび事業体は、既存のマクロを、ブレ−ク(失敗)させる可能性がある何かをすることに躊躇する。特に事業体は、そのビジネス・プロセスに悪影響を及ぼす可能性があることはどのようなものでも躊躇する。実際、多くのユ−ザおよび事業体は、何かを「壊す」ことを恐れて、ソフトウェアのアップグレ−ドやまたパッチのインスト−ルさえも躊躇する。例えば、事業体が、(例えばマクロの形態で)自動化したビジネス・プロセスを採用しており、このプロセスでは、受け取ったファックスをスキャンし、これに光学式文字認識(「OCR」)を自動的に行って、そのテキスト・ファイル版を作成し、このテキスト・ファイルのデ−タとスプレッドシ−ト上の入力コンテンツとを比較して会計情報を確認し、最後にファックスの差出人に確認の電子メ−ルを送る、ことを想定する。このようなビジネス・プロセスは、たいていは、適切に機能させるために、潜在的に複雑なマクロと、様々なソフトウェア・パッケ−ジ(例えば、スキャナ・プログラム、OCRプログラム、表計算プログラム、テキスト・ファイル・プログラムなど)を組み合わせたセットを使用する。事業体およびユ−ザは、その自動化プロセスに現在投資しているものが損なわれずにそのままであることが保証されない限り、マクロまたはソフトウェアのアップグレ−ドに関してしばしば危惧の念を抱く。
【0009】
特許文献1は、様々な記録および再生ツ−ルを記載しており、これらのツ−ルのいくつかは、UIAフレ−ムワ−クを使用して、UI要素の識別値(「UID」)に基づいて入力を記録する。UIAは、GUI内のUI要素を一意に識別する複合IDを生成する。
特許文献2は、内部マクロ・デ−タを不透明ト−クンとして受け取る方法で自動化を行おうとしている。
非特許文献1は、UIの種類とUIの名前でUIを識別し、自動化を行おうとしている。
いずれにおいても、デ−タを表現するために複雑なスクリプト・コマンドまたはプログラミング構成を使用するという点で、上述のマクロツ−ルと同様の欠点を有し、手順を加工して二次利用する方法が容易ではない。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】2004年6月15日出願の名称「Recording/PlaybackToolsforUI−basedApplications」の米国特許出願
【特許文献2】特開2006−18827号公報
【非特許文献】
【0011】
【非特許文献1】UWSC http://www.uwsc.info
【発明の概要】
【発明が解決しようとする課題】
【0012】
グラフィカル・ユ−ザ・インタフェイス環境においてユ−ザのコンピュ−タとの対話を記録および再生する能力は、事業体(または他の大規模な組織)、ユ−ザ、ソフトウェア開発者、テスト担当者、およびコンピュ−タ・サポ−ト担当者を含めた多数の当事者に利益をもたらす可能性がある。しかし、記録再生ツ−ルによる業務やテストの自動化は、未だに一般的に普及しているとは言い難い。原因として、既存の技術による記録再生ツ−ルに
「スクリプトやマクロを使わずに自動化操作を構築すること」
「使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生すること」
「構築した手順を加工して二次利用し易いこと」
の三点を同時に満たす物が存在していないことが挙げられる。この中のどれか一つが欠けるだけでも、利用者にとって記録再生ツ−ルによる業務やテストの自動化は、敷居が高く、工数を多く費やし、また失敗のリスクが高いものとなってしまう。なお、「使用者の意図した自動化操作を、ユ−ザ・インタフェイスを介して確実に再生すること」とは具体的には、内部APIを直接呼び出すような通常使用と異なる経路を通らないことや、再生時にマウスの動きを利用した不確実な操作を使用せずユ−ザ・インタフェイス要素を直接操作することを意味する。
また、グラフィカル・ユ−ザ・インタフェイスが正しく表示されているかどうかをテストする場合において、ユ−ザ・インタフェイスの構成要素および画面画像の情報を取得すること自体が大きな助けとなる。
本発明は、使用者が、スクリプトやマクロを使うことなく自動化操作を構築出来、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生出来、なおかつ構築した手順を加工して二次利用し易い、グラフィカル・ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのツ−ルを提供することを課題とするものである。
【課題を解決するための手段】
【0013】
上記目的を達成する為に、請求項1の発明であるコンソ−ルプログラムは、自動化対象プログラム(自動化対象プログラムとは、要するに本発明によって操作されるプログラムであればいかなるものでもよい。)が持つユ−ザ・インタフェイス(「UI」)の構成要素の情報(ここでユ−ザ・インタフェイスの構成要素とは、要するにユ−ザ・インタフェイス上に配置されているパ−ツであればいかなるものでもよい。ユ−ザ・インタフェイスの構成要素の情報を具体的に言えば、例えば、ユ−ザ・インタフェイスの種類、そのアイテムが持つ名前、アイテムに対してふられた通し番号、等。)を、ユ−ザ・インタ−フェイス情報記録デ−タベ−ス(ユ−ザ・インタ−フェイス情報記録デ−タベ−スとは、要するに本発明によって操作されるデ−タベ−スであればいかなるものでもよい。)から取り出し、ツリ−ビュ−形式で表示する機能と、
任意のツリ−ビュ−ノ−ドに対して操作を行った場合、ユ−ザ・インタ−フェイス操作命令(ユ−ザ・インタ−フェイス操作命令とは、要するに本発明によってデ−タベ−スレコ−ドに記録される任意の値)を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの、前記任意のツリ−ビュ−ノ−ドに対応するレコ−ドに記録する機能
を持つことを特徴とする。
【0014】
請求項2の発明であるコンソ−ルプログラムは、請求項1の発明に加え、前記ツリ−ビュ−が、ツリ−の一部をコピ−してそれを別のツリ−ノ−ドの下に張り付けることによって、新たな階層を持つツリ−を生成することが出来る機能
を持つことを特徴とする。
【0015】
請求項3の発明であるコンソ−ルプログラムは、請求項1または2の発明に加え、前記ツリ−ビュ−の任意のノ−ドを選択した際に、そのノ−ドに対応する自動化対象プログラムのユ−ザ・インタフェイスの構成要素の情報および画面画像を表示する機能
を持つことを特徴とする。
【0016】
請求項4の発明であるユ−ザ・インタフェイス制御プログラムは、ユ−ザ・インタ−フェイス情報記録デ−タベ−スに記録されたユ−ザ・インタ−フェイス操作命令を読み取り、その情報に基づき自動化対象プログラムを起動、およびその自動化対象プログラムが持つユ−ザ・インタフェイスを操作する機能と、
自動化対象プログラムが表示している画面が持つユ−ザ・インタフェイスの構成要素および画面画像の情報を取得し、それをユ−ザ・インタ−フェイス情報記録デ−タベ−スに格納する機能と、
自動化対象プログラムを終了する機能
を持つことを特徴とする。
【0017】
請求項5の発明であるユ−ザ・インタフェイス制御プログラムは、請求項4の発明に加え、「ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドにユ−ザ・インタ−フェイス操作命令の記録されていない親レコ−ドがある場合、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する」という条件で、全てのレコ−ドを更新し、その後、最上位のレコ−ドから順に下位に向かってユ−ザ・インタ−フェイス操作命令が記録されたレコ−ドを読み取り、その各レコ−ドの情報に応じた操作を順番に自動化対象プログラムに対して行う機能
を持つことを特徴とする。
【発明の効果】
【0018】
本発明によれば、ユ−ザ・インタ−フェイス情報記録デ−タベ−スを介した、ツリ−ビュ−を持つコンソ−ルプログラムの操作とユ−ザ・インタフェイス制御プログラムの連携により、スクリプトやマクロを作成することなく段階的に自動化操作を構築することが可能となる。
また、ユ−ザ・インタフェイス制御プログラムが、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの情報に従って、自動化対象プログラムのユ−ザ・インタフェイスに対してユ−ザ・インタフェイス要素を対象として再生操作を行うことで、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生することが可能となる。これにより、ユ−ザ・インタフェイスを持つ全てのアプリケ−ションの操作を自動化することが可能となる。
また、コンソ−ルプログラムのツリ−ビュ−で、ツリ−の一部をコピ−してそれを別のツリ−ノ−ドの下に張り付けることによって新たな階層を持つツリ−を生成することが出来ることと、ツリ−ビュ−の任意のノ−ドを選択した際に、そのノ−ドに対応する自動化対象プログラムのユ−ザ・インタフェイスの構成要素の情報および画面画像を表示することにより、構築した手順を加工して二次利用し易くなり、手順の構築自体も簡略化される。
これらの結果、長年自動化普及の障害となっていた要因が取り除かれることとなる。
【図面の簡単な説明】
【0019】
【図1】本発明を適用したコンソ−ルプログラムと、このコンソ−ルプログラムにより出された命令を実行するユ−ザ・インタフェイス制御プログラムの機能的な構成を示すブロック図である。
【図2】コンソ−ルプログラムと、ユ−ザ・インタフェイス制御プログラムの連携動作の流れを示すフロ−チャ−トである。(初期処理)
【図3】コンソ−ルプログラムと、ユ−ザ・インタフェイス制御プログラムの連携動作の流れを示すフロ−チャ−トである。
【図4】図3におけるステップ120の流れを示すフロ−チャ−トである。
【図5】コンソ−ルプログラムの画面の例である。
【図6】ユ−ザ・インタフェイス情報記録デ−タベ−スのテ−ブル構造の例である。ャ−トである。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【実施例1】
【0021】
図1は、本発明を適用したコンソ−ルプログラムと、このコンソ−ルプログラムにより出された命令を実行するユ−ザ・インタフェイス制御プログラムの機能的な構成を示すブロック図である。
【0022】
コンソ−ルプログラム1は、ツリ−ビュ−およびUI情報UI画像表示部5と、ユ−ザ操作部6と、レコ−ド作成部7と、レコ−ド読み取り部8を制御する。
【0023】
ツリ−ビュ−およびUI情報UI画像表示部5は、自動化対象アプリケ−ションの持つユ−ザ・インタフェイス要素および画像を表示する機能を持つ。
【0024】
ユ−ザ操作部6およびレコ−ド作成部7は、使用者が自動化対象アプリケ−ションに対して行おうとするアクションを拾い上げ、デ−タベ−スに記録する機能を有する。例えば、「Yes」という文字を持つ「ボタン」を意味するツリ−ノ−ドのチェックボックスの状態を変更すれば、「Yes」という文字を持つ「ボタン」を意味するデ−タベ−スレコ−ドに、UI操作命令(具体的には、実行を意味する値)を記録する。
【0025】
レコ−ド読み取り部8は、ユ−ザ・インタフェイス制御プログラム3が生成したレコ−ドを読み取り、ツリ−ビュ−およびUI情報UI画像表示部5で表示するための変換を行う。
【0026】
ユ−ザ・インタフェイス情報記録デ−タベ−ス2は自動化対象アプリケ−ションのUI要素情報とその階層情報を記録するために、そのテ−ブル構造にレコ−ドの親子関係を示す項目(親にあたるテ−ブルのIDを格納する項目)を持つ。図5はユ−ザ・インタフェイス情報記録デ−タベ−ス2のテ−ブル構造の例である。
【0027】
ユ−ザ・インタフェイス制御プログラム3は、レコ−ド読み取り部9と、UI操作実行部10と、レコ−ド作成部11と、UI要素読み取り部12を制御する。
【0028】
レコ−ド読み取り部9は、コンソ−ルプログラム1が生成したレコ−ドを読み取り、UI操作実行部10が、様々なグラフィカル・ユ−ザ・インタフェイスを持つ任意のプログラム4に対して行う操作に変換する。
【0029】
UI操作実行部10は、様々なグラフィカル・ユ−ザ・インタフェイスを持つ任意のプログラム4に対して、ユ−ザ・インタフェイス情報記録デ−タベ−ス2から読み込んだ情報に基き、実際に再生操作を行う。ここでいう再生操作とは、ユ−ザ・インタフェイスの要素に対する直接操作を意味し、マウスによるクリック等の間接的操作ではない。例えば、「ボタンを押す」「チェックボックスのON/OFF」「テキストボックスに文字を挿入する」「メニュ−を選択する」を、UI操作実行部10が直接グラフィカル・ユ−ザ・インタ−フェイスの要素に対して行う。
【0030】
UI要素読み取り部12およびレコ−ド作成部11は、様々なグラフィカル・ユ−ザ・インタフェイスを持つ任意のプログラム4の持つユ−ザ・インタフェイス要素を全て拾い上げ、それらの情報をデ−タベ−スに記録する。
【0031】
次に、本発明を適用したコンソ−ルプログラムと、このコンソ−ルプログラムにより出された命令を実行するユ−ザ・インタフェイス制御プログラムの動作について説明する。図2および図3は、コンソ−ルプログラムと、ユ−ザ・インタフェイス制御プログラムの動作の流れを示すフロ−チャ−トである。
【0032】
最初にコンソ−ルプログラムを起動し、コンソ−ル処理を開始する(101)、その後、使用者が自動化対象アプリケ−ションパス(コンピュ−タ上のアプリケ−ションの場所)をコンソ−ルに入力(102)すると、コンソ−ルプログラムは、その情報をデ−タベ−スに記録する(103)。コンソ−ル処理はここで一旦終了となる(104)。
【0033】
次に、ユ−ザ・インタフェイス制御プログラム側で、ユ−ザ・インタフェイス制御プログラム処理が開始される。(105)(ユ−ザ・インタフェイス制御プログラムは、コンソ−ルから直接起動しても良いし、デ−タベ−スに更新があった時のみ起動する方法でも良い)その後、ユ−ザ・インタフェイス制御プログラムは、デ−タベ−スからアプリケ−ションパスを読み取り(106)、その情報に基き、自動化対象アプリケ−ションを起動する(107)。起動した自動化対象アプリケ−ションがユ−ザ・インタフェイスのある画面を表示したら、ユ−ザ・インタフェイス制御プログラムは、その自動化対象アプリケ−ションのUI要素情報と画面画像を取得する(108)。そして、ユ−ザ・インタフェイス制御プログラムは、それらのUI要素情報と画面画像をデ−タベ−スにに記録する(109)。ユ−ザ・インタフェイス制御プログラム処理はここで一旦終了となる。(110)
【0034】
次に、再びコンソ−ル側の処理となる(111)。コンソ−ルプログラムは、デ−タベ−スからUI要素情報と画面画像を読み取り(112)、ツリ−ビュ−301にUI要素情報を表示する(113)。尚、コンソ−ルは、ツリ−ビュ−の任意のノ−ドが選択されたときそのノ−ドに対応したUI情報の表示303・304を行う機能を持つ。
その後、使用者が、操作しようと思う自動化対象アプリケ−ションのUIアイテムを指定する(114)。コンソ−ルプログラムは、使用者が任意のツリ−ビュ−ノ−ドに対して実行を意味する操作を行った場合、ユ−ザ・インタ−フェイス操作命令を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの前記任意のツリ−ビュ−ノ−ドに対応するレコ−ドに記録する(115)。例えば、「Yes」という名前を持つ「ボタン」を意味するツリ−ビュ−ノ−ドのチェックボックスを外すと、デ−タベ−スの「Yes」という名前を持つ「ボタン」を意味するレコ−ドにユ−ザ・インタ−フェイス操作命令が記録される。(これは「Yesボタンをクリックする」という命令が記録されたのと同等である。)コンソ−ル処理はここで−旦終了となる(116)。
【0035】
次に、ユ−ザ・インタフェイス制御プログラム側で、再びユ−ザ・インタフェイス制御プログラム処理が開始される。(117)(ユ−ザ・インタフェイス制御プログラムは、コンソ−ルから直接起動しても良いし、デ−タベ−スに更新があった時のみ起動する方法でも良い)その後、ユ−ザ・インタフェイス制御プログラムは、デ−タベ−スから、ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドを読み取る(118)。次に、ユ−ザ・インタフェイス制御プログラムは、ステップ107と同様に自動化対象アプリケ−ションを起動し(119)、自動化対象アプリケ−ションのUIを、ステップ118で読み取ったレコ−ドに基き操作する(120)。その後、ユ−ザ・インタフェイス制御プログラムは、ステップ120の操作終了後の自動化対象アプリケ−ションのUI要素情報と画面画像を取得し(121)、デ−タベ−スにそれらのUI要素情報と画面画像を記録する(122)。ユ−ザ・インタフェイス制御プログラム処理はここで一旦終了となる。(123)この時点で、ユ−ザ・インタフェイス制御プログラム処理は自動化対象プログラムを強制的に終了させても良い。
【0036】
フロ−チャ−トに示すように、ステップ123終了後は、ステップ111に戻り、ステップ111からステップ123までを繰り返す。
【0037】
次に、ステップ120の詳細処理に関して説明する。図4は、図3ステップ120の処理の流れを示すフロ−チャ−トである。
【0038】
ステップ120の処理開始後(201)、UI操作命令の記録されたレコ−ドを抽出する(202)。次に、「UI操作命令の記録されたレコ−ドにUI操作命令の記録されていない親レコ−ドがあれば、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する。」という条件で、全てのレコ−ドを更新する(203−204)。
ステップ203で、処理するレコ−ドが無くなったら、デ−タベ−スからUI操作命令の記録されているレコ−ドをIDの昇順ソ−トで抽出する(205)。次に、抽出した最初のレコ−ドからIDの小さい順に最後のレコ−ドまで、1レコ−ドずつ対応する自動化対象アプリケ−ションのUIを操作する(206−208)。
ステップ207で、処理するレコ−ドが無くなったら、全てのレコ−ドのUI操作命令を消し、実行完了状態にする(209)ことでステップ120の処理を終了する(210)。
【0039】
図5は、コンソ−ルプログラム1の画面図である。
【0040】
コンソ−ルプログラム1は、UI要素301、実行ボタン302、UI画像303、UI情報304の画面を持つ。
【0041】
UI要素301はツリ−ビュ−で表示され、任意のノ−ドをコピ−して、任意のノ−ドの下に張り付けることが可能である。
【0042】
UI要素301のツリ−ビュ−を操作後に実行ボタン302を押すことで、ツリ−ビュ−に加えられた操作をユ−ザ・インタ−フェイス情報記録デ−タベ−ス2に記録することが出来る。
【0043】
UI要素301のツリ−ビュ−の任意のノ−ドを選択すると、それに対応したUI画面がUI画像303に、UI情報がUI情報304に表示される。
【0044】
本明細書に記載の技術は、例えばプログラム・モジュ−ルに含まれ、タ−ゲットとする現実または仮想のプロセッサ上のコンピュ−ティング環境で実行される、コンピュ−タ実行可能命令の一般的なコンテキストにおいて記述することができる。一般に、プログラム・モジュ−ルには、特定のタスクを実行し、または特定の抽象デ−タ型を実装する、ル−チン、プログラム、ライブラリ、オブジェクト、クラス、コンポ−ネント、および、デ−タ構造などが含まれる。様々な実施形態において、プログラム・モジュ−ルの機能を、必要に応じて、プログラム・モジュ−ル間で組み合わせたり、分割したりすることが可能である。プログラム・モジュ−ルのコンピュ−タ実行可能命令は、ロ−カルまたは分散コンピュ−ティング環境において実行することができる。
【0045】
提示の目的で、本明細書の詳細な説明では、コンピュ−ティング環境におけるコンピュ−タの動作を記述するために、「決定する」、「生成する」、「調整する」、および「適用する」などのような用語を使用している。これらの用語は、コンピュ−タによって行われる動作について高度に抽象化した概念であり、人間によって行われる行為と混同されるべきではない。このような用語に対応する実際のコンピュ−タの動作は、実装形態に応じて異なっている。
【0046】
本発明の原理が適用され得る多数の可能な実施形態に鑑みて、添付の特許請求の範囲およびその均等物の範囲および趣旨に含むことができるすべての実施形態を本発明として主張する。
【0047】
「実施形態の効果」
この実施形態によれば、ユ−ザ・インタフェイス制御プログラム3と連携する形で、コンソ−ルプログラム1からツリ−ビュ−の操作のみを通じて、使用者のアクションをユ−ザ・インタ−フェイス情報記録デ−タベ−ス2に記録することが出来る。従って、スクリプトやマクロを作成することなく自動化操作を構築することが可能となる。
加えて、ユ−ザ・インタフェイス制御プログラム3は、ユ−ザ・インタ−フェイス情報記録デ−タベ−ス2の情報を読み取る機能(レコ−ド読み取り部9)と、ユ−ザ・インタフェイスを外側から操作する仕組み(UI操作実行部10)を備えている。従って、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生することが可能となる。
コンソ−ルプログラム1のUI要素301はツリ−ビュ−で表示され、任意のノ−ドをコピ−して、任意のノ−ドの下に張り付けることが可能である。従って、構築した手順を加工して二次利用し易くなる。
【0048】
「他の実施形態」
ステップ120の詳細処理では、「ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドにユ−ザ・インタ−フェイス操作命令の記録されていない親レコ−ドがある場合、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する」という条件で、全てのレコ−ドを更新する(203−204)処理が入っているが、他の実施形態では、この処理を、操作したい自動化対象アプリケ−ションのUIアイテムに対応するデ−タベ−スレコ−ドに、ユ−ザ・インタ−フェイス操作命令を記録する(115)処理で同時に行っても良い。また、親レコ−ドに実際にユ−ザ・インタ−フェイス操作命令を記録せずに、プログラム上の変数にユ−ザ・インタ−フェイス操作命令を記録するべきレコ−ドのIDを記録しておき、その情報を元にUIを操作しても良い。
また、UI要素301はツリ−ビュ−で表示され、任意のノ−ドをコピ−して、任意のノ−ドの下に張り付けることが可能であるが、加工するためのツリ−ビュ−を別に作った方が操作しやすいので、そのようにしても良い。(例えば、別のタブに新しい二次加工用のツリ−ビュ−を表示する)
また、ステップ121で、自動化対象アプリケ−ションのUI要素情報と画面画像を取得した後に、さらにその取得したUI要素の全てをユ−ザ・インタフェイス制御プログラムが自動的に操作することで、もう1階層下まで全てのUI要素を取得するようにしても良い。これを繰り返してn階層(nは任意の整数)下まで全てのUI要素を取得するようにしても良い。
また、結果を比較する機能を追加することで、ソフトウェアテストの業務においてさらに利便性が増すことが期待される。
【符号の説明】
【0049】
1 コンソ−ルプログラム
2 ユ−ザ・インタフェイス(UI)情報記録デ−タベ−ス
3 ユ−ザ・インタフェイス(UI)制御プログラム
4 様々なグラフィカル・ユ−ザ・インタフェイス(GUI)を持つ任意のプログラム
301 ユ−ザ・インタフェイス(UI)要素
302 実行ボタン
303 ユ−ザ・インタフェイス(UI)画像
304 ユ−ザ・インタフェイス(UI)情報

【特許請求の範囲】
【請求項1】
自動化対象プログラムが持つユ−ザ・インタフェイスの構成要素の情報を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スから取り出し、ツリ−ビュ−形式で表示する機能と、
任意のツリ−ビュ−ノ−ドに対して操作を行った場合、ユ−ザ・インタ−フェイス操作命令を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの、前記任意のツリ−ビュ−ノ−ドに対応するレコ−ドに記録する機能
を持つことを特徴とするコンソ−ルプログラム。
【請求項2】
前記ツリ−ビュ−が、ツリ−の一部をコピ−してそれを別のツリ−ノ−ドの下に張り付けることによって新たな階層を持つツリ−を生成することが出来る機能
を持つことを特徴とする、請求項1記載のコンソ−ルプログラム。
【請求項3】
前記ツリ−ビュ−の任意のノ−ドを選択した際に、そのノ−ドに対応する自動化対象プログラムのユ−ザ・インタフェイスの構成要素の情報および画面画像を表示する機能
を持つことを特徴とする、請求項1または2に記載のコンソ−ルプログラム。
【請求項4】
ユ−ザ・インタ−フェイス情報記録デ−タベ−スに記録されたユ−ザ・インタ−フェイス操作命令を読み取り、その情報に基づき自動化対象プログラムを起動、およびその自動化対象プログラムが持つユ−ザ・インタフェイスを操作する機能と、
自動化対象プログラムが表示している画面が持つユ−ザ・インタフェイスの構成要素および画面画像の情報を取得し、それをユ−ザ・インタ−フェイス情報記録デ−タベ−スに格納する機能と、
自動化対象プログラムを終了する機能
を持つことを特徴とする、ユ−ザ・インタフェイス制御プログラム。
【請求項5】
「ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドにユ−ザ・インタ−フェイス操作命令の記録されていない親レコ−ドがある場合、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する」という条件で、全てのレコ−ドを更新し、その後、最上位のレコ−ドから順に下位に向かってユ−ザ・インタ−フェイス操作命令が記録されたレコ−ドを読み取り、その各レコ−ドの情報に応じた操作を順番に自動化対象プログラムに対して行う機能
を持つことを特徴とする、請求項4記載のユ−ザ・インタフェイス制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−129078(P2011−129078A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−299384(P2009−299384)
【出願日】平成21年12月15日(2009.12.15)
【出願人】(510007805)
【Fターム(参考)】