(57)【要約】【課題】  再帰テストを支援するための装置として、操作の一部や入力データの一部を変更した状態でのテストの繰返しを可能とする操作情報記録・再生装置を提供する。【解決手段】  操作情報記録・再生装置１００を構成する操作情報記録部１０１は、Ｗｅｂブラウザ１１１に対して行った操作を取得する操作情報取得手段１０１ａと、操作情報取得手段１０１ａの取得した情報に基づき、イベント・スクリプト対応表１０１ｃに定義された情報を取得して、任意に編集可能なスクリプトファイルを生成する操作情報記録手段とを備え、操作再生部１０２は、エンドユーザによるスクリプトファイルの選択を受付ける再生受付手段１０２ａと、選択されたスクリプトファイルに含まれるスクリプトを、イベント・スクリプト対応表に基づき解析するスクリプト解析手段１０２ｂと、スクリプトの解析結果に応じてＷｅｂブラウザ１１１の操作を行うイベント発生手段１０２ｃとを備える。【選択図】      図１
2005266954.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂブラウザに対する操作情報を記録し、当該操作情報に基づき前記Ｗｅｂブラウザを介してＷｅｂアプリケーションの実行を行う操作情報記録・再生装置であって、
前記操作情報記録・再生装置は、各操作に応じて発生するイベント情報と動作命令を示すスクリプト文字列との対応関係を予め定義したイベント・スクリプト対応情報と、
前記イベント情報を取得し、当該イベント情報に対応するスクリプト文字列を前記イベント・スクリプト対応情報から取得して、任意に編集可能な操作情報を生成して操作情報格納手段に格納する操作情報記録部と、
任意に選択された操作情報を前記操作情報格納手段から取得し、当該操作情報に含まれるスクリプト文字列に基づき前記イベント・スクリプト対応情報からイベント情報を取得し、当該イベント情報に応じた操作処理を行う操作再生部と
を備えることを特徴とする操作情報記録・再生装置。
【請求項２】
前記イベント・スクリプト対応情報は、入力操作を示すイベント情報に対応するスクリプト文字列に付随する情報として、引数定義情報を含むものとし、
前記操作情報記録部は、前記入力操作を示すイベント情報を取得した場合に、前記ＷｅｂブラウザによるＨＴＭＬ文書の解析結果に基づき、前記引数定義情報に応じた入力レイアウト識別情報と入力データとを取得し、前記スクリプト文字列に前記入力レイアウト識別情報と入力データとを示す文字列を付加する手段を備えることを特徴とする請求項１に記載の操作情報記録・再生装置。
【請求項３】
前記操作情報記録・再生装置は、Ｗｅｂブラウザに表示されたＷｅｂページを画像データとして取得する画像記録部を備え、
前記画像記録部は、前記ＨＴＭＬ文書の解析結果に基づき、前記Ｗｅｂページが複数のフレームで構成されている場合に、各フレームに示すＷｅｂページついて画像データとして取得して画像格納手段に格納する手段を備えることを特徴とする請求項１又は２に記載の操作情報記録・再生装置。
【請求項４】
前記画像記録部は、
前記ＨＴＭＬ文書の解析結果に基づき、前記Ｗｅｂページの領域が前記Ｗｅｂページの表示領域よりも広い場合に、表示領域を移動させて、表示領域毎に画像データを取得し、当該画像データを合成して前記Ｗｅｂページの領域全体を表す画像データを生成する手段を備えることを特徴とする請求項３に記載の操作情報記録・再生装置。
【請求項５】
前記画像記録部は、取得した画像データについて、可逆圧縮を行うことにより格納用データを生成する手段を備えることを特徴とする請求項３又は４に記載の操作情報記録・再生装置。
【請求項６】
前記操作情報記録・再生装置は、
前記画像記録部の格納した同一のＷｅｂページ対する複数の画像データを比較して、比較結果に基づく差異部分を識別可能に表示した画像データを生成する画像比較部を備えることを特徴とする請求項３〜５に記載の操作情報記録・再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂブラウザ等により表示するＷｅｂページに対するエンドユーザの操作情報の記録，再生等を行う装置に関する。
【背景技術】
【０００２】
近年、Ｗｅｂブラウザを使用してＷｅｂサーバに接続させることにより、Ｗｅｂサーバ上のＷｅｂアプリケーションを利用したサービスの提供が広く行われている。
このようなＷｅｂアプリケーションの開発においては、Ｗｅｂアプリケーションのテストとして、Ｗｅｂブラウザに対する操作を繰返し行うことにより、Ｗｅｂアプリケーションが正しく動作するかを確認する手法が一般的に採られている。
この場合、複数の操作の組合せや複数の入力データの組合せによりバグが発生することもあるため、修正の必要な箇所を把握するために、一部のみ異なる操作やデータ入力を行い、他の部分については前回と同様の操作を行うことが必要となっていた。従って、各テストにおいて、操作手順及び入力データを全て記録しておくことが必要となるため、再帰テストにおける作業が煩雑なものとなっていた。
このような再帰テストにおける支援装置として、従来、操作手順を記録する操作手順記録部と、記録した操作手順に基づき自動で実行する操作自動実行部と、被テストプログラムが出力する情報を保存するテスト結果保存部と、複数のテスト結果の管理を行うテスト結果管理部と、過去の結果との比較を行うテスト結果検証部とを備えた構成が公知となっている（例えば、特許文献１参照。）
【０００３】
【特許文献１】特開平１０−２７５０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、前記特許文献１に記載のテスト支援装置では、１回目のテストで記録した操作手順データに基づきＯＳの入出力制御部に命令を送ることにより、２回目以降のテストを実行するものであるため、操作の一部や入力データの一部を変更した状態でテストを行うことができなかった。
従って、操作等の一部を変更したテストを行う場合には、再度入力操作を一からやり直す必要があるため、テスト者の作業が煩雑なものとなっていた。また、変更した操作以外については正確に再現を行うことが必要となるが、テスト者の操作ミス等が生じる可能性があり、また、操作ミスの発見が困難であるため、必ずしも適切なテストを実施することができないという問題があった。
【０００５】
本発明は前記課題を解決するためのものであり、Ｗｅｂアプリケーションの開発における再帰テストを支援するための装置として、操作の一部や入力データの一部を変更した状態での適切なテストの繰返しを可能とする操作情報記録・再生装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するため、本発明は、Ｗｅｂブラウザに対する操作情報を記録し、当該操作情報に基づき前記Ｗｅｂブラウザを介してＷｅｂアプリケーションの実行を行う操作情報記録・再生装置であって、前記操作情報記録・再生装置は、各操作に応じて発生するイベント情報と動作命令を示すスクリプト文字列との対応関係を予め定義したイベント・スクリプト対応情報と、前記イベント情報を取得し、当該イベント情報に対応するスクリプト文字列を前記イベント・スクリプト対応情報から取得して、任意に編集可能な操作情報を生成して操作情報格納手段に格納する操作情報記録部と、任意に選択された操作情報を前記操作情報格納手段から取得し、当該操作情報に含まれるスクリプト文字列に基づき前記イベント・スクリプト対応情報からイベント情報を取得し、当該イベント情報に応じた操作処理を行う操作再生部とを備えることを特徴とする。
また、前記イベント・スクリプト対応情報は、入力操作を示すイベント情報に対応するスクリプト文字列に付随する情報として、引数定義情報を含むものとし、前記操作情報記録部は、前記入力操作を示すイベント情報を取得した場合に、前記ＷｅｂブラウザによるＨＴＭＬ文書の解析結果に基づき、前記引数定義情報に応じた入力レイアウト識別情報と入力データとを取得し、前記スクリプト文字列に前記入力レイアウト識別情報と入力データとを示す文字列を付加する手段を備えることを特徴とする。
また、前記操作情報記録・再生装置は、Ｗｅｂブラウザに表示されたＷｅｂページを画像データとして取得する画像記録部を備え、前記画像記録部は、前記ＨＴＭＬ文書の解析結果に基づき、前記Ｗｅｂページが複数のフレームで構成されている場合に、各フレームに示すＷｅｂページついて画像データとして取得して画像格納手段に格納する手段を備えることを特徴とする。
また、前記画像記録部は、前記ＨＴＭＬ文書の解析結果に基づき、前記Ｗｅｂページの領域が前記Ｗｅｂページの表示領域よりも広い場合に、表示領域を移動させて、表示領域毎に画像データを取得し、当該画像データを合成して前記Ｗｅｂページの領域全体を表す画像データを生成する手段を備えることを特徴とする。
また、前記画像記録部は、取得した画像データについて、可逆圧縮を行うことにより格納用データを生成する手段を備えることを特徴とする。
また、前記操作情報記録・再生装置は、前記画像記録部の格納した同一のＷｅｂページ対する複数の画像データを比較して、比較結果に基づく差異部分を識別可能に表示した画像データを生成する画像比較部を備えることを特徴とする。
【発明の効果】
【０００７】
以上の構成により、本発明では、操作情報記録部により生成された操作情報として、イベント・スクリプト対応情報から取得したスクリプト文字列を用いて、任意に編集可能な操作情報を生成することとしたので、操作のやり直しをすることなく、操作の一部を変更したテストを容易に行うことが可能となる。
また、入力操作を示す操作情報について、引数に対応した入力データを示す文字列を前記スクリプト文字列に付加することとしたので、操作のやり直しをすることなく、入力データの一部を変更したテストを行うことが可能となる。この場合、Ｗｅｂページを示すＨＴＭＬ文書の解析結果に基づき、入力レイアウト識別情報を取得することとしたため、入力レイアウトの位置，順序等が変更となった場合であっても、再生処理を行うことが可能となる。
また、画像記録部として、ＨＴＭＬ文書の解析結果に基づき、Ｗｅｂページが複数のフレームで構成されている場合に、各フレームについての画像データを取得することとしたので、フレーム毎のＷｅｂページの動的な変化を適切に把握させることが可能となる。
また、Ｗｅｂページの領域がＷｅｂページの表示領域よりも広い場合に、表示領域を移動させて、各表示領域毎の画像データを取得して合成することにより、Ｗｅｂページ全体の画像データを生成することとしたので、Ｗｅｂページ全体の状態を適切に把握させることが可能となる。
また、各Ｗｅｂページについて取得した画像データに対し、可逆圧縮を行うことにより格納用データを生成することとしたので、格納用の画像ファイルのサイズを縮小することができるとともに、比較処理において復号処理を行うことにより、正確な比較が可能となる。
また、画像比較部として、同一のＷｅｂページに対する複数の画像データを比較して、差異部分を識別可能に表示した画像データを生成することとしたので、比較結果を容易に把握させることが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施の形態に係る操作情報記録・再生装置について、図面に基づき説明する。
図１は、本発明の一実施の形態に係る操作情報記録・再生装置を含むシステム全体の概略構成を示すブロック図である。
まず、本発明の前提として、ＷｅｂブラウザによりＷｅｂサーバにアクセスし、Ｗｅｂページを表示する処理の概要について説明する。
エンドユーザによりクライアントマシン１１０の入力装置が操作されることにより、Ｗｅｂブラウザ１１１が起動され、インターネットやイントラネット等のネットワーク１２０を経由しサーバマシン１３０にアクセスがされる。
クライアントマシン１１０には、多くのアプリケーションが共通して利用する基本的な機能を提供し、コンピュータ全体を管理するＯＳ（Operation System）１１２を備えている。ここで、基本的な機能としては、例えば、キーボードからの入力，マウスの移動やクリック，画面への出力といった入出力の機能や、ディスクやメモリの管理等が該当する。ＯＳ１１２は、キーボード等の入力操作に応じてイベントを発生する。ここで、イベントは、入力操作が行われたという情報に加えて、そのイベントに伴う情報も持つこととなる。例えば、「キーボードを押した」というイベントの場合、「押されたキー」のデータも持つことになる。クライアントマシン１１０のアプリケーションは、イベントを受取り、当該イベントに応じた動作を行う。このように、エンドユーザや他のアプリケーションが実行した操作により発生するイベントに対応して処理を行うアプリケーションを、イベントドリブンのアプリケーションと呼ぶ。イベントドリブンのアプリケーションは、エンドユーザが操作を行っていないときは何もせず待機することとなる。
本実施の形態に係る操作情報記録・再生装置１００は、Ｗｅｂブラウザ１１１への操作を取得して記録するものであるため、イベントドリブンなアプリケーションにより構成している。
一方、Ｗｅｂブラウザ１１１によりアクセスされるサーバマシン１３０には、Ｗｅｂサーバ１３１とアプリケーションサーバ１３２が備えられている。Ｗｅｂサーバ１３１には、ＨＴＭＬ言語で記述されたＨＴＭＬファイル１３１ａ，画像ファイル１３１ｂ，ＨＴＭＬ文書からレイアウト部分を取出して定義したＣＳＳ(Cascading Style Sheets)等のレイアウト制御ファイル１３１ｃなど、静的なコンテンツが準備されている。ＨＴＭＬ文書は、これら外部ファイルへの参照を記述でき、Ｗｅｂブラウザ１１１はＨＴＭＬ文書に記述された参照部分について、外部ファイルを解釈して表示する。従って、ＨＴＭＬ文書から外部の画像ファイルを参照するように記述することにより、Ｗｅｂブラウザ１１１に画像が表示され、また、レイアウト制御ファイル１３１ｃを参照するように記述することにより、レイアウトも制御可能となる。アプリケーションサーバ１３２は、Ｗｅｂアプリケーション１３２ａを実行することにより、Ｗｅｂブラウザ１１１から送信された要求に対して、データベース１３３にアクセスしたりする処理を行い、処理結果をＷｅｂブラウザ１１１に返す。例えば、Ｗｅｂブラウザ１１１により検索条件が入力されるとＷｅｂアプリケーション１３２ａは、入力された検索条件を元に、データベース１３３を検索し、検索結果を表示するためのＨＴＭＬを動的に生成する。
以上のような各マシン及び各アプリケーションの処理を前提として、本実施の形態に係る操作情報記録・再生装置について説明する。
本実施の形態に係る操作情報記録・再生装置１００は、操作情報記録部１０１，操作再生部１０２，画面記録部１０３，画面比較部１０４の各処理部と、スクリプト格納手段１０５，ログファイル格納手段１０６，画像データ格納手段１０７，比較結果格納手段１０８の各情報格納手段とを備えている。
操作情報記録部１０１は、操作情報取得手段１０１ａと、操作情報記録手段１０１ｂと、イベント・スクリプト対応表１０１ｃとを備える。操作情報取得手段１０１ａは、エンドユーザがＷｅｂブラウザ１１１に対して行った操作を取得する。操作情報記録手段１０１ｂは、操作情報取得手段１０１ａの取得した情報に基づき、イベント・スクリプト対応表１０１ｃに定義された情報を取得して任意に編集可能な操作情報としてのスクリプトファイルを生成し、クライアントマシン１１０のハードディクス等に備えられたスクリプト格納手段１０５に格納する。
操作再生部１０２は、再生受付手段１０２ａと、スクリプト解析手段１０２ｂと、イベント発生手段１０２ｃと、ログ出力手段１０２ｄとを備える。再生受付手段１０２ａは、スクリプトファイル選択画面を表示し、エンドユーザにスクリプトファイルを選択させる。スクリプト解析手段１０２ｂは、選択されたスクリプトファイルをスクリプト格納手段１０５から読込み、イベント・スクリプト対応表１０１ｃを参照してスクリプトを解析する。イベント発生手段１０２ｃは、スクリプト解析手段１０２ｂによる解析結果に応じて、Ｗｅｂブラウザ１１１を操作する。ログ出力手段１０２ｄは、Ｗｅｂブラウザ１１１に対して、どのような操作をしたのかという記録をログファイルとして、ログファイル格納手段１０６に格納する。
画面記録部１０３は、キャプチャ手段１０３ａと、データ変換手段１０３ｂとを備える。キャプチャ手段１０３ａは、スクリプト中にＷｅｂブラウザ画像を取得するというスクリプトがあった場合に、Ｗｅｂブラウザ１１１を操作して画像を取得する。データ変換手段１０３ｂは、キャプチャ手段１０３ａの取得した画像データについて、ファイルサイズの縮小，画像形式の変換，暗号化等を行い、画像データ格納手段１０７に格納する。
画面比較部１０４は、データ復元手段１０４ａと、画像比較手段１０４ｂと、比較結果出力手段１０４ｃとを備える。データ復元手段１０４ａは、エンドユーザの操作により選択された画像ファイルを画像データ格納手段１０７から取得し、元の画像データに復元する。画像比較手段１０４ｂは、データ復元手段１０４ａにより復元された複数の画像データを比較して、異なる箇所を指摘する。比較結果出力手段１０４ｃは、画像比較手段１０４ｂによる比較結果を取得して、比較結果格納手段１０８に格納するとともに、Ｗｅｂブラウザ１１１に対して比較結果データを出力する。この場合、比較結果出力手段１０４ｃは、比較結果としての画像データを、画面記録部１０３のデータ変換手段１０３ｂにより変換して比較結果格納手段１０８に格納する。
【０００９】
図２は、本実施の形態に係る操作情報記録・再生装置１００の行う処理の概要を示すフローチャートである。
本実施の形態に係る操作情報記録・再生装置１００としてのアプリケーションは、エンドユーザの操作に応じて起動し、メニュー画面を表示する（ステップ２０１）。
メニュー画面において、ユーザにより記録ボタンが押下された場合には（ステップ２０２）、後述する記録処理を行う（ステップ２０３）。
メニュー画面において、ユーザにより再生ボタンが押下された場合には（ステップ２０４）、後述する再生処理を行う（ステップ２０５）。記録処理又は再生処理において、ユーザによりキャプチャボタンが押下された場合には（ステップ２０６）、後述するキャプチャ処理を行う（ステップ２０７）。
メニュー画面において、ユーザにより比較メニューが選択された場合には（ステップ２０８）、ユーザにより選択された画像データについて、後述する比較処理を行う（ステップ２０９）。
【００１０】
図３は、操作情報記録・再生装置１００としてのアプリケーションのメニュー画面の一例を示す図である。
メニュー画面３００は、ファイルメニュー３０１，比較メニューとしてテストメニュー３０２の各メニューと、記録ボタン３０３，停止ボタン３０４，再生ボタン３０５，キャプチャボタン３０６の各ボタンを有する。
ファイルメニュー３０１は、スクリプトファイルの選択，アプリケーションの終了等のメニューを有する。テストメニュー３０２は、比較処理を行う画像データの選択の他、キャプチャした画像を比較元画像データにするかどうかの選択メニュー等を有する。
記録ボタン３０３は、エンドユーザがＷｅｂブラウザに対して行った操作を記録したい場合に押下させるボタンである。停止ボタン３０４は、記録処理，再生処理を停止する場合に押下させるボタンである。再生ボタン３０５は、Ｗｅｂブラウザへの操作を記録しているスクリプトファイルがある場合に、スクリプトファイルの再生をするときに押下させるボタンである。キャプチャボタン３０６は、エンドユーザがＷｅｂブラウザに対する操作を記録，再生中にＷｅｂページの画像を取得して保存した場合に押下させるボタンである。
【００１１】
以下、本実施の形態に係る操作情報記録・再生装置１００の行う処理の具体例について説明する。
まず、記録・再生の対象としてＷｅｂブラウザに表示するＷｅｂページの例について、図４〜６に基づき説明する。
図４はＷｅｂブラウザ１１１により表示するＷｅｂページの一例としてのログイン画面を示す図であり、図５はＷｅｂページを表示させるためのＨＴＭＬ文書の一例を示す図であり、図６はＨＴＭＬ文書を木構造で示したものである。
Ｗｅｂブラウザ１１１に表示されたログイン画面４００は、ユーザＩＤ入力欄４０１，パスワード入力欄４０２，ログインボタン４０３を有しており、Ｗｅｂページのタイトル４０４として、「顧客システム  ログイン」が表示されている。
本例のＷｅｂページにおいて、エンドユーザの操作により、ユーザＩＤ，パスワードが入力され、ログインボタン４０３が押下されることにより、Ｗｅｂブラウザ１１１はユーザＩＤ及びパスワードをＷｅｂサーバ１３１に送信する。
図５に示すように、ＨＴＭＬ文書５００は、タグと呼ばれる「＜」と「＞」と囲まれた文字列で文書構造を表現している。タグには開始，終了タグの組合せたものと、終了タグを必要としないものとがあり、各タグを階層的に記述することにより文書構造を表現することとなる。また、タグには、属性と呼ばれる文字列を記述することができ、「属性名＝属性値」の形で記述される。
例えば「＜ｈｔｍｌ＞」は、ＨＴＭＬ文書の開始を表すタグであり、「＜／ｈｔｍｌ＞」はＨＴＭＬ文書の終了を表すタグである。そして、これらのタグで囲まれている中身がＨＴＭＬ文書であることを表している。そしてこの例では、属性は記述されていない。また、「＜ｉｎｐｕｔ＞」は、終了タグを必要としないタグの例である。「＜ｉｎｐｕｔ＞」には、「ｔｙｐｅ」、「ｎａｍｅ」、「ｖａｌｕｅ」の３つの属性が記述されていて、「ｔｙｐｅ」の属性値は「ｔｅｘｔ」、「ｎａｍｅ」の属性値は「ＩＤ」、「ｖａｌｕｅ」の属性値は「””」で表現される「空文字」である。そして、「＜ｉｎｐｕｔ＞」は、「ユーザＩＤ」の入力レイアウトという意味を表している。
また、ＨＴＭＬ文書内には、通常の文字列を記述することができ、図５に示す例では、「ユーザＩＤ」「パスワード」の各文字列が記述されている。
Ｗｅｂページへの操作やＷｅｂページの情報を取得するために、Ｗｅｂページにある文書，画像，音声などの内容や、それらの配置，レイアウトをオブジェクトとして扱い制御するための取決めとして、ＤＯＭ（Document Object Model）を使用している。これにより、ＨＴＭＬ文書をひとつの木構造として扱うことができ、それぞれの要素にアクセスしたり、属性の情報を取得するためのＡＰＩを利用できる。ここで、ＡＰＩ（Application Program Interface）とは、あるプラットフォーム(ＯＳやミドルウェア)向けのソフトウェアを開発する際に使用できる命令や関数の集合であり、それらを利用するためのプログラム上の手続きが定められている。アプリケーションの開発者は、ＡＰＩに従って、その機能を呼び出すだけで、その機能を利用したソフトウェアを作成することができるという利点がある。
本発明に係る操作情報記録・再生装置１００を構成するアプリケーションは、ＨＴＭＬ文書５００をＤＯＭの木構造として扱い、ＤＯＭのＡＰＩを使用してＨＴＭＬの各要素のデータを取得したり操作したりする機能を有するものとする。
図６は、図５のＨＴＭＬ文書５００を木構造６００で示したものである。
「ＷｅｂＢｒｏｗｓｅｒ」６０１は、Ｗｅｂブラウザ１１１を示すノードである。ＤＯＭのＡＰＩを使用してアクセスするときは、ＤＯＭのデータを有する他のアプリケーション（例えば、Ｗｅｂブラウザ等）のオブジェクトを取得する必要がある。
「Ｄｏｃｕｍｅｎｔ」６０２は、「ＷｅｂＢｒｏｗｓｅｒ」６０１が保持しているＨＴＭＬ文書を表すノードである。「ｈｔｍｌ」６０３は、ｈｔｍｌ文書に記述されている＜ｈｔｍｌ＞タグのことであり、「Ｄｏｃｕｍｅｎｔ」６０２のオブジェクトが保持していることを表している。「改行文字」６０４は、＜ｈｔｍｌ＞タグの後にある改行文字を表している。このように、ＨＴＭＬ文書にあるタグや、文字列は、ＤＯＭの木構造のそれぞれのノードとして表される。「ｈｅａｄ」６０５は、＜ｈｔｍｌ＞タグで囲まれていることを表し、親のノードは、「ｈｔｍｌ」６０３であり、子ノードは、「ｔｉｔｌｅ」６０６であることを表している。同様に、「顧客管理システムログイン」６０７は、＜ｔｉｔｌｅ＞タグで囲まれている文字列であることを表している。
また、「ｉｎｐｕｔ」６０８に付いている破線の中身は、＜ｉｎｐｕｔ＞タグの属性とその属性値を表している。例えば、属性「ｎａｍｅ」の属性値は「ＩＤ」である。
本実施の形態に係る操作情報記録・再生装置１００では、図６に示すようなＤＯＭの木構造６００に基づき、Ｗｅｂページの構成を把握し、Ｗｅｂページに入力された入力データ，Ｗｅｂページを構成するフレーム，Ｗｅｂページの領域等の種々の情報を抽出して、操作情報，画像データ等の取得を行う。
【００１２】
図７は、図３に示すメニュー画面において、記録ボタンが押下された場合に行う処理の詳細を示すフローチャートである。
エンドユーザにより記録ボタンが押下されると、操作情報記録部１０１は、スクリプトファイルのファイル名入力画面を表示し、ファイル名の入力を受付ける（ステップ７０１）。
ファイル名の入力がされると、操作情報記録部１０１の操作情報取得手段１０１ａは、エンドユーザによりＷｅｂブラウザに対して行われる操作を監視し、操作に応じたイベントを取得し（ステップ７０２）、操作情報記録手段１０１ｂにイベント情報を渡す。
操作情報記録手段１０１ｂは、操作情報取得手段１０１ａから渡されたイベント情報に基づき、イベント・スクリプト対応表１０１ｃを参照して、後述するようにスクリプトファイルを生成し、ステップ７０１により入力されたファイル名でスクリプト格納手段１０５に格納する（ステップ７０３）。
以上の処理を停止ボタンが押下されるまで継続し（ステップ７０４）、停止ボタンの押下がされる場合に処理を終了する。
例えば、エンドユーザによりＷｅｂブラウザを起動する操作が行われた場合、「ＷｅｂＢｒｏｗｓｅｒ．Ｓｔａｒｔ」というイベントが発生し、当該イベントを操作情報取得手段１０１ａが取得する。
操作情報取得手段１０１ａは、「ＷｅｂＢｒｏｗｓｅｒ．Ｓｔａｒｔ」というイベントを、操作情報記録手段１０１ｂに渡し、操作情報記録手段１０１ｂは、イベント・スクリプト対応表１０１ｃから対応するスクリプト「ｃｒ＿ｓｔａｒｔ」を取得して、スクリプトファイルに出力する。
ここで、スクリプトファイルは任意に編集可能なものとし、例えば、イベント・スクリプト対応表１０１ｃに基づくスクリプトの追加，削除等、引数として設定されている値の変更等を可能とする。
【００１３】
図８は、操作情報記録部１０１の表示するスクリプトファイルのファイル名入力画面の一例を示す図である。
スクリプトファイル名入力画面８００は、任意のファイル名を入力するファイル名入力欄８０１と、決定のためのＯＫボタン８０２，記録をキャンセルするためのキャンセルボタン８０３を有する。
エンドユーザによりファイル名入力欄８０１にファイル名が入力された状態でＯＫボタン８０２が押下されると、操作情報記録部１０１の操作情報取得手段１０１ａによる監視が開始される。
この場合、例えば、ファイル名入力欄に「ｓａｍｐｌｅ」と入力されて、ＯＫボタンが押下されると、ｓａｍｐｌｅというファイル名のスクリプトファイルに対して、操作情報記録手段により、各イベントに対応したスクリプトが出力されることとなる。
【００１４】
図９は、操作情報記録手段１０１ｂ等の参照するイベント・スクリプト対応表１０１ｃのデータ構造の一例を示す図である。
イベント・スクリプト対応表１０１ｃは、エンドユーザの操作に応じて発生するイベントを定義したイベント欄９０１と、各イベントに対応するスクリプトを定義したスクリプト欄９０２と、スクリプトに与える引数を定義した引数欄９０３とを有する。
例えば、「入力レイアウトに文字列が入力される」というイベントは、エンドユーザがキーボードを押したときに発生するイベントを示す。また、イベント欄９０１が「−」のものは、イベントは発生しないが、スクリプトファイルの生成が必要な場合を示す。
例えば、「ＷｅｂＢｒｏｗｓｅｒ．Ｑｕｉｔ」は、Ｗｅｂブラウザ１１１を終了させるために、ＯＳが発生するイベントであり、対応するスクリプトは、「ｃｒ＿ｑｕｉｔ」となる。また、入力レイアウトに文字列が入力された場合のスクリプトは「ｃｒ＿ｉｎｐｕｔ」であり、引数は、「ｎａｍｅ」と「ｖａｌｕｅ」とであることを示している。
【００１５】
図１０は、操作情報記録手段１０１ｂによるスクリプトファイル生成処理の詳細を示すフローチャートである。
操作情報記録手段１０１ｂは、操作情報取得手段１０１ａから渡されたイベントに基づき、イベント・スクリプト対応表１０１ｃのイベント欄を検索して（ステップ１００１）、イベントが定義されているか否かを判定する（ステップ１００２）。
イベント欄に渡されたイベントが定義されている場合には、対応する「スクリプト」を取得するとともに（ステップ１００３）、「引数」を検索する（ステップ１００４）。一方、イベントが定義されていない場合には、再生処理を行うことができないため、当該イベントは無視して処理を終了する。
ここで、対応する「引数」があるか否かを判定し（ステップ１００５）、「引数」がある場合には、イベントから引数とする情報を取得し（ステップ１００６）、「スクリプト」「引数」に基づきスクリプトを生成する（ステップ１００７）。一方、「引数」が無い場合には、「スクリプト」のみに基づきスクリプトを生成する(ステップ１００７)。
生成したスクリプトをスクリプトファイルに出力する（ステップ１００８）。
例えば、「ＷｅｂＢｒｏｗｓｅｒ．Ｓｔａｒｔ」というイベントが発生した場合、操作情報記録手段１０１ｂがイベント・スクリプト対応表の項目「イベント」を検索し、イベント「ＷｅｂＢｒｏｗｓｅｒ．Ｓｔａｒｔ」を見つけたら、次に、そのイベントに対応するスクリプト「ｃｒ＿ｓｔａｒｔ」を取得する。さらに、スクリプト「ｃｒ＿ｓｔａｒｔ」に与える引数を検索する。本例では、引数の設定が「−」であるため、引数を与える必要は無い。この場合には、スクリプト一行分をスクリプトファイルに出力する。
一方、引数が設定されている場合には、引数に相当する情報をＨＴＭＬ文書中から取得し、スクリプトの文字列と引数の文字列とを空白等の区切り文字列で繋げてスクリプト一行分を生成してスクリプトファイルに出力する。
なお、複数の引数が設定されている場合には、各引数に設定された番号の順で情報を取得する。
【００１６】
図１１は、操作情報記録手段１０１ｂにより生成されたスクリプトファイルの一例を示す図である。
スクリプトファイル１１００には、Ｗｅｂブラウザ１１１の起動操作を行った場合のイベントに対応するスクリプトとして、「ｃｒ＿ｓｔａｒｔ」が出力されている。
【００１７】
次に、スクリプトに引数が必要な場合の例について説明する。
図１２は、図４に示すログイン画面に対して、ユーザＩＤ，パスワードが入力された状態を示す。
Ｗｅｂページに対する入力操作等が行われると、各操作に応じたイベントが発生する。例えば、ログイン画面１２００において、ユーザＩＤを入力するための入力レイアウトをクリックすると、「ｏｎｃｌｉｃｋ」というイベントが発生し、その後Ｗｅｂブラウザ１１１は、クリックされたその入力レイアウトに、カーソルを移動するという処理を実行する。また、ユーザＩＤ入力欄に入力がされると、「ｕｓｅｒＩＤ」が入力されたことを表すイベントが発生する。そして、イベントの発生と同時に、入力レイアウトのｖａｌｕｅの値が、「””」から「ｕｓｅｒＩＤ」に変わる。Ｗｅｂブラウザ１１１は、「入力レイアウトに文字列が入力された」というイベントを受け取って、Ｗｅｂページ１１１のユーザＩＤ入力欄に「ｕｓｅｒＩＤ」と表示する。パスワード入力欄にパスワードが入力された場合にも、同様にイベントが発生し、Ｗｅｂページに表示がされる。なお、ＨＴＭＬの仕様上、パスワードの表示は、「＊＊＊＊＊」となる。
この場合に、操作情報記録手段１０１ｂがスクリプトを出力したスクリプトファイルの例を図１３に示す。
図１３は、Ｗｅｂブラウザの起動のスクリプトと、ユーザＩＤ入力欄に「ｕｓｅｒＩＤ」を入力するスクリプトを出力したスクリプトファイル１３００の一例を示している。この場合、ユーザＩＤ入力欄に文字列が入力されるというイベントに対応するスクリプトは、「ｃｒ＿ｉｎｐｕｔ」であり、引数が「ｎａｍｅ」と「ｖａｌｕｅ」であり、引数の順序が「ｎａｍｅ」は「１」で、「ｖａｌｕｅ」が「２」となっている。
本例では、操作情報取得手段１０１ａが、イベント「入力レイアウトに文字列が入力される」から、「ｎａｍｅ」と「ｖａｌｕｅ」の値として「ＩＤ」と「ｕｓｅｒＩＤ」を取得する。この場合、入力レイアウトに入力があったときには、イベントに付随するＤＯＭのノードに含まれる情報も一緒に送信される。従って、操作情報取得手段１０１ａは、イベントから引数にするべき情報をＤＯＭのＡＰＩを利用して取得することができ、引数にするべき情報をイベントから取得すると、スクリプトを生成する処理を行う。このスクリプトの場合、第一引数のＩＤで入力レイアウトを特定する。そして、第二引数で入力された値を表す。このように、入力レイアウトを特定するための情報を、Ｗｅｂページに配置されている位置や順番で決めていないため、Ｗｅｂページのレイアウトが変更になっても正しく入力レイアウトを特定することができる。また、第二引数に示される値を編集することにより、入力データの一部を変更した操作情報を容易に生成することができる。
この場合、スクリプトファイルに出力されたスクリプトに含まれる引数についても、任意の値への変更を可能としているため、入力データの一部を変更した操作情報の再生処理が可能となる。
また、イベント・スクリプト対応表１０１ｃに定義された「キャプチャボタンが押される」は、本実施の形態に係る操作情報記録・再生装置１００を構成するアプリケーションのキャプチャボタンが押されたときに発生されるイベントである。操作情報取得手段１０１ａが、このイベントを取得すると、スクリプト「ｃｒ＿ｃａｐｔｕｒｅ」をスクリプトとして、スクリプトファイルに出力する。
【００１８】
以上のように、イベントの発生に応じてスクリプトの出力を繰返すことにより生成されたスクリプトファイルを用いることにより、再生が行われる。
図１４は、操作再生部１０２の行う操作再生処理の詳細を示すフローチャートである。
まず、エンドユーザによる再生ボタンの押下に応じて、操作再生部１０２が起動し（ステップ１４０１）、再生受付手段１０２ａがスクリプトファイルを選択させるためのダイアログを表示して、エンドユーザにスクリプトファイルを選択させる（ステップ１４０２）。
エンドユーザによりスクリプトファイルが選択されると、再生受付手段１０２ａがスクリプト解析手段１０２ｂに選択されたスクリプトファイルを渡し、スクリプト解析手段１０２ｂが後述するスクリプト解析処理を行う（ステップ１４０３）。
スクリプト解析処理の結果に応じて、イベント発生手段１０２ｃはイベントを発生させ（ステップ１４０４）、ログ出力手段１０２ｄがログをログファイルに出力する（ステップ１４０５）。
操作再生部１０２は、操作の再生のために読込まれたスクリプトファイルを一行進め、まだスクリプトが残っているか否かを判定し（ステップ１４０６）、スクリプトが残っている場合には、スクリプト解析処理，イベント発生処理，ログ出力処理の各処理を行う。
一方、最後の行であった場合には、実行すべきスクリプトが終了していることとなるため、処理を終了する。
例えば、スクリプトファイル内の「ｃｒ＿ｓｔａｒｔ」というスクリプトについて処理を行った場合には、スクリプト解析手段１０２ｂから「ＷｅｂＢｒｏｗｓｅｒ．Ｓｔａｒｔ」というイベントがイベント発生手段１０２ｃに渡され、イベント発生手段１０２ｃがＷｅｂブラウザ１１１の起動処理を行う。
なお、再生受付手段１０２ａは、エンドユーザにより選択されたスクリプトファイルについての編集画面を表示させることとして、スクリプトファイル内に含まれるスクリプトの編集を可能としてもよい。この場合、イベント・スクリプト対応表１０１ｃを合わせて表示し、イベント・スクリプト対応表１０１ｃから選択されたスクリプトを追加，引数として設定されている値の変更を可能としてもよい。これにより、操作等の一部を変更した状態での再生が可能となる。
【００１９】
図１５は、ステップ１４０２で再生受付手段１０２ａが表示するスクリプトファイル選択画面としてのダイアログの一例を示す図である。
ダイアログ１５００では、スクリプトファイルの保存場所１５０１が表示され、操作情報記録手段１０１ｂにより生成されたスクリプトファイルのファイル名１５０２が表示される。
本例では、スクリプトファイルをテストケースと名づけて、テスト用のスクリプトファイルであることを、エンドユーザに意識させている。また、スクリプトファイルの保存場所として「＿ｔｅｓｔｃａｓｅ＿」が表示されているが、エンドユーザにより任意の保存場所が選択可能となっている。また、再生をするスクリプトファイルとして「ｓａｍｐｌｅ．ｔｃ」が選択されたものとする。
【００２０】
図１６は、スクリプト解析手段１０２ｂによる解析処理の詳細を示すフローチャートである。
スクリプト解析手段１０２ｂは、スクリプトファイルから一行目のスクリプトを取得し（ステップ１６０１）、取得したスクリプトを区切り文字列で分割する（ステップ１６０２）。例えば、スクリプトに対して引数が設定されている場合には、スクリプトと各引数毎とに区切ることとなる。例えば、取得したスクリプトが「ｃｒ＿ｓｔａｒｔ」の場合には、引数が無いためそのまま処理を行う。一方、取得したスクリプトが「ｃｒ＿ｉｎｐｕｔ  ＩＤ  ｕｓｅｒＩＤ」の場合、区切り文字列としての空白により「ｃｒ＿ｉｎｐｕｔ」「ＩＤ」「ｕｓｅｒＩＤ」のそれぞれに分割をして処理を行う。
分割した結果のスクリプトに基づき、イベント・スクリプト対応表１０１ｃを検索して、対応するイベントを取得する（ステップ１６０３）。ここで取得したイベントについて、「キャプチャイベント」か否かを判定し（ステップ１６０４）、キャプチャイベントでなければ解析処理を終了する。
一方、「キャプチャイベント」である場合には、Ｗｅｂページについて、後述するキャプチャ処理を行い（ステップ１６０５）、生成した画像ファイルのファイル形式を変更して（ステップ１６０６）、画像データ格納手段１０７に格納する（ステップ１６０７）。この場合のファイル形式の変更としては、例えば、編集の容易なファイル形式（例えば、ＢＭＰ（BitMaP）形式）から、より小さいファイルサイズのファイル形式として、可逆圧縮で元の状態に完全に戻すことのできるファイル形式（例えば、ＰＮＧ（Portable Network Graphics）形式）に変更する処理を行う。また、画面比較部１０４を構成するアプリケーションのみが解読可能になるような暗号化などを行うことにより、他のアプリケーションでは読み込むことができなくなるため、機密性が高くなる。
なお、画像データ格納手段１０７において、比較元画像と被比較画像とのそれぞれの格納場所を設定することにより、共通のファイル名での管理が可能となる。
【００２１】
図１７は、ログ出力手段１０２ｄにより出力されたログファイルの一例を示す図である。
ログファイル１７００は、再生を始めた時刻を用いたログファイル名１７０１である「２００４０１２３１８２１０００１」によりログファイル格納手段１０８に格納されている。ログファイル１７００には、イベント発生手段１０２ｃにより発生したイベントを示す「ＷｅｂＢｒｏｗｓｅｒ．Ｓｔａｒｔ」と、イベントが発生した日時を示す「２００４０１２３１８２１０００１」とがログとして出力されている。
なお、ログの出力は、スクリプトファイルのままでもよく、また、イベント発生手段１０２ｃが発生したイベントをそのまま出力したものでもよい。
【００２２】
次に、画面記録部１０３によるキャプチャ処理の詳細について説明する。
図１８はキャプチャ処理の対象となるＷｅｂページの一例を示す図であり、図１９，２０はＷｅｂページを表示させるためのＨＴＭＬ文書の一例を示す図であり、図２１はＨＴＭＬ文書を木構造で示したものである。
図１８に示すＷｅｂページ１８００では、フレームで左右の２つに分割され、左ページ１８１０では、検索条件入力欄１８１１，登録ボタン１８１２，検索ボタン１８１３，終了ボタン１８１４が表示されており、右ページ１８２０では、詳細ボタン１８２１，削除ボタン１８２２，修正ボタン１８２３，検索結果表示部１８２４が表示されている。
右ページ１８２０の検索結果表示部１８２４は、検索結果数によりＷｅｂブラウザで表示できる範囲よりも縦，横ともに長くなり、縦，横のスクロールバー１８２５が表示されている。この場合、各スクロールバー１８２５を操作させることにより、隠れているページ部分を表示することが可能となる。
図１９は、フレームを使用したＷｅｂページを表示させるための表現を示すＨＴＭＬ文書の一例であり、図２０は、フレーム分割された左ページを表示させるためのＨＴＭＬ文書の一例である。
フレームを使用したＷｅｂページを示すＨＴＭＬ文書１９００では、＜ｆｒａｍｅｓｅｔ＞タグのなかに、フレームで分割された領域に表示するＷｅｂページをそれぞれ記述する。＜ｆｒａｍｅｓｅｔ＞タグで囲まれた中にある、＜ｆｒａｍ＞タグの属性「ｓｒｃ」の属性値でフレームに内に表示する外部のｈｔｍｌ文書「ｍｅｎｕ．ｈｔｍｌ」，「ｌｉｓｔ．ｈｔｍｌ」を指定する。また、属性「ｎａｍｅ」の属性値「ｍｅｎｕ」，「ｌｉｓｔ」は、そのフレーム領域につける名前である。
図２０のＨＴＭＬ文書２０００に示すように、フレーム内に表示するＷｅｂページも、通常のＷｅｂページと同様に表現され、ＨＴＭＬ文書２０００はＤＯＭの木構造で表される。従って、フレームを使用しているＨＴＭＬ文書１９００であっても、ＤＯＭのＡＰＩを使用して、辿っていくことでフレームごと、またフレームを越えて情報を読み込むことができる。
図２１は、図１９，２０で示されているＨＴＭＬ文書１９００，２０００をＤＯＭの木構造で表したときの一例である。
木構造２１００において、要素「ｆｒａｍｓｅｔ」２１０１は、フレーム分割を定義するための＜ｆｒａｍｅｓｅｔ＞タグに対応し、その子要素「ｆｒａｍｅ」２１０２は、フレーム分割された各領域に表示するＷｅｂページのＨＴＭＬ文書を指す＜ｆｒａｍｅ＞タグに対応している。子要素「ｆｒａｍｅ」２１０２には属性として、Ｗｅｂページとして表示するＨＴＭＬ文書を指定する属性「ｓｒｃ」と、そのフレーム領域の名前を定義する「ｎａｍｅ」があり、それらの属性値はそれぞれ、「ｍｅｎｕ．ｈｔｍｌ」，「ｌｉｓｔ．ｈｔｍｌ」と「ｍｅｎｕ」，「ｌｉｓｔ」となっている。
【００２３】
図２２は、キャプチャ手段が行うキャプチャ処理の詳細を示すフローチャートである。
まず、キャプチャ手段は、キャプチャ対象となるＷｅｂページのＨＴＭＬ文書が、フレーム分割を定義しているか否かを判定する（ステップ２２０１）。フレーム分割を定義しているＨＴＭＬ文書には＜ｆｒａｍｅｓｅｔ＞タグが含まれているため、判定処理では＜ｆｒａｍｅｓｅｔ＞タグを検索する。
フレーム分割が定義されている場合には、各領域に表示するＷｅｂページのフレームのＨＴＭＬ文書を取得する（ステップ２２０２）。具体的は、ＨＴＭＬ文書内における＜ｆｒａｍｅｓｅｔ＞タグの中の＜ｆｒａｍｅ＞タグの内容をＤＯＭのＡＰＩを使用して取得する。
取得したＨＴＭＬ文書に基づき、フレーム領域にＷｅｂページとして表示される情報が記述されたＨＴＭＬ文書の内容を取得する（ステップ２２０３）。
一方、フレーム分割が定義されていない場合には、ＷｅｂページのＨＴＭＬ文書の内容を取得する（ステップ２２０３）。
各ＷｅｂページについてＨＴＭＬ文書を取得した後、Ｗｅｂページを表示するＷｅｂブラウザにおいてスクロールバーが表示されているか否かを判定する（ステップ２２０４）。
この判定処理では、Ｗｅｂページの属性として、ＤＯＭの木構造の各要素に保持されるスクロールバーの情報を参照する。即ち、ＷｅｂブラウザがＨＴＭＬ文書をＤＯＭの木構造にする際には、Ｗｅｂブラウザの持つ情報を取得し、各要素においてＨＴＭＬ文書の情報とＷｅｂブラウザの持つ情報とを保持することとなる。ここで、Ｗｅｂブラウザの持つ情報としては、一度に表示可能な領域の大きさを示す情報が含まれ、Ｗｅｂブラウザ又は各フレームの領域にＷｅｂページの全てが表示されていない場合には、スクロールバーが表示されることとなり、このスクロールバーは、各Ｗｅｂページの属性として、ＤＯＭの木構造の各要素に保持される。
スクロールバーが表示されていない場合には、そのままＷｅｂページのキャプチャ処理を行い画像ファイルを生成する（ステップ２２０５）。
一方、スクロールバーが表示されている場合には、Ｗｅｂページ全体の大きさとして、縦幅，横幅を取得する（ステップ２２０６）。この処理では、「ｂｏｄｙ」要素が持つ「ｃｌｉｅｎｔＨｅｉｇｈｔ」の情報からＷｅｂページの高さを、「ｃｌｉｅｎｔＷｉｄｔｈ」の情報からＷｅｂページの幅を取得する。なお、本処理及び以降の処理において、各要素の情報を利用するときは、ＤＯＭのＡＰＩを利用するものとする。
次に、ＷｅｂブラウザにおいてＷｅｂページを一度に表示できる領域の大きさを取得する（ステップ２２０７）。この場合には、「ｂｏｄｙ」要素が持つ「ｓｃｒｏｌｌＨｅｉｇｈｔ」の情報から縦幅を取得し、「ｓｃｒｏｌｌＷｉｄｔｈ」の情報から横幅を取得する。
その後、キャプチャ処理の準備として、キャプチャ終了後にスクロールバーを元の位置に戻すため、現在のスクロールバーの位置を取得する（ステップ２２０８）。この場合には、「ｂｏｄｙ」要素の「ｓｃｒｏｌｌＴｏｐ」の情報から、表示されている領域の上部からの移動距離を取得し、「ｓｃｒｏｌｌＬｅｆｔ」の情報から、左端点からの移動距離を取得して記憶しておく。
キャプチャ処理では、まず、Ｗｅｂページの最上位，左端の領域をキャプチャ対象とするためにスクロールバーを操作する（ステップ２２０９）。スクロールバーの操作は、ステップ２２０８で利用した「ｓｃｒｏｌｌＴｏｐ」，「ｓｃｒｏｌｌＬｅｆｔ」の値を変更することで行い、この場合には、ともに「０」に変更する。
スクロールバーの操作を行った後、Ｗｅｂブラウザに表示されているＷｅｂページのキャプチャ処理を行い画像を取得し（ステップ２２１０）、取得した画像データをメモリや一時ファイル等の一時領域に保存する（ステップ２２１１）。この場合の画像の取得では、例えば、ＯＳのキャプチャ機能を利用する。画像のファイル名は、ＤＯＭの木構造から、ＡＰＩを利用してタイトルの文字列を取得し、その文字列を使用して、例えば、「顧客管理システム メイン_１」とし、数値は他の画像と重ならないように連番とする。このファイル名の規則から明らかなように、フォルダ名でそれぞれのファイルの意味を決めているため、比較元画像と被比較画像のファイル名は同じとしている。
スクロールバーを有する場合には、Ｗｅｂページ全体について一度にキャプチャ処理を行うことができないため、表示領域を変更して画像の取得を行うことが必要となる。
表示領域の変更では、まず、縦方向についてＷｅｂページの画像を全て取得したか否かを判定する（ステップ２２１２）。この場合には、「Ｗｅｂページの本来の高さ」が「（一度に表示できる高さ）×（スクロールバーの位置÷一度に表示できる高さ＋１）」よりも小さくなれば、縦方向について全ての画像を取得したこととなる。
縦方向について全ての画像を取得した場合には、スクロールバーを最上位へ動かし（ステップ２２１３）、横方向についてＷｅｂページの画像を全て取得したか否かを判定する（ステップ２２１４）。例えば、「Ｗｅｂページの本来の幅」が「（一度に表示できる幅）×（スクロールバーの位置÷一度に表示できる幅＋１）」よりも小さくなれば、横方向について全ての画像を取得したこととなる。なお、スクロールバーを最上位へ移動する場合には、「ｓｃｒｏｌｌＴｏｐ」の属性値を「０」に変更する。
一方、縦方向又は横方向について、画像を取得していない領域が存在する場合には、スクロールバーを操作することにより、下方向又は右方向に一度に表示可能な領域分、表示領域を移動して（ステップ２２１５，２２１６）、キャプチャ処理を繰返す（ステップ２２１０）。例えば、Ｗｅｂページの本来の高さを「１８」とし、Ｗｅｂブラウザにより一度に表示できる高さを「１０」とすると、スクロールバーの位置が「０」の場合には、１８＞１０となり、縦方向について全ての画像を取得していないこととなるため、「ｓｃｒｏｌｌＴｏｐ」を「１０」に変更して、画像を取得する。横方向についても同様に、「ｓｃｒｏｌｌＬｅｆｔ」の値を変更して、画像を取得する。
以上の処理を繰返し、Ｗｅｂページの画像を全て取得した後、ステップ２２０８で記憶した位置情報に基づき、スクロールバーの位置を復元するとともに（ステップ２２１７）、一時領域に保存された画像データを合成してＷｅｂページの全体を示す画像ファイルを生成する（ステップ２２１８）。
画像ファイルを生成した後、全ての＜ｆｒａｍｅ＞タグを処理したか否かを判定し、未処理のフレームが存在する場合には（ステップ２２１９）、以上の処理を他のフレームについても繰返して、処理を終了する。
【００２４】
図２３は、キャプチャ手段により、図１８に示す左ページに検索条件として「ＡＡＡ  ＡＡＡ」を入力した状態をキャプチャした例を示す図であり、図２４は、キャプチャ手段により、図１８に示す右ページをキャプチャした例を示す図である。
図２３に示すキャプチャ画像２３００のように、Ｗｅｂブラウザ１１１により一画面でＷｅｂページ全体が表示可能な場合には、１度のキャプチャ処理により画像ファイルを生成する。
一方、図２４に示すキャプチャ画像２４００のように、一画面でＷｅｂページ全体が表示できない場合（スクロールバーがある場合）には、ステップ２２０９〜２２１９により、複数回のキャプチャ処理を行った後、合成した画像ファイルを生成する。
図２２に示すキャプチャ処理の場合、左上から下側に向かって画像を取得しているので、合成上の一時ファイルに、画像を取得した順番に画像の合成を行う。画像の順番は、一時ファイルに連番をつけているのでその順番通りに行う。合成用の一時ファイル内に生成された画像の高さが、Ｗｅｂページの本来の高さになったら、横に移動して画像を合成する。画像の横の長さが、Ｗｅｂページの本来の横幅になったら画像の合成を終了する。
例えば、図２４に示すＷｅｂページの場合、左上の第一領域２４０１について取得した画像を一時ファイルとして保存した後、左下の第二領域２４０２について画像を取得する。縦方向については、第二領域２４０２までで全ての画像の取得が完了するため、次に、右上の第三領域２４０３について画像を取得する。最後に、右下の第四領域２４０４について画像を取得すると、Ｗｅｂページの全ての領域について画像の取得がされることとなるため、取得した画像を合成し、一つの画像ファイルとして生成する。
【００２５】
以上のように生成された画像ファイルは、任意の選択に応じて、比較元画像又は被比較画像として画像格納手段１０７に可能され、画面比較部１０３による画像比較処理の対象となる。この場合、画像の比較は、全てのＷｅｂページについての画像を取得した後にまとめて比較することとしてもよく、また、例えば再生の途中に行うこととしてもよい。
図２５は、画面比較部１０７の行う画像比較処理の詳細を示すフローチャートである。
エンドユーザにより比較メニューが選択された場合、データ復元手段１０４ａは、比較元画像ファイルを読込み（ステップ２５０１）、復元処理を行うとともに（ステップ２５０２）、被比較画像ファイルを読込み（ステップ２５０３）、復元処理を行う（ステップ２５０４）。この場合の復元処理としては、例えば、保存用のサイズの小さなＰＮＧ形式から、比較処理用のＢＭＰ形式への変換を行う。
データ復元手段１０４ａは、復元処理を行った各画像ファイルを画像比較手段１０４ｂに渡し、画像比較手段１０４ｂが比較処理を行う（ステップ２５０５）。ここで、比較処理用の画像ファイルとしてＢＭＰ形式のファイルを利用することにより、画像の点である画素一つ一つが独立に情報を持つため、ファイルの先頭からビット比較を行うことにより、差異を有する部分の判定が可能となる。
比較結果出力手段１０４ｃは、画像比較手段１０４ｂにより比較結果を取得し、差異部分を指摘した比較結果ファイルを生成して、比較結果格納手段１０８に格納する（ステップ２５０６）。この場合、ファイル名を入力のファイル名のままにして、保存先を例えば「ｒｅｓｕｌｔ」フォルダのように別フォルダとすることにより、比較元画像、被比較画像、比較結果画像を同一のファイル名により管理することが可能となる。この例では、「ｒｅｓｕｌｔ」フォルダを既に説明した「＿ｔｅｓｔｃａｓｅ＿」フォルダの中に作成するものとする。
なお、比較結果ファイルについては、例えば、Ｗｅｂブラウザ等の画像の閲覧が可能なアプリケーションにより表示することとしてもよい。
【００２６】
図２６は図２３に示す画像データに対する被比較画像の一例を示す図であり、図２７は比較結果ファイルに示す比較結果画像の一例を示す図である。
図２６に示すように、本例に示す被比較画像２６００では、図２３に示す画像データに対して、検索条件入力欄２６０１に表示された条件が「ＢＢＢ  ＢＢＢ」に変更されている。
従って、図２７に示す例では、画像比較手段が、検索条件入力欄の部分に差異があると判定し、比較結果画像２７００において差異部分２７０１を表示する。
【００２７】
以上のように、本実施の形態では、操作情報記録部により生成された操作情報として、イベント・スクリプト対応情報から取得したスクリプト文字列を用いて、任意に編集可能な操作情報を生成することとしたので、操作のやり直しをすることなく、操作の一部を変更したテストを容易に行うことが可能となる。この場合、イベント・スクリプト対応表を参照可能として、スクリプトファイルに含まれるスクリプトの追加，削除等の編集を可能とすることにより、テスト用の操作情報の適切な生成が可能となる。
また、入力操作を示す操作情報について、引数に対応した入力データを示す文字列を前記スクリプト文字列に付加することとしたので、操作のやり直しをすることなく、入力データの一部を変更したテストを行うことが可能となる。この場合、Ｗｅｂページを示すＨＴＭＬ文書の解析結果に基づき、入力レイアウト識別情報を取得することとしたため、入力レイアウトの位置，順序等が変更となった場合であっても、再生処理を行うことが可能となる。
また、画像記録部として、ＨＴＭＬ文書の解析結果に基づき、Ｗｅｂページが複数のフレームで構成されている場合に、各フレームについての画像データを取得することとしたので、フレーム毎のＷｅｂページの動的な変化を適切に把握させることが可能となる。
また、Ｗｅｂページの領域がＷｅｂページの表示領域よりも広い場合に、表示領域を移動させて、各表示領域毎の画像データを取得して合成することにより、Ｗｅｂページ全体の画像データを生成することとしたので、Ｗｅｂページ全体の状態を適切に把握させることが可能となる。
この場合、各処理においてＤＯＭのＡＰＩを利用することとしたので、Ｗｅｂページの要素の適切な取得が可能となる。
また、各Ｗｅｂページについて取得した画像データに対し、可逆圧縮を行うことにより格納用データを生成することとしたので、格納用の画像ファイルのサイズを縮小することができるとともに、比較処理において復号処理を行うことにより、正確な比較が可能となる。さらに、画像比較部のみにより解読可能な形式で暗号化を行うことにより、機密性を高めることが可能となる。また、比較用の画像データをＢＭＰ形式で生成することにより、差異部分の適切な抽出が可能となる。
また、画像比較部として、同一のＷｅｂページに対する複数の画像データを比較して、差異部分を識別可能に表示した画像データを生成することとしたので、比較結果を容易に把握させることが可能となる。
【００２８】
また、本発明の他の利用形態として、トラブルシューティングに対するユーザサポート等を行う場合に、クライアントマシンに本発明に係る操作情報記録部を予め備えておき、操作情報記録部により取得した操作情報をサポート側のマシンに送信して、エンドユーザの操作に基づく処理状態をサポート側マシンの操作再生部で確認させることとしてもよい。これにより、エンドユーザの行った操作の正確な再現を行うことができるため、トラブルの原因のより適切な把握が可能となる。
【００２９】
なお、本発明は、前記実施の形態に示す構成に限られるものではなく、同様の処理を可能とするものであれば、各処理部及び情報格納手段の構成を変更することとしてもよく、本発明の操作情報記録・再生装置を複数の端末により構成することとしてもよい。
また、前記実施の形態では、操作再生部を構成する再生受付手段によりスクリプトファイルの編集を行うこととしているが、これに限られるものでは無く、イベント・スクリプト対応表を参照して、各スクリプトファイルに、スクリプトの追加等を行うスクリプト編集手段を備えることとしてもよい。
また、画像データの形式については、ＢＭＰ，ＰＮＧ形式に限られるものでは無く、他の形式を用いることとしてもよい。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施の形態に係る操作情報記録・再生装置を含むシステム全体の概略構成を示すブロック図である。
【図２】操作情報記録・再生装置の行う処理の概要を示すフローチャートである。
【図３】操作情報記録・再生装置としてのアプリケーションのメニュー画面の一例を示す図である。
【図４】Ｗｅｂブラウザにより表示するＷｅｂページの一例を示す図である。
【図５】図４に示すＷｅｂページを表示させるためのＨＴＭＬ文書の一例を示す図である。
【図６】図５に示すＨＴＭＬ文書を木構造で示したものである。
【図７】操作情報記録部の行う記録処理手順を示すフローチャートである。
【図８】操作情報記録部の表示するスクリプトファイルのファイル名入力画面の一例を示す図である。
【図９】イベント・スクリプト対応表のデータ構造の一例を示す図である。
【図１０】操作情報記録手段の行うスクリプトファイル生成処理手順を示すフローチャートである。
【図１１】操作情報記録手段により生成されたスクリプトファイルの一例を示す図である。
【図１２】図４に示すＷｅｂページに対して、ユーザＩＤ，パスワードが入力された状態を示す図である。
【図１３】スクリプトファイルにＷｅｂブラウザの起動のスクリプトと、ユーザＩＤ入力欄に「ｕｓｅｒＩＤ」を入力するスクリプトを出力した例を示している。
【図１４】操作再生部の行う操作再生処理手順を示すフローチャートである。
【図１５】再生受付手段の表示するスクリプトファイル選択画面としてのダイアログの一例を示す図である。
【図１６】スクリプト解析手段による解析処理手順を示すフローチャートである。
【図１７】ログ出力手段により出力されたログファイルの一例を示す図である。
【図１８】キャプチャ処理の対象となるＷｅｂページの一例を示す図である。
【図１９】図１８に示すＷｅｂページを表示させるためのＨＴＭＬ文書の一例を示す図である。
【図２０】図１８に示すＷｅｂページを表示させるためのＨＴＭＬ文書の一例を示す図である。
【図２１】図１９，２０に示すＨＴＭＬ文書を木構造で示したものである。
【図２２】キャプチャ手段の行うキャプチャ処理手順を示すフローチャートである。
【図２３】図１８に示す左側のＷｅｂページに検索条件を入力した状態を、キャプチャ手段によりキャプチャした例を示す図である。
【図２４】図１８に示す右側のＷｅｂページを、キャプチャ手段によりキャプチャした例を示す図である。
【図２５】画面比較部の行う画像比較処理手順を示す図である。
【図２６】図２３に示す画像データに対する被比較画像の一例を示す図である。
【図２７】比較結果ファイルに示す比較結果画像の一例を示す図である。
【符号の説明】
【００３１】
１００  操作情報記録・再生装置、１０１  操作情報記録部、１０１ａ  操作情報取得手段、１０１ｂ  操作情報記録手段、１０１ｃ  イベント・スクリプト対応表、１０２  操作再生部、１０２ａ  再生受付手段、１０２ｂ  スクリプト解析手段、１０２ｃ  イベント発生手段、１０２ｄ  ログ出力手段、１０３  画面記録部、１０３ａ  キャプチャ手段、１０３ｂ  データ変換手段、１０４  画面比較部、１０４ａ  データ復元手段、１０４ｂ  画像比較手段、１０４ｃ  比較結果出力手段、１０５  スクリプト格納手段、１０６  ログファイル格納手段、１０７  画像データ格納手段、１０８  比較結果格納手段、１１０  クライアントマシン、１１１  Ｗｅｂブラウザ、１１２  ＯＳ、１２０  ネットワーク、１３０  サーバマシン、１３１  Ｗｅｂサーバ、１３１ａ  ＨＴＭＬファイル、１３１ｂ  画像ファイル、１３１ｃ  レイアウト制御ファイル、１３２  アプリケーションサーバ、１３３  データベース。
【図１】
2005266954.tif 000003
【図２】
2005266954.tif 000004
【図３】
2005266954.tif 000005
【図４】
2005266954.tif 000006
【図５】
2005266954.tif 000007
【図６】
2005266954.tif 000008
【図７】
2005266954.tif 000009
【図８】
2005266954.tif 000010
【図９】
2005266954.tif 000011
【図１０】
2005266954.tif 000012
【図１１】
2005266954.tif 000013
【図１２】
2005266954.tif 000014
【図１３】
2005266954.tif 000015
【図１４】
2005266954.tif 000016
【図１５】
2005266954.tif 000017
【図１６】
2005266954.tif 000018
【図１７】
2005266954.tif 000019
【図１８】
2005266954.tif 000020
【図１９】
2005266954.tif 000021
【図２０】
2005266954.tif 000022
【図２１】
2005266954.tif 000023
【図２２】
2005266954.tif 000024
【図２３】
2005266954.tif 000025
【図２４】
2005266954.tif 000026
【図２５】
2005266954.tif 000027
【図２６】
2005266954.tif 000028
【図２７】
2005266954.tif 000029