(57)【要約】【課題】ＧＵＩ上の自動操作について、期待通りの結果が得られたのか否かを検証するためには、ユーザが目視もしくはそれに近い方法で確認する必要があり、ユーザの手作業が発生している。【解決手段】本発明にかかるデータ記録装置は、自動操作にかかるＧＵＩプログラムからデータを取得し、再現手順データを生成する。ユーザは、再現手順データを用いることで、ＧＵＩ上の自動操作の検証において手作業を削減する。【選択図】図７
2020166773.tif 000002
【特許請求の範囲】
【請求項１】
自動操作にかかる手順データを記憶する手順記憶部に記憶された前記手順データに基づいて、ＧＵＩプログラムを自動操作する自動操作部と、
前記自動操作にかかるＧＵＩ上のウィンドウおよびコントロールコンポーネントの情報、前記コントロールコンポーネントの入力内容を、時系列に収集する取得部と、
前記取得部が収集したデータ、前記ＧＵＩプログラムから収集したウィンドウ識別情報、前記ＧＵＩプログラムから収集したコントロールコンポーネント識別情報を用いて、前記手順データと同形式の再現手順データを生成する再現手順生成部と、
を備えるデータ記録装置。
【請求項２】
前記取得部は、自動操作にかかるＧＵＩ上のポインタの座標、前記ＧＵＩ上のウィンドウの座標、前記ウィンドウのコントロールコンポーネントの座標、前記コントロールコンポーネントの入力内容を、時系列に収集する
請求項１に記載のデータ記録装置。
【請求項３】
前記手順データと前記再現手順データを対照し、前記手順データを検証する対照検証部を備える
請求項１または請求項２に記載のデータ記録装置。
【請求項４】
前記再現手順生成部のデータと、前記ＧＵＩプログラムから収集した最前面ウィンドウの情報に基づいて、前記手順データを検証する座標検証部を備える
請求項１から請求項３のいずれか１項に記載のデータ記録装置。
【請求項５】
自動操作にかかる手順データを記憶する手順記憶部に記憶された前記手順データに基づいて、ＧＵＩプログラムを自動操作するステップ、
前記自動操作にかかるＧＵＩ上のウィンドウおよびコントロールコンポーネントの情報、前記コントロールコンポーネントの入力内容を、時系列に収集するステップ、
前記時系列に収集されたデータ、前記ＧＵＩプログラムから収集したウィンドウ識別情報、前記ＧＵＩプログラムから収集したコントロールコンポーネント識別情報を用いて、前記手順データと同形式の再現手順データを生成するステップ、
を有するデータ記録方法。
【請求項６】
コンピュータを、
自動操作にかかる手順データを記憶する手順記憶部に記憶された前記手順データに基づいて、ＧＵＩプログラムを自動操作する自動操作部、
前記自動操作にかかるＧＵＩ上のウィンドウおよびコントロールコンポーネントの情報、前記コントロールコンポーネントの入力内容を、時系列に収集する取得部、
前記取得部が収集したデータ、前記ＧＵＩプログラムから収集したウィンドウ識別情報、前記ＧＵＩプログラムから収集したコントロールコンポーネント識別情報を用いて、前記手順データと同形式の再現手順データを生成する再現手順生成部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記録装置、データ記録方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、操作画面の表示を伴うアプリケーションプログラムを対象とした操作において、操作の画面の情報を採取して再現することにより、操作シナリオの作成作業を省力化でき、負荷試験の作業効率を向上できる技術が開示されている。
特許文献２には、画面におけるユーザ操作をアクション単位で記録し、ユーザの操作を再演させ、ユーザ操作をアクション単位で突き合わせて相互チェックすることで、操作対象ＡＰ（Ａｐｐｌｉｃａｔｉｏｎ）や適用対象ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）の変化による影響を検出することにより、操作対象ＡＰや適用対象ＰＣが変化しても対応可能な自動操作エージェントを提供する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０３２０９９号公報
【特許文献２】特開２０１５−００５２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）上の自動操作は定型業務の人手を削減できるメリットがあるため、多く利用されている。
しかし、特許文献１−２に記載の技術のように、ＧＵＩ上の自動操作について、期待通りの結果が得られたのか否かを検証するためには、ユーザが目視もしくはそれに近い方法で確認する必要があり、ユーザの手作業が発生している。
本発明の目的は、ＧＵＩ上の自動操作の検証において手作業を削減できるデータ記録装置、データ記録方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の第１態様によれば、データ記録装置は、自動操作にかかる手順データを記憶する手順記憶部に記憶された前記手順データに基づいて、ＧＵＩプログラムを自動操作する自動操作部と、前記自動操作にかかるＧＵＩ上のウィンドウおよびコントロールコンポーネントの情報、前記コントロールコンポーネントの入力内容を、時系列に収集する取得部と、前記取得部が収集したデータ、前記ＧＵＩプログラムから収集したウィンドウ識別情報、前記ＧＵＩプログラムから収集したコントロールコンポーネント識別情報を用いて、前記手順データと同形式の再現手順データを生成する再現手順生成部を備える。
本発明の第２態様によれば、データ記録方法は、自動操作にかかる手順データを記憶する手順記憶部に記憶された前記手順データに基づいて、ＧＵＩプログラムを自動操作するステップ、前記自動操作にかかるＧＵＩ上のウィンドウおよびコントロールコンポーネントの情報、前記コントロールコンポーネントの入力内容を、時系列に収集するステップ、前記時系列に収集されたデータ、前記ＧＵＩプログラムから収集したウィンドウ識別情報、前記ＧＵＩプログラムから収集したコントロールコンポーネント識別情報を用いて、前記手順データと同形式の再現手順データを生成するステップを有する。
本発明の第３態様によれば、プログラムは、コンピュータを、自動操作にかかる手順データを記憶する手順記憶部に記憶された前記手順データに基づいて、ＧＵＩプログラムを自動操作する自動操作部、前記自動操作にかかるＧＵＩ上のウィンドウおよびコントロールコンポーネントの情報、前記コントロールコンポーネントの入力内容を、時系列に収集する取得部、前記取得部が収集したデータ、前記ＧＵＩプログラムから収集したウィンドウ識別情報、前記ＧＵＩプログラムから収集したコントロールコンポーネント識別情報を用いて、前記手順データと同形式の再現手順データを生成する再現手順生成部として機能させる。
【発明の効果】
【０００６】
本発明によれば、手順データに基づいたＧＵＩ上の自動操作の内容を記録して、自動操作の再現手順を生成するため、手順と再現手順をユーザが対照することで、ＧＵＩ上の自動操作について期待通りの結果が得られたのか否かを検証でき、自動操作の検証における手作業を削減できる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るデータ記録装置の構成を示す概略ブロック図である。
【図２】第１の実施形態に係るデータ記録装置の動作を示すフローチャートである。
【図３】第１の実施形態に係るデータ記録装置の手順データの例示である。
【図４】第１の実施形態に係るデータ記録装置の取得部が取得したデータの例示である。
【図５】第１の実施形態に係るデータ記録装置の再現手順データの例示である。
【図６】第１の実施形態に係るデータ記録装置の座標検証部の検証の例示である。
【図７】データ記録装置の基本構成を示す概略ブロック図である。
【図８】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【０００８】
〈第１の実施形態〉
以下、図面を参照しながら本発明の第１実施形態について詳しく説明する。
【０００９】
《データ記録システムの構成》
図１は、第１の実施形態に係るデータ記録システム１０の構成を示す概略ブロック図である。データ記録システム１０とは、データ記録装置１００と、手順記憶部２００と、ＧＵＩプログラム記憶部３００を備えるシステムである。
【００１０】
手順記憶部２００は、自動操作部１１０の自動操作にかかる手順データを記憶する。例えば、手順データとは、イベントごとに、時系列に、自動操作にかかる各ウィンドウ識別情報および各コントロールコンポーネント識別情報、コントロールコンポーネントの入力内容のデータがある。コントロールコンポーネントとは、例えば、テキストボックス、チェックボックス、ボタンがある。
ＧＵＩプログラム記憶部３００とは、グラフィックにてユーザにインタフェースを表すプログラムを記憶する記憶部である。ＧＵＩプログラム記憶部３００が記憶するＧＵＩプログラムは、自動操作部１１０によって自動操作できる。
【００１１】
《データ記録装置の構成》
データ記録装置１００とは、自動操作部１１０と、取得部１２０と、再現手順生成部１３０と、対照検証部１４０と、座標検証部１５０を備える装置である。
【００１２】
自動操作部１１０とは、手順記憶部２００が記憶する手順データに基づいて、ＧＵＩプログラム記憶部３００が記憶するＧＵＩプログラムを自動操作する部である。
例えば、自動操作部１１０は、手順記憶部２００の手順データに記載された各ウィンドウ識別情報および各コントロールコンポーネント識別情報により、入力内容にかかる各ウィンドウおよび各コントロールコンポーネントを特定する。上述の特定の後に、自動操作部１１０は、手順記憶部２００の手順データに記載されているイベントごとの時系列順に、ＧＵＩ上にポインタを動かしながら、上述により特定された各ウィンドウおよび各コントロールコンポーネントを対象に、手順記憶部２００の手順データに記載されている入力内容を入力する。
【００１３】
取得部１２０とは、自動操作部１１０の自動操作にかかるＧＵＩ上のポインタの座標、ＧＵＩ上のウィンドウの座標、ウィンドウのコントロールコンポーネントの座標、コントロールコンポーネントの入力内容を、時系列に収集する部である。
【００１４】
例えば、取得部１２０は、ポインタの位置が変わるたびに、時系列に、ＧＵＩの左上端を原点とするポインタの座標を、ＧＵＩプログラム記憶部３００から取得することで、ポインタの座標を収集する。
【００１５】
例えば、取得部１２０は、ウィンドウの位置が変わるたびに、時系列に、ＧＵＩの左上端を原点とするウィンドウの左上端および右下端の座標を、ＧＵＩプログラム記憶部３００から取得することで、ウィンドウの座標を収集する。
【００１６】
例えば、取得部１２０は、上述のウィンドウ上のコントロールコンポーネントごとに、コントロールコンポーネントが属するウィンドウの左上端を原点とするコントロールコンポーネントの左上端および右下端の座標を、ＧＵＩプログラム記憶部３００から収集し、コントロールコンポーネントの相対座標を算出する。
上述したコントロールコンポーネントの相対座標を算出する方法は、以下の方法がある。
まず、取得部１２０は、上述のウィンドウ上のコントロールコンポーネントごとに、ＧＵＩの左上端を原点とするコントロールコンポーネントの左上端および右下端の座標を、ＧＵＩプログラム記憶部３００から収集する。
さらに、取得部１２０は、上述したコントロールコンポーネントの左上端および右下端の座標から、上述したコントロールコンポーネントの属するウィンドウの左上端の座標を減算する。これにより、取得部１２０は、コントロールコンポーネントの左上端および右下端の相対座標を算出する。
その後、取得部１２０は、ウィンドウおよびコントロールコンポーネントの組み合わせごとに一意の通し番号を付与する。通し番号は、例えば、アルファベット、数字を用いることができる。
【００１７】
例えば、取得部１２０は、時系列に、ＧＵＩプログラム記憶部３００からのコマンド内容を収集することにより、コントロールコンポーネントの入力内容を収集する。
【００１８】
再現手順生成部１３０は、取得部１２０のデータと、ＧＵＩプログラム記憶部３００から収集したウィンドウ識別情報およびコントロールコンポーネント識別情報を用いて、手順記憶部２００の手順データと同形式の再現手順データを生成する。ここで、識別情報は、ＧＵＩプログラムによって、規定されたものである。
例えば、上述した再現手順データの生成方法として、以下の方法が挙げられる。
【００１９】
再現手順生成部１３０は、各コントロールコンポーネントの入力の直前のポインタの座標を用いて、上述の入力にかかるウィンドウおよびコントロールコンポーネントの識別情報を特定する。
【００２０】
例えば、再現手順生成部１３０が、入力されたコントロールコンポーネントが属するウィンドウの識別情報を特定する方法は、以下の方法がある。
再現手順生成部１３０は、自動操作の後かつコントロールコンポーネントの入力の直前までに再現手順生成部１３０が座標を取得した各ウィンドウのうち、上述のポインタのＸ座標が、ウィンドウの最新左上端のＸ座標以上で且つ最新右下端のＸ座標以下であり、および、上述の直前のポインタのＹ座標が、ウィンドウの最新左上端のＹ座標以下で且つ最新右下端のＹ座標以上であるウィンドウを特定する。ここで、Ｘ座標とは横軸の座標、Ｙ座標とは縦軸の座標を意味する。
その後、再現手順生成部１３０は、上述の特定されたウィンドウの座標情報を用いてウィンドウの範囲を特定する。再現手順生成部１３０は、上述のウィンドウの範囲に基づいて、ＧＵＩプログラム記憶部３００からウィンドウの識別情報を収集し、ウィンドウの識別情報を特定する。これにより、再現手順生成部１３０は、コントロールコンポーネントの入力にかかるコントロールコンポーネントが属するウィンドウの識別情報を特定する。
【００２１】
再現手順生成部１３０が、入力されたコントロールコンポーネントの識別情報を特定する方法は、例えば、以下の方法がある。
【００２２】
コントロールコンポーネントの入力が、クリック入力である場合は、再現手順生成部１３０は、以下の方法で入力されたコントロールコンポーネントの識別情報を特定する。
再現手順生成部１３０は、コントロールコンポーネントのクリック入力の直前のポインタの座標から、入力にかかるウィンドウの最新左上端の座標を減算して、入力にかかるウィンドウの最新左上端を基準とするポインタの相対座標を求める。
また、再現手順生成部１３０は、自動操作の後かつコントロールコンポーネントのクリック入力の直前までに再現手順生成部１３０が座標を取得した各コントロールコンポーネントのうち、上述のポインタの相対座標のＸ座標が、コントロールコンポーネントの最新左上端の相対座標のＸ座標以上で且つ最新右下端の相対座標のＸ座標以下であり、かつ、上述の直前のポインタの相対座標のＹ座標が、コントロールコンポーネントの最新左上端の相対座標のＹ座標以下で且つ最新右下端の相対座標のＹ座標以上であるコントロールコンポーネントを特定する。
さらに、再現手順生成部１３０は、ＧＵＩプログラム記憶部３００から、コントロールコンポーネントの座標情報に関連付けられた識別情報を収集する。
その後、再現手順生成部１３０は、入力にかかるコントロールコンポーネントの座標情報と、コントロールコンポーネントの座標情報に関連付けられた識別情報を用いて、入力にかかるコントロールコンポーネントの識別情報を特定する。
【００２３】
次に、コントロールコンポーネントの入力が、キー入力である場合は、再現手順生成部１３０は、以下の方法で、入力されたコントロールコンポーネントの識別情報を特定する。
再現手順生成部１３０は、コントロールコンポーネントのキー入力の直前のクリック入力の、直前のポインタの座標から、入力にかかるウィンドウの最新左上端の座標を減算し、入力にかかるウィンドウの最新左上端を基準とするポインタの相対座標を求める。
また、再現手順生成部１３０は、自動操作の後かつコントロールコンポーネントのクリック入力の直前までに再現手順生成部１３０が座標を取得した各コントロールコンポーネントのうち、上述のポインタの相対座標のＸ座標が、コントロールコンポーネントの最新左上端の相対座標のＸ座標以上で且つ最新右下端の相対座標のＸ座標以下であり、かつ、上述の直前のポインタの相対座標のＹ座標が、コントロールコンポーネントの最新左上端の相対座標のＹ座標以下で且つ最新右下端の相対座標のＹ座標以上であるコントロールコンポーネントを特定する。
さらに、再現手順生成部１３０は、ＧＵＩプログラム記憶部３００から、コントロールコンポーネントの座標情報に関連付けられた識別情報を収集する。
その後、再現手順生成部１３０は、入力にかかるコントロールコンポーネントの座標情報と、コントロールコンポーネントの座標情報に関連付けられた識別情報を用いて、入力にかかるコントロールコンポーネントの識別情報を特定する。
【００２４】
再現手順生成部１３０は、上述の方法により特定されたウィンドウの識別情報が複数である場合には、入力にかかるコントロールコンポーネントの識別情報に基づいて、入力にかかるウィンドウを特定する。
【００２５】
再現手順生成部１３０は、上述の方法により、入力にかかるウィンドウおよびコントロールコンポーネントの識別情報を特定した後は、以下のように、再現手順を生成する。
【００２６】
再現手順生成部１３０は、一つのコントロールコンポーネントの入力を、一つのイベントとして記載する。ただし、再現手順生成部１３０は、同一のコントロールコンポーネントにて、時系列順に連続で複数のテキスト入力があった場合には、かかるコントロールコンポーネントへのテキスト入力以外の入力がされるまで、かかる複数のテキスト入力を一つのイベントにまとめる。
再現手順生成部１３０は、イベントごとに、ウィンドウ識別情報と、コントロールコンポーネント識別情報およびコントロールコンポーネントの入力内容を、時系列に記載し、再現手順データを生成する。
【００２７】
対照検証部１４０は、自動操作にかかる手順記憶部２００の手順データと、再現手順生成部１３０の再現手順データを対照して、手順データを検証する。
例えば、対照検証部１４０は、時系列順に、イベントごとに、手順データと再現手順データの、ウィンドウ識別情報、コントロールコンポーネント識別情報およびコントロールコンポーネントの入力内容が全て同一か否か判定し、同一でない場合は、操作エラーのメッセージを表示する。
【００２８】
座標検証部１５０は、再現手順生成部１３０のデータと、ＧＵＩプログラム記憶部３００から収集した、ＧＵＩ上の最前面ウィンドウの情報に基づいて、手順データを検証する。
例えば、座標検証部１５０は、再現手順生成部１３０からデータを収集して、コントロールコンポーネントの入力にかかるウィンドウを特定する。また、座標検証部１５０は、ＧＵＩプログラム記憶部３００からＧＵＩ上の最前面ウィンドウのデータを収集して、入力にかかるウィンドウがＧＵＩ上の最前面ウィンドウであるか否かを判定する。
上述の判定で、入力にかかるウィンドウが最前面ウィンドウではないと座標検証部１５０が判定した場合には、座標検証部１５０は、かかる入力が操作エラーか否かを検証する。
かかる入力がクリック入力の場合、座標検証部１５０は、かかる入力の直前のポインタのＸ座標が、最前面ウィンドウの最新左上端のＸ座標以上で且つ最新右下端のＸ座標以下であり、および、かかるコントロールコンポーネントの入力の直前のポインタのＹ座標が、最前面ウィンドウの最新左上端のＹ座標以下で且つ最新右下端のＹ座標以上である場合は、操作エラーのメッセージを表示する。
かかる入力がキー入力の場合、座標検証部１５０は、かかる入力の直前のクリック入力の、直前のポインタのＸ座標が、最前面ウィンドウの最新左上端のＸ座標以上で且つ最新右下端のＸ座標以下であり、および、かかるコントロールコンポーネントの入力の直前のポインタのＹ座標が、最前面ウィンドウの最新左上端のＹ座標以下で且つ最新右下端のＹ座標以上である場合は、操作エラーのメッセージを表示する。
【００２９】
《データ記録装置の動作》
次に、データ記録装置１００の動作について説明する。
図２は、データ記録装置１００の動作を示すフローチャートである。
【００３０】
自動操作部１１０は、手順記憶部２００に記憶された手順データに基づいて、ＧＵＩプログラム記憶部３００が記憶するＧＵＩプログラムの自動操作を開始する（ステップＳ１）。
【００３１】
取得部１２０は、ステップＳ１により自動操作されたＧＵＩプログラムを記憶するＧＵＩプログラム記憶部３００から、自動操作にかかるＧＵＩ上のポインタの座標、ウィンドウの座標、コントロールコンポーネントの座標、コントロールコンポーネントの入力内容を、時系列に収集する（ステップＳ２）。
【００３２】
再現手順生成部１３０は、ステップＳ２により取得部１２０が取得したデータ、ＧＵＩプログラム記憶部３００から収集した識別情報を用いて、再現手順データを生成する（ステップＳ３）。
【００３３】
対照検証部１４０は、ステップＳ３により再現手順生成部１３０が生成した再現手順データと、手順記憶部２００から収集した手順データを対照し、手順データを検証する（ステップＳ４）。
【００３４】
座標検証部１５０は、再現手順生成部１３０のデータと、ＧＵＩプログラム記憶部３００から収集したデータに基づいて、手順記憶部２００の手順データを検証する（ステップＳ５）。
【００３５】
自動操作部１１０が手順記憶部２００の手順データの全ての内容の自動操作が完了した場合（ステップＳ６：ＹＥＳ）は、データ記録装置１００の動作は終了する。他方、自動操作部１１０が手順記憶部２００の手順データの全ての内容を自動操作していない場合（ステップＳ６：ＮＯ）は、取得部１２０は、自動操作にかかる座標情報および入力内容を収集し続ける（ステップＳ２）。
【００３６】
《具体的例示》
次に、の具体例について説明する。
【００３７】
図３は、自動操作部１１０がＧＵＩプログラムを自動操作するために用いる手順記憶部２００の手順データの具体的例示である。図３は３つのイベントが時系列順に、行ごとにイベントが記載されている手順データである。
まず、自動操作部１１０は、図３の表１行目のイベントのデータに基づいて、ＧＵＩプログラム記憶部３００のＧＵＩプログラムを自動操作する。つまり、自動操作部１１０は、ウィンドウ識別情報が「１」のウィンドウに属するコントロールコンポーネント識別情報が「１」のコントロールコンポーネントに対して、クリック入力をする内容の自動操作を、ＧＵＩプログラム記憶部３００のＧＵＩプログラムに対して行う。
さらに、自動操作部１１０は、図３の表２行目のイベントのデータに基づいて、ＧＵＩプログラムを自動操作する。つまり、自動操作部１１０は、ウィンドウ識別情報が「１」のウィンドウに属するコントロールコンポーネント識別情報が「１」のコントロールコンポーネントに対して、「ＩＣＨＩＲＯ」の複数の文字のキー入力をする内容の自動操作を、ＧＵＩプログラム記憶部３００のＧＵＩプログラムに対して行う。
その後、自動操作部１１０は、図３の表３行目のイベントのデータに基づいて、ＧＵＩプログラムを自動操作する。つまり、自動操作部１１０は、ウィンドウ識別情報が「１」のウィンドウに属するコントロールコンポーネント識別情報が「２」のコントロールコンポーネントに対して、クリック入力をする内容の自動操作を、ＧＵＩプログラム記憶部３００のＧＵＩプログラムに対して行う。
【００３８】
図４は、図３にかかる内容の自動操作がされた場合に、取得部１２０が収集する、ポインタの座標、ウィンドウの座標、コントロールコンポーネントの入力内容と、取得部１２０が算出したコントロールコンポーネントの相対座標の例示である。
取得部１２０は、表１行目のように、自動操作の開始時におけるポインタの座標、ウィンドウの座標、コントロールコンポーネントの座標を収集し、ウィンドウおよびコントロールコンポーネントごとに一意の通し番号を付与する。
取得部１２０は、表２行目のように、ポインタが動いてポインタの位置が変更された場合は、さらにポインタの座標を収集する。
取得部１２０は、コントロールコンポーネントに入力があった場合は、表３行目から表９行目のように、入力内容を収集する。
取得部１２０は、表１０行目のように、コントロールコンポーネントの入力の後にポインタが動いてポインタの位置が変更された場合には、さらにポイントの座標を収集する。
取得部１２０は、表１１行目のように、表３行目のクリック以降に新たなクリック入力があった場合は、新たに入力内容を収集する。
【００３９】
図５は、取得部１２０が図４にかかる内容の取得をした場合、再現手順生成部１３０がかかる取得部１２０のデータに基づいて生成した再現手順の具体例である。
図５の表１行目は、再現手順生成部１３０が、図４の表３行目のクリック入力にかかるイベントを生成した再現手順である。かかるクリックの直前のポインタの座標が（５２，５２）で、ウィンドウに対する相対座標は（２２，１２）となり、ウィンドウの座標および通し番号がＡであるコントロールコンポーネントの相対座標の範囲に属するため、図４の表３行目のクリック入力は、コントロールコンポーネントＡに対するものである。再現手順生成部１３０は、ＧＵＩプログラム記憶部３００から収集したコントロールコンポーネントＡの座標情報に関連付けられた識別情報に基づいて、かかるクリック入力のコントロールコンポーネントＡの識別情報の「１」を特定し、再現手順を生成する。
図５の表２行目は、図４の表４行目から表９行目までのキー入力をまとめたイベントについて、再現手順生成部１３０が生成した再現手順である。再現手順生成部１３０は、かかるキー入力以降に発生した図４の表１１行目のクリック入力までのキー入力を一つのイベントとしてまとめて、かかるキー入力の直前のクリック入力の相対座標（２２，１２）が属するコントロールコンポーネントの入力内容として、再現手順を生成する。
図５の表３行目は、図４の表１１行目のクリック入力にかかるイベントについて、再現手順生成部１３０が生成した再現手順データである。かかるクリック入力の直前のポインタの座標（７１、７６）で、相対座標が（４１，３６）となり、かかるクリック入力は通し番号がＢであるコントロールコンポーネントの範囲内である。よって、再現手順生成部１３０は、図５の３行目については、図５の表１行目のコントロールコンポーネントの識別情報とは異なる識別情報「２」にて、再現手順を生成する。
【００４０】
対照検証部１４０は、図３の手順データと図５の再現手順データを対照することにより、自動操作を検証する。つまり、対照検証部１４０は、図３の表１行目と図５の表１行目のウィンドウ識別情報、コントロールコンポーネント識別情報、入力内容が同一であるか否かの検証と、図３の表２行目と図５の表２行目のウィンドウ識別情報、コントロールコンポーネント識別情報、入力内容が同一であるか否かの検証と、図３の表３行目と図５の表３行目のウィンドウ識別情報、コントロールコンポーネント識別情報、入力内容が同一であるか否かの検証をする。
【００４１】
図６は、座標検証部１５０の検証の例を示す。自動操作にかかるＧＵＩ上に、ウィンドウ４００と、ウィンドウ４１０が、図６のように同時に存在する場合、最前面ウィンドウは、ウィンドウ４００である。コントロールコンポーネント４２０は、ウィンドウ４１０に属するコントロールコンポーネントである。ポイント４３０はコントロールコンポーネント４２０へのキー入力の直前のクリック入力の、直前のポイントの位置である。
自動操作にかかるキー入力がコントロールコンポーネント４２０へのキー入力の場合、かかるキー入力の直前のクリック入力の、直前のポイント４３０の座標が最前面のウィンドウ４００の範囲に属するため、座標検証部１５０は、操作エラーのメッセージを表示する。
【００４２】
《作用・効果》
このように、本実施形態によれば、データ記録装置１００は、自動操作部１１０と、取得部１２０と、再現手順生成部１３０を備える。つまり、自動操作部１１０にかかる自動操作の内容について、取得部１２０が取得したデータに基づいて、再現手順生成部１３０が再現手順データを生成するため、ユーザは、かかる再現手順データを用いて自動操作について期待通りの結果が得られたのか否かを検証でき、自動操作の検証における手作業を削減できる。
【００４３】
本実施形態によれば、データ記録装置１００は、取得部１２０が自動操作にかかる情報として座標を収集する。つまり、データ記録装置１００は、取得部１２０がＧＵＩプログラム記憶部３００のＧＵＩプログラムから、入力にかかるコントロールコンポーネントの識別情報を直接特定できる情報を得られない場合であっても、座標を収集することにより、入力にかかるコントロールコンポーネントの識別情報を特定でき、再現手順生成部１３０が再現手順を生成できる。
【００４４】
本実施形態によれば、データ記録装置１００は、手順記憶部２００の手順データを検証する対照検証部１４０を備える。つまり、データ記録装置１００は、再現手順データを検証する再現手順生成部１３０が再現手順を検証するため、再現手順データを用いて自動操作を検証することについて、より手作業を削減できる。
【００４５】
本実施形態によれば、データ記録装置１００は、最前面ウィンドウにかかるデータと再現手順生成部１３０の座標データにより自動操作を検証する座標検証部１５０を備える。これにより、座標検証部１５０は、自動操作を検証できる。また、データ記録装置１００は、対照検証部１４０を備えない別の実施形態による場合でも、座標検証部１５０を備えることにより、自動操作を検証できる。
【００４６】
〈他の実施形態〉
なお、本実施形態は、取得部１２０がＧＵＩプログラム記憶部３００のＧＵＩプログラムからポインタの座標、ウィンドウの座標およびコントロールコンポーネントの座標を取得するが、他の実施形態では、取得部１２０が、コントロールコンポーネント入力にかかるウィンドウおよびコントロールコンポーネントの識別情報を、ＧＵＩプログラム記憶部３００のＧＵＩプログラムから直接収集しても良い。この場合、再現手順生成部１３０は、取得部１２０が収集したウィンドウおよびコントロールコンポーネントの識別情報と、コントロールコンポーネントの入力内容を用いて、再現手順データを生成する。
この場合、データ記録装置１００は、再現手順生成部１３０が収集するデータの量を減らすことができ、より早く再現手順を生成できる。
【００４７】
《基本構成》
図７は、本発明によるデータ記録装置の基本構成を示す概略ブロック図である。
上述した実施形態では、本発明によるデータ記録装置の一実施形態として図１に示す構成について説明したが、本発明によるデータ記録装置の基本構成は、図７に示すとおりである。
すなわち、本発明によるは、自動操作部１１０と、取得部１２０と、再現手順生成部１３０を基本構成とする。
【００４８】
自動操作部１１０は、手順記憶部２００に記憶された手順データに基づいて、ＧＵＩプログラム記憶部３００のＧＵＩプログラムを自動操作する。
取得部１２０は、自動操作部１１０の自動操作にかかるＧＵＩ上のウィンドウおよびコントロールコンポーネントの情報、コントロールコンポーネントの入力内容を、時系列に収集する。
再現手順生成部１３０は、取得部１２０のデータ、ＧＵＩプログラム記憶部３００のＧＵＩプログラムから収集したウィンドウ識別情報およびコントロールコンポーネント識別情報を用いて、手順記憶部２００の手順データと同形式の再現手順データを生成する。
【００４９】
図８は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ５００は、プロセッサ５１０、メインメモリ５２０、ストレージ５３０、インタフェース５４０を備える。
上述のデータ記録装置１００は、コンピュータ５００に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ５３０に記憶されている。プロセッサ５１０は、プログラムをストレージ５３０から読み出してメインメモリ５２０に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ５１０は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ５２０に確保する。
【００５０】
プログラムは、コンピュータ５００に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージ５３０に既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、コンピュータ５００は、上記構成に加えて、または上記構成に代えてＰＬＤ（Programmable Logic Device）などのカスタムＬＳＩ（Large Scale Integrated Circuit）を備えてもよい。ＰＬＤの例としては、ＰＡＬ(Programmable Array Logic)、ＧＡＬ(Generic Array Logic)、ＣＰＬＤ(Complex Programmable Logic Device)、ＦＰＧＡ（Field Programmable Gate Array）が挙げられる。この場合、プロセッサ５１０によって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【００５１】
ストレージ５３０の例としては、磁気ディスク、光磁気ディスク、半導体メモリ等が挙げられる。ストレージ５３０は、コンピュータ５００のバスに直接接続された内部メディアであってもよいし、インタフェース５４０または通信回線を介してコンピュータに接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ５００に配信される場合、配信を受けたコンピュータ５００が当該プログラムをメインメモリ５２０に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ５３０は、一時的でない有形の記憶媒体である。
【００５２】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ５３０に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００５３】
１０  データ記録システム
１００  データ記録装置
１１０  自動操作部
１２０  取得部
１３０  再現手順生成部
１４０  対照検証部
１５０  座標検証部
２００  手順記憶部
３００  ＧＵＩプログラム記憶部
５００  コンピュータ
５１０  プロセッサ
５２０  メインメモリ
５３０  ストレージ
５４０  インタフェース
【図１】
2020166773.tif 000003
【図２】
2020166773.tif 000004
【図３】
2020166773.tif 000005
【図４】
2020166773.tif 000006
【図５】
2020166773.tif 000007
【図６】
2020166773.tif 000008
【図７】
2020166773.tif 000009
【図８】
2020166773.tif 000010