(57)【要約】      （修正有）【課題】スクリプトやマクロを使うことなく自動化操作を構築出来、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生出来、なおかつ構築した手順を加工して二次利用し易い、グラフィカル・ユ−ザ・インタフェイス用ツ−ルを提供する。【解決手段】コンソ−ルプログラム１では、使用者が自動化対象プログラム４に対して行おうとする様々なアクションを、ユ−ザ・インタフェイス情報記録デ−タベ−ス２に記録する。ユ−ザ・インタフェイス制御プログラム３はユ−ザ・インタフェイス情報記録デ−タベ−ス２からその情報を読み込んで実際に自動化対象プログラム４に対してアクションを実行する。また、ユ−ザ・インタフェイス制御プログラム３は自動化対象プログラム４の持つＵＩ要素の情報を取得し、ユ−ザ・インタフェイス情報記録デ−タベ−ス２に記録する。コンソ−ルプログラム１では、その情報を読み込んでツリ−ビュ−形式で表示する。【選択図】図１
2011129078.tif 000002
【特許請求の範囲】
【請求項１】
自動化対象プログラムが持つユ−ザ・インタフェイスの構成要素の情報を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スから取り出し、ツリ−ビュ−形式で表示する機能と、
任意のツリ−ビュ−ノ−ドに対して操作を行った場合、ユ−ザ・インタ−フェイス操作命令を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの、前記任意のツリ−ビュ−ノ−ドに対応するレコ−ドに記録する機能
を持つことを特徴とするコンソ−ルプログラム。
【請求項２】
前記ツリ−ビュ−が、ツリ−の一部をコピ−してそれを別のツリ−ノ−ドの下に張り付けることによって新たな階層を持つツリ−を生成することが出来る機能
を持つことを特徴とする、請求項１記載のコンソ−ルプログラム。
【請求項３】
前記ツリ−ビュ−の任意のノ−ドを選択した際に、そのノ−ドに対応する自動化対象プログラムのユ−ザ・インタフェイスの構成要素の情報および画面画像を表示する機能
を持つことを特徴とする、請求項１または２に記載のコンソ−ルプログラム。
【請求項４】
ユ−ザ・インタ−フェイス情報記録デ−タベ−スに記録されたユ−ザ・インタ−フェイス操作命令を読み取り、その情報に基づき自動化対象プログラムを起動、およびその自動化対象プログラムが持つユ−ザ・インタフェイスを操作する機能と、
自動化対象プログラムが表示している画面が持つユ−ザ・インタフェイスの構成要素および画面画像の情報を取得し、それをユ−ザ・インタ−フェイス情報記録デ−タベ−スに格納する機能と、
自動化対象プログラムを終了する機能
を持つことを特徴とする、ユ−ザ・インタフェイス制御プログラム。
【請求項５】
「ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドにユ−ザ・インタ−フェイス操作命令の記録されていない親レコ−ドがある場合、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する」という条件で、全てのレコ−ドを更新し、その後、最上位のレコ−ドから順に下位に向かってユ−ザ・インタ−フェイス操作命令が記録されたレコ−ドを読み取り、その各レコ−ドの情報に応じた操作を順番に自動化対象プログラムに対して行う機能
を持つことを特徴とする、請求項４記載のユ−ザ・インタフェイス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、様々なユ−ザ・インタフェイスを持つアプリケ−ションにおける、ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのプログラムに関する。
【背景技術】
【０００２】  Ｉ．グラフィカル・ユ−ザ・インタフェイス
多くの現代のコンピュ−タ・システムでは、ユ−ザは、グラフィカル・ユ−ザ・インタフェイス（「ＧＵＩ」）を介してソフトウェア・プログラムと対話している。基本的に、ＧＵＩは、コンピュ−タとユ−ザの間のインタ−フェ−スであり、ユ−ザ入力を求め、プログラムの出力を提示するために、単に言葉だけでなく画像を用いる。典型的なＧＵＩは、ユ−ザ・インタフェイス要素（「ＵＩ要素」）から構成され、これは、ユ−ザに見える、聞こえる、あるいは、ユ−ザが知覚または対話する、コンピュ−タ・システムまたはプログラムの外観である。例えば、ＵＩ要素には、アイコン、ボタン、ダイアログ・ボックス、編集ボックス、リスト・ボックス、コンボ・ボックス、スクロ−ル・バ−、ピック・リスト、プッシュ・ボタン、ラジオ・ボタン、および、ワ−ルド・ワイド・ウェブのペ−ジの様々なコンポ−ネント（例えばハイパ−リンクや画像）などのアイテムが含まれる。典型的なコンピュ−タ・プログラムでは、誇張なしに、数千ものＵＩ要素に遭遇するのは通常のことである。【０００３】  ＧＵＩの個々の要素は、ユ−ザに単一のアイテムに見えることがあるが、実際は、いくつかの別々のアイテムから構成されていたり、または下位要素が一緒に組み合わされていたりすることがある。例えば、ツ−ル・バ−・アイテムは、リスト要素、コンボ・ボックス要素、およびスクロ−ル・バ−要素などから構成される。さらに、これらの各下位要素それ自体が、他の下位要素から構成されることもある。このように、ＵＩ要素は、より複雑な他のＵＩ要素を構築するための構築ブロックの役割をすることができる。このような手法は、ユ−ザ・インタフェイス（「ＵＩ」）を管理するソフトウェアが、一定の共通要素の定義を、それらを複合要素に組み立てるときに再利用することができるので便利である。【０００４】  ＧＵＩ環境における多くのＵＩ要素は、プログラムの機能を表し、コンピュ−タ・スクリ−ン上に表示され、したがって、ユ−ザは、それらを選択し、強調表示し、それにアクセスし、操作を行うことによって、プログラムと対話することができる。このユ−ザの対話は、画面上の（通常マウスまたはキ−ボ−ドによって制御される）ポインタを操作し、ポインタがＵＩ要素を指しているときに、ボタンを押すかまたはクリックすることによって行われる。例えば、ワ−ド・プロセッサでは、ユ−ザは、マウスを操作することにより、プログラムのメニュ−・バ−上の項目を選択すること、ツ−ル・バ−にあるアイコンをクリックすること、または、表示ウィンドウ内の文字のブロックを強調表示することができる。同様に、ユ−ザは、コンピュ−タ・アプリケ−ションと対話するためにキ−ボ−ドによる入力を用いることができる。例えば、ワ−ド・プロセッサ・プログラムでは、ユ−ザは、「ＡＬＴ−Ｆ」、「ＣＴＲＬ−Ｂ」、または他の予め定義されたキ−・ストロ−クの組合せを押すことによって、プログラムの諸機能にアクセスすることができる。マウスまたはキ−ボ−ドからの入力に基づいて、コンピュ−タは、画面上に表示されるものに対して追加、変更、および操作を行うことができる。ＧＵＩ技術は、ユ−ザがコンピュ−タ・システムと対話するための便利でユ−ザ・フレン��リな環境を提供する。【０００５】  ＩＩ．マクロ・ビルダおよびＵＩレコ−ダ
ＧＵＩ環境においてユ−ザのコンピュ−タとの対話を記録および再生する能力は、事業体（または他の大規模な組織）、ユ−ザ、ソフトウェア開発者、テスト担当者、およびコンピュ−タ・サポ−ト担当者を含めた多数の当事者に利益をもたらす可能性がある。例えば、事業組織は、サプライ・チェ−ン・マネジメント用のソフトウェアを使用するなどして、ビジネスのプロセスの多くを自動化することによって、そのプロセスを合理化することができる。一連の入力されるアクションを、単一のステップで引き起こされる再生アクションに一体化するマクロまたはスクリプトを作成することによってユ−ザは利益を得る。ソフトウェア開発者は、開発中のソフトウェアのテスト・ケ−スを生成するのを支援する、ユ−ザのアクションを記録する能力を使用することができる。テスタは、自動回帰テストを実施するための試験を構築するために、記録および再生ツ−ルを使用することができる。コンピュ−タ・サポ−ト担当者は、コンピュ−タのクラッシュまたはハングの原因を発見するために、あるいはソフトウェアの使用の仕方をユ−ザが理解するのを援助するために、ユ−ザのアクションを記録することができる。【０００６】  Ａ．市販のマクロ・ビルダ
多くの従来のマクロ・ビルダ・プログラムは、ある機能を実行するコンピュ−タまたはアプリケ−ションによって受け取られた内部コマンドおよびアクションを表すスクリプトを生成する。しかし、多くの事例では、ユ−ザは、１組のスクリプト・コマンドおよび複雑なプログラミング構成に基づいて、独力でスクリプトを開発しなければならない。したがって、ユ−ザは、プログラミング論理を理解し、ある程度、制御されるプログラムの内在する論理を理解して、マクロを作成し使用する必要がある。例えば、マクロ・プログラムの自動化は、ドラッグ・アンド・ドロップ・タスク・ビルダを使用して、具体的なステップを、それらが実行されるべき順序でドラッグ・アンド・ドロップすることによって、マクロ・スクリプトを作成するが、このことは、自動化のユ−ザが、どの順番でどのようにコマンドが発行されるべきかを理解する必要があることを意味する。マクロスケジュ−ラ−は、ユ−ザが、（実際に宣言された変数、および他のユ−ザ定義された構造体を含まずに）２００余りのスクリプト・コマンドおよびプログラム構成を用いてマクロ・スクリプトを書くことを可能にするマクロ作成プログラムである。このようなマクロ・プログラムで生成されるスクリプトを作成し編集することに必要とされる複雑さ、ならびに、このようなマクロ・ビルダによって生成されるスクリプトが、ＵＩアクティビティの実際のステップを追った分かり易い記録を表していない事実は、特に、初心者のユ−ザ、ならびに問題を解決しようとするコンピュ−タ・サポ−ト担当者およびソフトウェア開発者にとって、これらのマクロ・プログラムの実用性を低いものにする。【０００７】  Ｂ．内部マクロ言語
市販のマクロ作成ソフトウェアに対する代替として、多くのアプリケ−ションは、それら自体の専用のアプリケ−ション制御言語（「マクロ言語」）を使用してマクロを記録し再生するための組み込まれた能力を有している。アプリケ−ションのマクロ言語は、通常は、そのアプリケ−ションに固有のもので、一般に、アプリケ−ションの内部のオブジェクトモデル（「ＩＯＭ」）に基づいている。オブジェクト指向の手法なしにマクロ言語を構築することが可能であるが、ほとんどの内部モデルは、プログラムの構造にオブジェクト指向表現を用いている。ＩＯＭは、プログラムに内在するオブジェクトの、クラス、属性、オペレ−ション、パラメ−タ、リレ−ションシップ、および関連付けについてのアクセス可能なアウトラインまたはモデルを提供する。マクロ言語は、そのアプリケ−ションのＩＯＭにアクセスし、その通信メカニズム（イベント呼出しなど）をフックして、アプリケ−ション内の機能にアクセスしそれを呼び出す。例えば、ＭｉｃｒｏｓｏｆｔＷｏｒｄのユ−ザは、文章を自動的にフォ−マットするためにマクロを記録することができる。しかしながら、ほとんどのマクロ言語の主な欠点は、それらがアプリケ−ション特有のものであることである。あるアプリケ−ションによって記録されたマクロは、通常、特に２つのアプリケ−ションが競合するソフトウェア会社によって開発された場合、他のアプリケ−ションによってサポ−トされない。いくつかのケ−スでは、アプリケ−ションのあるバ−ジョンで記録されたマクロは、そのアプリケ−ションのその後のバ−ジョンでサポ−トされない。【０００８】  Ｃ．マクロへの依存
マクロを開発することは難しいことがあり、多くのユ−ザおよび事業体は、既存のマクロを、ブレ−ク（失敗）させる可能性がある何かをすることに躊躇する。特に事業体は、そのビジネス・プロセスに悪影響を及ぼす可能性があることはどのようなものでも躊躇する。実際、多くのユ−ザおよび事業体は、何かを「壊す」ことを恐れて、ソフトウェアのアップグレ−ドやまたパッチのインスト−ルさえも躊躇する。例えば、事業体が、（例えばマクロの形態で）自動化したビジネス・プロセスを採用しており、このプロセスでは、受け取ったファックスをスキャンし、これに光学式文字認識（「ＯＣＲ」）を自動的に行って、そのテキスト・ファイル版を作成し、このテキスト・ファイルのデ−タとスプレッドシ−ト上の入力コンテンツとを比較して会計情報を確認し、最後にファックスの差出人に確認の電子メ−ルを送る、ことを想定する。このようなビジネス・プロセスは、たいていは、適切に機能させるために、潜在的に複雑なマクロと、様々なソフトウェア・パッケ−ジ（例えば、スキャナ・プログラム、ＯＣＲプログラム、表計算プログラム、テキスト・ファイル・プログラムなど）を組み合わせたセットを使用する。事業体およびユ−ザは、その自動化プロセスに現在投資しているものが損なわれずにそのままであることが保証されない限り、マクロまたはソフトウェアのアップグレ−ドに関してしばしば危惧の念を抱く。【０００９】  特許文献１は、様々な記録および再生ツ−ルを記載しており、これらのツ−ルのいくつかは、ＵＩＡフレ−ムワ−クを使用して、ＵＩ要素の識別値（「ＵＩＤ」）に基づいて入力を記録する。ＵＩＡは、ＧＵＩ内のＵＩ要素を一意に識別する複合ＩＤを生成する。
特許文献２は、内部マクロ・デ−タを不透明ト−クンとして受け取る方法で自動化を行おうとしている。
非特許文献１は、ＵＩの種類とＵＩの名前でＵＩを識別し、自動化を行おうとしている。
いずれにおいても、デ−タを表現するために複雑なスクリプト・コマンドまたはプログラミング構成を使用するという点で、上述のマクロツ−ルと同様の欠点を有し、手順を加工して二次利用する方法が容易ではない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】２００４年６月１５日出願の名称「Ｒｅｃｏｒｄｉｎｇ／ＰｌａｙｂａｃｋＴｏｏｌｓｆｏｒＵＩ−ｂａｓｅｄＡｐｐｌｉｃａｔｉｏｎｓ」の米国特許出願
【特許文献２】特開２００６−１８８２７号公報
【非特許文献】
【００１１】
【非特許文献１】ＵＷＳＣ  ｈｔｔｐ：／／ｗｗｗ．ｕｗｓｃ．ｉｎｆｏ
【発明の概要】
【発明が解決しようとする課題】
【００１２】  グラフィカル・ユ−ザ・インタフェイス環境においてユ−ザのコンピュ−タとの対話を記録および再生する能力は、事業体（または他の大規模な組織）、ユ−ザ、ソフトウェア開発者、テスト担当者、およびコンピュ−タ・サポ−ト担当者を含めた多数の当事者に利益をもたらす可能性がある。しかし、記録再生ツ−ルによる業務やテストの自動化は、未だに一般的に普及しているとは言い難い。原因として、既存の技術による記録再生ツ−ルに
「スクリプトやマクロを使わずに自動化操作を構築すること」
「使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生すること」
「構築した手順を加工して二次利用し易いこと」
の三点を同時に満たす物が存在していないことが挙げられる。この中のどれか一つが欠けるだけでも、利用者にとって記録再生ツ−ルによる業務やテストの自動化は、敷居が高く、工数を多く費やし、また失敗のリスクが高いものとなってしまう。なお、「使用者の意図した自動化操作を、ユ−ザ・インタフェイスを介して確実に再生すること」とは具体的には、内部ＡＰＩを直接呼び出すような通常使用と異なる経路を通らないことや、再生時にマウスの動きを利用した不確実な操作を使用せずユ−ザ・インタフェイス要素を直接操作することを意味する。
また、グラフィカル・ユ−ザ・インタフェイスが正しく表示されているかどうかをテストする場合において、ユ−ザ・インタフェイスの構成要素および画面画像の情報を取得すること自体が大きな助けとなる。
本発明は、使用者が、スクリプトやマクロを使うことなく自動化操作を構築出来、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生出来、なおかつ構築した手順を加工して二次利用し易い、グラフィカル・ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのツ−ルを提供することを課題とするものである。
【課題を解決するための手段】
【００１３】  上記目的を達成する為に、請求項１の発明であるコンソ−ルプログラムは、自動化対象プログラム（自動化対象プログラムとは、要するに本発明によって操作されるプログラムであればいかなるものでもよい。）が持つユ−ザ・インタフェイス（「ＵＩ」）の構成要素の情報（ここでユ−ザ・インタフェイスの構成要素とは、要するにユ−ザ・インタフェイス上に配置されているパ−ツであればいかなるものでもよい。ユ−ザ・インタフェイスの構成要素の情報を具体的に言えば、例えば、ユ−ザ・インタフェイスの種類、そのアイテムが持つ名前、アイテムに対してふられた通し番号、等。）を、ユ−ザ・インタ−フェイス情報記録デ−タベ−ス（ユ−ザ・インタ−フェイス情報記録デ−タベ−スとは、要するに本発明によって操作されるデ−タベ−スであればいかなるものでもよい。）から取り出し、ツリ−ビュ−形式で表示する機能と、
任意のツリ−ビュ−ノ−ドに対して操作を行った場合、ユ−ザ・インタ−フェイス操作命令（ユ−ザ・インタ−フェイス操作命令とは、要するに本発明によってデ−タベ−スレコ−ドに記録される任意の値）を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの、前記任意のツリ−ビュ−ノ−ドに対応するレコ−ドに記録する機能
を持つことを特徴とする。【００１４】  請求項２の発明であるコンソ−ルプログラムは、請求項１の発明に加え、前記ツリ−ビュ−が、ツリ−の一部をコピ−してそれを別のツリ−ノ−ドの下に張り付けることによって、新たな階層を持つツリ−を生成することが出来る機能
を持つことを特徴とする。【００１５】  請求項３の発明であるコンソ−ルプログラムは、請求項１または２の発明に加え、前記ツリ−ビュ−の任意のノ−ドを選択した際に、そのノ−ドに対応する自動化対象プログラムのユ−ザ・インタフェイスの構成要素の情報および画面画像を表示する機能
を持つことを特徴とする。【００１６】  請求項４の発明であるユ−ザ・インタフェイス制御プログラムは、ユ−ザ・インタ−フェイス情報記録デ−タベ−スに記録されたユ−ザ・インタ−フェイス操作命令を読み取り、その情報に基づき自動化対象プログラムを起動、およびその自動化対象プログラムが持つユ−ザ・インタフェイスを操作する機能と、
自動化対象プログラムが表示している画面が持つユ−ザ・インタフェイスの構成要素および画面画像の情報を取得し、それをユ−ザ・インタ−フェイス情報記録デ−タベ−スに格納する機能と、
自動化対象プログラムを終了する機能
を持つことを特徴とする。【００１７】  請求項５の発明であるユ−ザ・インタフェイス制御プログラムは、請求項４の発明に加え、「ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドにユ−ザ・インタ−フェイス操作命令の記録されていない親レコ−ドがある場合、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する」という条件で、全てのレコ−ドを更新し、その後、最上位のレコ−ドから順に下位に向かってユ−ザ・インタ−フェイス操作命令が記録されたレコ−ドを読み取り、その各レコ−ドの情報に応じた操作を順番に自動化対象プログラムに対して行う機能
を持つことを特徴とする。
【発明の効果】
【００１８】  本発明によれば、ユ−ザ・インタ−フェイス情報記録デ−タベ−スを介した、ツリ−ビュ−を持つコンソ−ルプログラムの操作とユ−ザ・インタフェイス制御プログラムの連携により、スクリプトやマクロを作成することなく段階的に自動化操作を構築することが可能となる。
また、ユ−ザ・インタフェイス制御プログラムが、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの情報に従って、自動化対象プログラムのユ−ザ・インタフェイスに対してユ−ザ・インタフェイス要素を対象として再生操作を行うことで、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生することが可能となる。これにより、ユ−ザ・インタフェイスを持つ全てのアプリケ−ションの操作を自動化することが可能となる。
また、コンソ−ルプログラムのツリ−ビュ−で、ツリ−の一部をコピ−してそれを別のツリ−ノ−ドの下に張り付けることによって新たな階層を持つツリ−を生成することが出来ることと、ツリ−ビュ−の任意のノ−ドを選択した際に、そのノ−ドに対応する自動化対象プログラムのユ−ザ・インタフェイスの構成要素の情報および画面画像を表示することにより、構築した手順を加工して二次利用し易くなり、手順の構築自体も簡略化される。
これらの結果、長年自動化普及の障害となっていた要因が取り除かれることとなる。
【図面の簡単な説明】
【００１９】
【図１】本発明を適用したコンソ−ルプログラムと、このコンソ−ルプログラムにより出された命令を実行するユ−ザ・インタフェイス制御プログラムの機能的な構成を示すブロック図である。
【図２】コンソ−ルプログラムと、ユ−ザ・インタフェイス制御プログラムの連携動作の流れを示すフロ−チャ−トである。（初期処理）
【図３】コンソ−ルプログラムと、ユ−ザ・インタフェイス制御プログラムの連携動作の流れを示すフロ−チャ−トである。
【図４】図３におけるステップ１２０の流れを示すフロ−チャ−トである。
【図５】コンソ−ルプログラムの画面の例である。
【図６】ユ−ザ・インタフェイス情報記録デ−タベ−スのテ−ブル構造の例である。ャ−トである。
【発明を実施するための形態】
【００２０】  以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【実施例１】
【００２１】  図１は、本発明を適用したコンソ−ルプログラムと、このコンソ−ルプログラムにより出された命令を実行するユ−ザ・インタフェイス制御プログラムの機能的な構成を示すブロック図である。【００２２】  コンソ−ルプログラム１は、ツリ−ビュ−およびＵＩ情報ＵＩ画像表示部５と、ユ−ザ操作部６と、レコ−ド作成部７と、レコ−ド読み取り部８を制御する。【００２３】  ツリ−ビュ−およびＵＩ情報ＵＩ画像表示部５は、自動化対象アプリケ−ションの持つユ−ザ・インタフェイス要素および画像を表示する機能を持つ。【００２４】  ユ−ザ操作部６およびレコ−ド作成部７は、使用者が自動化対象アプリケ−ションに対して行おうとするアクションを拾い上げ、デ−タベ−スに記録する機能を有する。例えば、「Ｙｅｓ」という文字を持つ「ボタン」を意味するツリ−ノ−ドのチェックボックスの状態を変更すれば、「Ｙｅｓ」という文字を持つ「ボタン」を意味するデ−タベ−スレコ−ドに、ＵＩ操作命令（具体的には、実行を意味する値）を記録する。【００２５】  レコ−ド読み取り部８は、ユ−ザ・インタフェイス制御プログラム３が生成したレコ−ドを読み取り、ツリ−ビュ−およびＵＩ情報ＵＩ画像表示部５で表示するための変換を行う。【００２６】  ユ−ザ・インタフェイス情報記録デ−タベ−ス２は自動化対象アプリケ−ションのＵＩ要素情報とその階層情報を記録するために、そのテ−ブル構造にレコ−ドの親子関係を示す項目（親にあたるテ−ブルのＩＤを格納する項目）を持つ。図５はユ−ザ・インタフェイス情報記録デ−タベ−ス２のテ−ブル構造の例である。【００２７】  ユ−ザ・インタフェイス制御プログラム３は、レコ−ド読み取り部９と、ＵＩ操作実行部１０と、レコ−ド作成部１１と、ＵＩ要素読み取り部１２を制御する。【００２８】  レコ−ド読み取り部９は、コンソ−ルプログラム１が生成したレコ−ドを読み取り、ＵＩ操作実行部１０が、様々なグラフィカル・ユ−ザ・インタフェイスを持つ任意のプログラム４に対して行う操作に変換する。【００２９】  ＵＩ操作実行部１０は、様々なグラフィカル・ユ−ザ・インタフェイスを持つ任意のプログラム４に対して、ユ−ザ・インタフェイス情報記録デ−タベ−ス２から読み込んだ情報に基き、実際に再生操作を行う。ここでいう再生操作とは、ユ−ザ・インタフェイスの要素に対する直接操作を意味し、マウスによるクリック等の間接的操作ではない。例えば、「ボタンを押す」「チェックボックスのＯＮ／ＯＦＦ」「テキストボックスに文字を挿入する」「メニュ−を選択する」を、ＵＩ操作実行部１０が直接グラフィカル・ユ−ザ・インタ−フェイスの要素に対して行う。【００３０】  ＵＩ要素読み取り部１２およびレコ−ド作成部１１は、様々なグラフィカル・ユ−ザ・インタフェイスを持つ任意のプログラム４の持つユ−ザ・インタフェイス要素を全て拾い上げ、それらの情報をデ−タベ−スに記録する。【００３１】  次に、本発明を適用したコンソ−ルプログラムと、このコンソ−ルプログラムにより出された命令を実行するユ−ザ・インタフェイス制御プログラムの動作について説明する。図２および図３は、コンソ−ルプログラムと、ユ−ザ・インタフェイス制御プログラムの動作の��れを示すフロ−チャ−トである。【００３２】  最初にコンソ−ルプログラムを起動し、コンソ−ル処理を開始する（１０１）、その後、使用者が自動化対象アプリケ−ションパス（コンピュ−タ上のアプリケ−ションの場所）をコンソ−ルに入力（１０２）すると、コンソ−ルプログラムは、その情報をデ−タベ−スに記録する（１０３）。コンソ−ル処理はここで一旦終了となる（１０４）。【００３３】  次に、ユ−ザ・インタフェイス制御プログラム側で、ユ−ザ・インタフェイス制御プログラム処理が開始される。（１０５）（ユ−ザ・インタフェイス制御プログラムは、コンソ−ルから直接起動しても良いし、デ−タベ−スに更新があった時のみ起動する方法でも良い）その後、ユ−ザ・インタフェイス制御プログラムは、デ−タベ−スからアプリケ−ションパスを読み取り（１０６）、その情報に基き、自動化対象アプリケ−ションを起動する（１０７）。起動した自動化対象アプリケ−ションがユ−ザ・インタフェイスのある画面を表示したら、ユ−ザ・インタフェイス制御プログラムは、その自動化対象アプリケ−ションのＵＩ要素情報と画面画像を取得する（１０８）。そして、ユ−ザ・インタフェイス制御プログラムは、それらのＵＩ要素情報と画面画像をデ−タベ−スにに記録する（１０９）。ユ−ザ・インタフェイス制御プログラム処理はここで一旦終了となる。（１１０）【００３４】  次に、再びコンソ−ル側の処理となる（１１１）。コンソ−ルプログラムは、デ−タベ−スからＵＩ要素情報と画面画像を読み取り（１１２）、ツリ−ビュ−３０１にＵＩ要素情報を表示する（１１３）。尚、コンソ−ルは、ツリ−ビュ−の任意のノ−ドが選択されたときそのノ−ドに対応したＵＩ情報の表示３０３・３０４を行う機能を持つ。
その後、使用者が、操作しようと思う自動化対象アプリケ−ションのＵＩアイテムを指定する（１１４）。コンソ−ルプログラムは、使用者が任意のツリ−ビュ−ノ−ドに対して実行を意味する操作を行った場合、ユ−ザ・インタ−フェイス操作命令を、ユ−ザ・インタ−フェイス情報記録デ−タベ−スの前記任意のツリ−ビュ−ノ−ドに対応するレコ−ドに記録する（１１５）。例えば、「Ｙｅｓ」という名前を持つ「ボタン」を意味するツリ−ビュ−ノ−ドのチェックボックスを外すと、デ−タベ−スの「Ｙｅｓ」という名前を持つ「ボタン」を意味するレコ−ドにユ−ザ・インタ−フェイス操作命令が記録される。（これは「Ｙｅｓボタンをクリックする」という命令が記録されたのと同等である。）コンソ−ル処理はここで−旦終了となる（１１６）。【００３５】  次に、ユ−ザ・インタフェイス制御プログラム側で、再びユ−ザ・インタフェイス制御プログラム処理が開始される。（１１７）（ユ−ザ・インタフェイス制御プログラムは、コンソ−ルから直接起動しても良いし、デ−タベ−スに更新があった時のみ起動する方法でも良い）その後、ユ−ザ・インタフェイス制御プログラムは、デ−タベ−スから、ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドを読み取る（１１８）。次に、ユ−ザ・インタフェイス制御プログラムは、ステップ１０７と同様に自動化対象アプリケ−ションを起動し（１１９）、自動化対象アプリケ−ションのＵＩを、ステップ１１８で読み取ったレコ−ドに基き操作する（１２０）。その後、ユ−ザ・インタフェイス制御プログラムは、ステップ１２０の操作終了後の自動化対象アプリケ−ションのＵＩ要素情報と画面画像を取得し（１２１）、デ−タベ−スにそれらのＵＩ要素情報と画面画像を記録する（１２２）。ユ−ザ・インタフェイス制御プログラム処理はここで一旦終了となる。（１２３）この時点で、ユ−ザ・インタフェイス制御プログラム処理は自動化対象プログラムを強制的に終了させても良い。【００３６】  フロ−チャ−トに示すように、ステップ１２３終了後は、ステップ１１１に戻り、ステップ１１１からステップ１２３までを繰り返す。【００３７】  次に、ステップ１２０の詳細処理に関して説明する。図４は、図３ステップ１２０の処理の流れを示すフロ−チャ−トである。【００３８】  ステップ１２０の処理開始後（２０１）、ＵＩ操作命令の記録されたレコ−ドを抽出する（２０２）。次に、「ＵＩ操作命令の記録されたレコ−ドにＵＩ操作命令の記録されていない親レコ−ドがあれば、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する。」という条件で、全てのレコ−ドを更新する（２０３−２０４）。
ステップ２０３で、処理するレコ−ドが無くなったら、デ−タベ−スからＵＩ操作命令の記録されているレコ−ドをＩＤの昇順ソ−トで抽出する（２０５）。次に、抽出した最初のレコ−ドからＩＤの小さい順に最後のレコ−ドまで、１レコ−ドずつ対応する自動化対象アプリケ−ションのＵＩを操作する（２０６−２０８）。
ステップ２０７で、処理するレコ−ドが無くなったら、全てのレコ−ドのＵＩ操作命令を消し、実行完了状態にする（２０９）ことでステップ１２０の処理を終了する（２１０）。【００３９】  図５は、コンソ−ルプログラム１の画面図である。【００４０】  コンソ−ルプログラム１は、ＵＩ要素３０１、実行ボタン３０２、ＵＩ画像３０３、ＵＩ情報３０４の画面を持つ。【００４１】  ＵＩ要素３０１はツリ−ビュ−で表示され、任意のノ−ドをコピ−して、任意のノ−ドの下に張り付けることが可能である。【００４２】  ＵＩ要素３０１のツリ−ビュ−を操作後に実行ボタン３０２を押すことで、ツリ−ビュ−に加えられた操作をユ−ザ・インタ−フェイス情報記録デ−タベ−ス２に記録することが出来る。【００４３】  ＵＩ要素３０１のツリ−ビュ−の任意のノ−ドを選択すると、それに対応したＵＩ画面がＵＩ画像３０３に、ＵＩ情報がＵＩ情報３０４に表示される。【００４４】  本明細書に記載の技術は、例えばプログラム・モジュ−ルに含まれ、タ−ゲットとする現実または仮想のプロセッサ上のコンピュ−ティング環境で実行される、コンピュ−タ実行可能命令の一般的なコンテキストにおいて記述することができる。一般に、プログラム・モジュ−ルには、特定のタスクを実行し、または特定の抽象デ−タ型を実装する、ル−チン、プログラム、ライブラリ、オブジェクト、クラス、コンポ−ネント、および、デ−タ構造などが含まれる。様々な実施形態において、プログラム・モジュ−ルの機能を、必要に応じて、プログラム・モジュ−ル間で組み合わせたり、分割したりすることが可能である。プログラム・モジュ−ルのコンピュ−タ実行可能命令は、ロ−カルまたは分散コンピュ−ティング環境において実行することができる。【００４５】  提示の目的で、本明細書の詳細な説明では、コンピュ−ティング環境におけるコンピュ−タの動作を記述するために、「決定する」、「生成する」、「調整する」、および「適用する」などのような用語を使用している。これらの用語は、コンピュ−タによって行われる動作について高度に抽象化した概念であり、人間によって行われる行為と混同されるべきではない。このような用語に対応する実際のコンピュ−タの動作は、実装形態に応じて異なっている。【００４６】  本発明の原理が適用され得る多数の可能な実施形態に鑑みて、添付の特許請求の範囲およびその均等物の範囲および趣旨に含むことができるすべての実施形態を本発明として主張する。【００４７】  「実施形態の効果」
この実施形態によれば、ユ−ザ・インタフェイス制御プログラム３と連携する形で、コンソ−ルプログラム１からツリ−ビュ−の操作のみを通じて、使用者のアクションをユ−ザ・インタ−フェイス情報記録デ−タベ−ス２に記録することが出来る。従って、スクリプトやマクロを作成することなく自動化操作を構築することが可能となる。
加えて、ユ−ザ・インタフェイス制御プログラム３は、ユ−ザ・インタ−フェイス情報記録デ−タベ−ス２の情報を読み取る機能（レコ−ド読み取り部９）と、ユ−ザ・インタフェイスを外側から操作する仕組み（ＵＩ操作実行部１０）を備えている。従って、使用者の意図した自動化操作をユ−ザ・インタフェイスを介して確実に再生することが可能となる。
コンソ−ルプログラム１のＵＩ要素３０１はツリ−ビュ−で表示され、任意のノ−ドをコピ−して、任意のノ−ドの下に張り付けることが可能である。従って、構築した手順を加工して二次利用し易くなる。【００４８】  「他の実施形態」
ステップ１２０の詳細処理では、「ユ−ザ・インタ−フェイス操作命令の記録されたレコ−ドにユ−ザ・インタ−フェイス操作命令の記録されていない親レコ−ドがある場合、親レコ−ドにもユ−ザ・インタ−フェイス操作命令を記録する」という条件で、全てのレコ−ドを更新する（２０３−２０４）処理が入っているが、他の実施形態では、この処理を、操作したい自動化対象アプリケ−ションのＵＩアイテムに対応するデ−タベ−スレコ−ドに、ユ−ザ・インタ−フェイス操作命令を記録する（１１５）処理で同時に行っても良い。また、親レコ−ドに実際にユ−ザ・インタ−フェイス操作命令を記録せずに、プログラム上の変数にユ−ザ・インタ−フェイス操作命令を記録するべきレコ−ドのＩＤを記録しておき、その情報を元にＵＩを操作しても良い。
また、ＵＩ要素３０１はツリ−ビュ−で表示され、任意のノ−ドをコピ−して、任意のノ−ドの下に張り付けることが可能であるが、加工するためのツリ−ビュ−を別に作った方が操作しやすいので、そのようにしても良い。（例えば、別のタブに新しい二次加工用のツリ−ビュ−を表示する）
また、ステップ１２１で、自動化対象アプリケ−ションのＵＩ要素情報と画面画像を取得した後に、さらにその取得したＵＩ要素の全てをユ−ザ・インタフェイス制御プログラムが自動的に操作することで、もう１階層下まで全てのＵＩ要素を取得するようにしても良い。これを繰り返してｎ階層（ｎは任意の整数）下まで全てのＵＩ要素を取得するようにしても良い。
また、結果を比較する機能を追加することで、ソフトウェアテストの業務においてさらに利便性が増すことが期待される。
【符号の説明】
【００４９】１  コンソ−ルプログラム
２  ユ−ザ・インタフェイス（ＵＩ）情報記録デ−タベ−ス
３  ユ−ザ・インタフェイス（ＵＩ）制御プログラム
４  様々なグラフィカル・ユ−ザ・インタフェイス（ＧＵＩ）を持つ任意のプログラム
３０１  ユ−ザ・インタフェイス（ＵＩ）要素
３０２  実行ボタン
３０３  ユ−ザ・インタフェイス（ＵＩ）画像
３０４  ユ−ザ・インタフェイス（ＵＩ）情報
【図１】
2011129078.tif 000003
【図２】
2011129078.tif 000004
【図３】
2011129078.tif 000005
【図４】
2011129078.tif 000006
【図５】
2011129078.tif 000007
【図６】
2011129078.tif 000008