(57)【要約】【課題】時間調整、あるいは画面修正等の煩雑な作業を低減して、コンピュータプログラムの実行結果の確認を可能とする。【解決手段】コンピュータに、プログラムに対する操作者の操作を含む操作記録を記憶し、操作者の特定の操作に応じて前記プログラムが出力する出力画面内の前記操作者の指定した特定領域の画面情報を記憶するとともに前記特定の操作がなされるまでの操作者の操作と前記画面情報とを関連づけるための画面参照情報を操作記録に設定させる。そして、操作記録を順次読み出し、読み出した操作記録に含まれる操作情報にしたがってプログラムを実行するとともに、画面参照情報を読み出したときに、画面情報を取得し、画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の特定領域の情報と画面情報とを比較させる。【選択図】図２
2013143044.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する情報処理装置に対する操作者の操作情報を含む操作記録を記憶し、前記操作者の特定の操作がなされたときに、前記情報処理装置が出力する出力画面内で前記操作者が指定した特定領域の画面情報を記憶するとともに前記特定の操作がなされるまでの前記操作者の操作と前記画面情報とを関連づけるための画面参照情報を前記操作記録に設定する第１の処理と、
前記操作記録を順次読み出し、前記読み出した操作記録に含まれる操作情報にしたがって前記プログラムを実行するとともに、前記画面参照情報を読み出したときに、前記画面情報を取得し、前記画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の前記特定領域の情報と前記画面情報とを比較する第２の処理と、を情報処理装置に実行させるためのプログラム。
【請求項２】
前記情報処理装置に、前記第１の処理では、前記特定の操作に応じて、前記出力画面上の表示の変化を停止させ、
前記第２の処理では、所定の期間、前記画面情報を取得して前記特定領域の情報と前記画面情報とを比較する処理を繰り返し実行させる請求項１に記載のプログラム。
【請求項３】
情報処理装置が、プログラムを実行する前記情報処理装置に対する操作者の操作情報を含む操作記録を記憶し、前記操作者の特定の操作がなされたときに、前記情報処理装置が出力する出力画面内で前記操作者が指定した特定領域の画面情報を記憶するとともに前記特定の操作がなされるまでの前記操作者の操作と前記画面情報とを関連づけるための画面参照情報を前記操作記録に設定する第１の工程と、
前記操作記録を順次読み出し、前記読み出した操作記録に含まれる操作情報にしたがって前記プログラムを実行するとともに、前記画面参照情報を読み出したときに、前記画面情報を取得し、前記画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の前記特定領域の情報と前記画面情報とを比較する第２の工程と、を実行する情報処理方法。
【請求項４】
プログラムを実行する情報処理装置に対する操作者の操作情報を含む操作記録を記憶し、前記操作者の特定の操作がなされたときに、前記情報処理装置が出力する出力画面内で前記操作者が指定した特定領域の画面情報を記憶するとともに前記特定の操作がなされるまでの前記操作者の操作と前記画面情報とを関連づけるための画面参照情報を前記操作記録に設定する第１の処理部と、
前記操作記録を順次読み出し、前記読み出した操作記録に含まれる操作情報にしたがって前記プログラムを実行するとともに、前記画面参照情報を読み出したときに、前記画面情報を取得し、前記画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の前記特定領域の情報と前記画面情報とを比較する第２の処理部と、を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理方法、および情報処理装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータ、サーバ等の情報処理装置は、人とのやり取りを行うためのユーザインターフェースを持つ。従来の情報処理装置では、例えば、スイッチを配置したパネルによるユーザインターフェース、あるいはキーボードとマウスを用いたユーザインターフェース等が用いられる。キーボード、あるいはマウスを用いるユーザインターフェースとしては、キーボードから文字を入力するＣＵＩ（Command User Interface）とマウスと画像を併用したＧＵＩ(Graphical User Interface)の２つを例示できる。
【０００３】
以下、ユーザインターフェースを含む情報処理装置上でのコンピュータプログラムの実行、例えば自動走行と自動走行による実行結果の確認について検討する。ＣＵＩを有する情報処理装置においては、コンピュータプログラムの自動走行は、例えば、ファイルから情報処理装置へのコマンド入力で実行される。また、情報処理装置から出力される文字列の確認等により、自動走行の結果は確認できる。
【０００４】
一方、ＧＵＩを有する情報処理装置においては、コンピュータプログラムの自動走行は、キーボードやマウス等の入力操作の情報をファイルからコンピュータに入力することによって実行される。そのため、自動走行のための入力操作を記録しておけばよい。そして、記録した入力操作にしたがってコンピュータプログラムを自動走行させ、表示される画面を取得すればよい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１１６５３５号公報
【特許文献２】特開２００２−２１５４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
コンピュータプログラムの自動走行は、例えば、コンピュータプログラムのテストに利用される。コンピュータプログラムのテストにおいては、入力操作をログとして記録し、ログを再生すること、すなわち、ログにしたがって再度テストを実行することが一般的に行われている。しかし、コンピュータプログラムの自動走行結果と、期待される実行結果との確認は、容易ではない。
【０００７】
例えば、操作記録を基にコンピュータプログラムを自動走行した場合に、コンピュータプログラムを実行する環境に依存して、自動走行結果と、期待される実行結果との確認が容易にできない場合がある。例えば、コンピュータプログラムを実行する環境の差や負荷によって実行速度が変動する。したがって、自動走行結果と、期待される実行結果との同期を取ることは容易ではない。また、コンピュータプログラムの実行によって出力される表示画面には、時刻表示、アイコンの表示状態の変化、起動中のアプリケーションを表示するタスクバーの内容の変化等、時間あるいはコンピュータの操作状態よって変化する部分が含まれる。そのため、コンピュータプログラムの自動走行結果に対して、期待される実行結果が得られたか否かが、正確には判定できない問題が発生する。
【０００８】
図１４に、コンピュータプログラムの実行時の出力画面Ｇ１とＧ２の相違点を例示する
。例えば、画面Ｇ１では、時刻が１９：３２であり、一方、画面Ｇ２では、時刻が７：５９である。また、画面Ｇ１では、メニューバー領域のアイコンの並びが、左から”ＳＴＡＲＴ”、”ＳＥＡＲＣＨ”、”ＬＯＣＡＬ  ＤＩＳＫ”、”ＴＥＸＴ  ＥＤＩＴＯＲ”である。一方、画面Ｇ２では、”ＳＴＡＲＴ”、”ＳＥＡＲＣＨ”、”ＴＥＸＴ  ＥＤＩＴＯＲ”、”ＬＯＣＡＬ  ＤＩＳＫ”の順となっている。すなわち、画面Ｇ１と比較して、画面Ｇ２では、”ＴＥＸＴ  ＥＤＩＴＯＲ”と”ＬＯＣＡＬ  ＤＩＳＫ”とが入れ替わっている。したがって、例えば、画面Ｇ１が期待される実行結果であり、画面Ｇ２が自動走行結果である場合に、自動走行結果が期待通りのものか否かをコンピュータが機械的に判定することは容易ではない。
【０００９】
図１４で例示されるような問題を回避するため、例えば、期待される実行結果を得るために、自動走行時の時間待ち処理、画面全体の中から表示に変動がない部分を切り取り、比較するための期待画像を作成する加工処理等が行われる。しかし、時間待ち処理による時間調整、あるいは画像を修正するための作業が煩雑となっている。そこで、開示の技術の一側面は、時間調整、あるいは画面修正等の煩雑な作業を低減して、コンピュータプログラムの実行結果の確認を可能とすることにある。
【課題を解決するための手段】
【００１０】
開示の技術の一側面は、情報処理装置に以下の処理を実行させるプログラムによって例示できる。このプログラムは、プログラムを実行する情報処理装置に、第１の処理として、情報処理装置に対する操作者の操作情報を含む操作記録を記憶させ、操作者の特定の操作に応じて情報処理装置が出力する出力画面内で操作者の指定した特定領域の画面情報を記憶するとともに特定の操作がなされるまでの操作者の操作と画面情報とを関連づけるための画面参照情報を操作記録に設定させる。そして、このプログラムは、情報処理装置に、第２の処理として、操作記録を順次読み出させ、読み出した操作記録に含まれる操作情報にしたがってプログラムを実行させるとともに、画面参照情報を読み出したときに、画面情報を取得させ、画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の特定領域の情報と画面情報とを比較させる。 
【発明の効果】
【００１１】
本発明によれば、時間調整、あるいは画面修正等の煩雑な作業を低減して、コンピュータプログラムの実行結果の確認が可能となる。
【図面の簡単な説明】
【００１２】
【図１】情報処理装置のハードウェア構成を例示する図である。
【図２】情報処理装置の機能ブロック図を例示する図である。
【図３】情報処理装置におけるユーザの操作、ユーザ操作に応じたスクリプトの記録、および記録されたスクリプトの再生実行の処理を例示する図である。
【図４】操作記録部の処理を例示するフローチャートである。
【図５】スクリプト記録前の情報処理装置の画面の例である。
【図６】ＬＵの座標を指定するときの画面例である。
【図７】ＲＤの座標を指定するときの画面例である。
【図８】画像ファイルに保存される画像の例である。
【図９】ＧＵＩ自動化エンジンによるスクリプトの再生処理を例示するフローチャートである。
【図１０】再生処理を開始する前の情報処理装置の画面の例である。
【図１１】再生中の情報処理装置の画面の例である。
【図１２】ユーザ操作の例である。
【図１３】スクリプトの例である。
【図１４】コンピュータプログラムの実行時の２つの出力画面の相違点を例示する図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、一実施形態に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本情報処理装置は実施形態の構成には限定されない。本実施形態では、情報処理装置は、ＧＵＩを含む情報処理機能を提供する。また、情報処理装置は、ＧＵＩを含む情報処理において、ユーザ操作にしたがって、スクリプトを生成する。生成されたスクリプトは、情報処理装置の自動走行に用いられる。すなわち、情報処理装置は、ユーザ操作を受け付ける代わりに、スクリプトからユーザ操作を示すコマンドを取得し、取得したコマンドにしたがって情報処理を実行する。本実施形態では、キーボードあるいはマウス等の入力装置を用いたユーザ操作に代えて、スクリプトにしたがってプログラムを実行することを自動走行という。
【００１４】
図１に、情報処理装置１０のハードウェア構成を例示する。情報処理装置１０は、Central Processing Unit（ＣＰＵ）１１、主記憶装置１２、インターフェース１８を通じて
接続される外部機器を有し、プログラムにより情報処理を実行する。外部機器としては、外部記憶装置１３および通信インターフェース１４を例示できる。ＣＰＵ１１は、主記憶装置１２に実行可能に展開されたコンピュータプログラムを実行し、情報処理装置１０の機能を提供する。主記憶装置１２は、ＣＰＵ１１が実行するコンピュータプログラム、ＣＰＵ１１が処理するデータ等を記憶する。主記憶装置１２は、Dynamic Random Access Memory（ＤＲＡＭ）、Static Random Access Memory（ＳＲＡＭ）、Read Only Memory（Ｒ
ＯＭ）等である。さらに、外部記憶装置１３は、例えば、主記憶装置１２を補助する記憶領域として使用され、ＣＰＵ１１が実行するコンピュータプログラム、ＣＰＵ１１が処理するデータ等を記憶する。外部記憶装置１３は、ハードディスクドライブ、Solid State Disk（ＳＳＤ）等である。
【００１５】
また、情報処理装置１０は、入力装置１５、表示装置１６等によるユーザインターフェースを有するようにしてもよい。入力装置１５は、例えば、キーボード、ポインティングデバイス等である。本実施形態では、ポインティングデバイスとしてマウスが例示される。また、表示装置１６は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。さらに、情報処理装置１０は、着脱可能記憶媒体駆動装置１７を設けてもよい。着脱可能記憶媒体は、例えば、ブルーレイディスク、Digital Versatile Disk（ＤＶＤ）、Compact Disc（ＣＤ）、フラッシュメモリカード等である。なお、図３の例では、単一のインターフェース１８が例示されているが、インターフェース１８として複数種類のものが複数設けられてもよい。
【００１６】
図２に、情報処理装置１０の機能ブロック図を例示する。情報処理装置１０は、操作記録部２１、再生実行部２２、ＧＵＩ自動化エンジン２３等の機能ブロックを有する。これらの機能ブロックは、ＣＰＵ１１が主記憶装置１２に実行可能に展開されたコンピュータプログラムを実行することで、ＣＰＵ１１の処理としてユーザに利用される。操作記録部２１は、第１の処理部の一例である。再生実行部２２およびＧＵＩ自動化エンジン２３は、第２の処理部の一例である。
【００１７】
操作記録部２１は、ユーザのキーボード操作、およびマウス操作等、入力装置１５に対する操作を取得し、スクリプト３０を生成する。生成されたスクリプト３０は、例えば、外部記憶装置１３上のファイル等に記録される。スクリプト３０には、ユーザのキーボード操作、およびマウス操作等の他、情報処理装置１０の自動走行のための情報が設定される。したがって、スクリプト３０は、ユーザのキーボード操作、およびマウス操作等を記録したログ情報としての役割とともに、情報処理装置１０の自動走行のためのコマンドファイル、およびパラメータファイルとしての役割を有する。スクリプト３０は、操作記録
の一例である。スクリプト３０に含まれるユーザのキーボード操作、およびマウス操作等は操作情報の例である。本実施形態では、操作情報をコマンドという。
【００１８】
再生実行部２２は、スクリプト３０を読み取り、スクリプト３０の１コマンドごとにＧＵＩ自動化エンジン２３に引き渡す。ＧＵＩ自動化エンジン２３は、再生実行部２２から引き渡されるコマンドを解釈し、キーボード操作、マウス操作等を擬似的に実行する。擬似的に実行するとは、例えば、実際に入力装置１５を通じてキーボード操作、マウス操作を受け付ける代わりに、スクリプト３０のコマンドにしたがってキーボード操作、あるいはマウス操作がなされたことをOperating System(ＯＳ)に通知することをいう。したがって、情報処理装置１０は、再生実行部２２、ＧＵＩ自動化エンジン２３、およびＯＳを通じて、キーボード操作、マウス操作がなされた場合と同様の処理を実行する。さらに、ＧＵＩ自動化エンジン２３は、再生実行部２２から引き渡されるコマンドに応じて、確認用の画像の取得、ファイルとの入出力等を実行する。情報処理装置１０が、再生実行部２２およびＧＵＩ自動化エンジン２３を通じてスクリプト３０にしたがって、キーボード操作、マウス操作を擬似的に実行する処理をスクリプト３０の再生実行という。また、情報処理装置１０がスクリプト３０にしたがって再生実行する処理を情報処理装置１０によるプログラムの自動走行ともいう。
【００１９】
図３に、情報処理装置１０におけるユーザの操作と、ユーザ操作に応じたスクリプト３０の記録と、記録されたスクリプト３０の再生実行の処理とを例示する。図３では、３行のシーケンスＲ１、Ｒ２、Ｒ３が例示されている。Ｒ１は、例えば、情報処理装置１０でコンピュータプログラムのテスト実施中のユーザ操作を例示する。また、Ｒ２は、コンピュータプログラムのテスト実施中のユーザ操作に伴って生成され、記録されるスクリプト３０のコマンドを例示する。また、Ｒ３は、生成されたスクリプト３０にしたがった再生実行処理を例示する。
【００２０】
図３で、各行Ｒ１−Ｒ３の横軸は時間軸である。また、Ｒ１のユーザ操作と、Ｒ２のスクリプト３０の記録とは、横軸が共通であり、Ｒ１のユーザ操作と、Ｒ２の記録とが並列で実行される。
【００２１】
また、図３に示される文字は、以下のユーザ操作の模擬的実行を指示するコマンド、あるいは、情報処理装置１０への指示を示すコマンド、およびコマンドに伴うパラメータを示す。Ｋ：キーボード押下、Ｍ：マウス移動、Ｃ：マウスクリック、ＳＣＲ：Ｓｃｒｏｌｌ  Ｌｏｃｋ(以下、Ｓｃｒ−ＬＫ)、ＫＳ：シフトキー押下、画取：画像のLeft Upper (ＬＵ)、Right Down(ＲＤ)領域の画像取得、画名：画像保存ファイル名を示すパラメータ
、画比：画像比較の実行指示、画保：画像のファイルへの保存、画読：ファイルからの画像の読み込み。なお、図３のＳ１、Ｓ２等の符号は、図４および図９のフローチャートの各ステップの符号と対応している。
【００２２】
図３の行Ｒ１のシーケンスにおいて、ユーザは、コンピュータプログラムのテストを行うためにキーボード操作Ｋ、マウス移動Ｍ、マウスクリックＣによってテストを実行する。Ｒ１でＫ、Ｍ、Ｃの操作がされたときと同時刻に、行Ｒ２のシーケンスおいて、操作記録部２１は、操作の内容ＫＭＣを操作情報としてスクリプト３０に記録する。
【００２３】
一方、ユーザは、テスト中に画面変化待ち合わせるとき、Ｓｃｒｏｌｌ  Ｌｏｃｋ（以下Ｓｃｒ−ＬＫ）を操作する。Ｓｃｒ−ＬＫの入力により、ユーザはテストを行うプログラムの動作に関わる操作を中止する。画面上の表示の変化が停止すると、ユーザは、マウス移動Ｍ、シフトキー押下ＫＳ、さらに、マウス移動Ｍ、シフトキー押下ＫＳを実行する。Ｓｃｒ−ＬＫの入力後、最初のシフトキー押下ＫＳによって、情報処理装置１０に画像の左上ＬＵの座標が指定される。また、次のシフトキー押下ＫＳによって、情報処理装置
１０に画像の右下ＲＤの座標が指定される。そして、次のＳｃｒ−ＬＫの入力により、ユーザはテストを行うプログラムの動作に関わる操作を再開する。以下、行Ｒ１のシーケンスでは、同様に、Ｋ、Ｍ、Ｃの操作が繰り返される。Ｓｃｒ−ＬＫが特定の操作の一例である。
【００２４】
一方、ユーザがＳｃｒ−ＬＫを入力すると、操作記録部２１は、画像取得を示す“画取”をスクリプト３０に記録する。さらに、操作記録部２１は、シフトキーＫＳ押下以外の操作、例えば、マウス移動Ｍを無視する。そして、操作記録部２１は、シフトキーが押されたときのマウスカーソルの位置を画像左上座標（ＬＵ）としてスクリプト３０に記録する。また、操作記録部２１は、２回目のシフトキーまで、シフトキーＫＳ押下以外の操作を無視する。そして、２回目のシフトキーが押されたときのマウスカーソルの位置を画像右下座標（ＲＤ）としてスクリプト３０に記録する。画像左上座標（ＬＵ）と右下座標（ＲＤ）とによって指定される領域が特定領域の一例である。
【００２５】
さらに、操作記録部２１は、現在時刻と、現在時刻において画面に表示されているＬＵ−ＲＬの矩形領域の画像とを取得する。そして、操作記録部２１は、取得した現在時刻の文字列を含むファイル名の画像ファイルに画像を保存する。なお、図３の”画保”は、画像ファイルに画像を保存する処理を示している。操作記録部２１は、保存した画像ファイル名のファイルと表示中の画像を比較するコマンド“画比”をスクリプト３０に記録する。
【００２６】
ユーザは、画像比較位置をマウスの２回のクリック操作で指定した後、Ｓｃｒ−ＬＫを操作する。操作記録部２１は、２回目のＳｃｒ−ＬＫが押下されると、以降のＫＭＣの操作を取得し、スクリプト３０に記録する。ユーザは以上のような操作を繰り返し行い、コンピュータプログラムのテストを完了させる。
【００２７】
図３の行Ｒ３は、スクリプト３０の再生実行、すなわち、情報処理装置１０の自動走行のシーケンスを示す。行Ｒ３の横軸の時刻は、スクリプト再生時の時刻であり、行Ｒ１、Ｒ２とは、通常は異なる時刻となる。情報処理装置１０の自動走行は、図３の行Ｒ２で記録したスクリプト３０のコマンドにしたがって、情報処理装置１０がコンピュータプログラムを実行する処理である。スクリプト３０に記録されたＫＭＣについては、記録された通りに、情報処理装置１０のＧＵＩ自動化エンジン２３により情報処理装置１０のＯＳに報告される。
【００２８】
再生実行部２２は、コマンド“画取”をスクリプト３０中で読み取ると、さらに、ＬＵ、ＲＤの座標をおよび画像が記録されている画像ファイル名をスクリプト３０から取得する。そして、画像比較を示すコマンド“画取”と、ＬＵ、ＲＤの座標と、画像ファイル名をＧＵＩ自動化エンジン２３に引き渡す。さらに、再生実行部２２は、コマンド“画比”をスクリプト３０中で読み取ると、ＧＵＩ自動化エンジン２３に引き渡し、画像の比較を指示する。
【００２９】
ＧＵＩ自動化エンジン２３は、コマンド“画取”を受け取ると、現在の表示画面からＬＵ、ＲＤの座標で指定される領域の画像を取得する。次に、ＧＵＩ自動化エンジン２３は、記録されている画像ファイルから、画像ファイルに保存されている画像を読み出す。そして、ＧＵＩ自動化エンジン２３は、コマンド“画比”を受け取ると、画像の比較を実行する。
【００３０】
なお、図３の”画名”は、画像ファイル名を示している。また、図３の”画読”は、画像ファイルから画像を読み出す処理を示している。図３のシーケンスでは、コマンド“画取”によって、画面上の画像の取得、画像ファイルからの画像の読み出しを実行し、コマ
ンド”画比”によって画像の比較を実行する。ただし、例えば、”画取”、”画名”、”画読”、”画比”のような３以上のコマンドにしたがって、上記処理を実行してもよい。また、逆に、”画取”、”画名”、”画読”、”画比”というコマンドをひとまとめにして、１つのコマンドで上記処理を実行してもよい（図１３参照）。画面上の画像の取得、画像ファイルからの画像の読み出しを指示するコマンド”画取”と、画像の比較を指示するコマンド”画比”と、これらのコマンドともに指定されるパラメータである、画像ファイル名、ＬＵ−ＲＤの座標等が、画面参照情報の一例である。
【００３１】
さらに、図９で後述するように、ＧＵＩ自動化エンジン２３は、画面変化を待ち合わせるため、タイムアウトまでの期間、繰り返し画像を比較する処理を実行し、その後、さらに、スクリプト３０のコマンドＫＭＣにしたがってテストを実行する。
【００３２】
図４に、操作記録部２１の処理を例示する。図４の処理では、操作記録部２１は、ユーザによるＫＭＣの操作を受け付ける（Ｓ１）。そして、操作記録部２１は、受け付けた操作がキーボード押下であるとき、押下されたキーＫがＳｃｒ−ＬＫであるか、否かを判定する（Ｓ２）。そして、押下されたキーＫがＳｃｒ−ＬＫでない場合には、操作記録部２１は、Ｓ１に戻ってＫＭＣの操作を受け付ける。
【００３３】
一方、Ｓ２の判定で、押下されたキーＫがＳｃｒ−ＬＫである場合には、操作記録部２１は、スクリプト３０にコマンド"画取"を記録する（Ｓ４）。そして、操作記録部２１は、シフトキー押下ＫＳを待つ（Ｓ５）。シフトキーが押下されると、操作記録部２１は、マウスカーソルの位置から、位置ＬＵをスクリプト３０に記録する（Ｓ６）。さらに、操作記録部２１は、次のシフトキー押下ＫＳを待つ（Ｓ７）。シフトキーが押下されると、操作記録部２１は、マウスカーソルの位置から、位置ＲＤをスクリプト３０に記録するとともに、現在の表示画面上のＬＵ−ＲＤで指定される領域の画像を取得する（Ｓ８）。さらに、操作記録部２１は、画像取得した時刻を例えばＯＳから取得する（Ｓ９）。
【００３４】
そして、操作記録部２１は、時刻含む文字列のファイル名のファイルに画像を保存する（Ｓ１０）。このとき、操作記録部２１は、スクリプト３０にコマンド"画名"を記録してもよい。さらに、操作記録部２１は、スクリプト３０にコマンド"画比"を記録する（Ｓ１１）。そして、操作記録部２１は、Ｓｃｒ−ＬＫの押下を待つ（Ｓ１２）。Ｓｃｒ−ＬＫが押下されると、操作記録部２１は、Ｓ１に戻ってＫＭＣの操作を受け付ける。なお、図４の処理は、テストの停止指示、例えば、メニュー上の終了の選択などによって終了する。
【００３５】
図５は、図４の処理を開始する時点、すなわち、スクリプト３０記録前の情報処理装置１０の画面の例である。図５の画面には、図１４と同様、時刻、およびメニューバー領域が含まれている。時刻の表示は時の経過にしたがって変化する。また、メニューバー領域は、ユーザの画面設定操作に応じて、変化し得る。
【００３６】
図６は、ユーザがマウスカーソルと、シフトキーによって、ＬＵの座標を指定するときの画面例である。また、図７は、ユーザがマウスカーソルと、シフトキーによって、ＲＤの座標を指定するときの画面例である。図６、図７の例では、画面上で、コンピュータプログラムの実行によって表示されるウィンドウ画面で、時刻あるいは画面設定状態に依存しない部分が選択されている。
【００３７】
図８は、ＬＵ−ＲＤ座標によって指定された、画像ファイルに保存される画像の例である。図８の例では、例えば、ＫＭＣのユーザ操作にしたがって表示されるコンピュータプログラムの画面のうち、時刻あるいは画面設定状態に依存しない部分が保存されることが分かる。
【００３８】
図９に、ＧＵＩ自動化エンジン２３によるスクリプト３０の再生処理を例示する。図９の処理では、ＧＵＩ自動化エンジン２３は、再生実行部２２から１行ずつスクリプト３０のコマンドを引き渡され、再生処理を実行する。以下、再生実行部２２からスクリプト３０のコマンドを引き渡されることを単にスクリプト３０のコマンドを読むという。
【００３９】
まず、ＧＵＩ自動化エンジン２３は、スクリプト３０を読み出した結果がＥＯＦ（End Of File）であるか否かを判定する（Ｓ２１）。ＥＯＦを読み出すと、ＧＵＩ自動化エン
ジン２３は、再生処理を終了する。一方、ＥＯＦでない場合、ＧＵＩ自動化エンジン２３は、スクリプト３０の次の１行を読む（Ｓ２２）。そして、ＧＵＩ自動化エンジン２３は、読み出した行のコマンドが”Ｋ”すなわち、キーボードの押下か否かを判定する（Ｓ２３）。読み出した行のコマンドが”Ｋ”である場合、ＧＵＩ自動化エンジン２３は、キーボードの押下を擬似的に実行する（Ｓ２４）。
【００４０】
また、ＧＵＩ自動化エンジン２３は、読み出した行のコマンドが”Ｍ”すなわち、マウスの移動か否かを判定する（Ｓ２５）。読み出した行のコマンドが”Ｍ”である場合、ＧＵＩ自動化エンジン２３は、マウスの移動を擬似的に実行する（Ｓ２６）。
【００４１】
また、ＧＵＩ自動化エンジン２３は、読み出した行のコマンドが”Ｃ”すなわち、マウスのクリックか否かを判定する（Ｓ２７）。読み出した行のコマンドが”Ｃ”である場合、ＧＵＩ自動化エンジン２３は、マウスのクリックを擬似的に実行する（Ｓ２６）。
【００４２】
また、ＧＵＩ自動化エンジン２３は、読み出した行のコマンドが”画取”すなわち、画像の取得か否かを判定する（Ｓ２９）。読み出した行のコマンドが”画取”である場合、ＧＵＩ自動化エンジン２３は、Ｓ３０に制御を進める。一方、読み出した行のコマンドが”画取”でない場合、ＧＵＩ自動化エンジン２３は、Ｓ２１に制御を戻す。なお、Ｓ２３、Ｓ２５、Ｓ２７、Ｓ２９の判定の順序が図９に限定される訳ではない。
【００４３】
Ｓ３０において、ＧＵＩ自動化エンジン２３は、画像ファイル名をスクリプトのコマンドから再生実行部２２を介して取得する。そして、ＧＵＩ自動化エンジン２３は、画像ファイル名のファイルから画像を読む
次に、ＧＵＩ自動化エンジン２３は、さらに、ＬＤ−ＲＵの座標をスクリプトのコマンドから再生実行部２２を介して取得する。そして、ＧＵＩ自動化エンジン２３は、ＬＤ−ＲＵの座標で指定される表示画面上の領域から、画像を取得する（Ｓ３１）。そして、ＧＵＩ自動化エンジン２３は、表示画面から取得した画像と、画像ファイルから読み込んだ画像を比較する（Ｓ３２）。そして、ＧＵＩ自動化エンジン２３は、比較の結果、２つの画像が一致するか否かを判定する（Ｓ３３）。
【００４４】
Ｓ３３の判定の結果、２つの画像が一致した場合には、ＧＵＩ自動化エンジン２３は、制御をＳ２１に戻す。一方、２つの画像が一致しない場合には、ＧＵＩ自動化エンジン２３は、比較のタイムアウトか否かを判定する（Ｓ３４）。比較のタイムアウトとは、Ｓ３１−Ｓ３４の処理を実行可能な時間を制限する制限時間を超えたことをいう。そして、ＧＵＩ自動化エンジン２３は、比較のタイムアウトになるまで、Ｓ３１−Ｓ３３の処理を繰り返す。そして、タイムアウトになると、画像比較でエラーが発生したことを表示する（Ｓ３５）。
【００４５】
Ｓ３１−Ｓ３４の処理を繰り返すことで、再生中の情報処理装置１０の環境、負荷等によって、画面表示が遅れた場合も、比較のタイムアウトまでの範囲で、表示画面から取得する画像と、画像ファイルに保存された画像との同期を取ることが可能となる。Ｓ３１−Ｓ３４の処理が、比較する処理を繰り返し実行する処理の一例である。
【００４６】
図１０は、図９の再生処理を開始する前の情報処理装置１０の画面の例である。図１０の画面には、図５と同様、時刻、およびメニューバー領域が含まれている。一方、図１１は、再生中の情報処理装置１０の画面の例である。図１１の画面中、ＬＵ−ＲＤの座標で指定される表示画面上の領域が画像の比較の対象となる。したがって、図１０の画面で例示される、時刻、およびメニューバー領域等、時の経過、あるいは、情報処理装置１０の設定状態で変化する部分は除外されて、画面の比較が行われる。
【００４７】
図１２は、ユーザが入力装置１５によって入力したユーザ操作の例である。情報処理装置１０の操作記録部２１は、入力装置１５から入力されるユーザ操作を検出し、コマンドとして、情報処理装置１０の自動走行のための指示とともにスクリプト３０に記録する。コマンドとして記録されるユーザ操作としては、マウス移動、マウスボタン操作（左右のボタンの種類、座標値）、キーボード操作（キーの種類、Ｓｃｒ−ＬＫとシフトキーを除く）等がある。なお、本実施形態では、キーボード操作のうちシフトキーの押下とＳｃｒ−ＬＫの押下については、自動走行のためのコマンド設定の指示として使用されるが、シフトキーの押下とＳｃｒ−ＬＫの押下は、スクリプト３０に設定されない。
【００４８】
図１３は、操作記録部２１が生成し記録するスクリプト３０の例である。マウス移動、マウスボタン操作（左右のボタンの種類、座標値）、キーボード操作（Ｓｃｒ−ＬＫとシフトキーを除く）等については、そのままスクリプト３０に記録される。
【００４９】
なお、図３、図４では、Ｓｃｒ−ＬＫキーの押下によって、スクリプト３０に”画取”が記録され、Ｓｃｒ−ＬＫキーに続くシフトキーで画面上のマウスカーソルの座標ＬＵが記録され、さらに次のシフトキーで画面上のマウスカーソルの座標ＲＤが記録され、さらにＳｃｒ−ＬＫキーの押下によって”画比”が記録される。しかし、図１３の例では、”画取”と”画比”は、ＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳという１つのコマンドとコマンド内のパラメータに変換されている。図１３のＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳコマンドとコマンド内のパラメータが画面参照情報の一例である。
【００５０】
また、コマンドＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳの第１の引数”Ｗ”は、ＷＡＩＴを指定する。この指定がされると、スクリプト再生時、ＧＵＩ自動化エンジン２３は、タイムアウトの発生を限度として、画像が一致するまで、画像の比較を継続する。コマンドＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳの第１の引数は、画像ファイル名である。第３引数から第６引数までは、それぞれＬＤ座標（Ｘ、Ｙ）、ＲＤ座標（Ｘ，Ｙ）である。ただし、スクリプト３０は、図１３のような書式に限定される訳ではなく、”画取”、”画比”等のコマンドをそのまま記録するようにしてもよい。図１３では、ＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳコマンドの設定前に記録されているマウス操作、キーボード操作を示すコマンドが、画像のＬＵ−ＲＤ座標、および画像のファイル名と関連づけされている。
【００５１】
さらに、図１３のスクリプト３０では、コマンドＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳの実行後、タイムアウトの発生確認、およびタイムアウト時のエラーメッセージの表示が設定されている。なお、図１３のスクリプト３０で、マウス操作、キーボード操作の記録の後に挿入されているコマンドＣＡＬＬ．ＣＨＫ＿ＳＴＲ．ＵＷＳは、文字列を比較するコマンドである。文字列の比較のコマンドについては、説明を省略する。
【００５２】
さらにまた、図１３の例では、画像の比較を実行するためのコマンドＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳが１つ設定されているが、画像の比較の実行回数に制限はない。すなわち、スクリプト３０内に、マウス移動、マウスボタン操作（左右のボタンの種類、座標値）、キーボード操作（Ｓｃｒ−ＬＫとシフトキーを除く）等と、画像の比較を実行するためのコマンドＣＡＬＬ．ＣＨＫ＿ＩＭＧ．ＵＷＳとの組みあわせを複数組み記録してもよ
い。すなわち、１つのスクリプト３０内で、多数の画面の遷移を伴うコンピュータプログラムの自動走行を行い、その結果として出力される複数の画面を確認するようにしてもよい。
【００５３】
さらに、本実施形態では、Ｓｃｒ−ＬＫとシフトキーとによって表示画面の指定領域が取得されたが、Ｓｃｒ−ＬＫとシフトキーに代えて他のキーを用いてもよい。また、例えば、マウスの右ボタンによってポップアップメニュー等から、表示画面の指定領域を取得するようにしてもよい。
【００５４】
以上述べたように、本実施形態の情報処理装置１０によれば、コンピュータプログラムのテスト等におけるユーザ操作を検出し、スクリプト３０に記録するとともに、画面上の確認対象部分のＬＵ−ＲＤの座標の操作を受け付ける。さらに、ＬＵ−ＲＤの座標の操作を受け付けに際し、Ｓｃｒ−ＬＫキーの押下によって表示画面を一旦停止させる。そして、表示画面が停止した状態で、ＬＵ−ＲＤの座標で指定された表示画面の部分画像を取得し、現在の時刻を文字列に含むファイル名の画像ファイルに保存する。そして、スクリプト３０内に、画像ファイル名とＬＵ−ＲＤの座標として指定し、画像比較のコマンドをスクリプト３０に設定する。
【００５５】
以上のような画像比較の指定は、ユーザ操作を検出し、スクリプト３０に記録する処理の途中で、Ｓｃｒ−ＬＫ等の特定のキーの押下によって設定することができる。
【００５６】
従来のコンピュータプログラムの自動走行のため処理では、自動走行結果の確認のため、自動走行によって生成される画面との比較のための画像を別途ユーザが加工して作成していた。情報処理装置３０によれば、コンピュータプログラムのテストの実行中に、比較のための画像を指定することが可能になり、コンピュータプログラムのテストが終了した時点でコンピュータプログラムを自動走行するためのユーザ操作と画像比較の指示を含むスクリプト３０が作成できる。その際、ユーザは、所望の時点で、実行中のコンピュータプログラムによる情報処理装置１０の表示画面を停止し、停止した表示画面上の所望の部分を指定できる。さらに、自動走行中にタイムアウトが発生するまで、画像の比較を繰り返し実行し、自動走行時の表示画像と、画像ファイルに保存された比較対照用の画像との同期、待ち合わせを実行できる。
【００５７】
したがって、一度コンピュータプログラムのテストが終了すると、別途比較のための画像を準備することなく、繰り替えしテストを実行することが可能になる。
【００５８】
なお、本実施形態で説明した情報処理装置１０の操作記録部２１、再生実行部２２、およびＧＵＩ自動化エンジン２３の処理は、コンピュータプログラムのテストに限定される訳ではなく、情報処理装置１０での種々のコンピュータプログラムの自動走行に適用できる。例えば、コンピュータプログラムのデモンストレーション等において、チェックポイントでの実行状況の確認等に本実施形態の処理を適用してもよい。
【００５９】
また、本実施形態では、再生実行部２２、およびＧＵＩ自動化エンジン２３によって、自動走行を実行したが、再生実行部２２とＧＵＩ自動化エンジン２３とが一体となっていてもよい。
【００６０】
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【００６１】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。
【００６２】
《その他》
（付記１）
プログラムを実行する情報処理装置に対する操作者の操作情報を含む操作記録を記憶し、前記操作者の特定の操作がなされたときに、前記情報処理装置が出力する出力画面内で前記操作者が指定した特定領域の画面情報を記憶するとともに前記特定の操作がなされるまでの前記操作者の操作と前記画面情報とを関連づけるための画面参照情報を前記操作記録に設定する第１の処理と、
前記操作記録を順次読み出し、前記読み出した操作記録に含まれる操作情報にしたがって前記プログラムを実行するとともに、前記画面参照情報を読み出したときに、前記画面情報を取得し、前記画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の前記特定領域の情報と前記画面情報とを比較する第２の処理と、を情報処理装置に実行させるためのプログラム。
【００６３】
（付記２）
前記情報処理装置に、前記第１の処理では、前記特定の操作に応じて、前記出力画面上の表示の変化を停止させ、
前記第２の処理では、所定の期間、前記画面情報を取得して前記特定領域の情報と前記画面情報とを比較する処理を繰り返し実行させる付記１に記載のプログラム。
【００６４】
（付記３）
情報処理装置が、プログラムを実行する前記情報処理装置に対する操作者の操作情報を含む操作記録を記憶し、前記操作者の特定の操作がなされたときに、前記情報処理装置が出力する出力画面内で前記操作者が指定した特定領域の画面情報を記憶するとともに前記特定の操作がなされるまでの前記操作者の操作と前記画面情報とを関連づけるための画面参照情報を前記操作記録に設定する第１の工程と、
前記操作記録を順次読み出し、前記読み出した操作記録に含まれる操作情報にしたがって前記プログラムを実行するとともに、前記画面参照情報を読み出したときに、前記画面情報を取得し、前記画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の前記特定領域の情報と前記画面情報とを比較する第２の工程と、を実行する情報処理方法。
【００６５】
（付記４）
前記情報処理装置は、前記第１の工程では、前記特定の操作に応じて、前記出力画面上の表示の変化を停止させ、
前記第２の工程では、所定の期間、前記画面情報を取得して前記特定領域の情報と前記画面情報とを比較する処理を繰り返し実行する付記３に記載の情報処理方法。
【００６６】
（付記５）
プログラムを実行する情報処理装置に対する操作者の操作情報を含む操作記録を記憶し、前記操作者の特定の操作がなされたときに、前記情報処理装置が出力する出力画面内で前記操作者が指定した特定領域の画面情報を記憶するとともに前記特定の操作がなされる
までの前記操作者の操作と前記画面情報とを関連づけるための画面参照情報を前記操作記録に設定する第１の処理部と、
前記操作記録を順次読み出し、前記読み出した操作記録に含まれる操作情報にしたがって前記プログラムを実行するとともに、前記画面参照情報を読み出したときに、前記画面情報を取得し、前記画面参照情報が読み出される前に読み出された操作情報にしたがって出力される出力画面上の前記特定領域の情報と前記画面情報とを比較する第２の処理部と、を備える情報処理装置。
【００６７】
（付記６）
前記第１の処理部は、前記特定の操作に応じて、前記出力画面上の表示の変化を停止させ、
前記第２の処理部は、所定の期間、前記画面情報を取得して前記特定領域の情報と前記画面情報とを比較する処理を繰り返し実行する付記５に記載の情報処理装置。
【符号の説明】
【００６８】
１０  情報処理装置
１１  ＣＰＵ  
１２    主記憶装置
１３  外部記憶装置
１５  入出力装置
２１  操作記録部
２２  再生実行部
２３  ＧＵＩ自動化エンジン  
【図１】
2013143044.tif 000003
【図２】
2013143044.tif 000004
【図３】
2013143044.tif 000005
【図４】
2013143044.tif 000006
【図５】
2013143044.tif 000007
【図６】
2013143044.tif 000008
【図７】
2013143044.tif 000009
【図８】
2013143044.tif 000010
【図９】
2013143044.tif 000011
【図１０】
2013143044.tif 000012
【図１１】
2013143044.tif 000013
【図１２】
2013143044.tif 000014
【図１３】
2013143044.tif 000015
【図１４】
2013143044.tif 000016