(57)【特許請求の範囲】
【請求項１】
操作者による操作に応じた画面遷移を伴うアプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を行うためのシナリオを生成するシナリオ生成装置において、
前記アプリケーションソフトウェアが動作することによって表示された画面に対する前記操作者の第１の操作を検出する第１の検出手段と、
前記第１の検出手段によって前記第１の操作が検出された後に、前記アプリケーションソフトウェアが動作することによって表示された画面であって当該第１の操作に応じた画面遷移後の画面に対する前記操作者の第２の操作を検出する第２の検出手段と、
前記第１の検出手段によって前記第１の操作が検出された後、前記第２の検出手段によって前記第２の操作が検出されるまでの間に、前記アプリケーションソフトウェアが動作することによって表示されている画面の画像を示す画像情報を予め定められた間隔で連続的に取得する画像取得手段と、
前記連続的に取得された画像情報および前記第２の検出手段によって検出された第２の操作を示す操作情報を含むシナリオを生成するシナリオ生成手段と
を具備し、
前記シナリオ生成手段によって生成されたシナリオに含まれる画像情報は、前記第２の操作がされた画面上の位置を示す位置情報を含む
ことを特徴とするシナリオ生成装置。
【請求項２】
前記連続的に取得された画像情報から、前記第２の操作がされた画面上の位置を含む範囲の画像を示す部分画像情報を切り取る画像切取手段を更に具備し、
前記シナリオ生成手段は、前記画像切取手段によって切り取られた部分画像情報および前記第２の検出手段によって検出された第２の操作を示す操作情報を含むシナリオを生成する
ことを特徴とする請求項１記載のシナリオ生成装置。
【請求項３】
前記生成されたシナリオを格納するシナリオ格納手段と、
前記アプリケーションソフトウェアが動作することによって表示される画面に対する自動操作が行われる際に、前記シナリオ格納手段に格納されたシナリオに含まれる部分画像情報によって示される画像であって当該部分画像情報に含まれる位置情報によって示される画面上の位置を含む範囲の画像を、当該アプリケーションソフトウェアが動作することによって表示されている画面の画像内から探索する探索手段と、
前記アプリケーションソフトウェアが動作することによって表示されている画面上における前記探索された画像を示す部分画像情報に含まれる位置情報によって示される画面上の位置に対して当該シナリオに含まれる操作情報によって示される操作を実行する操作実行手段と
を更に具備することを特徴とする請求項２記載のシナリオ生成装置。
【請求項４】
前記シナリオ格納手段に格納されたシナリオを、前記探索された画像を示す部分画像情報および前記操作情報を含むシナリオに修正するシナリオ修正手段を更に具備することを特徴とする請求項３記載のシナリオ生成装置。
【請求項５】
操作者による操作に応じた画面遷移を伴うアプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を行うためのシナリオを生成するシナリオ生成装置のコンピュータによって実行されるシナリオ生成プログラムであって、
前記コンピュータに、
前記アプリケーションソフトウェアが動作することによって表示された画面に対する前記操作者の第１の操作を検出するステップと、
前記第１の操作が検出された後に、前記アプリケーションソフトウェアが動作することによって表示された画面であって当該第１の操作に応じた画面遷移後の画面に対する前記操作者の第２の操作を検出するステップと、
前記第１の操作が検出された後、前記第２の操作が検出されるまでの間に、前記アプリケーションソフトウェアが動作することによって表示されている画面の画像を示す画像情報を予め定められた間隔で連続的に取得するステップと、
前記連続的に取得された画像情報および前記検出された第２の操作を示す操作情報を含むシナリオを生成するステップと
を実行させ、
前記生成されたシナリオに含まれる画像情報は、前記第２の操作がされた画面上の位置を示す位置情報を含む
ことを特徴とするシナリオ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コンピュータシステムの自動操作に適用されるシナリオを生成するシナリオ生成装置およびシナリオ生成プログラムに関する。
【背景技術】
【０００２】
例えばコンピュータシステム（情報システム）において、その利用手順（つまり、操作）を自動で実行することは、様々な応用において有用である。
【０００３】
例えばクライアント−サーバモデルの試験においては、クライアント端末を操作することによってサーバに対して負荷を与え、高負荷時のサーバの挙動を確かめるための負荷試験がある。
【０００４】
このような負荷試験を実施するための自動操作にはいくつかの種類があり、その１つには、負荷の元となる処理要求を擬似的に発生させ、サーバに対して送るというものがある。
【０００５】
このような負荷の元となる処理要求を擬似的に発生させるために広く普及している方式として、例えばクライアント端末において動作するアプリケーションソフトウェア（クライアントソフトウェア）からサーバへ送られるメッセージを記憶しておき、負荷を発生するためのツール（負荷発生ツール）からサーバに向けて擬似的に当該メッセージを繰り返し発生させる方式（以下、第１の負荷発生方式と表記）がある。
【０００６】
しかしながら、この第１の負荷発生方式では、メッセージの内容が毎回変化するような複雑なシステムの場合に、アプリケーションソフトウェアと同じようにメッセージの内容を変えるための機構を負荷発生ツールで実現する必要がある。このような機構を実現することは非常に複雑で困難な場合があり、多大な労力を要する。
【０００７】
更に、メッセージの内容がどのように変化するかということを理解するためには、アプリケーションソフトウェアの内部の動作を理解する必要がある。このため、負荷試験を実施する実施者に対して高度なスキルが要求され、当該負荷試験を行う人材を確保することが困難である。
【０００８】
これに対して、例えばアプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を行うことによって負荷を発生する方式（以下、第２の負荷発生方式と表記）が考えられる。この第２の負荷発生方式によれば、コンピュータシステムにおいてアプリケーションソフトウェアを起動しておき、当該アプリケーションソフトウェアに対して通常ユーザが行うのと同様の操作を負荷試験ツールが擬似的に実行することによって、アプリケーションソフトウェアからコンピュータシステムのサーバに対して処理要求を発生させる。具体的には、アプリケーションソフトウェアにおける画面遷移に応じて例えばボタン等の所定の操作対象にマウスまたはキーボードからの入力イベント（操作イベント）が投入される。
【０００９】
このようなアプリケーションソフトウェアが動作することによって表示される画面に対する一連の擬似的な操作の実行の内容は、予めシナリオ（操作シナリオ）として定義されている。
【００１０】
上記した第２の負荷発生方式では、サーバに送られるメッセージを生成するためにアプリケーションソフトウェア内部に実装されている機構がそのまま利用されるため、上述した第１の負荷発生方式のようにメッセージの内容を変えるための機構を別途作成する必要はない。更に、アプリケーションソフトウェアの操作方法を理解したものであれば上記したシナリオを生成することが可能であるため、第２の負荷発生方式では例えば負荷試験の実施者に対して高度なスキルは要求されない。
【００１１】
ところで、上記した第２の負荷発生方式においては、例えばコンピュータシステム上のウィンドウ内で表示されるボタンまたはテキストボックスのようなオブジェクトが操作対象とされる。このオブジェクトに対する所定の操作の実行（投入）には、いくつかの実現方法が考えられる。
【００１２】
その１つとして、画面を構成しているアプリケーションソフトウェアの構造を理解し、画面上のオブジェクトを管理している仕組みを明らかにすることによって、画面内のオブジェクトをアプリケーションソフトウェアが特定するために用いているＩＤと、そこに実行する操作の種別（イベントの種別）をシナリオに記述しておく方法（以下、第１の自動操作実行方法と表記）が考えられる。この第１の自動操作実行方法における自動操作の実行時には、オブジェクトのＩＤに基づいて当該オブジェクトに対してマウスのクリック等の操作（イベント）が実行される。
【００１３】
しかしながら、第１の自動操作実行方法では、アプリケーションソフトウェアにおけるオブジェクトの管理方法が変わると、オブジェクトの特定の仕方や表示位置の特定方法も変わることになり、個々のアプリケーションソフトウェアのオブジェクトの管理方法に対応させて負荷試験ツールを開発しなければならないことから、多大なコストが発生する場合がある。
【００１４】
一方、画面上のオブジェクトを予め取得しておいた画像情報と比較することによって、当該画面上でのオブジェクトの表示位置を特定し、当該オブジェクトの表示位置までマウス等を移動してクリック等の操作（当該操作に相当するイベント）を実行させるという方法（以下、第２の自動操作実行方法と表記）が考えられる。なお、この第２の自動操作実行方法においては、画像情報とクリック等の操作を示す操作情報とのセットを含むシナリオが予め定義されている。
【００１５】
具体的には、第２の自動操作実行方法では、例えば画面上の画像情報の中からシナリオに含まれる画像情報と一致する箇所を見つけ出し、当該箇所を操作位置として当該シナリオに含まれる操作情報によって示される操作が実行される。これにより、アプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を可能とする。
【００１６】
上記した第２の自動操作実行方法によれば、オブジェクトの外見（形状および色等）に基づいてオブジェクトが特定されるため、オブジェクトの管理方法に対応させて負荷試験ツールを開発する必要はないという利点がある。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００９−２５９２７５号公報
【非特許文献】
【００１８】
【非特許文献１】ＡｕｔｏＭｏｕｓｅ（http://www.vector.co.jp/soft/win95/util /se074062.html）
【発明の概要】
【発明が解決しようとする課題】
【００１９】
ところで、例えば第２の自動操作実行方法を行うためには、上記したようなシナリオを作成する必要がある。この場合、例えば操作者（人間）が実際にアプリケーションソフトウェアの操作を行い、当該操作に応じて画像情報および操作情報をシナリオとしてシステムに記憶することが考えられる。
【００２０】
例として画面遷移を伴う一連のマウス操作において、あるマウスのクリックの直後から、次のマウスのクリックまでを考える。この一連の動作を細分化すると、当該一連の動作は第１〜第６の動作から構成される。
【００２１】
まず、第１の動作は、画面遷移を伴うマウスクリックである。次の第２の動作は、画面遷移の開始である。第３の動作は、画面遷移の完了である。第４の動作は、画面遷移後の画面における次のマウス操作箇所へのマウスの移動である。第５の動作は、マウスの移動による画面の変化である。最後に、第６の動作は、マウスクリックである。この場合、アプリケーションソフトウェアの操作者は、第１、第４および第６の動作におけるマウス操作を行っている。
【００２２】
上記した第２の自動操作実行方法に用いられるシナリオを作成するためには、当該シナリオに含まれる画像情報を取得する必要がある。この場合、操作者は、シナリオに含まれる画像情報を取得する操作を、上記した本来のアプリケーションソフトウェアの操作以外に行わなければならない。具体的には、自動操作を行うためのシナリオを生成する際には、当該シナリオの生成に必要な画像を取得するタイミングを操作者に提示し、当該タイミングにおいて操作者は画像を取得する操作を行う。
【００２３】
しかしながら、このような画像を取得する操作は、本来のアプリケーションソフトウェアの操作には不要な操作であるため、当該操作によりシナリオ作成のための操作者の作業負担が大きくなり、また、例えば当該操作を忘れてしまうことによりシナリオが生成できないような場合がある。
【００２４】
そこで、本発明が解決しようとする課題は、本来のアプリケーションソフトウェアの操作のみでコンピュータシステムの自動操作を行うためのシナリオを生成することが可能なシナリオ生成装置およびシナリオ生成プログラムを提供することにある。
【課題を解決するための手段】
【００２５】
実施形態によれば、操作者による操作に応じた画面遷移を伴うアプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を行うためのシナリオを生成するシナリオ生成装置が提供される。
【００２６】
実施形態に係るシナリオ生成装置は、第１の検出手段と、第２の検出手段と、画像取得手段と、シナリオ生成手段とを具備する。
【００２７】
第１の検出手段は、前記アプリケーションソフトウェアが動作することによって表示された画面に対する前記操作者の第１の操作を検出する。
【００２８】
第２の検出手段は、前記第１の検出手段によって第１の操作が検出された後に、前記アプリケーションソフトウェアが動作することによって表示された画面であって当該第１の操作に応じた画面遷移後の画面に対する前記操作者の第２の操作を検出する。
【００２９】
画像取得手段は、前記第１の検出手段によって前記第１の操作が検出された後、前記第２の検出手段によって前記第２の操作が検出されるまでの間に、前記アプリケーションソフトウェアが動作することによって表示されている画面の画像を示す画面情報を予め定められた間隔で連続的に取得する。
【００３０】
シナリオ生成手段は、前記連続的に取得された画像情報および前記第２の検出手段によって検出された第２の操作を示す操作情報を含むシナリオを生成する。
【００３１】
前記シナリオ生成手段によって生成されたシナリオに含まれる画像情報は、前記第２の操作がされた画面上の位置を示す位置情報を含む。
【図面の簡単な説明】
【００３２】
【図１】第１の実施形態に係るシナリオ生成装置のハードウェア構成を示すブロック図。
【図２】図１に示すシナリオ生成装置３０の主として機能構成を示すブロック図。
【図３】本実施形態に係るシナリオ生成装置３０の処理手順を示すフローチャート。
【図４】本実施形態に係るシナリオ生成装置３０において生成されるシナリオの構造について説明するための図。
【図５】シナリオを生成する際のシナリオ生成装置３０の動作について具体的に説明するための図。
【図６】時間１において表示されている画面の一例を示す図。
【図７】時間２において表示されている画面の一例を示す図。
【図８】時間３において表示されている画面の一例を示す図。
【図９】画像情報１〜３から切り取られる部分画像情報の一例を示す図。
【図１０】画像情報４〜６から切り取られる部分画像情報の一例を示す図。
【図１１】画像情報７および８から切り取られる部分画像情報の一例を示す図。
【図１２】第２の実施形態に係るシナリオ生成装置の主として機能構成を示すブロック図。
【図１３】本実施形態に係るシナリオ生成装置５０において実行されるシナリオ自動操作処理の処理手順を示すフローチャート。
【図１４】シナリオ自動操作処理について具体的に説明するための図。
【発明を実施するための形態】
【００３３】
以下、図面を参照して、各実施形態について説明する。
【００３４】
（第１の実施形態）
まず、図１および図２を参照して、第１の実施形態について説明する。図１は、第１の実施形態に係るシナリオ生成装置のハードウェア構成を示すブロック図である。図１に示すように、コンピュータ１０は、例えばハードディスクドライブ（ＨＤＤ：Hard Disk Drive）のような外部記憶装置２０と接続されている。この外部記憶装置２０は、コンピュータ１０によって実行されるプログラム２１を格納する。コンピュータ１０および外部記憶装置２０は、シナリオ生成装置３０を構成する。
【００３５】
このシナリオ生成装置３０は、例えば操作者による操作に応じた画面遷移を伴うアプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を行うためのシナリオを生成する機能を有する。
【００３６】
図２は、図１に示すシナリオ生成装置３０の主として機能構成を示すブロック図である。なお、シナリオ生成装置３０は、例えば上記したアプリケーションソフトウェアが動作するコンピュータシステムと接続されている。
【００３７】
図２に示すように、シナリオ生成装置３０は、操作検出部３１、画像取得部３２、画像切取部３３およびシナリオ生成部３４を含む。本実施形態において、これらの各部３１〜３４は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム２１を実行することにより実現されるものとする。このプログラム２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム２１が、例えばネットワークを介してコンピュータ１０にダウンロードされても構わない。
【００３８】
また、シナリオ生成装置３０は、画像格納部２２およびシナリオ格納部２３を含む。本実施形態において、画像格納部２２およびシナリオ格納部２３は、例えば外部記憶装置２０に格納される。
【００３９】
操作検出部３１は、アプリケーションソフトウェアが動作することによってコンピュータシステムにおいて表示されている画面に対して当該コンピュータシステムの操作者による所定の操作がされる度に、当該操作を検出する。この操作には、例えばマウスクリックおよびキーボード入力等が含まれる。
【００４０】
画像取得部３２は、操作検出部３１によって検出された例えば２つの操作間（つまり、ある操作が行われた後に次の操作が行われるまでの間）においてコンピュータシステム上で表示されている画面の画像を示す画像情報を、予め定められた間隔（例えば１秒間に２回等の間隔）で連続的に取得する。
【００４１】
画像切取部３３は、画像取得部３２によって連続的に取得された画像情報の各々から、操作検出部３１によって検出された２つの操作のうち後に行われた操作がされた位置（例えば、マウスクリックされた位置）を含む範囲の画像を示す部分画像情報を切り取る。
【００４２】
シナリオ生成部３４は、画像取得部３２によって連続的に取得された画像情報の各々から画像切取部３３によって切り取られた複数の部分画像情報および操作検出部３１によって検出された２つの操作のうち後に行われた操作を示す操作情報を含むシナリオを生成する。このとき、画像切取部３３によって切り取られた複数の画像情報の中に同一の部分画像情報が複数存在する場合には、それらの部分画像情報は１つに集約される。なお、シナリオ生成部３４によって生成されたシナリオに含まれる部分画像情報には、操作検出部３１によって検出された２つの操作のうち後に行われた操作がされた画面上の位置を示す位置情報が含まれる。
【００４３】
次に、図３のフローチャートを参照して、本実施形態に係るシナリオ生成装置３０の処理手順について説明する。ここでは、コンピュータシステム上でアプリケーションソフトウェアが動作しているものとする。なお、このアプリケーションソフトウェアは、その動作時に例えばコンピュータシステムに対する操作者の操作に応じて画面遷移を伴うものであるものとする。
【００４４】
ここで、アプリケーションソフトウェアが動作することによってコンピュータシステムにおいて表示されている画面に対して例えばマウスクリック等の操作が操作者によって行われたものとする。なお、コンピュータシステムにおいて表示されている画面に対して操作が行われた場合、アプリケーションソフトウェアによって当該画面の遷移が開始される。
【００４５】
この場合、操作検出部３１は、コンピュータシステムにおいて表示されている画面（つまり、アプリケーションソフトウェアが動作することによって表示された画面）に対する操作者の操作（以下、第１の操作と表記）を検出する（ステップＳ１）。
【００４６】
このように操作検出部３１によって第１の操作が検出された場合、画像取得部３２は、アプリケーションソフトウェアが動作することによってコンピュータシステムにおいて現在表示されている画面全体の画像を示す画像情報を取得する（ステップＳ２）。
【００４７】
画像取得部３２によって取得された画像情報は、画像格納部２２に格納される（ステップＳ２２）。
【００４８】
次に、画像取得部３２は、上記した第１の操作の後に、アプリケーションソフトウェアが動作することによって表示されている画面に対する操作者の操作（以下、第２の操作と表記）が操作検出部３１によって検出されたか否かを判定する（ステップＳ４）。
【００４９】
第２の操作が操作検出部３１によって検出されていないと判定された場合（ステップＳ４のＮＯ）、上記したステップＳ２に戻って処理が繰り返される。この場合、例えば１秒間に２回等の予め定められた間隔で処理が繰り返される。
【００５０】
このように第２の操作が操作検出部３１によって検出されるまでステップＳ２およびＳ３の処理が予め定められた間隔で繰り返されることによって、画像取得部３２は、操作検出部３１によって第１の操作が検出された後、第２の操作が検出されるまでの間に、アプリケーションソフトウェアが動作することによって表示されている画面の画像を示す画像情報を連続的に取得する。
【００５１】
一方、第２の操作が操作検出部３１によって検出されたと判定された場合（ステップＳ４のＹＥＳ）を想定する。ここで操作検出部３１によって検出された第２の操作は、例えば第１の操作に応じた画面遷移後の画面に対する操作者による操作である。
【００５２】
この場合、画像切取部３３は、上記したようにステップＳ２およびＳ３が繰り返されることによって連続的に取得された画像情報を画像格納部２２から取得する。
【００５３】
画像切取部３３は、画像格納部２２から取得された画像情報（つまり、画像取得部３２によって連続的に取得された画像情報）から、第２の操作がされた画面上の位置を含む範囲の画像を示す部分画像情報を切り取る（ステップＳ５）。この画像切取部３３によって切り取られた部分画像情報には、第２の操作がされた画面上の位置を示す位置情報が含まれる。
【００５４】
次に、シナリオ生成部３４は、画像切取部３３によって切り取られた部分画像情報および操作検出部３１によって検出された第２の操作（の種類）を示す操作情報を含むシナリオを生成する（ステップＳ６）。
【００５５】
シナリオ生成部３４によって生成されたシナリオは、シナリオ格納部２３に格納される（ステップＳ７）。このシナリオ格納部２３に格納されたシナリオは、上述したようにアプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を行う際に用いられる。
【００５６】
ここでは、画像切取部３３によって切り取られた部分画像情報および操作検出部３１によって検出された第２の操作を示す操作情報を含むシナリオが生成されるものとして説明したが、当該画像切取部３３による処理を省略して、画像情報取得部３２によって取得された画像情報および当該操作情報を含むシナリオが生成される構成としても構わない。
【００５７】
ここで、図４を参照して、本実施形態に係るシナリオ生成装置３０において生成されるシナリオの構造について簡単に説明する。
【００５８】
ここでは、シナリオを生成するために第１〜第４の操作が順に操作者によって行われるものとする。なお、第１の操作は、シナリオを生成するための初期操作であるものとする。
【００５９】
この場合、例えば第１の操作および第２の操作の間において上述した図３に示す処理が実行されることによって、部分画像情報および操作情報（第２の操作を示す操作情報）のセット１０１が生成される。
【００６０】
これに対して、第２の操作および第３の操作の間においても同様に上述した図３に示す処理が実行されることによって、部分画像情報および操作情報（第３の操作を示す操作情報）のセット１０２が生成される。
【００６１】
更に、第３の操作および第４の操作の間においても同様に図３に示す処理が実行されることによって、部分画像情報および操作情報（第４の操作を示す操作情報）のセット１０３が生成される。
【００６２】
このように第１〜第４の操作が順に操作者によって行われると、図４に示すように部分画像情報および操作情報のセット１０１〜１０３を含むシナリオ１０４が生成される。換言すれば、部分画像情報および操作情報のセット１０１〜１０３が連なることによって、一連の操作を行うためのシナリオ１０４が生成される。
【００６３】
ここでは、第１〜第４の操作が順に操作者によって行われる場合について説明したが、例えばシナリオを生成するために第１の操作および第２の操作が順に操作者によって行われる場合には、部分画像情報および操作情報のセット１０１のみを含むシナリオが生成される。
【００６４】
つまり、上述した図３は、シナリオ生成装置３０において生成されるシナリオに含まれるセットの１つを生成するための処理を示しており、このような処理が操作者による操作に応じて繰り返されることによってシナリオが生成されることになる。
【００６５】
次に、図５を参照して、シナリオ（に含まれるセットの１つ）を生成する際のシナリオ生成装置３０の動作について具体的に説明する。図５は、アプリケーションソフトウェアが動作することによって表示される画面の遷移および操作者による操作の一例を示す。
【００６６】
図５に示す例よれば、アプリケーションソフトウェアが動作することによって表示される前画面において例えばマウスクリックの操作（以下、第１のマウスクリック操作と表記）が行われたものとする。この場合、時間１においては、操作者による操作の対象画面（操作対象画面）に遷移中の画面（つまり、操作対象画面が出現する前の画面）が表示される。次に、時間２においては、操作対象画面が表示される。ここで、操作者によってマウス（のポインタ等）を移動する操作が行われた場合、時間３においては、当該マウス移動により変化した画面が表示される。なお、マウス移動により変化した画面とは、例えば時間２の操作対象画面においてマウスオーバーによりボタン等の色が変化した後の画面を含む。その後、マウスクリックの操作（以下、第２のマウスクリック操作と表記）が操作者によって行われると、次の操作対象画面に遷移中の画面が表示される。
【００６７】
なお、上記した操作検出部３１によって検出される対象となる操作とは、上記したマウスクリックの操作（第１および第２のマウスクリック操作）等であり、例えばマウスを移動する操作等の画面遷移を伴わない操作は含まれないものとする。
【００６８】
また、上述した図３において説明したように第１および第２のマウスクリック操作の間では、予め定められた間隔で連続的に画像情報が取得される。ここでは、第１および第２のマウスクリック操作の間に画像情報１〜８が取得されたものとする。
【００６９】
ここで、図６は、時間１において表示されている画面（遷移中の画面）の一例を示す。図７は、時間２において表示されている画面（操作対象画面）の一例を示す。また、図８は、時間３において表示されている画面（マウス移動により変化した画面）の一例を示す。なお、図８は、図７に示す操作対象画面においてマウスのポインタを例えばボタン１の上に移動した後の画面を示す。
【００７０】
これによれば、上記したように第１および第２のマウスクリック操作の間に取得された画像情報１〜８のうち、画像情報１〜３は図６の画面の画像を示す画像情報であり、画像情報４〜６は図７の画面の画像を示す画像情報であり、画像情報７および８は図８の画面の画像を示す画像情報である。
【００７１】
次に、上記したように取得された画像情報１〜８から、第２のマウスクリック操作がされた画面上の位置を含む範囲の画像を示す部分画像情報が切り取られる。ここで、第２のマウスクリック操作が図８に示す画面においてボタン１をマウスクリックする操作であるものとすると、画像情報１〜３からは、図９の範囲の画像を示す部分画像情報が切り取られる。同様に、画像情報４〜６からは、図１０の範囲の画像を示す部分画像情報が切り取られる。また、画像情報７および８からは、図１１の範囲の画像を示す部分画像情報が切り取られる。
【００７２】
なお、画像情報１〜３の各々から切り取られた同一の部分画像情報（図９に示す画像情報）、画像情報４〜６の各々から切り取られた同一の部分画像情報（図１０に示す画像情報）、画像情報７および８の各々から切り取られた同一の部分画像情報（図１１に示す画像情報）は、それぞれ１つに集約される。
【００７３】
なお、画像情報１〜８から切り取られた部分画像情報の各々には、第２のマウスクリック操作が行われた画面上の位置（例えば、当該部分画像情報によって示される画像の中心等）を示す位置情報が含まれる。
【００７４】
このように画像情報１〜８から部分画像情報（ここでは、図９〜図１１に示す画像情報）が切り取られると、当該図９〜図１１に示す部分画像情報および第２のマウスクリック操作を示す操作情報（のセット）を含むシナリオが生成される。
【００７５】
このようにシナリオ生成装置３０において生成されるシナリオには、複数の部分画像情報（第１および第２のマウスクリック操作の間に連続的に取得された画像情報の各々から切り取られた部分画像情報）および当該第２のマウスクリック操作を示す操作情報（のセット）が含まれる。
【００７６】
上記したように本実施形態においては、アプリケーションソフトウェアが動作することによって表示された画面に対する操作者の第１の操作を検出し、当該第１の検出された後に、アプリケーションソフトウェアが動作することによって表示された画面であって当該第１の操作に応じた画面遷移後の画面に対する操作者の第２の操作を検出し、当該第１の操作が検出された後、第２の操作が検出されるまでの間に、アプリケーションソフトウェアが動作することによって表示されている画面の画像を示す画像情報を予め定められた間隔で連続的に取得し、当該連続的に取得された画像情報および第２の操作を示す操作情報を含むシナリオを生成し、当該シナリオに含まれる画像情報が第２の操作がされた画面上の位置を示す位置情報を含む構成により、本来のアプリケーションソフトウェアの操作のみでコンピュータシステムの自動操作を行うためのシナリオを生成することが可能となる。つまり、本実施形態においては、シナリオの生成における作業量の増加を低減し、操作ミス等による瑕疵のあるシナリオの生成を防止することができる。
【００７７】
また、本実施形態においては、連続的に取得された画像情報から第２の操作がされた画面上の位置を含む範囲の画像を示す部分画像情報を切り取り、当該切り取られた部分画像情報および第２の操作を示す操作情報を含むシナリオを生成する構成により、当該画面全体の画像を示す画像情報と比較してよりシナリオの容量を削減することができる。
【００７８】
（第２の実施形態）
次に、図１２を参照して、第２の実施形態について説明する。図１２は、本実施形態に係るシナリオ生成装置の主として機能構成を示すブロック図である。なお、前述した図２と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図２と異なる部分について主に述べる。
【００７９】
また、本実施形態に係るシナリオ生成装置のハードウェア構成は、前述した第１の実施形態と同様であるため、適宜、図１を用いて説明する。
【００８０】
本実施形態においては、前述した第１の実施形態に係るシナリオ装置３０において生成されたシナリオを用いて、アプリケーションソフトウェアが動作することによって表示される画面に対する自動操作を行う点が、前述した第１の実施形態とは異なる。
【００８１】
図１２に示すように、シナリオ生成装置５０は、画像探索部５１、操作実行部５２およびシナリオ修正部５３を含む。
【００８２】
画像探索部５１は、シナリオ格納部２３に格納されているシナリオに含まれる部分画像情報によって示される画像であって当該画像情報に含まれる位置情報によって示される画面上の位置を含む範囲の画像を、アプリケーションソフトウェアが動作することによってコンピュータシステムにおいて表示されている画面（全体）の画像内から探索する。なお、前述したようにシナリオ格納部２３に格納されているシナリオには複数の部分画像情報が含まれるが、画像探索部５１は、当該部分画像情報の全てについて探索処理を実行する。
【００８３】
操作実行部５２は、画像探索部５１によって画面の画像内から探索された画像を示す部分画像情報に含まれる位置情報によって示される画面上の位置を操作位置として特定する。操作実行部５２は、アプリケーションソフトウェアが動作することによってコンピュータシステムにおいて表示されている画面上における操作位置（特定された操作位置）に対して、シナリオ格納部２３に格納されているシナリオに含まれる操作情報によって示される操作を実行する。
【００８４】
シナリオ修正部５３は、シナリオ格納部２３に格納されているシナリオを、画像探索部５１によって探索された画像を示す部分画像情報および操作情報を含むシナリオに修正する。つまり、シナリオ修正部５３は、複数の部分画像情報が含まれているシナリオを、画像探索部５１によって探索された画像を示す部分画像情報のみを含むシナリオに修正する。なお、シナリオ修正部５３によって修正されたシナリオは、シナリオ格納部２３に格納される（上書きされる）。
【００８５】
次に、本実施形態に係るシナリオ生成装置５０の動作について説明する。本実施形態に係るシナリオ生成装置５０においては、シナリオを生成する処理（以下、シナリオ生成処理と表記）および当該シナリオを用いて自動操作を行う処理（以下、シナリオ自動操作処理と表記）が実行される。なお、本実施形態に係るシナリオ生成装置５０において実行されるシナリオ生成処理は、前述した第１の実施形態において図３で説明した通りであるため、その詳しい説明を省略する。
【００８６】
ここで、図１３のフローチャートを参照して、本実施形態に係るシナリオ生成装置５０において実行されるシナリオ自動操作処理について説明する。
【００８７】
ここでは、コンピュータシステム上でアプリケーションソフトウェアが動作している状態であるものとし、当該アプリケーションソフトウェアが動作することによってコンピュータシステムにおいて操作対象画面が表示されているものとする。また、システム格納部２３には、前述した図３において説明したように生成されたシナリオが格納されているものとする。なお、シナリオ格納部２３に格納されているシナリオには、複数の部分画像情報および操作情報（のセット）が含まれている。
【００８８】
まず、画像探索部５１は、シナリオ格納部２３に格納されているシナリオ（に含まれるセット）を取得する（ステップＳ１１）。以下、ステップＳ１１において取得されたシナリオを対象シナリオと称する。
【００８９】
次に、画像探索部５１は、対象シナリオに含まれる複数の部分画像情報の中から部分画像情報を１つ取得する（ステップＳ１２）。以下の説明においては、ここで取得された部分画像情報を候補画像情報と称する。
【００９０】
画像探索部５１は、候補画像情報によって示される画像であって当該候補画像情報に含まれる位置情報によって示される画面上の位置を含む範囲の画像を、コンピュータシステムにおいて表示されている画面全体の画像内から探索する。これにより、画像探索部５１は、候補画像情報によって示される画像が画面の画像内にある（つまり、一致する箇所がある）か否かを判定する（ステップＳ１３）。なお、ステップＳ１３においては、コンピュータシステムにおいて表示されている画面の画像内に候補画像情報によって示される画像が含まれている場合であっても、当該候補画像情報によって示される画像が当該候補画像情報によって示される位置情報によって示される位置を含む範囲の画像でない場合には、当該候補画像情報によって示される画像が画面の画像内にないと判定される。
【００９１】
候補画像情報によって示される画像が画面の画像内にないと判定された場合（ステップＳ１３のＮＯ）、ステップＳ１２に戻って処理が繰り返される。
【００９２】
一方、候補画像情報によって示される画像が画面の画像内にあると判定された場合（ステップＳ１３のＹＥＳ）、操作実行部５２は、当該候補画像情報に含まれる位置情報によって示される画面上の位置を操作位置として特定する（ステップＳ１４）。
【００９３】
次に、操作実行部５２は、特定された操作位置に対して、対象シナリオに含まれる操作情報によって示される操作を実行する（ステップＳ１５）。
【００９４】
シナリオ修正部５３は、対象シナリオに含まれる複数の部分画像情報を候補画像情報のみにすることによって当該対象シナリオを修正する（ステップＳ１６）。
【００９５】
シナリオ修正部５３は、修正された対象シナリオをシナリオ格納部２３に格納する（ステップＳ１７）。これにより、再び対象シナリオを用いて自動操作を行う場合には、上記したステップＳ１２及びＳ１３の処理を部分画像情報の各々について繰り返す必要がない。
【００９６】
なお、前述した図４において説明したように対象シナリオに複数のセットが含まれている場合には、自動操作における開始画面（例えば、アプリケーションソフトウェアの起動後の画面等）に対して対象シナリオに含まれる最初のセットを用いて上記した図１３に示す処理が実行され、その後、当該対象シナリオに含まれる各セットについて順に同様に処理が実行される。これにより、前述したように対象シナリオを生成する際に操作者が行った操作が自動操作において再現される。
【００９７】
次に、図１４を参照して、上記したシナリオ自動操作処理（つまり、図１３に示す処理）について具体的に説明する。ここでは、自動操作に用いられるシナリオ（対象シナリオ）には、前述した図９〜図１１に示す部分画像情報およびマウスクリックを示す操作情報（のセット）が含まれているものとする。
【００９８】
ここで、例えばコンピュータシステムにおいて表示されている前画面においてマウスクリックの操作が行われたものとする。なお、このマウスクリックの操作は、上述した図１３において説明したようにシナリオを用いて自動操作されたものであってもよいし、操作者によって行われたものであってもよい。
【００９９】
このようにマウスクリックの操作が行われた場合、コンピュータシステムの画面は、前画面から操作対象画面への遷移中の画面を経て、当該操作対象画面に遷移する。
【０１００】
次に、コンピュータシステムにおいて表示されている画面の画像内から、シナリオに含まれる部分画像情報（ここでは、図９〜図１１に示す部分画像情報）によって示される画像であって当該部分画像情報に含まれる位置情報によって示される画面上の位置を含む範囲の画像が探索される。この探索処理は、直前の操作の後、十分な時間が経過した後に実行される。換言すれば、探索処理は、コンピュータシステムにおいて表示される画面が操作対象画面に遷移するまでの十分な時間が経過した後に実行される。
【０１０１】
ここで、コンピュータシステムにおいて前述した図７に示す操作対象画面が表示されているものとすると、対象シナリオに含まれる図９〜図１１に示す部分画像情報のうち図１０に示す部分画像情報によって示される画像が当該操作対象画面内から探索される。
【０１０２】
なお、図７に示す操作対象画面には図９に示す部分画像情報によって示される画像についても含まれているが、図９〜図１１に示す部分画像情報に含まれる位置情報が当該操作対象画面の例えばボタン１の中心を示しているものとすると、当該図９に示す部分画像情報によって示される画像は、ボタン１の中心（つまり、位置情報によって示される位置）を含む範囲の画像ではないため探索されない。
【０１０３】
この場合、図１０に示す部分画像情報に含まれる位置情報によって示される画面上の位置（例えば、操作対象画面に設けられているボタン１の中心）に対して、対象シナリオに含まれる操作情報によって示される操作（ここでは、マウスクリック）が実行される。
【０１０４】
これにより、前述した第１の実施形態において図５で説明したような操作者の操作を再現することができる。
【０１０５】
また、上記したように対象シナリオには図９〜図１１に示す部分画像情報が含まれているが、当該対象シナリオは、図１０に示す部分画像情報のみを含むシナリオに修正される。つまり、対象シナリオに含まれる図９〜図１１に示す部分画像情報のうち図９および図１１に示す部分画像情報は削除される。修正されたシナリオは、シナリオ格納部２３に格納される（対象シナリオに上書きされる）。これにより、この対象シナリオを再び用いる際には、図９および図１１に示す部分画像情報についての探索処理を行うことなく自動操作を行うことができる。
【０１０６】
上記したように本実施形態においては、アプリケーションソフトウェアが動作することによって表示される画面に対する自動操作が行われる際に、シナリオ格納部２３に格納されているシナリオに含まれる部分画像情報によって示される画像であって当該部分画像情報に含まれる位置情報によって示される画面上の位置を含む範囲の画像を画面の画像内から探索し、当該探索された画像を示す部分画面情報に含まれる位置情報によって示される画面上の位置に対して当該シナリオに含まれる操作情報によって示される操作を実行する構成により、前述した第１の実施形態において生成されたシナリオを用いてコンピュータシステムに対する自動操作を行うことができる。
【０１０７】
また、本実施形態においては、複数の部分画像情報を含むシナリオを、探索された画像を示す部分画像情報のみを含むシナリオに修正する構成により、後に当該シナリオを用いて自動操作を行う際の処理を低減することができる。
【０１０８】
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。  
【符号の説明】
【０１０９】
１０…コンピュータ、２０…外部記憶装置、２２…画像格納部、２３…シナリオ格納部、３０，５０…シナリオ生成装置、３１…操作検出部、３２…画像取得部、３３…画像切取部、３４…シナリオ生成部、５１…画像探索部、５２…操作実行部、５３…シナリオ修正部。
【図１】
0005622647.tif 000002
【図２】
0005622647.tif 000003
【図３】
0005622647.tif 000004
【図４】
0005622647.tif 000005
【図５】
0005622647.tif 000006
【図６】
0005622647.tif 000007
【図７】
0005622647.tif 000008
【図８】
0005622647.tif 000009
【図９】
0005622647.tif 000010
【図１０】
0005622647.tif 000011
【図１１】
0005622647.tif 000012
【図１２】
0005622647.tif 000013
【図１３】
0005622647.tif 000014
【図１４】
0005622647.tif 000015