以下、本発明の各実施形態について図面を用いて説明する。なお、以下の各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
(第1の実施形態)
先ず図1乃至図11を参照して本発明の第1の実施形態を説明する。
図1は、負荷試験を行うシステム全体の構成を示すブロック図であり、負荷を発生するクライアント側の複数の情報端末(PC)1,1,…と、負荷試験の対象となるサーバ2とにより構成される。クライアント側の複数の情報端末(PC)1,1,…には、それぞれサーバ2に対して処理要求を行う負荷発生システム10及びクライアントアプリケーション実行部20を単位負荷発生源とする負荷発生手段が設けられる。
負荷試験においては、クライアント側の複数の情報端末(PC)1,1,…に設けられた負荷発生手段から、サーバ2に対し、多量の処理要求を加えることによって、サーバ2の負荷時におけるリソース(CPU等)利用率や、処理要求に対するレスポンスタイム等を測定する。
上記図1に示す負荷発生システム10の構成を図2に示す。
負荷発生システム10は、メモリ内のクライアントアプリケーションプログラムをCPUが実行してなるクライアントアプリケーション実行部20に対して、人間が操作するのと同等に、マウスイベントやキーボードイベントを発生させることによって、画面操作を行う。クライアントアプリケーションプログラムはGUI(Graphical User Interface)による画面操作を伴うものである。クライアントアプリケーション実行部20は、負荷発生システム10からの画面操作に応じて、サーバ2に処理要求を発行する。
負荷発生システム10は、図2に示すように、制御部11と、画面遷移判定部12と、比較対象特定部13と、操作イベント発生部14と、画像情報取得部15とを備えている。
図2に示す負荷発生システム10において、制御部11は、操作実行制御部111と、シナリオ記憶部112とを備えている。
制御部11に設けられた操作実行制御部111は、シナリオ記憶部112内の操作シナリオの記述内容に従い、画面遷移判定部12、比較対象特定部13、及び操作イベント発生部14を制御する。シナリオ記憶部112は、画面上の操作により負荷発生システム10に実行させる一連の画面操作の内容を定義した操作シナリオを記憶するものである。
制御部11に設けられた操作実行制御部111は、画面遷移判定部12に対して画面遷移判定要求213を発行し、画面遷移判定部12から画面遷移判定応答221を受け付ける機能と、比較対象特定部13に対して比較対象特定要求211を発行し、比較対象特定部13から比較対象特定応答222を受け付ける機能と、操作イベント発生部14に対してイベント発生要求212を発行し、操作イベント発生部14からイベント発生応答223を受け付ける機能を備えている。
画面遷移判定部12は、操作実行制御部111から受けた画面遷移判定要求213に従い画像情報取得部15に対して画面情報取得要求215を発行し、画像情報取得部15から画像情報取得応答225を受け付けて、画面遷移判定応答221を操作実行制御部111に送出する機能を備えている。
比較対象特定部13は、操作実行制御部111から受けた比較対象特定要求211に従い画像情報取得部15に対して画面情報取得要求216を発行し、画像情報取得部15から画像情報取得応答226を受け付けて、比較対象特定応答222を操作実行制御部111に送出する機能を備えている。
操作イベント発生部14は、操作実行制御部111から受けたイベント発生要求212に従いクライアントアプリケーション実行部20に対してイベント201を発行し、イベント発生応答223を操作実行制御部111に送出する機能を備えている。クライアントアプリケーション実行部20は操作イベント発生部14から受けたイベント201に従う処理要求202をサーバ2に送出する。
画像情報取得部15は、画面遷移判定部12から受けた画面情報取得要求215に従いクライアントアプリケーション実行部20から画像情報203を取得し、画像情報取得応答225を画面遷移判定部12に送出する機能と、比較対象特定部13から受けた画面情報取得要求216に従いクライアントアプリケーション実行部20から画像情報203を取得し、画像情報取得応答226を比較対象特定部13に送出する機能とを備えている。
なお、比較対象特定要求211、画面遷移判定要求213、画像情報取得応答225,226には、それぞれクライアントアプリケーション実行部20の操作画面に含まれるビットマップイメージ(拡張子bmpのファイル)の画像情報が付随する。ただし、ビットマップイメージには限定されず、他の形式のイメージファイルであっても構わない。
上記図2に示す比較対象特定部13の構成を図3に示す。
比較対象特定部13は、図3に示すように、比較対象特定制御部131と、画像比較部133とを備えている。
比較対象特定制御部131は、操作実行制御部111から受けた比較対象特定要求211に従い、当該要求211に付随するビットマップイメージの画像情報を画像比較部133に送出するとともに、画面情報取得要求216を画像情報取得部15に送出して、画像情報取得部15から画像情報取得応答226に付随するビットマップイメージの画像情報を取得し、上記各画像情報を画像比較部133に供給する処理機能を実現する。
画像比較部133は、クライアントアプリケーション実行部20の操作画面の画面情報の中から、上記比較対象特定要求211が指定したビットマップイメージと合致する部分を探索する。探索の結果、合致する部分が見つかった場合には、比較対象特定制御部131に探索結果通知を送出する。探索結果通知には、画面情報内での上記ビットマップイメージと合致した部分の座標情報を含む。なお、ここで言う「合致」は、ビットマップイメージを構成する全てのピクセルが完全に一致することであってもよいし、完全ではないが指定された基準以上に一致することであってもよい。例えば、予め指定された値以上の割合で、ピクセルの色の情報が一致していることを条件に「合致」を定義してもよい。
ここで、クライアントアプリケーション実行部20に於ける操作画面の具体例を挙げて、上記負荷発生システム10の動作について、図4乃至図11を参照して説明する。ここでは、クライアントアプリケーション実行部20が扱うアプリケーション操作ウィンドウとして、図4に示すスケジュール表示画面を例に動作を説明する。
負荷発生システム10の制御部11に設けられた操作実行制御部111は、シナリオ記憶部112内の操作シナリオの定義内容に従い、負荷発生システム10内部に設けられた画面遷移判定部12、比較対象特定部13、操作イベント発生部14、及び画像情報取得部15等の各構成要素を制御する。
制御部11の下で操作実行制御部111は、シナリオ記憶部112内の操作シナリオに記述(定義)されている内容に従い、比較対象特定部13に対して比較対象特定要求211を送出し、操作イベント発生部14に対してイベント発生要求212を送出し、画面遷移判定部12に対して画面遷移判定要求213を送出する。
画面遷移判定部12及び比較対象特定部13はそれぞれ操作実行制御部111の制御の下に画像情報取得部15に画面情報取得要求215,216を送出する。すなわち画面遷移判定部12は、操作実行制御部111から画面遷移判定要求213を受けると、画像情報取得部15に対して画面情報取得要求215を送出する。比較対象特定部13は、操作実行制御部111から比較対象特定要求211を受けると、画像情報取得部15に対して画面情報取得要求216を送出する。
画像情報取得部15は画面遷移判定部12から画面情報取得要求215を受けると、オペレーティングシステム(OS)実行部40を介してクライアントアプリケーション実行部20が画面に表示している画像情報203を取得し、取得した画像を含む画像情報取得応答225を画面遷移判定部12に送出する。同様に比較対象特定部13から画面情報取得要求216を受けると、クライアントアプリケーション実行部20が画面に表示している画像情報203を取得し、取得した画像を含む画像情報取得応答226を比較対象特定部13に送出する。
この際のクライアントアプリケーション実行部20が画面に表示している画像情報(アプリケーション操作ウィンドウ)203の具体例を図4に示している。ここでは、スケジュール管理システムに於けるスケジュール表示画面21を例に示している。以降の動作説明においては、この図4に示すスケジュール表示画面21の画像情報が画像情報取得部15により画像情報203として取得され、当該スケジュール表示画面21の画像情報が画面遷移判定部12、及び比較対象特定部13に送出されるものとする。
図4に示すスケジュール表示画面21において、ボタン「旅費清算システム」をクリックすると、図5に示す旅費清算システムの画面22に遷移する。さらに、この旅費清算システムの画面22上で、「一括請求」ボタンをクリックすると、さらに次の画面に遷移する。
この一連の画面遷移に応じた操作を負荷発生システム10によって実現する手順を以下に説明する。
上記図4に示すスケジュール表示画面21の座標軸を図6に示している。ここでは、XGA(1024×768ピクセル)のアプリケーション操作ウィンドウを例に示している。
上記シナリオ記憶部112内の操作シナリオの一部記述例を図7に示している。この操作シナリオは、図7に示すように、操作ステップと、画面識別情報(画面ID)と、ビットマップイメージの画面遷移判定画像及び比較対象画像と、判定/操作内容と、数値情報とを設定項目(定義項目)として構成される。
クライアントアプリケーション実行部20は、画面遷移の中で、図4に示すスケジュール表示画面21を表示しようとしている状態とする。
操作実行制御部111は、シナリオ記憶部112内の操作シナリオのステップ20を読み取る。このステップ20には、[判定/操作内容]として「画面遷移判定」が設定(定義)されている。従って、次に行うことは、画面遷移の判定であることが決定される。また、[画面遷移判定画像]として、ファイル名「1.bmp」が設定されている。その内容(ビットマップイメージ)を図8に示している。操作実行制御部111は、この図8に示す画面遷移判定画像の情報(ビットマップイメージ)を含む画面遷移判定要求213を画面遷移判定部12に送出する。
画面遷移判定部12は、操作実行制御部111から画面遷移判定要求213を受けると、画像情報取得部15に対して画面情報取得要求215を送出する。
画像情報取得部15は、画面遷移判定部12から画面情報取得要求215を受けると、クライアントアプリケーション実行部20が表示している画像情報(ビットマップイメージ)203を取得し、当該画像情報203を含む画像情報取得応答225を画面遷移判定部12に送出する。
画面遷移判定部12は、画像情報取得部15を介してクライアントアプリケーション実行部20から取得した画像情報203の中に、「1.bmp」の画像と合致する部分があるか否かを検査する。この際の「1.bmp」の内容(ビットマップイメージ)は上記した図8に示す画面遷移判定画像の情報(ビットマップイメージ)である。
なお、この検査において、例えば画面遷移が完了していないために、合致する部分が存在しなかった場合、画面遷移判定部12は、画像情報取得部15に対して、画面情報取得要求215を送出する動作から、上記同様の処理を適当な頻度で繰り返し実行する。
画面遷移が完了し、合致する部分が見つかった場合、画面遷移判定部12は、操作実行制御部111に対して画面遷移判定応答221を送出する。
操作実行制御部111は、シナリオ記憶部112内の操作シナリオの次のステップであるステップ21を読み取る。このステップ21には、[判定/操作内容]として「クリック」が設定されている。従って、次に行うことは、クリックであることが決定される。また、[比較対象画像]としてファイル名「2.bmp」が設定されている。この「2.bmp」のビットマップイメージを図9に示す。
操作実行制御部111は、シナリオ記憶部112内の操作シナリオの内容に従い、比較対象特定部13に対して比較対象特定要求211を送出する。この比較対象特定要求211には、上記した図9に示す比較対象画像(ビットマップイメージ)が付随している。
比較対象特定部13において、比較対象特定制御部131は、操作実行制御部111から比較対象特定要求211を受けると、画像情報取得部15に画面情報取得要求216を送出する。
画像情報取得部15は、比較対象特定部13に設けられた比較対象特定制御部131から画面情報取得要求216を受けると、クライアントアプリケーション実行部20が表示している画像情報203を取得し、当該取得した画像情報203を比較対象特定部13に設けられた画像比較部133に送出する。今回のケースでは、画像情報203として図4に示すスケジュール表示画面21が画像比較部133に送出される。
画像比較部133は、画像情報取得部15を介してクライアントアプリケーション実行部20から取得した画像情報203の中から、比較対象画像としてファイル名「2.bmp」で表される画像(ビットマップイメージ)112と一致する部分を検索する。
画像比較部133は、上記検索の結果として、[中心X座標]、[中心Y座標]を比較対象特定制御部131に応答し、比較対象特定制御部131は、操作実行制御部111に、比較対象特定応答222を送付する。
操作実行制御部111は、比較対象特定制御部131から受けた比較対象特定応答222に付随した比較対象の中心X座標、中心Y座標の情報と、操作/判定内容として「クリック」の情報をイベント発生要求212に付随させ、当該イベント発生要求212を操作イベント発生部14に送出する。
操作イベント発生部14は、操作実行制御部111から受けたイベント発生要求212に従い、比較対象の中心X座標、中心Y座標にマウスが移動したのと同等のイベント201を発生する。さらに、マウスクリックのイベント201を発生する。その後、イベント発生応答223を操作実行制御部111に送出する。
このようにして、クライアントアプリケーション実行部20の画面が操作されるような適切な操作イベントを発生させることができる。
次に、操作実行制御部111は、シナリオ記憶部112内の操作シナリオの次のステップであるステップ22を読み取る。このステップ22には、[判定/操作内容]として「画面遷移判定」が設定されている。
ここでは、上記ステップ20で実行したのと同様に、ステップ22の処理が実行される。このステップ22における「3.bmp」の内容(ビットマップイメージ)を図10に符号113を付して示している。
操作実行制御部111は、シナリオ記憶部112内の操作シナリオの次のステップであるステップ23を読み取る。
ここでは、上記ステップ21で実行したのと同様に、ステップ23の処理が実行される。このステップ23における「4.bmp」の内容(ビットマップイメージ)を図11に符号114を付して示している。
このようにしてクライアントアプリケーション実行部20の画面に対して適切な操作イベントを発生させることができる。
上記したシナリオ記憶部112内の操作シナリオに従う処理動作によって、負荷発生システム10から、クライアントアプリケーション実行部20に対して、画面遷移に応じ、順次、適正なイベントを発生させることができ、これに伴いクライアントアプリケーション実行部20からサーバ2に処理要求を送出して、サーバ2に所望の負荷をかける負荷試験が可能となる。
(第2の実施形態)
次に図12乃至図16を参照して本発明の第2の実施形態を説明する。この第2の実施形態は、画面遷移を伴うアプリケーションプログラムを対象に、上記第1の実施形態で用いた操作シナリオを作成するシステムを実現している。
本発明の第2の実施形態は、操作画面の表示を伴うアプリケーションプログラムを対象に、上記操作画面内の操作対象の一部画像を含む比較対象に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成システムであって、上記操作画面上の操作に伴い発生するイベントを採取し記録するイベント取得手段と、上記操作画面の全体画像、及び上記操作画面上における指定部位の抽出画像を採取し記録する画像取得手段と、上記イベント取得手段が取得したイベント、及び上記画像取得手段が取得した画像をもとに上記操作シナリオを生成するシナリオ生成手段とを具備して構成される。上記イベント取得手段は、後述する図13に示すイベント検出部308、イベント記録部309及びイベントログ記憶部306により実現される。上記画像取得手段は、後述する図13に示す画面画像記録指示部311及び画面画像記録部310と、画面画像記録部310が記録した画面全体画像情報と、比較対象範囲抽出部303とにより実現される。上記シナリオ生成手段は、後述する図13に示すシナリオ生成部302により実現される。
本発明の第2、第3、第4の実施形態に係るシナリオを作成するシステム全体の構成を図12に示す。この図12に示すシステムは、シナリオ生成システム30を主構成要素として実現される。シナリオ生成システム30は、サーバ2に処理要求を送出するクライアントアプリケーション実行部20に対して、操作者3の操作指示に伴い、オペレーティングシステム(OS)実行部40を介して発生する各種の操作イベントをクライアントアプリケーション実行部20の画像情報とともに取り込み、操作シナリオを作成してシナリオ記憶部112に記録する機能を実現している。
このシナリオ生成システム30の構成を図13に示す。
図13に示すシナリオ生成システム30は、シナリオ生成部302、比較対象範囲抽出部303、イベント検出部308、イベント記録部309、画面画像記録部310、画面画像記録指示部311等を有して構成される。
画面画像記録指示部311は、クライアントアプリケーション実行部20が画面に表示している画像を取り込む際に操作者3によって操作されるもので、例えばキーボード上の「PrintScreen」キー等により実現される。
画面画像記録部310は、画面画像記録指示部311の操作に従い、クライアントアプリケーション実行部20が画面に表示している画像情報(画面全体画像情報)を取り込み、画面全体画像情報記憶部307に記録する。例えば図4に示すスケジュール表示画面21の全画像(ビットマップイメージ)を画面全体画像情報として所定の記録領域(画面全体画像情報記憶部307)に記録する。なお、ここで言う「画面全体画像」は、あくまで操作対象範囲にある全体画像であって、マウス操作が行われるであろう位置が含まれる操作対象範囲内の画像であればよく、例えばアクティブになっているウィンドウの画像である場合も含む。
イベント検出部308は、操作者3によるマウスのクリック操作、キー操作等、各種の操作指示に伴い、オペレーティングシステム(OS)実行部40を介して発生する操作イベントの情報を検出する。このイベント情報には、操作者3が操作する操作画面上における操作の位置を示す座標情報が含まれる。
イベント記録部309は、イベント検出部308が検出したマウスのクリック操作、キー操作等により発生する各種のイベント情報をイベントログとしてイベントログ記憶部306に記録する。
比較対象範囲抽出部303は、画面全体画像情報記憶部307内の画面全体画像情報からイベントログ記憶部306内のイベントログに従う比較対象範囲の画像情報(ビットマップイメージ)を比較対象画像情報として抽出し、比較対象画像情報記憶部301に記録する。
シナリオ生成部302は、比較対象画像情報記憶部301内の比較対象画像情報と、イベントログ記憶部306内のイベントログとをもとに操作シナリオを生成する。ここでは、クライアントアプリケーション実行部20を操作対象とした操作シナリオを作成してシナリオ記憶部112に記録する。
本発明の第2の実施形態におけるシナリオ生成システム30を主構成要素としたシステムの処理手順を図14に示し、当該処理により生成される操作シナリオの内容例を図7に示し、当該操作シナリオに設定された比較対象画像情報の一例を図9乃至図11に示している。また、操作画面上におけるマウスカーソルの操作に伴う比較対象画像の状態遷移の一例を図15及び図16に示している。
ここで上記図12乃至図16を参照して本発明の第2の実施形態における操作シナリオの作成処理動作を説明する。
シナリオ作成者となる操作者3は、まず操作対象となるクライアントアプリケーション実行部20を起動する。そして、シナリオ生成システム30の動作を開始させる。
操作者3は、オペレーティングシステム(OS)実行部40を介し、クライアントアプリケーション実行部20に、マウスの移動、マウスのクリック、キーボード入力等の各種イベントを送出することによって、クライアントアプリケーション実行部20を操作する。
シナリオ生成システム30は、上記各種イベントの情報や、クライアントアプリケーション実行部20の画像情報をオペレーティングシステム(OS)実行部40から取得することによって、操作シナリオを生成してシナリオ記憶部112に記録する。
以下に図14に示す処理手順と図7に示す操作シナリオの内容例と図9乃至図11に示す比較対象画像の一例を参照して、図12及び図13に示す本発明の第2の実施形態におけるシナリオ生成システム30を主構成要素としたシステムの具体的な処理動作を説明する。
図14に示す処理フローにおいて、ステップS21では、操作者3が、クライアントアプリケーション実行部20の画面に画像から所期の比較対象を認識して、画面画像記録指示部311を操作する。例えば、図4に示されるスケジュール表示画面21が表示され、操作者3が当該スケジュール表示画面21上において、左下の「旅費清算システム」のボタンを発見したとき、キーボード上の「PrintScreen」キー等のボタンを押下する。
ステップS22では、画面画像記録指示部311の操作に従い、画面画像記録指示部311が画面画像記録部310に対して画面全体画像情報の記録を指示する。
ステップS23では、画面画像記録部310が、画面画像記録指示部311からの指示に従い、クライアントアプリケーション実行部20が画面に表示している図4に示すスケジュール表示画面21を画面全体画像情報として所定の記録領域(画面全体画像情報記憶部307)に記録する。
ステップS24では、操作者3が上記スケジュール表示画面21の「旅費清算システム」ボタン上へマウスを移動させ、クリック操作を行う。
ステップS25では、イベント記録部309が、上記マウスのクリック操作をイベントとして検出し、マウスの位置を示す座標情報と、イベントの種別情報(この例ではクリック)を、イベントログとして所定の記録領域(イベント記憶部306)に記録する。
ステップS26では、比較対象範囲抽出部303が、画面全体画像情報記憶部307内の画面全体画像情報の中から、上記イベントログ記憶部306にイベントログとして記録した座標情報を中心とした、既定の形状とサイズによって決まるエリアに含まれる部分を、マッチング範囲として抽出し、比較対象画像情報として所定の記録領域(比較対象画像情報記憶部301)に記録する。
ステップS27では、操作者3によるクライアントアプリケーション実行部20の操作が終了したか否かを判断する。操作が終了していない場合は、ステップS21へ戻る。操作が終了していれば、ステップS28へ移行する。
ステップS28では、シナリオ生成部302が、比較対象画像情報記憶部301内の比較対象画像情報と、イベントログ記憶部306内のイベントログの情報を組み合わせて、操作シナリオを生成してシナリオ記憶部112に記録する。
シナリオ記憶部112内の操作シナリオの一例を図7に示している。この操作シナリオは、操作ステップと、画面識別情報(画面ID)と、ビットマップイメージの画面遷移判定画像及び比較対象画像と、判定/操作内容と、数値情報とを設定項目として構成される。
上記図7に示す操作シナリオにおいて、比較対象画像の設定項目には、比較対象画像を適当な画像ファイル形式として保存したファイルのファイル名が設定される。この例では、ビットマップのイメージ形式ファイルを表す「.bmp」が設定されている。
上記図7に示す操作シナリオの[比較対象画像]に設定された比較対象画像ファイル(2.bmp)の内容を図9に示している。この例ではスケジュール表示画面21から抽出された「旅費清算システム」が比較対象画像として操作シナリオに登録される。
なお、上記したステップS24の処理において、マウスをクリックする直前に、マウスがボタンの上へ到達した時点で、ボタンの外見(形状、色、等)が変化することがある。例えば図15に示すようにマウスカーソル(MC)がボタン設定エリア(BA1)に到達しない(BA1の外に位置している)状態から、図16に示すようにマウスカーソル(MC)がボタン設定エリア(BA1)に到達した(BA1内に位置した)とき、ボタンの外郭(非明示/明示)、色(例えば非反転/反転)、明度(暗/明)等が変化する。実際に、汎用OS上の多くのアプリケーションソフトウェアは、メニュ−の上にマウスを移動させただけで、外見(形状、色、等)が変化する。
したがって、上記ステップS24の時点でマウスのクリックが発生したときに、画面の画像情報を取得したのでは、変化した後の画像しか得られない。しかしながら、シナリオを実行する際には、まだマウスが操作対象となるボタンよりも離れた位置に有る状態においてボタンの画像を画面全体の画像の中から検出しなければならず、その時点では、まだボタンの画像は変化していない。つまり、画面全体画像を取得すべき時点とは、操作者3が比較対象(例:ボタン)を視認した後の時点でなければならず、かつ、マウスが比較対象に近づく以前であって、比較対象の外見が変化する以前の時点でなければならない。したがって、上記ステップS21の段階で、画面画像記録指示部を操作する必要がある。
上記したような画面全体の画像の取得処理機能をもつことで、実行可能な操作シナリオによる負荷試験システムを構築することができる。
(第3の実施形態)
次に、本発明の第3の実施形態を図17乃至図24を参照して説明する。
第3の実施形態は、シナリオ生成時の比較対象範囲を抽出する方法の不具合を解消するものである。例えば、図13の比較対象範囲抽出部303が比較対象を特定するため画面画像を抽出する手法において、従来方法では抽出範囲が操作者にわからず、また抽出範囲が自由に決められず、抽出範囲が不適切になってしまう可能性がある。
これにより、実行時毎に画像が変わるような部分を、抽出画面画像の一部に含んでしまうと、比較対象を特定するための画像が無効になる場合がある。この場合の典型例として、あるウィンドウの端付近をクリックしたときに、そのウィンドウの後ろにある背景画像(壁紙、他のウィンドウ)を含んでしまう状況がある。
図17は操作対象アプリウィンドウの後ろに他の背景ウィンドウが存在する画面状況の例を示している。このような画面状況では、「会議室予約システム」ボタンを特定するための比較対象の画像として、図18に示すように、背景画像の一部を含む「会議室予約システム」ボタンの抽出画像が保存される場合がある。図19は、図17に示した操作対象アプリウィンドウの後ろに図17とは異なる背景ウィンドウが存在する画面状況の例を示している。図18に示す画像が図19の画面状況では存在しないため、図19の画面状況では「会議室予約システム」ボタンのクリック操作を再現できず、比較対象を特定できない。このため、図18の画像を含む操作シナリオは、図17の状況では正常に動作するが、図19の状況では正常に動作しないという不具合が発生してしまう。
また同様に抽出範囲が操作者にわからず、また抽出範囲が自由に決められないことから、抽出範囲が不適切になってしまう例として、抽出された画像と同じ画像が操作対象画面の複数の位置に存在する場合、比較対象を特定するための画像が無効になることがある。
例えば、図20に示すようなアプリケーションの「旅費精算システム」ボタンを特定するための比較対象の画像として、図21に示す「費精算シ」の画像が抽出される場合がある。しかし図21に示す「費精算シ」の画像は「旅費精算システム」ボタン上と「経費精算システム」ボタン上の2箇所に存在し、この画像からは比較対象がどちらのボタンなのか特定できない。このため、図21の画像を含むシナリオは図20の状況においては、シナリオ製作者の意図と異なる動作を行う不具合が発生してしまう可能性がある。
第3の実施形態は、上記のような不具合を解消するために、シナリオ生成時に操作者に画面の抽出範囲を明示的に示す仕組み及び、明示的に示すと同時にキー操作により抽出範囲の拡大縮小及び変形を可能にする仕組みについて説明するものである。図22は抽出範囲を明示的に示した画面の例である。図22の長方形枠221が抽出範囲を示しており、操作者はマウスクリック時にこの長方形枠221を参考にすることにより、適切な抽出範囲を選ぶことが可能になる。また、図23は抽出範囲を拡大縮小及び変形した例である。ここでは、抽出範囲を「旅費精算システム」ボタンの全体を囲むように変形したことにより、上述した共通画像を含むような不具合の発生を防ぐことができる。
第3の実施形態は、操作画面の表示を伴うアプリケーションプログラムを対象に、上記操作画面内の操作対象の一部画像を含む比較対象の画像に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成システム(シナリオ生成装置)であって、上記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、上記イベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、上記比較対象の画像を抽出する範囲を示す抽出範囲情報を決定する抽出範囲決定手段と、上記抽出範囲情報に基づき、上記比較対象の画像の抽出範囲を上記操作画面上に表示する抽出範囲表示手段と、上記表示された抽出範囲に対して入力された拡大又は縮小指示に応じて、当該表示された抽出範囲を拡大又は縮小するように上記抽出範囲情報を変更する抽出範囲変更手段と、上記イベント情報が上記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、上記操作画面上の全体画像の画像情報の座標値と上記抽出範囲情報とをもとに上記全体画像の画像情報から上記比較対象の画像情報を抽出し記憶する画像取得手段と、上記記憶したイベント情報及び上記比較対象の画像情報をもとに上記操作シナリオを生成するシナリオ生成手段とを備えて構成される。上記イベント情報取得手段は、後述する図24に示すイベント記録部309及びイベントログ記憶部306により実現される。上記抽出範囲決定手段及び抽出範囲変更手段は、抽出範囲指示部314及び抽出範囲情報記憶部313により実現される。上記抽出範囲表示手段は、範囲表示部312により実現される。画像取得手段は、画面画像記録指示部311、画面画像記録部310、画面全体画像情報記憶部307、比較対象画像情報記憶部301及び比較対象範囲抽出部303により実現される。上記シナリオ生成手段は、シナリオ生成部302及びシナリオ記憶部112により実現される。
図24は本発明の第3の実施形態に係るシナリオ生成システムの構成を示す模式図である。このシナリオ生成システムは、前述した図13に示した構成に比べ、抽出範囲指示部314、抽出範囲情報記憶部313及び範囲表示部312が付加されている。
次に、以上のように構成されたシナリオ生成システムの動作を説明する。
始めに、前述した通り、クライアントアプリケーション実行部20が起動され、シナリオ生成システム30の動作が開始したとする。また同様に、クライアントアプリケーション実行部20は、操作者3によるマウスやキーボード操作により、オペレーティングシステム実行部(OS)40から各種入力イベントを受けて操作される。
シナリオ生成システム30は、各種イベントの情報や、クライアントアプリケーション実行部20の画像情報や、画像情報内の抽出範囲情報、位置座標といった情報をオペレーティングシステム実行部(OS)40から取得することにより、操作シナリオを生成してシナリオ記憶部112に記録する。
例えば、イベント記録部309は、操作画面上の操作に伴い発生するイベント情報を採取しイベントログとしてイベントログ記憶部306に記録する。
ここで、抽出範囲指示部314は、このイベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、比較対象の画像を抽出する範囲を示す抽出範囲情報を決定し、この抽出範囲情報を抽出範囲情報記憶部313に記録する。
範囲表示部312は、抽出範囲情報記憶部313内の抽出範囲情報に基づき、比較対象の画像の抽出範囲を示す長方形枠231を操作画面上に表示する。
操作者は、この長方形枠231を見てキー操作を行う。キー操作が、当該表示された長方形枠231に対して入力された拡大又は縮小指示の場合、抽出範囲指示部314は、この拡大又は縮小指示に応じて、当該表示された長方形枠231を拡大又は縮小するように抽出範囲情報記憶部313内の抽出範囲情報を変更する。
また、キー操作が抽出範囲の指示に続く記録指示のとき、画面画像記録指示部311は、当該記録指示を画面画像記録部310に入力する。画面画像記録部310は、当該記録指示に基づいて、操作画面上の全体画像の画像情報を抽出し画面全体画像情報記憶部307に記録する。
比較対象範囲抽出部303は、画面全体画像情報記憶部307内の全体画像の画像情報の座標値と抽出範囲情報記憶部313内の抽出範囲情報とをもとに操作画面から比較対象の画像情報を抽出し比較対象画像情報記憶部301に記録する。
シナリオ生成部112は、イベントログ記憶部306内のイベントログ内のイベント情報及び比較対象画像情報記憶部301内の画像情報をもとに操作シナリオを生成してシナリオ記憶部112に記録する。
上述したように本実施形態によれば、比較対象の画像の抽出範囲を示す長方形枠231を操作画面上に表示する構成により、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。また、長方形枠231の表示中、入力された拡大又は縮小指示に応じて長方形枠231を拡大又は縮小して表示する構成により、表示された長方形枠231を適切な抽出範囲に調整することができる。
(第4の実施形態)
次に本発明の第4の実施形態を図17乃至図26を参照して説明する。
第4の実施形態は、第3の実施形態に述べた如き、あるウィンドウの端付近をクリックしたときに、そのウィンドウの後ろにある背景画像(壁紙、他のウィンドウ)を抽出画像に含んでしまう状況を解消するものである。
前述した通り、図17に示す画面から「会議室予約システム」ボタンを特定するために図18に示すように背景画像を含む抽出画像が保存された場合、次の図19に示す画面では「会議室予約システム」ボタンをクリックする操作を再現できない不都合が生じる。
第4の実施形態ではこのような不都合を解消するために、操作対象の操作時に操作対象を含むウィンドウを特定し、第3の実施形態で決定した抽出範囲と、特定したウィンドウ範囲の両方に含まれる範囲を抽出範囲とする仕組みについて説明するものである。但し、第4の実施形態は、第3の実施形態とは異なり、抽出範囲を明示する長方形枠231の表示を省略してもよい。図25は、図17に示す操作画面から抽出した図18に示す抽出画像のうち、操作対象アプリウィンドウの部分のみを抜き出したものである。
図25に示す抽出画像は、背景画像を含まないため、図19に示す画面にも存在する。このことから、図25に示す抽出画像を含む操作シナリオは、図17又は図19のいずれに示す操作画面でも「会議室予約システム」を特定するように正常に動作する。
第4の実施形態は、操作画面の表示を伴うアプリケーションプログラムを対象に、上記操作画面内の操作対象の一部画像を含む比較対象の画像に対して操作イベントを発生する手順を記述した操作シナリオを生成するシナリオ生成システム(シナリオ生成装置であって、上記操作画面上の操作に伴い発生するイベント情報を採取し記憶するイベント情報取得手段と、上記イベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、上記比較対象の画像を抽出する範囲を示す抽出範囲情報を決定する抽出範囲決定手段と、上記イベント情報が上記抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、上記操作画面上の全体画像の画像情報の座標値と上記抽出範囲情報とをもとに上記全体画像の画像情報から上記比較対象の画像情報を抽出し記憶する画像取得手段と、上記記憶したイベント情報及び上記比較対象の画像情報をもとに上記操作シナリオを生成するシナリオ生成手段とを備えており、上記画像取得手段としては、上記操作画面上に複数のウィンドウ画面が表示されている場合、上記記録指示に基づき、当該各ウィンドウ画面の範囲及び重なり順序をそれぞれ示すウィンドウ範囲情報及び重なり順序情報を記憶するウィンドウ範囲記憶手段と、上記抽出範囲の指示に含まれる位置座標と、上記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応するウィンドウ範囲情報を選択するウィンドウ選択手段と、上記ウィンドウ選択手段により選択したウィンドウ範囲情報と、上記抽出範囲情報との共通範囲を示す共通範囲情報を抽出する共通範囲抽出手段と、上記記憶手段内の抽出範囲情報の値を上記共通範囲情報の値に変更する抽出範囲変更手段と、上記変更された値の抽出範囲情報に基づいて、上記比較対象の画像情報を抽出し記憶する画像抽出記憶手段と、を備えて構成される。なお、第4の実施形態は、上記抽出範囲変更手段に代えて、上記抽出範囲の指示に含まれる位置座標と、上記ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含まず上記抽出範囲の一部を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応する背景ウィンドウ範囲情報を選択する背景ウィンドウ選択手段と、上記共通範囲情報が示す共通範囲を含みつつ、上記背景ウィンドウ範囲情報が示すウィンドウ画面の範囲に含まれないように移動させた抽出範囲を示す抽出範囲情報を抽出する抽出範囲移動手段と、上記決定した抽出範囲情報を上記移動後の抽出範囲情報に変更する変更手段とを備えてもよい。上記イベント情報取得手段は、後述する図26に示すイベント記録部309及びイベントログ記憶部306により実現される。上記抽出範囲決定手段及び抽出範囲変更手段は、抽出範囲指示部314及び抽出範囲情報記憶部313により実現される。上記抽出範囲表示手段は、範囲表示部312により実現される。画像取得手段は、画面画像記録指示部311、画面画像記録部310、画面全体画像情報記憶部307、比較対象画像情報記憶部301及び比較対象範囲抽出部303により実現される。ウィンドウ範囲記憶手段は、画面画像記録指示部311、画面画像記録部310、ウィンドウ範囲情報記憶部316及びウィンドウ範囲検出部317により実現される。ウィンドウ選択手段、背景ウィンドウ選択手段、共通範囲抽出手段、抽出範囲変更手段、変更手段及び画像抽出記憶手段は、比較対象範囲抽出部303、比較対象画像情報記憶部301及び共通範囲抽出部315により実現される。上記シナリオ生成手段は、シナリオ生成部302及びシナリオ記憶部112により実現される。
図26は本発明の第4の実施形態に係るシナリオ生成システムの構成を示す模式図である。このシナリオ生成システムは、前述した図24に示した構成に比べ、共通範囲抽出部315、ウィンドウ範囲情報記憶部316及びウィンドウ範囲検出部317が付加されている。
ウィンドウ範囲情報記憶部316には、図27に一例を示すように、画面全体画像情報記憶部307内の画面全体画像情報に関連付けて、各ウィンドウ画面の画面ID毎に、ウィンドウ範囲情報(左上隅座標、右下隅座標)及び重なり順序情報が記憶される。ウィンドウ範囲情報は各ウィンドウ画面の範囲を示す情報であり、ここではウィンドウ画面の左上隅の位置座標と、右下隅の位置座標とが用いられている。重なり順序情報は各ウィンドウ画面間の重なり順序を示す情報であり、この例では値の小さい順に上位側(表面側、画面手前側)を示している。これらウィンドウ範囲情報及び重なり順序情報は、それぞれ図示しないオペレーティングシステム(OS)実行部40からウィンドウ範囲検出部317に取得される。
次に、以上のように構成されたシナリオ生成システムの動作を説明する。
始めに、前述した通り、クライアントアプリケーション実行部20が起動され、シナリオ生成システム30の動作が開始したとする。また同様に、クライアントアプリケーション実行部20は、操作者3によるマウスやキーボード操作により、オペレーティングシステム実行部(OS)40から各種入力イベントを受けて操作される。
シナリオ生成システム30は、各種イベントの情報や、クライアントアプリケーション実行部20の画像情報や、画像情報内の抽出範囲情報、位置座標といった情報をオペレーティングシステム実行部(OS)40から取得することにより、操作シナリオを生成してシナリオ記憶部112に記録する。
例えば、イベント記録部309は、操作画面上の操作に伴い発生するイベント情報を採取しイベントログとしてイベントログ記憶部306に記録する。
ここで、抽出範囲指示部314は、このイベント情報が位置座標を含む抽出範囲の指示のとき、当該イベント情報に基づき、比較対象の画像を抽出する範囲を示す抽出範囲情報を決定し、この抽出範囲情報を抽出範囲情報記憶部313に記録する。
範囲表示部312は、抽出範囲情報記憶部313内の抽出範囲情報に基づき、比較対象の画像の抽出範囲を示す長方形枠を操作画面上に表示する。但し、範囲表示部312による長方形枠の表示は省略してもよい。
また、イベント情報が抽出範囲の指示に続く記録指示のとき、画面画像記録指示部311は、当該記録指示を画面画像記録部310に入力する。画面画像記録部310は、当該記録指示に基づいて、操作画面上の全体画像の画像情報を抽出し画面全体画像情報記憶部307に記録する。
ここで、図28に示すように、操作画面上に複数のウィンドウ画面W1〜W3が表示されている場合、ウィンドウ範囲検出部317は、当該記録指示に基づき、当該各ウィンドウ画面の範囲及び重なり順序をそれぞれ示すウィンドウ範囲情報及び重なり順序情報をウィンドウ範囲情報記憶部316に記録する。
共通範囲抽出部315は、抽出範囲Cの指示に含まれる位置座標(xc,yc)と、ウィンドウ範囲情報記憶部316内のウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標(xc,yc)を含むウィンドウ範囲情報(W2対応)のうち、最上位を示す重なり順序情報に対応するウィンドウ範囲情報(W2対応)を選択する。
続いて、共通範囲抽出部315は、図29に示すように、選択したウィンドウ範囲情報(W2対応)と、抽出範囲情報(xc1,yc1,xc2,yc2)との共通範囲を示す共通範囲情報(xc1’,yc1’,xc2,yc2)を抽出する。
また、共通範囲抽出部315は、抽出範囲情報記憶部313の抽出範囲情報の値を共通範囲情報の値に変更する。なお、共通範囲抽出部315は、図29に示す手法に代えて、図30に示すように、抽出範囲の指示に含まれる位置座標と、ウィンドウ範囲情報及び重なり順序情報とに基づいて、当該位置座標を含まず抽出範囲の一部を含むウィンドウ範囲情報のうち、最上位を示す重なり順序情報に対応する背景ウィンドウ範囲情報(W1対応)を選択すると共に、共通範囲情報が示す共通範囲を含みつつ、背景ウィンドウ範囲情報が示すウィンドウ画面W1の範囲に含まれないように移動させた抽出範囲を示す抽出範囲情報を抽出し、抽出範囲情報記憶部313内の抽出範囲情報を当該移動後の抽出範囲情報(xc1’,yc1’,xc2’,yc2’)に変更するように動作してもよい。
いずれにしても抽出範囲情報の変更の後、比較対象範囲抽出部303は、画面全体画像情報記憶部307内の全体画像の画像情報の座標値と抽出範囲情報記憶部313内の抽出範囲情報とをもとに操作画面から比較対象の画像情報を抽出し比較対象画像情報記憶部301に記録する。
シナリオ生成部112は、イベントログ記憶部306内のイベントログ内のイベント情報及び比較対象画像情報記憶部301内の画像情報をもとに操作シナリオを生成してシナリオ記憶部112に記録する。
上述したように本実施形態によれば、抽出範囲の指示に含まれる位置座標を含む最上位のウィンドウ範囲情報と抽出範囲情報との共通範囲に基づいて、比較対象の画像を抽出する構成により、指示した位置座標を抽出範囲に含まない背景のウィンドウ画面が比較対象の画像の一部として抽出されなくなるので、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
(第5の実施形態)
次に本発明の第5の実施形態を図31乃至図38を参照して説明する。
第2、3、4の実施形態においては、生成されたシナリオに誤りが有り、実行時にエラーを発生する場合でも、シナリオ実行時までその誤りが顕在化しない状況にある。
例えば、第2の実施形態で示した手法により、図6に示す画面に対するシナリオを生成する状況を想定する。
図6の画面の「経費清算システム」をクリックする操作により、図31の比較対象画像情報が得られ、それを含んだシナリオが生成されてシナリオ記憶部112に記録されたとする。
シナリオ記憶部112内の操作シナリオを実行すると、上記の比較対象画像情報は、操作者が意図している「経費清算システム」のボタン以外にも、「旅費清算システム」のボタンにも一致してしまう。従って、状況によっては、「旅費清算システム」の方をシステムがクリックしてしまうという、誤動作が発生する可能性がある。
これは、シナリオ生成の過程において、比較対象範囲の選び方が不適切であり、比較対象画像情報が、操作画面上で複数一致する箇所がある場合の問題である。この問題は、シナリオを実際に動作させた後、誤動作が発生するまで発見されない。操作者は、誤動作が発生した後に、誤動作の原因を追究し、比較対象範囲の選び方が不適切であったことを理解した上で、再度シナリオの一部を修正する作業を行う必要がある。これにより、シナリオ作成から修正までのターンアラウンドタイムが長くなる。同一シナリオにこのような誤りが複数箇所ある場合、全ての誤りを修正して、完全なシナリオを得るまでには、多大な時間を要する。さらに、上記のような誤動作が、操作者にとって発見しにくい誤動作を生じている可能性がある。例えば、「経費清算システム」の代わりに、「旅費清算システム」をクリックしても、その後の画面遷移が、両者で酷似しており、操作者にはすぐに誤動作として発見されにくい場合がある。そのような場合、操作者が比較対象画像に誤動作の原因があることを認識するまでに、時間と労力がかかってしまう。
第5の実施形態は、シナリオ作成から修正までの時間を短縮するために、シナリオに誤りが有った場合に、シナリオを実行する以前の段階で、誤りを操作者に指摘し、修正の機会を与える「シナリオ事前チェック/修正システム」を実現するものである。
図32は本発明の第5の実施形態に係るシナリオ事前チェック/修正システム及びその周辺構成を示す模式図である。
シナリオ事前チェック/修正システム50は、シナリオ生成システム30により生成されたシナリオ記憶部112内の操作シナリオを実行する前に、当該操作シナリオをチェック及び修正するものである。シナリオ事前チェック/修正システム50は、シナリオ中に誤りを発見したならば、誤りの内容を操作者に表示し、修正の機会を与える機能をもつ。なお、シナリオ事前チェック/修正システム50及びシナリオ生成システム30の両者を備えた構成をシナリオ生成装置と呼んでもよい。
図33は、シナリオ生成システム30とシナリオ事前チェック/修正システム50の関係を示すブロック図である。
シナリオ事前チェック/修正システム50は、シナリオ事前チェック部501とシナリオ事前修正部502により構成される。
シナリオ生成システム30は、図13で示したものとは、以下の点が異なっている。
シナリオ生成部302は、操作シナリオを生成する際に、画面全体画像情報記憶部307内の画面全体画像情報を取り込んで、シナリオに加える。すなわち、シナリオ生成部302は、比較対象画像情報記憶部301内の比較対象画像情報、イベントログ記憶部306内のイベントログ及び画面全体画像情報記憶部307内の画面全体画像情報に基づいて、操作シナリオを生成してシナリオ記憶部112−2に記録する。これに伴い、シナリオ記憶部112−2は、あるステップ番号に対し、操作画面上の操作に伴い発生するイベント情報、操作画面上の全体画像の画像情報、及び前記操作画面から抽出された比較対象の画像情報、を互いに関連付けてなる操作シナリオを記憶する。ここで、シナリオ記憶部112−2内の操作シナリオの内容例を、図34に示す。図7との違いは、画面全体画像の項目が追加されていることである。
シナリオ事前チェック部501は、図35に示すように、シナリオステップ情報抽出部5011、マッチング判定部5014及び複数画像警告部5015を備えている。
ここで、シナリオステップ情報抽出部5011は、シナリオ記憶部112−2内の操作シナリオから、あるステップ番号に対して全体画像の画像情報5012を抽出してマッチング判定部5014に送出する機能と、シナリオ記憶部112−2内の操作シナリオから、あるステップ番号に対して比較対象の画像情報5013を抽出してマッチング判定部5017に送出する機能とをもっている。
マッチング判定部5014は、シナリオステップ情報抽出部5011により抽出された全体画像の画像情報の中で、シナリオステップ情報抽出部5011により抽出された比較対象の画像情報を一意に決定できるか否かを判定する機能と、判定の結果、否の場合、当該否であることを表示するための複数画像警告部5015を起動する機能をもっている。
複数画像警告部5015は、マッチング判定部5014に起動されると、警告画面を表示する機能をもっている。
シナリオ事前修正部502は、図36に示すように、画面全体画像抽出部5021、画面全体画像表示部5022、比較対象画像範囲指示部5023、比較対象画像範囲抽出部5024及び比較対象画像記憶部5025を備えている。
ここで、画面全体画像抽出部5021は、警告画面が表示されたステップ番号に対し、操作シナリオから全体画像の画像情報を抽出する機能をもっている。
画面全体画像表示部5022は、画面全体画像抽出部5021により抽出された全体画像を表示する機能をもっている。
比較対象画像範囲指示部5023は、操作者の操作により、2つの位置座標を対角線の頂点にした再抽出範囲の指示、又は当該再抽出範囲の指示に続く記録指示を比較対象画像範囲抽出部5024に入力する機能をもっている。
比較対象画像範囲抽出部5024は、全体画像抽出表示部5022による全体画像の表示中、イベント情報が2つの位置座標を対角線の頂点にした再抽出範囲の指示のとき、当該イベント情報に基づき、表示中の全体画像から比較対象の画像を抽出する範囲を示す抽出範囲情報を抽出する機能と、イベント情報が再抽出範囲の指示に続く記録指示のとき、当該イベント情報に基づいて、表示中の全体画像の画像情報の座標値と当該抽出した抽出範囲情報とをもとに全体画像の画像情報から比較対象の画像情報を抽出する機能と、当該抽出した比較対象の画像情報を比較対象画像記憶部5025に書き込む機能と、画面全体画像表示部5022により全体画像の画像情報が表示された操作シナリオにおける比較対象の画像情報を、比較対象画像記憶部5025内の比較対象の画像情報により上書き更新する機能とをもっている。
比較対象画像記憶部5025は、比較対象画像範囲抽出部5024から読出/書込可能な記憶装置であり、比較対象の画像情報が一時的に記憶される。
次に、以上のように構成されたシナリオ生成システム及びシナリオ事前チェック/修正システムの動作を説明する。
図38に示す処理フローにおいて、ステップS31では、シナリオ生成システム50は、操作者の操作により起動され、操作シナリオを生成してシナリオ記憶部112−2に記録する。
ステップS32では、シナリオ事前チェック/修正システム50は、操作者の操作により、起動される。
ステップS33では、シナリオ事前チェック部501は、シナリオ内の判定対象のステップを判定する。また、シナリオステップ情報抽出部5011は、シナリオ記憶部112−2内の操作シナリオの各ステップを順次選択して、そのステップに含まれる情報を抽出する。そしてその中から、画面全体画像情報5012及び比較対象画像情報5013を抽出して、マッチング判定部5014に送る。
ステップS34では、マッチング判定部5014が、画面全体画像情報5012の中で、比較対象画像情報5013を一意に決定できるか否かを判定する。ここで、一意に決定できるというのは、画面全体画像情報5012の中で、比較対象画像情報5013と合致する部分が、唯一であるという意味である。例えば図4に示すスケジュール表示画面21が画面全体画像情報5012となっている状態において、比較対象として抽出した画像が、図31に示す、文字イメージの一部が欠落した「精算システム」である状況では、この比較対象として抽出した画像は、「旅費精算システム」であるか「経費精算システム」であるか一意に決定できない、と判定される。
マッチング判定部5014は、画面全体画像情報5012の中から、比較対象画像情報と等しいサイズの画像を含むあらゆる部分を取り出して、それらを比較対象画像情報と、全ピクセルの色の情報が合致するかを検査すれば良い。なお、ここで言う「合致」は、第1の実施形態で説明した画像比較部133と同一の基準とする。
マッチング判定部5014が一意に決定できない、と判定した場合、複数画像警告部5015を起動する。複数画像警告部5015は、操作者に一意に決定できなかった旨を警告画面を用いて指摘するとともに、画面全体画像情報5012を表示し、その中のどの部分に比較対象画像情報5013と合致する画像が有ったかを、比較対象画像情報5012に表示して、その場所を操作者に操作者に知らしめる。例えば、画面全体画像情報5012の中に、比較対象画像情報5013と合致した箇所において、比較対象画像情報5013の輪郭と同一の大きさの枠を表示するといった表示方法が考えられる。
ステップS35では、マッチング判定部5014が一意に決定できない、と判定した場合、シナリオ事前修正部502が自動的に起動され、操作者がシナリオの修正をするためのユーザーインターフェースを提供する。
シナリオ事前修正部502は、起動されると、該当ステップを操作者の操作に応じて修正する。具体的には、画面全体画像抽出部5021は、シナリオ記憶部112−2内の操作シナリオの中から修正すべきステップに含まれる画面全体画像情報5012を抽出し、画面全体画像表示部5022へ送付する。
画面全体画像表示部5022は、操作者が視認できる形で、画面全体画像情報5012を画像として表示する。
比較対象画像範囲指示部5023は、操作者が、表示された画面全体画像情報501の画像の上で、マウスを用いて比較対象画像範囲を指示できる環境を提供する。即ち、表示された画面全体画像情報501の画像の上で、操作者は、例えば、マウスにてドラッグアンドドロップを行う。マウスのドラッグが開始された座標と、ドロップが行われた座標とを、対角線をなす両方の頂点とするような長方形を比較対象画像範囲の指示とする。
比較対象画像範囲指示部5023は、上記のようにして操作者が指示した比較対象画像範囲に関する座標情報を、比較対象画像範囲抽出部5024に送付する。
比較対象画像範囲抽出部5024は、画面全体画像の中から、比較対象画像範囲に含まれる部分の画像情報を抽出し、比較対象画像記憶部5025に書き込む。しかる後、比較対象画像範囲抽出部5024は、比較対象画像記憶部5025内の比較対象の画像情報を、シナリオ記憶部112−2内の操作シナリオの該当ステップの比較対象画像に対応する情報に対して、上書きする。
例えば、図31の画像が、一意に決定しないことが指摘されている状況では、操作者は、比較対象画像範囲指示部502において、もう少し水平方向に広い範囲の比較対象画像範囲をマウスで指定することにより、図37のような比較対象画像を得る。
シナリオ事前修正部502での修正作業が完了すると、また自動的に、シナリオ事前チェック部501が起動され、ステップS34に戻り、上記で修正した操作シナリオのステップが、比較対象画像が一意に特定されるかを判定する。
次に、ステップS36では、シナリオ事前チェック部501は、シナリオ記憶部112−2内の操作シナリオの全ステップの判定を完了したか否かを判定し、完了した場合には、処理を終了する。完了していない場合には、シナリオ事前チェック部501は、ステップS37に進む。
ステップS37では、シナリオ事前チェック部501は、シナリオ記憶部112−2内の操作シナリオの判定対象のステップを+1行更新し、ステップS33に戻る。
以上の操作によって、操作者は、操作シナリオを実行する以前に、より少ない労力でシナリオの誤りを修正することが可能となる。
上述したように本実施形態によれば、抽出された比較対象の画像情報を一意に決定できるか否かを判定し、否の場合、警告画面を表示する構成により、シナリオ実行時にエラーを生じる画像の指定を阻止でき、シナリオ修正の作業効率を向上できる。
なお、本実施形態は、図38に示す手順に限らず、例えば図39に示すように、全てのステップをチェックした後に、エラーに該当するステップを修正するように変形してもよい。すなわち、ステップS35に代えて、ステップS35aでは、該当ステップを赤く表示してステップS36に進む。なお、ステップS35aは赤く表示する場合に限らず、任意の色や印又は点滅表示等のように、該当ステップを区別可能な表示であれば適用可能である。さらに、ステップS35aは表示を変える代わりに、エラーに該当するステップの番号やそれと特定できる情報(タイトル)などをリストとして表示しても良い。また、ステップS36の判定の結果、全ステップを判定完了した場合、ステップS38に進む。ステップS38では、シナリオ事前修正部502が自動的に起動され、ステップS35aで赤く表示された該当ステップについて、操作者がシナリオの修正をするためのユーザーインターフェースを提供する。ステップS38において、全ての該当ステップの操作シナリオが修正されたとき、シナリオ事前修正部502は処理を終了する。
また、本実施形態は、チェックする対象を全てのステップとせず、1個または複数のステップのみを対象としても良い。
対象とするべきステップの選定方法は、特に限定されるものではない。例えば、操作者が明示的に対象ステップを指定しても良いし、シナリオ事前チェック/修正システム50がシナリオ中のステップを順にチェックしていき、特定の数だけエラーが発見されるまでのステップの集合としても良い。
また、上記各実施形態は、負荷試験に適用する場合に限定されず、例えば、機能試験、監視又は情報収集などのように、GUI機能を持つアプリケーションを自動操作する任意の用途に適用でき、同様の作用効果を得ることができる。
例えば機能試験に適用する場合を述べる。ソフトウェア開発の過程において、開発対象のソフトウェアがGUI機能を持つ場合、GUI操作に対するソフトウェアの挙動を検証する、所謂、機能試験が実施される。各実施形態は、この機能試験の際に、操作者に代わってGUIを操作するツールの用途に適用できる。これに加え、機能試験の実施中、ソフトウェアのバグによる動作異常が発生することがある。この動作異常がソフトウェア内部の処理とGUI操作との微妙なタイミングによって生じる場合、所定のGUI操作を繰り返し実行して動作異常を再現させる必要がある。このような機能試験中のGUI操作の繰り返し実行にも、各実施形態を同様に適用できる。
次に、監視に適用する場合を述べる。遠隔にあるWWW(world wide web)ブラウザのGUIを定期的に操作して監視対象のWWWサーバにアクセスし、このアクセス結果の検証により、当該WWWサーバが正常に運用されているか否かを定期的に監視する場合がある。このような監視の際に、WWWブラウザのGUI機能を操作者に代わって定期的に自動操作する用途にも各実施形態を適用できる。
同様に、情報収集に適用する場合を述べる。遠隔のWWWサーバからWWWブラウザのGUIに定期的にアクセスし、WWWブラウザから定期的に情報を収集する場合がある。このような情報収集の際に、WWWブラウザのGUIを操作者に代わって定期的に自動操作する用途にも各実施形態を適用できる。
上述した用途以外にも、GUI機能を持つアプリケーションを、操作者に代わって操作する全ての用途において、上記各実施形態を適用することができる。
また、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
1…情報端末(PC)、2…サーバ、3…操作者、10…負荷発生システム、11制御部、12…画面遷移判定部、13…比較対象特定部、14…操作イベント発生部、15…画像情報取得部、20…クライアントアプリケーション実行部、30…シナリオ生成システム、40…オペレーティングシステム(OS)実行部、111…操作実行制御部、112…操作シナリオ、131…比較対象特定制御部、132…比較対象判定部、133…画像比較部、134…相対位置関係分析部、302…シナリオ生成部、303…比較対象範囲抽出部、304…形状・サイズ変化部、305…マッチング判定部、308…イベント検出部、309…イベント記録部、310…画面画像記録部、311…画面画像記録指示部。