画面の表示内容を定めた構造化文書を取得する取得部と、取得された構造化文書に記述された要素のうち、前記画面の表示内容を変化させる処理の契機となる要素を表示変更要素として抽出する抽出部と、抽出された表示変更要素への操作をユーザに記述させるための文書を操作記述文書として出力する出力部と、前記画面の表示内容を確認するためのテストプログラムを実行させる検証装置において予め定められた前記要素を操作するための関数と、前記操作記述文書に記述される前記表示変更要素への操作との対応関係を保持する対応関係保持部と、前記対応関係にしたがって、前記操作記述文書に記述された前記表示変更要素への操作に対応した前記検証装置が定める関数を呼び出すプログラムコードを設定することにより前記テストプログラムを生成するプログラム生成部と、を備えることを特徴とする情報処理装置。前記出力部は、前記構造化文書において前記表示変更要素と対応づけられ、前記表示変更要素の意味を示すための文字列を前記操作記述文書へ転記することを特徴とする請求項1に記載の情報処理装置。前記プログラム生成部は、前記表示変更要素に対する複数種類の操作が前記操作記述文書に記述された場合、前記複数種類の操作に対応した複数のテストプログラムを生成することを特徴とする請求項1または2に記載の情報処理装置。前記抽出部は、前記構造化文書に記述された要素のうち、ユーザからデータ入力を受け付ける要素を入力要素としてさらに抽出し、前記出力部は、前記操作記述文書として、前記表示変更要素への操作に加えて前記入力要素への操作をユーザに記述させるための文書を出力し、前記対応関係保持部は、前記検証装置において予め定められた前記要素を操作するための関数と、前記操作記述文書に記述される前記入力要素への操作との対応関係をさらに保持し、前記プログラム生成部は、前記操作記述文書に記述された前記表示変更要素への操作に対応した前記検証装置が定める関数を呼び出すプログラムコードと、前記操作記述文書に記述された前記入力要素への操作に対応した前記検証装置が定める関数を呼び出すプログラムコードとを組み合わせて前記テストプログラムを生成することを特徴とする請求項1から3のいずれかに記載の情報処理装置。画面の表示内容を定めた構造化文書を取得する取得部と、取得された構造化文書に記述された要素のうち、ユーザからデータ入力を受け付ける要素を入力要素として抽出する抽出部と、抽出された入力要素への操作をユーザに記述させるための文書を操作記述文書として出力する出力部と、前記画面の表示内容を確認するためのテストプログラムを実行させる検証装置において予め定められた前記要素を操作するための関数と、前記操作記述文書に記述される前記入力要素への操作との対応関係を保持する対応関係保持部と、前記対応関係にしたがって、前記操作記述文書に記述された前記入力要素への操作に対応した前記検証装置が定める関数を呼び出すプログラムコードを設定することにより前記テストプログラムを生成するプログラム生成部と、を備えることを特徴とする情報処理装置。画面の表示内容を定めた構造化文書を取得する機能と、取得された構造化文書に記述された要素のうち、前記画面の表示内容を変化させる処理の契機となる要素を表示変更要素として抽出する機能と、抽出された表示変更要素への操作をユーザに記述させるための文書を操作記述文書として出力する機能と、前記画面の表示内容を確認するためのテストプログラムを実行させる検証装置において予め定められた前記要素を操作するための関数と、前記操作記述文書に記述される前記表示変更要素への操作との対応関係を保持する機能と、前記対応関係にしたがって、前記操作記述文書に記述された前記表示変更要素への操作に対応した前記検証装置が定める関数を呼び出すプログラムコードを設定することにより前記テストプログラムを生成する機能と、をコンピュータに実現させるためのコンピュータプログラム。上記特許文献1の動作検証装置では、ウェブページ等の試験対象物に対して一度はユーザが操作を実行してその操作を記録しておき、その後、ユーザは記録された操作の内容を解釈した上で適宜編集し、テストの実行コードを作成する必要があった。すなわちユーザは、動作検証装置において操作がどのように記録されるか、またどのように編集すれば所望のテストを実施できるかを理解している必要があり、言い換えれば動作検証装置の規則を理解している必要があった。本発明者は、構造化文書の自動テストをユーザが一層容易に実施できるよう改善の余地があると考えた。本発明はこうした課題に鑑みてなされたものであり、その主な目的は、構造化文書の自動テストの効率化を支援する技術を提供することにある。上記課題を解決するために、本発明のある態様の情報処理装置は、画面の表示内容を定めた構造化文書を取得する取得部と、取得された構造化文書に記述された要素のうち、画面の表示内容を変化させる処理の契機となる要素を表示変更要素として抽出する抽出部と、抽出された表示変更要素への操作をユーザに記述させるための文書を操作記述文書として出力する出力部と、画面の表示内容を確認するためのテストプログラムを実行させる検証装置において予め定められた要素を操作するための関数と、操作記述文書に記述される表示変更要素への操作との対応関係を保持する対応関係保持部と、対応関係にしたがって、操作記述文書に記述された表示変更要素への操作に対応した検証装置が定める関数を呼び出すプログラムコードを設定することによりテストプログラムを生成するプログラム生成部と、を備える。本発明の別の態様もまた、情報処理装置である。この装置は、画面の表示内容を定めた構造化文書を取得する取得部と、取得された構造化文書に記述された要素のうち、ユーザからデータ入力を受け付ける要素を入力要素として抽出する抽出部と、抽出された入力要素への操作をユーザに記述させるための文書を操作記述文書として出力する出力部と、画面の表示内容を確認するためのテストプログラムを実行させる検証装置において予め定められた要素を操作するための関数と、操作記述文書に記述される入力要素への操作との対応関係を保持する対応関係保持部と、対応関係にしたがって、操作記述文書に記述された入力要素への操作に対応した検証装置が定める関数を呼び出すプログラムコードを設定することによりテストプログラムを生成するプログラム生成部と、を備える。なお、以上の構成要素の任意の組合せ、本発明の表現を方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。本発明によれば、構造化文書の自動テストの効率化を支援することができる。本実施の形態の動作検証システムについて説明する前に、その前提となる動作検証装置に係る参考技術1および2について説明する。参考技術1図1aは、ポータルサイト第1画面300の画面図である。参考技術1においては、ポータルサイトXYZを対象とした動作テストについて説明する。ポータルサイト第1画面300は、エディットボックス302と検索リンク304を含む。検索リンク304は、ウェブ、ブログ、画像、辞書という4つのリンクを含む。ユーザがエディットボックス302に文字列を入力し、検索リンク304のうちのいずれかをマウスクリックすると、入力文字列の検索が開始される。たとえば、エディットボックス302に文字列液晶と入力し、リンクウェブをマウスクリックした場合、文字列液晶を含むウェブサイトが検索対象となる。エディットボックス302に文字列液晶と入力し、リンクブログをマウスクリックした場合には、このポータルサイトに開設されているブログWeblogのうち、文字列液晶を含むブログページが検索対象となる。ここでは、エディットボックス302に文字列テストが入力され、リンク辞書がマウスクリックされたとする。図1bは、ポータルサイト第2画面310の画面図である。ポータルサイト第1画面300にて、テストを入力し、辞書をマウスクリックすると、図1bに示すポータルサイト第2画面310が表示される。検索結果欄306には、このポータルサイトが提供している辞書サービスにより、文字列テストに関連する項目が羅列される。ここで、検索結果欄306の1番上にあるリンクテストtestがマウスクリックされたとする。上記過程においては、以下に示す3つの操作がなされている。A1.ポータルサイト第1画面300のエディットボックス302に文字列テストを入力する操作。A2.ポータルサイト第1画面300の検索リンク304のうち、リンク辞書をマウスクリックする操作。A3.ポータルサイト第2画面310の検索結果欄306のうち、リンクテストtestをマウスクリックする操作。以下においては、上記A1~A3の操作により実現される動作過程のことを、辞書テストとよぶ。図2は、辞書テストを実行したときのログ320を示す図である。HP社のQTPが導入されているクライアント端末を操作して、上記ポータルサイトにアクセスし、A1~A3の操作を実行した場合、QTPは図2に示すログ320を生成する。ログ320には、操作A1~A3が所定フォーマットの符合文として記録される。たとえば、操作A1は、BrowserPageWebEditSetテストという符号文にて表現される。これは、XYZというウェブサイト、XYZという名前のウェブページ、pという名前のエディットボックス図1a、図1bに示すエディットボックス302に相当するに対して、文字列テストが入力されたことを意味している。同様にして、操作A2は、BrowserPageLinkClick操作A3は、BrowserPageLinkClickという符号文にて表示される。参考技術1においては、QTPの文法に基づいて説明するが、符合文のフォーマットはこれに限られるものではない。QTPは、ログ320の符合文を解釈しながら、符合文により表現される操作を再現実行できる。このため、いったんログ320を生成すれば、同一内容の辞書テストを何度でも繰り返し実行できる。また、ログ320の一部を書き換えれば、手動操作時とは異なる内容にて辞書テストを実行できる。たとえば、BrowserPageWebEditSetテストに含まれる文字列テストを別の文字列テイストに変更し、BrowserPageWebEditSetテイストと書き換えてQTPに入力すれば、エディットボックス302への入力文字列だけ変更した同内容の辞書テストを自動実行できる。しかし、ログ320を書き換えながら動作テストを実行するには、ログ320の文法に関してある程度の知識が必要である。また、ログ320の書き換えに際し、人為的なミスが発生する可能性がある。図3は、辞書テストを実行するためのプログラム330を示す図である。ログ320により動作テストを実行する代わりに、ログ320と同等の内容をVBVisualBasicスクリプト等で記述することにより、テストプログラムを作成してもよい。図3に示すプログラム330は、図2のログ320を参照しつつ作成されたテストプログラムである。たとえば、操作A1は、WebEditSetPageWebEditDataTableというVB関数により表現される。WebEditSet関数の具体的なロジックは、同図中段に記述されている通りである。プログラム330、文字列テストのような入力データをプログラム330中に含まない点においてログ320と異なる。代わりに、WebEditSet関数は、dtGlobalSheetとして表現されるファイル以下、入力データファイルとよぶから入力データを受け取る。すなわち、ロジックと入力データが分離されることになる。入力データファイルの書き換えや取り替えにより、さまざまな入力データに基づいて同一ロジックの辞書テストを実行できる。手動による動作テストやログ320による動作テストに比べて、プログラム330による動作テストは、入力データのバリエーションを増やしやすいというメリットがある。ただし、プログラム330による動作テストには、以下の問題点がある。d1.プログラムを作成する手間が新たに発生する。d2.プログラム作成者によって、プログラムの内容が変化する。たとえば、プログラマP1が操作A1に対応して作成するWebEditSet関数と、プログラマP2が操作A1に対応して作成するWebEditSet関数は、関数名は同じでもロジックが同一になるとは限らない。また、プログラム自体にバグが混入する可能性がある。このため、プログラム330自体の信頼性を担保するための取り組みが必要となる。また、プログラム330には、例外処理等、動作テストとは直接関係しないロジックも必要であるが、全てのプログラマが例外処理まで考慮したロジックを実装するとは限らない。たとえば、図3に示すWebEditSet関数の場合、入力データが空文字の場合にも対応できるようにロジックが組まれているが、別のプログラマがWebEditSet関数を実装する場合には、こういった配慮が欠如するかもしれない。結果として、プログラマのスキルが動作テストの内容結果に影響を及ぼしやすくなってしまう。図4は、動作検証装置100の機能ブロック図である。本明細書のブロック図が示す各機能ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組み合わせによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、各機能ブロックは、コンピュータプログラムとして記録媒体に格納され、情報処理装置のハードディスクにインストールされ、適宜メインメモリに読み出されてプロセッサにより実行されてもよい。動作検証装置100は、専用ハードウェアとして形成されてもよいし、ウェブブラウザなどのユーザインタフェースと連携するソフトウェアモジュールとして形成されてもよい。参考技術1の動作検証装置100とは、QTPのアドオンとして形成されるソフトウェアモジュールであるとして説明する。動作検証装置100は、IFインタフェース部110、データ処理部130およびデータ保持部140を含む。IF部110は、ユーザやQTPとのインタフェースを担当する。データ処理部130は、IF部110やデータ保持部140から取得されたデータを元にして各種のデータ処理を実行する。データ処理部130は、IF部110とデータ保持部140との間のインタフェースの役割も果たす。データ保持部140は、各種データを保持するための記憶領域である。IF部110:IF部110は、入力部112と出力部118を含む。入力部112はユーザやQTPからの入力処理を担当し、出力部118はユーザやQTPに対する出力処理を担当する。入力部112は、ログ取得部114と入力データ取得部116を含む。ログ取得部114は、QTPからログを取得する。入力データ取得部116は、入力データファイルを取得し、入力データファイルからプログラムに提供する入力データを取得する。入力データファイルの詳細については、図5や図9に関連して詳述する。出力部118は、関数設定画面表示部120、入力設定画面表示部122、プログラム画面表示部124およびケース設定画面表示部126を含む。関数設定画面表示部120は、図7に示す関数設定画面210を表示させる。入力設定画面表示部122は、図9に示す入力設定画面230を表示させる。プログラム画面表示部124は、図8に示すプログラム画面220を表示させる。ケース設定画面表示部126は、図10に示すケース設定画面240を表示させる。データ処理部130:データ処理部130は、プログラム生成部132、プログラム実行部134およびテストケース登録部136を含む。プログラム生成部132は、動作テスト用のプログラムを自動的に生成する。プログラム実行部134は、生成されたプログラムを実行させる。参考技術1においては、QTPにプログラムを実行させる。テストケース登録部136は、実行セットをケースファイルに登録する。実行セットおよびケースファイルについては図10に関連して詳述する。データ保持部140:データ保持部140は、ログ保持部142、プログラム保持部144、入力データファイル保持部146、ケースファイル保持部148、関数保持部150および結果保持部152を含む。ログ保持部142は、ログを保持する。プログラム保持部144は、プログラムを保持する。入力データファイル保持部146は、入力データファイルを保持する。ケースファイル保持部148は、ケースファイルを保持する。関数保持部150は、動作テスト用のプログラムに登録される関数について、関数ライブラリを保持する。結果保持部152は、動作テストの結果を保持する。図5は、参考技術1において、ログを取得して動作テストを実行するまでの概要図である。まず、動作テストの対象となる機器を手動操作する。参考技術1においては、クライアント端末のウェブブラウザを操作して、ポータルサイトXYZにアクセスする。QTPはログを生成し、ログ取得部114はQTPからログを取得する。各種符合文にはあらかじめ関数が対応づけられている。関数設定画面表示部120は、関数保持部150の関数ライブラリを読み出し、ログに含まれる各符号文に対応する関数を一覧表示させるS1。関数設定画面表示部120において、ユーザは、適宜、関数を追加変更削除できる。こうして、プログラムに含まれるべき関数が特定される。S1については、図7に関連して後に詳述する。次に、このプログラムに供給すべき入力データを設定するS2。設定内容は、入力データファイルとして登録される。S2については、図9に関連して後に詳述する。S1で設定された関数群からプログラムを自動生成するS3。S3については、図8に関連して後に詳述する。次に、複数種類のプログラムおよび複数種類の入力データファイルから、プログラムと入力データファイルの組合せを実行セットとして登録する。実行セットは複数個登録することもできるS4。設定内容は、ケースファイルとして登録される。たとえば、プログラムP1を入力データファイルF2に基づいて実行したあと、プログラムP2を入力データファイルF6に基づいて実行させたい場合、実行セット1:プログラムP1入力データファイルF2実行セット2:プログラムP2入力データファイルF6としてケースファイルに登録される。S4については、図10に関連して詳述する。最後に、ケースファイルにしたがって、プログラムを実行するS5。上記例の場合には、プログラム実行部134は、実行セット1と実行セット2を連続実行させる。プログラム実行部134は、プログラムの実行結果、いいかえれば、テスト結果を結果保持部152に登録する。図6は、ログ画面200の画面図である。ログ取得部114がログを取得すると、出力部118はログ画面200におけるログ表示領域202にログを画面表示させる。ユーザは、QTPのログをログ表示領域202にコピーペーストしてもよい。あるいは、出力部118は、ログ画面200の表示時において、QTPが生成したログファイルを取得し、ログ表示領域202に画面表示させてもよい。ユーザが実行ボタン204をマウスクリックすると、次の図7に示す関数設定画面210が表示される。図7は、関数設定画面210の画面図である。プログラム生成部132は、ログに含まれる符号文について関数を特定し、関数設定画面210の関数欄214に特定した関数を一覧表示させる。番号欄212は実行順序、説明欄216は関数の概要説明、オブジェクト欄218は操作対象オブジェクト、パラメータ欄219はパラメータ名、入力値欄217は入力データを示す。先述の操作A1を示す符合文、BrowserPageWebEditSetテストには、あらかじめ、WebEditSet関数が関数ライブラリにおいて対応づけられている。プログラム生成部132はログ320の1番目の符合文を読み出すと、関数保持部150の関数ライブラリを参照し、WebEditSet関数を特定する。操作A1が操作対象とするオブジェクトは、BrowserPageのページであるため、オブジェクト欄218には、BrowserPageが設定される。WebEditSet関数は、エディットボックスpエディットボックス302に設定される入力データを引数とする関数である。入力値欄217において、エディットボックスpに設定すべき入力データを設定することもできるが、関数設定画面210では入力データを登録しないものとして説明する。エディットボックスpに設定すべき入力データは、図9に関連して詳述する入力設定画面230にて設定される。ログ320には操作A1~A3に対応して3つの符合文が含まれているため、プログラム生成部132は3つの関数を特定する。ユーザは、関数設定画面210にて、関数を追加削除変更してもよい。図7における4番目のTextCheck関数と5番目のWebScreenCapture関数は、ユーザが追加選択した関数である。TextCheck関数は、表示中のウェブページにおいて、変数qに代入される文字列が含まれているかを判定する関数である。WebScreenCapture関数は、表示中のウェブページを画面キャプチャする関数である。動作テストの結果を証跡管理する上で、WebScreenCapture関数は便利な関数である。このように、関数ライブラリには、WebEditSet関数のようにユーザの操作に対応した関数だけでなく、TestCheck関数のように動作テストを補助支援するための関数も用意されている。ユーザは、関数ライブラリから所望の関数を選択するだけで、動作テストに含めたいロジックを設定できる。テストケース設定ボタン215がクリックされると、図10のケース設定画面240が表示される。入力データファイル作成ボタン213がクリックされると、図9の入力設定画面230が表示される。プログラム作成ボタン211がクリックされると、図8のプログラム画面220が表示される。参考技術1の動作検証装置100には、以下のメリットがある。m1.GUIGraphicalUserInterfaceベースで関数を選択するだけで、プログラムに含めたいロジックを選択できる。プログラムを作成するための手間がほとんどかからない。m2.プログラムに含まれる関数は、関数ライブラリとして登録済みの関数であるため、作成者によってプログラムの品質がばらつきにくい。例外処理等の必要なロジックも、あらかじめ各関数に組み込まれている。図8は、プログラム画面220の画面図である。関数設定画面210において、プログラム作成ボタン211がマウスクリックされると、プログラム生成部132がプログラムを生成し、プログラム画面表示部124はプログラム画面220におけるプログラム表示領域222にそのソースコードを表示させる。プログラムは、プログラム保持部144に保持される。図9は、入力設定画面230の画面図である。関数設定画面210において、入力データファイル作成ボタン213がマウスクリックされると、入力設定画面表示部122は入力設定画面230を表示させる。関数設定画面210においては、パラメータpとqが定義されている。番号欄232は入力順序、変数欄234はパラメータpへの入力データ、変数欄236はパラメータqへの入力データを示す。入力設定画面230では、このパラメータpとqに代入する入力データを設定する。各入力データは、入力データファイルとして入力データファイル保持部146に保持される。たとえば、プログラム330に、図9に示す形式の入力データファイルを与えると、1.文字列テストをエディットボックス302に入力して辞書を検索し、実行結果を示す画面に文字列試験が含まれているかを判定するテスト2.文字列testをエディットボックス302に入力して辞書を検索し、実行結果を示す画面に文字列試験が含まれているかを判定するテスト3.文字列テストケースをエディットボックス302に入力して辞書を検索し、実行結果を示す画面に文字列試験が含まれているかを判定するテストのように、異なる入力データに基づく複数の辞書テストを連続実行できる。図10は、ケース設定画面240の画面図である。関数設定画面210において、テストケース設定ボタン215がマウスクリックされると、ケース設定画面表示部126はケース設定画面240を表示させる。番号欄244は実行順序、実行セット欄245は実行セットの概要、プログラム欄246は実行対象となるプログラム、入力データファイル欄247は入力データの抽出対象となる入力データファイルを示す。ここでは、インターネット証券のウェブサイトを動作テストの対象として説明する。同図においては、1.ログイン、2.ニュースチェック、3.株売り、4.債券売り、5.住所変更、6.ログアウトという6つの実行セットが登録されている。まず、QTPは、プログラムloginvbsからloginプロジェクトを生成する。ここでいうプロジェクトとは、QTPの実行形式ファイル群を含むディレクトリである。QTPはloginプロジェクトを入力として、loginvbsとloginxlsに定義された処理を実行する。ユーザが実行ボタン248をマウスクリックすると、最初に、実行セットログインのloginプロジェクトが実行される。1番目の実行セットログインが完了すると、実行セットニュースチェックとして、ncheckプロジェクトが実行される。このように、実行ボタン248がマウスクリックされると、1.ログイン、2.ニュースチェック、3.株売り、4.債券売り、5.住所変更、6.ログアウトという6つの実行セットが連続実行される。これにより、ログインして、ニュースをチェックした後、手持ち株と手持ち債券の売りを指示し、住所変更をした上で、ログアウトするというテストシナリオに基づく動作テストを自動化できる。ユーザは、ケース設定画面240において自由にテストシナリオを作ることができる。たとえば、実行セット株売りの代わりに実行セット株買いを登録してもよいし、実行セット株売りの入力データファイルとしてstock1xlsではなく別の入力データファイルを登録してもよい。ケース設定画面240において登録されたテストシナリオはケースファイルとして記録され、ケースファイル保持部148に保持される。テストシナリオの構成や入力データファイル等を少しずつ変化させることにより、動作テストのバリエーションを広げやすくなる。以上、参考技術1の動作検証装置100を説明した。動作検証装置100によれば、プログラムと入力データ、すなわち、処理とパラメータを分離できる。そして、そのためのプログラムをGUIベースの設定に基づき自動生成できる。これにより、プログラムに含めるロジックの多様性を確保しつつも、安定した品質のプログラムを簡易に生成できる。また、入力データファイルの内容を変更するだけで、動作テストの内容を変更できるため、動作テストのバリエーションを広げやすくなる。更に、実行セットをケースファイルに登録してテストシナリオを作ることにより、既存のプログラムを組合せながら、さまざまな状況における動作テストを実現できる。また、WebEditSet関数のようなテスト対象機器を操作するための関数だけでなく、WebScreenCapture関数のような動作テストを支援するための関数を用意しておくことにより、動作テストの効率や信頼性をいっそう向上させやすくなる。参考技術2参考技術2では、上記の参考技術1を改良した動作検証装置100を提案する。まず、参考技術1における動作検証装置100と、参考技術2の動作検証装置100とを比較しつつ、参考技術2の動作検証装置100についてその概要を説明する。図11は、参考技術1の動作検証装置100と参考技術2の動作検証装置100とのそれぞれにおける構成の概要を示す。図11aが示すように、参考技術1の動作検証装置100は、動作テストの実行エンジンであるQTPモジュール102と、QTPモジュール102を使用したウェブサーバ400の動作テストを効率化するためのラッパーモジュール104とを備えた。このラッパーモジュール104には、図4で示した各機能ブロックが含まれる。図11aにおいて、ユーザは、QTPモジュール102を介して、動作確認の対象装置であるウェブサーバ400を操作するS100。ラッパーモジュール104は、その操作内容が記録されたログをQTPモジュール102から取得して、関数設定画面210をユーザに提供したS102。ユーザは、動作テスト実行の際、QTPモジュールが読み込み可能な動作テスト用プログラムをラッパーモジュール104において生成させ、QTPモジュール102にそのプログラムを実行させたS104。これに対して、図11bが示すように、参考技術2の動作検証装置100は、動作テストの実行エンジンの機能とラッパーモジュール104の機能とが統合された統合検証モジュール106を備える。ユーザが統合検証モジュール106を介してウェブサーバ400を操作するとS200、統合検証モジュール106はその操作内容を逐次検出して関数設定画面210のデータを設定し、関数設定画面210をユーザに提供するS202。ユーザは、動作テスト実行の際、統合検証モジュール106において動作テスト用プログラムを生成させて実行させるS204。図12は、参考技術1の動作検証装置100と参考技術2の動作検証装置100とのそれぞれにおける動作の概要を示す。図12aは、参考技術1の動作検証装置100における動作の概要を示している。ユーザはウェブサーバ400に対するデータ入力操作を実行しS110、QTPモジュール102はその操作内容が記録されたログを出力するS112。ユーザはそのログのデータをQTPモジュール102の所定の入力エリアにコピーするS114。ラッパーモジュール104は所定の入力エリアに設定されたログのデータに基づいて関数設定画面を設定して表示させS116、ユーザはその関数設定画面を介して追加変更すべき関数入力データを設定するS118。ラッパーモジュール104は、関数設定画面のデータに基づいて、動作テストのためのQTP用プログラムを生成するS120。ユーザは、QTP用プログラムをQTPモジュール102の所定の入力エリアにコピーするS122。ユーザは、ケース設定画面において、QTP用プログラムと入力データファイルとをセットとして指定した動作テストのシナリオを設定するS124。ラッパーモジュール104は、そのシナリオに基づいて、QTP用プログラムと入力データファイルのセットをQTPモジュール102に渡して、セット毎に動作テストを実行させるS126。図12bは、参考技術2の動作検証装置100における動作の概要を示している。ユーザは、ウェブサーバ400に対するデータ入力操作を実行するS210。統合検証モジュール106は、そのデータ入力操作を逐次検出して、データ入力操作に対応する関数を操作内容ファイルに記録し、その操作内容ファイルの記録データを関数設定画面において表示するS212。ユーザは、その関数設定画面を介して追加変更すべき関数入力データを操作内容ファイルに設定するS214。そしてユーザは、ケース設定画面において、操作内容ファイルと入力データファイルとをセットとして指定した動作テストのシナリオを設定するS216。統合検証モジュール106は、そのシナリオに基づいて、シナリオ内の1以上のセットを集約した動作テスト用プログラムを生成して実行するS218。このように、参考技術1の動作検証装置100では、QTPモジュール102とラッパーモジュール104とが分離していた。したがって、両モジュールを連係させるために、ユーザ自身が仲介作業を実行する必要があった。また、ラッパーモジュール104はシナリオ内のセット毎にQTPモジュール102をコールして、テスト用プログラムをセット毎に実行させる必要があった。これに対して、参考技術2の動作検証装置100では、動作テストの実行エンジンと、その効率的な利用を実現するラッパーとが分離されることなく、シームレスに統合されている。したがって、参考技術1の動作検証装置100と比較すると、分離したモジュールを連係させるために必要であったユーザの作業が不要になり、動作テストのためのユーザの作業量が低減する。また、シナリオ内の複数のセットが集約された動作テスト用プログラムが生成され、そのプログラムの実行により一連のシナリオが実行されるため、迅速な動作テストが実現される。図13は、参考技術2の動作検証装置100の機能構成を示すブロック図である。同図の機能ブロックは、図11bで示した統合検証モジュール106に含まれる。参考技術2の機能ブロックのうち、参考技術1の機能ブロックに対応する機能ブロックには、同じ符号を付している。参考技術1の機能ブロックと同じ符号を付した機能ブロックについてはその機能が参考技術1に既述した内容と異なる場合に記載しており、同様の機能についてはその記載を省略する。データ保持部140は、操作内容ファイル保持部143と、プログラム保持部144と、入力データファイル保持部146と、ケースファイル保持部148と、関数保持部150とを有する。操作内容ファイル保持部143は、動作テスト用プログラムに設定すべき関数が記録される操作内容ファイルを記憶する。プログラム保持部144は、操作内容ファイルにしたがって生成された動作テスト用プログラムを記憶する。IF部110の入力部112は、操作検出部115とユーザ設定受付部117とを有する。操作検出部115は、ウェブサーバ400に対するユーザのデータ入力操作を逐次検出する。ユーザ設定受付部117は、関数設定画面210、入力設定画面230、ケース設定画面240に対するユーザによる設定情報を検出する。IF部110の出力部118は、関数設定画面表示部120と入力設定画面表示部122とケース設定画面表示部126とを有する。関数設定画面表示部120は、操作内容ファイル保持部143に記録された操作内容ファイルの内容を表示する関数設定画面210を所定の表示装置に表示させる。データ処理部130は、プログラム生成部132と、プログラム実行部134と、テストケース登録部136と、操作記録部137と、入力データ記録部138とを有する。操作記録部137は、関数保持部150を参照して、操作検出部115において検出されたデータ入力操作に対応する関数を特定し、その関数を操作内容ファイルに記録する。また操作記録部137は、関数設定画面210に対するユーザの設定情報を操作内容ファイルに記録する。入力データ記録部138は、入力設定画面230を介してユーザが入力した入力データを入力データファイルに記録する。プログラム生成部132は、操作内容ファイルに記録された関数に応じて動作テスト用プログラムを生成する。プログラム実行部134は、動作テストの実行エンジンとして、動作テスト用プログラムを実行し、その結果を結果保持部152に記録する。図14は、参考技術2において、ユーザのデータ入力操作を検出して動作テストを実行するまでの概要図である。まず、ユーザはクライアント端末のウェブブラウザを操作してウェブサーバ400にアクセスし、ウェブサーバ400に対する各種操作、典型的にはウェブサーバ400が提供するウェブページに対するデータ入力操作を実行する。操作検出部115はユーザによるデータ入力操作を逐次検出し、操作記録部137は関数保持部150の関数ライブラリを読み出し、そのデータ入力操作に対応する関数を操作内容ファイルに逐次記録するS220。次に、関数設定画面表示部120は、操作内容ファイル保持部143の操作内容ファイルを読み出し、ユーザによる操作に対応する関数を一覧表示する関数設定画面を表示させる。関数設定画面において、ユーザは、適宜、関数を追加変更削除でき、また、動作テスト用プログラムに静的に設定すべき入力データを設定できる。こうして、動作テスト用プログラムに含まれるべき関数が特定される。関数設定画面については、図15および図16に関連して後述する。次に、入力設定画面表示部122は、入力設定画面230を表示させる。ユーザは、入力設定画面230を介して、動作テストの実行時に動作テスト用プログラムに対して動的に供給されるべき入力データを設定する。ユーザにより設定された入力データは、入力データファイルに記録されるS222。入力設定画面230については、図17に関連して後述する。次に、ケース設定画面表示部126は、ケース設定画面240を表示させる。ユーザは、複数種類の操作内容ファイルおよび複数種類の入力データファイルから、操作内容ファイルと入力データファイルとの組み合わせを実行セットとして登録する。テストケース登録部136は、1以上の実行セットをケースファイルに記録するS224。例えば、テストケース1において、操作内容ファイルF01の設定内容を入力データファイルF12に基づいて実行させた後、操作内容ファイルF02の設定内容を入力データファイルF16に基づいて実行させる場合、テストケース1:実行セット1:操作内容ファイルF01入力データファイルF12実行セット2:操作内容ファイルF02入力データファイルF16としてケースファイルに登録される。ケース設定画面240については、図18に関連して後述する。次に、プログラム生成部132は、ケースファイルおよび操作内容ファイルに基づいて動作テスト用プログラムを生成するS226。具体的には、実行セットに設定された操作内容ファイルに順次記録された関数を、動作テスト用プログラムのプログラムコードに順次設定してもよい。また、プログラム生成部132は、1つのテストケースに複数の実行セットが設定されている場合、各実行セットの操作内容ファイルに記録された関数を1つの動作テスト用プログラムに集約して設定する。また、プログラム生成部132は、操作内容ファイルの関数に対して入力データそのものが設定されていた場合には、その入力データを動作テスト用プログラムに静的に設定する。例えば、動作テスト用プログラムの生成の際に、そのプログラムコードにおける関数の引数として入力データをあらかじめ設定する。また、操作内容ファイルの関数に対して入力データファイルが指定されていた場合には、その入力データファイルのデータをプログラム実行時に読み込むように設定する。最後に、プログラム実行部134は、動作テスト用プログラムを実行して、ウェブサーバ400に対してユーザにより実行された一連の操作を再現するS228。入力データファイルのデータを必要とする関数に対しては、動作テスト用プログラムの実行の際に読み込んだ入力データファイルのデータを引数として渡す。すなわち、入力データファイルから動的に取得した入力データに基づいて関数を実行する。図15は、関数設定画面210の画面図である。同図は、図18で後述する検索記入.xlsを表示する関数設定画面210を示している。データファイルカラム名欄250は、パラメータに設定する入力データを記録した入力データファイルのカラム名が指定される領域である。ユーザは、入力値欄217に入力データそのものを記述してもよく、その代わりに、データファイルカラム名欄250に入力データファイルのカラム名を指定してもよい。データファイルカラム名欄250に入力データファイルのカラム名が指定された場合、動作テスト用プログラムの実行時に、その入力データファイルのカラムに設定された1以上の入力データが読み込まれて関数に渡される。図16は、参考技術2における関数設定画面210の画面図である。同図の検索部署名パラメータの入力値欄217においては、入力データの候補がドロップダウンリスト252で一覧表示されている。ドロップダウンリスト252において表示される入力データの候補は、ウェブページに対するユーザによるデータ入力の際に、そのウェブページのドロップダウンリストにおいて表示された入力データの候補である。ユーザはドロップダウンリスト252から入力データを選択することができ、入力データの設定におけるユーザの負担が軽減される。ドロップダウンリスト252を設定するために、操作検出部115は、ウェブページに対するユーザによるデータ入力操作の際に、そのウェブページのドロップダウンリストにおいて表示された入力データの候補を取得する。例えば、ウェブサーバ400から取得されたウェブページのデータ、例えばHTMLデータからドロップダウンリストにおける入力データの候補を取得する。操作記録部137は、その入力データの候補を操作内容ファイルの入力値欄217に記録する。関数設定画面表示部120は、入力値欄217が入力される際に、操作内容ファイルに記録された入力データの候補をドロップダウンリストの形式で一覧表示させる。図17は、参考技術2における入力設定画面230の画面図である。図17aは、図15および図16の関数設定画面210においてカラム名が指定された入力データファイル検索記入データ.xlsを表示する入力設定画面230を示している。なお、図15および図16では、図17aの氏名漢字カラムと氏名カナカラムとが指定されている。図17bは、別の入力データファイルログインデータ2.xlsを表示する入力設定画面230を示している。同図の入力データファイルについては、図18に関連して後述する。図18は、参考技術2におけるケース設定画面240の画面図である。実行番号欄253には各実行セットの基本的な実行順序、テストケースID欄254にはテストケースの識別情報が設定される。グループID欄256には実行セットの繰り返し処理のグループを示す識別情報、行番号欄258には動作テストにおける入力データファイルの参照範囲が設定される。操作内容ファイル欄260は各実行セットにおける操作内容ファイル、入力データファイル欄262は各実行セットの入力データファイルが設定される。ケース設定画面240における設定内容は、ケースファイル保持部148においてケースファイルとして記憶される。ケース設定画面240においてテスト実行ボタン264が押下されると、プログラム生成部132は、ケースファイルおよび操作内容ファイルにしたがって動作テスト用プログラムを生成する。具体的には、ケースファイルにおいて同一のテストケースIDが設定された1以上の操作内容ファイルに基づいて、各操作内容ファイルに記録された関数がプログラムコードに設定された1つの動作テスト用プログラムを生成する。例えば、プログラム生成部132は、図18のケース設定画面240の内容が記録されたケースファイルにしたがって、登録ケースを実行するための1つの動作テスト用プログラムと、検索ケースを実行するための1つの動作テスト用プログラムとを生成する。なお、1つの動作テスト用プログラムは、1つの実行単位として実行されるプログラム、言い換えれば1つの実行契機で実行されるプログラムを意味し、物理的なプログラム数は問わない。プログラム実行部134は、各操作内容ファイルに記録された1つの関数を実行する際、その操作内容ファイルと対応づけられた入力データファイルのデータのうち、操作内容ファイルにおいてその関数と対応づけられたカラムのデータをその関数に渡す。また、プログラム実行部134は、同一のテストケースにおいて同一のグループIDが付与された複数の実行セットを、同一の繰り返し処理を実行すべき同一のグループとして取り扱う。具体的には、同一のグループIDが付与された複数の実行セットそれぞれの実行を繰り返し、繰り返しのたびに、各実行セットの操作内容ファイルに記録された関数に対して、入力データファイルに記録された所定数のレコードを渡す。参考技術2では、繰り返しのたびに入力データファイルに記録された1レコードを関数に渡すこととする。なお、上述の処理を実行するための繰り返し命令がプログラムコードに設定された動作テスト用プログラムを、プログラム生成部132おいて生成してもよい。また、プログラム実行部134は、行番号が指定された実行セットについては、その操作内容ファイルに記録された関数に対して、入力データファイルにおいてその行番号で特定される入力データを渡す。したがって、グループIDによる繰り返し処理が指定され、さらに行番号が指定された場合には、行番号の指定数だけその繰り返しを実行することになる。例えば、図18の登録ケースでは、実行セットをまたがったグループの設定はなく、各実行セットでは入力データ1個分の処理が実行される。これに対し、図18の検索ケースでは、各実行セットにおける入力データ1個分の処理が3回繰り返される。具体的には、1回目の繰り返しでは、ログイン2.xlsに記録された関数に対してログインデータ2.xlsの35行目のデータt_yamadaが渡される。そして、検索記入.xlsに記録された関数、具体的には図15のNo1の関数に対しては検索記入データ.xlsの1行目氏名漢字のデータ山田太郎が渡される。また、図15のNo2の関数に対しては検索記入データ.xlsの1行目氏名カナのデータヤマダタロウが渡される。2回目の繰り返しでは、ログイン2.xlsに記録された関数に対してログインデータ2.xlsの36行目のデータh_yamadaが渡される。そして、検索記入.xlsに記録された図15のNo1の関数に対して検索記入データ.xlsの2行目氏名漢字のデータ山田花子が渡される。また、図15のNo2の関数に対して検索記入データ.xlsの2行目氏名カナのデータヤマダハナコが渡される。3回目の繰り返しにおいても同様に、インクリメントされた行番号における入力データが各関数に渡されることになる。参考技術2の動作検証装置100においても、参考技術1で既述した効果を奏する。具体的には、処理とパラメータの分離、および、GUIベースの設定が実現されるため、動作テスト用プログラムに含めるロジックの多様性を確保しつつも、安定した品質のプログラムを簡易に生成できる。また、入力データファイルの設定によって、動作テストのバリエーションを広げやすくなる。さらに、ケースファイルの設定によって、様々なシナリオにおける動作テストを実現できる。参考技術2の動作検証装置100においては、さらに、動作テスト用プログラムを実行する実行エンジン機能と、実行エンジンの効率的な利用を実現するラッパー機能とがシームレスに、ユーザによる仲介を要することなく連係する。これにより、動作テストを実行するためのユーザの負担を軽減できる。また、参考技術1の動作検証装置100の場合と異なり、ユーザは、QTPのプロジェクト等、プログラム実行のための環境を意識する必要がない。すなわち、ユーザにとって理解操作が容易な形式の操作内容ファイルと入力データファイルとを設定すればよい。これにより、ユーザは動作テストを容易に実施できるようになる。参考技術2の動作検証装置100においては、さらにまた、同一テストケースの複数の実行セットが集約された1つの動作テスト用プログラムが生成され、その1つの動作テスト用プログラムが実行される。参考技術1の動作検証装置100における実行セット毎、すなわち実行セットに基づき生成されたQTPのプロジェクト毎の実行と比較して、1つのテストケースにおける一連の動作テストを実行する際のオーバーヘッドが低減され、迅速な動作テストを実現できる。参考技術2の動作検証装置100においては、さらにまた、複数の実行セットに亘る繰り返しのグループを設定できる。これにより、実行セットを柔軟に分割でき、また、動作テストのシナリオを柔軟に設定できる。さらにまた、入力データファイルの参照範囲を設定できる。これにより、入力データファイルが同一であっても、シナリオに応じて柔軟に参照範囲を変更でき、様々なバリエーションの動作テストを容易に実現できる。上述した参考技術2においては、関数設定画面210における値設定を支援する例としてドロップダウンリスト252を示した。変形例においては、ウェブページにおけるラジオボタン、チェックボックス、リストボックス等で選択可能に表示された入力データの候補が、ドロップダウンリスト252またはその他の形式で関数設定画面210において選択可能に表示されてもよい。すなわち、動作確認対象の機器に対するデータ入力操作の際にユーザに対して様々な形式で選択可能に表示された入力データの候補が、関数設定画面210における値設定の際に選択可能に表示されてもよい。上述した参考技術1においては、ウェブサーバ400に対するユーザの操作をQTPが受け付け、ログを生成したことを条件として、動作検証装置100が動作テスト用プログラムを作成している。また、上述した参考技術2においては、ウェブサーバ400に対するユーザの操作を動作検証装置100が検出して、動作テスト用プログラムを作成している。変形例として、動作検証装置100においてウェブサーバ400からHTMLファイルを取得した時点で、動作テスト用プログラムを生成してもよい。この場合、動作検証装置100は、HTMLファイルに含まれるフォームタグを検索し、HTMLファイルにどのような入力インタフェースが含まれているかを特定する。そして、各入力インタフェースにデータを入力するための関数を選択し、これらの関数をさまざまな順序で並べれば、ユーザによる明示的なウェブ操作がなくても、動作テスト用のプログラムを生成できる。実施の形態まず本発明の概要について説明する。図19は、動作テストの対象のウェブページを示す。このウェブページは、保険会社のウェブサイトが提供するウェブページであり、契約済みの自動車保険の中から、継続対象の自動車保険契約をユーザに選択させるウェブページである。このウェブページには、本ウェブページのタイトルabc0100を示すページタイトル500と、ラジオボタン502で総称されるラジオボタン502aおよびラジオボタン502bが含まれる。またウェブブラウザでの表示対象を契約者メニュー一覧のウェブページへ遷移させるための第1遷移ボタン504と、ラジオボタン502を選択した上で次のウェブページへ遷移させるための第2遷移ボタン506とがさらに含まれる。以下、ウェブページに含まれるオブジェクトであり、構造化文書においてタグ付けされたラジオボタンリンク送信ボタンテキストボックス等を要素と呼ぶ。図19のウェブページに対する典型的なテストケースとして3つのケースを挙げる。1:証券番号37001のラジオボタン502aを選択し、第2遷移ボタン506をクリックする、2:証券番号38002のラジオボタン502bを選択し、第2遷移ボタン506をクリックする。3:第1遷移ボタン504をクリックする。実際には、保険会社のウェブサイトへログインしたユーザごとに上記テストケースを試行する必要があり、また異常系として、ラジオボタン502を未選択のまま第2遷移ボタン506をクリックする場合等、その他様々なテストケースが想定される。図20は、図19のウェブページに対する操作が記録された操作内容ファイルを示し、図7や図15で示した関数設定画面の内容に対応する。図20の操作内容ファイルは、上記のテストケース1の操作が記録されたものであり、操作関数510は証券番号37001のラジオボタン502aを選択する操作に対応し、操作関数512は第2遷移ボタン506をクリックする操作に対応する。参考技術に記載した動作検証装置を使用してウェブページの自動テストを行う場合、テストの担当者以下、ユーザと呼ぶ。は複数のテストケースのそれぞれに対応する操作内容ファイルを作成する必要がある。例えば上記の3つのテストケースの場合、ユーザが1つのテストケースについてウェブブラウザを操作して実行し、そこで作成された操作内容ファイルを編集して残り2つのテストケース用の操作内容ファイルを作成する必要があった。そのため、ユーザには、動作検証装置においてあらかじめ定められた関数言い換えればAPIであり、ウェブブラウザを操作してウェブページを編集する関数の理解が求められた。例えば、ラジオボタンを操作する関数の名称はclickRadiobuttonByValueであること、その引数として設定すべきオブジェクトはdomdocumentcontentsform要素名であること、送信ボタンをクリックする関数の名称はclickAnchorであること、その引数として設定すべきオブジェクトはdomdocumentgetElementByTagName要素位置であること等をユーザは理解しておく必要があった。本発明者は、この状況を鑑みて、動作検証装置によるウェブページの自動テストをいっそう効率化できる余地があると考えた。そこで実施の形態の動作検証装置以下、特に断らない場合、単に動作検証装置100と呼ぶ。は、ウェブページでの表示内容を定めた構造化文書に記述された要素のうち、ユーザによる操作の対象となる要素以下、操作対象要素とも呼ぶ。を抽出する。実施の形態の操作対象要素は、ユーザからデータを受け付けるための要素であり、言い換えれば、ユーザによるデータ入力の対象となる要素以下、入力要素とも呼ぶ。を含む。入力要素は、HTMLで規定された様々なフォームタグ、例えばラジオボタンテキストボックス等を含む。また操作対象要素は、ウェブページの表示内容を変化させる処理の契機となる要素以下、表示変更要素とも呼ぶ。をさらに含む。表示変更要素は、ウェブブラウザでの表示対象をあるウェブページから別のウェブページへ遷移させる契機となる要素、例えばリンクタグ送信ボタンタグ等を含む。また表示変更要素は、表示対象のウェブページを切り替える契機となる要素以外も含む。具体的には、ウェブブラウザでの表示内容を更新リロードさせる契機となる要素、例えば汎用ボタンタグやクリアボタンタグを含む。またウェブページ内部の処理コード例えばJAVAスクリプト登録商標で記述されたプログラムコードを実行させる契機となる要素、例えば汎用ボタンタグを含む。なお実施の形態の構造化文書はHTML文書であることとする。しかし、他の種類の構造化文書、例えばXMLやJSP文書にも適用可能であることは当業者には理解されるところである。例えば、XML文書の場合、DTDやスタイルシートを参照してXML文書から操作対象要素を抽出してもよい。JSP文書の場合、JSP文書に記述されたHTMLタグにしたがって操作対象要素を抽出してもよい。動作検証装置100は、構造化文書から抽出した操作対象要素に対する操作をユーザに記述させるための文書以下、操作記述文書とも呼ぶ。を出力する。図21は、操作記述文書を示す。操作記述文書は、入力要素および表示変更要素に関する情報、例えば各要素の意味を示す情報を動作検証装置100が自動で設定する要素情報設定欄520と、入力要素および表示変更要素に対する操作をユーザが記述すべき操作情報設定欄530を含む。要素情報設定欄520において入力要素には、構造化文書における名称を示す第1入力要素情報欄522と、要素の意味を示す第2入力要素情報欄524とが対応づけて示される。また表示変更要素には、変更先の画面内容例えば遷移先の画面を提供するファイル名を示す第1表示変更要素情報欄526と、要素の意味を示す第2表示変更要素情報欄528とが対応づけて示される。図21の操作情報設定欄530では、上記の3つのテストケースが記述されている。例えば、同図のNo1のレコードは、ラジオボタンradRenNumの選択肢のうちvalue0を選択して、次へボタンをクリックすることを示しており、上記のテストケース1に対応する。No2のレコードは、ラジオボタンradRenNumの選択肢のうちvalue1を選択して、次へボタンをクリックすることを示しており、上記のテストケース2に対応する。動作検証装置100は、操作対象要素に対する操作がユーザにより記述された操作記述文書を読み込んで、操作記述文書の各レコード例えば図21のNO1~3に対応する複数の操作内容ファイルを自動設定する。なお、No3のレコードが示すように表示変更要素のみの操作がテストケースとして設定される場合もある。また、JAVAスクリプトのコードを含む構造化文書であり、入力要素へのデータ入力に伴いウェブブラウザが自動的にスクリプトコードを実行して表示内容を変化させる構造化文書のテストでは入力要素のみの操作がテストケースとして設定される場合もある。実施の形態の動作検証装置100によれば、ユーザは、テスト対象の構造化文書の内容例えば、操作対象要素の名称やvalue属性の値を把握していれば操作記述文書に対して操作を記述することができる。言い換えれば、動作検証装置100は、動作検証装置100が定める関数の理解をユーザに強いることなく、効率的な構造化文書の自動テストの実現を支援する。また動作検証装置100は、構造化文書に記述された操作対象要素の名称や、その意味を示す情報を操作記述文書へ転記するため、操作記述文書に対する操作の記述を一層容易なものにすることができる。またユーザは操作対象要素への複数種類の操作内容を1つの操作記述文書に集約して記述すれば、各操作内容に対応した複数の操作内容ファイルが作成されるため、ユーザの負担を低減して効率的なテストを実現できる。以下、図22~図24に亘り実施の形態の動作検証装置100の機能構成を詳述する。図22~図24は図13のブロック図に対応する。なお、参考技術に記載した機能ブロックと同一もしくは対応する機能ブロックには同じ符号を付しており、参考技術に記載した説明と重複する説明は省略する。以降説明する各機能ブロックは、参考技術の動作検証装置にアドインされるプログラムモジュールとして実装されてもよい。図22は、動作検証装置100のIF部110の詳細を示すブロック図である。IF部110の入力部112は文書受付部540をさらに含み、出力部118は操作記述文書出力部542をさらに含む。文書受付部540は、構造化文書を指定した操作記述文書の作成要求をユーザが動作検証装置100へ入力した場合、その要求を受け付ける。そして、その要求で指定された構造化文書のデータを読み込む。例えば、操作記述文書の作成要求においてウェブサーバ400が提供するウェブページのURL、すなわち構造化文書のURLが指定された場合、文書受付部540はそのURLを指定してウェブサーバ400から構造化文書を取得し、メモリに格納してもよい。また文書受付部540は、操作記述文書を指定した操作内容ファイルの作成要求をユーザが動作検証装置100へ入力した場合、その要求を受け付ける。そして、その要求で指定された操作記述文書のデータを読み込む。例えば、操作内容ファイルの作成要求において動作検証装置100における操作記述文書のパス名が指定された場合、文書受付部540はそのパス名で特定される操作記述文書を取得し、メモリに格納してもよい。操作記述文書出力部542は、後述の操作記述文書設定部550により設定された操作記述文書のデータを所定の記憶領域へ格納する。例えば、操作記述文書の作成要求において当該文書の出力ディレクトリが指定された場合、操作記述文書出力部542はそのディレクトリに操作記述文書を保存してもよい。図23は、動作検証装置100のデータ保持部140の詳細を示すブロック図である。データ保持部140は、要素情報保持部544と対応関係保持部546をさらに含む。要素情報保持部544は、操作記述文書に設定された要素に関する属性情報を保持する記憶領域である。例えば、図21の入力要素radRenNumと対応づけてラジオボタンであることを示す情報や、要素名がradRenNumであることを示す情報を保持する。図21の表示変更要素次へと対応づけて送信ボタンであることを示す情報や、構造化文書内でのアンカー位置が7であること示す情報を保持する。このアンカー位置は、例えば、文書内の先頭アンカーの位置を0として、以降のアンカーの記述の都度インクリメントした数値であってもよい。対応関係保持部546は、動作検証装置100において予め定められて関数保持部150に保持された関数であり、構造化文書の要素を操作するための関数と、操作記述文書に記述される操作対象要素への操作との対応関係を保持する記憶領域である。例えば、操作記述文書におけるラジオボタンへの操作を示す情報と対応づけて、関数clickRadiobuttonByValueと、その引数となるオブジェクトの雛形domdocumentcontentsform要素名称を保持する。また、操作記述文書における送信ボタンのクリック操作を示す情報と対応づけて、関数clickAnchorと、その引数となるオブジェクトの雛形domdocumentgetElementByTagName要素位置を保持する。対応関係保持部546に保持される対応関係は図27においても後述する。図24は、動作検証装置100のデータ処理部130の詳細を示すブロック図である。データ処理部130は、要素抽出部548と操作記述文書設定部550と操作情報変換部552をさらに含む。要素抽出部548は、操作記述文書の作成要求に応じて文書受付部540により構造化文書が読み込まれた場合、その構造化文書のデータから操作対象要素を抽出する。具体的には、構造化文書に記述された要素のうち、入力要素に関するデータおよび表示変更要素に対するデータを識別して、それらのデータをメモリへ格納する。図25は、構造化文書に記載された入力要素の例を示す。ラジオボタン560は、図19のラジオボタン502に対応する。要素抽出部548は、ラジオボタン560の記述を検出すると、inputtyperadioを入力要素ラジオボタンとして識別する。またnameradRenNumを要素名称として識別する。また当該ラジオボタンを囲むラベル証券番号を要素意味として識別する。また要素抽出部548は、テキストボックス562の記述を検出すると、inputtypetextを入力要素テキストボックスとして識別する。またnameuidを要素名称として識別する。また当該テキストボックスと対応づけられたラベルユーザIDを要素意味として識別する。また要素抽出部548は、チェックボックス564の記述を検出すると、inputtypecheckboxを入力要素チェックボックスとして識別する。またnamerankを要素名称として識別する。また当該チェックボックスと対応づけられたラベルグリーン免許普通免許ゴールド免許のうち少なくとも1つを要素意味として識別する。また要素抽出部548は、プルダウンメニュー566の記述を検出すると、selectを入力要素プルダウンメニューとして識別する。またnameageを要素名称として識別する。また当該プルダウンメニューと対応づけられたラベル年齢を要素意味として識別する。図26は、構造化文書に記載された表示変更要素の例を示す。要素抽出部548は、リンク570の記述を検出すると、ahrefを表示変更要素として識別する。またhelphtmlを変更先名称として識別する。またaltヘルプ画面を変更先説明として識別する。なおアンカータグにより囲まれた文字列ヘルプ画面へを変更先説明として識別してもよい。また図26の送信ボタン572は図19の第1遷移ボタン504に対応する。要素抽出部548は、送信ボタン572の記述を検出すると、form~inputtypesubmitを表示変更要素として識別する。またsubmitcgiを変更先名称として識別する。またvalue値の契約者メニューへを変更先説明として識別する。また要素抽出部548は、汎用ボタン574の記述を検出すると、buttonを表示変更要素として識別する。またlocationreloadを変更先名称として識別する。またボタンタグにより囲まれた文字列ページを更新を変更先説明として識別する。操作記述文書設定部550は、1つの構造化文書から要素抽出部548が抽出した操作対象要素の情報を同一の操作記述文書のデータとしてまとめて設定することにより操作記述文書を生成する。具体的には、入力要素の要素名称の文字列を第1入力要素情報欄522へ転記し、要素意味の文字列を第2入力要素情報欄524へ転記する。また表示変更要素の変更先名称の文字列を第1表示変更要素情報欄526へ転記し、変更先説明の文字列を第2表示変更要素情報欄528へ転記する。また操作記述文書設定部550は、操作対象要素の情報を操作記述文書へ設定する際、その操作対象要素の情報を要素情報保持部544へも格納する。例えば、操作記述文書における操作対象要素の記載位置例えば何カラム目かを示す情報と、その操作対象要素の種類ラジオボタンテキストボックス送信ボタン等を示す情報を対応づけて記録する。表示変更要素の場合にはそのアンカー位置を示す情報をさらに記録する。操作情報変換部552は、文書受付部540により読み込まれた操作記述文書に記述された操作対象要素への操作内容を、対応関係保持部546に保持された対応関係にしたがって動作検証装置100において予め定められた関数へ変換、言い換えればマッピングする。これにより、参考技術で説明した操作内容ファイルを作成する。また操作情報変換部552は、1つの操作記述文書に操作対象要素に対する複数種類の操作が記述されている場合、各操作に対応した複数の操作内容ファイルを作成する。例えば、図21で示した操作記述文書の3つのレコードに対応する3つの操作内容ファイルそのうちの1つは図20の操作内容ファイルのデータを設定する。操作情報変換部552は、操作記述文書の1レコード内に入力要素への操作と、表示変更要素への操作の両方が記述されている場合、入力要素への操作に対応する関数の呼び出し順序を、表示変更要素への操作に対応する関数の呼び出し順序より先になるよう設定する。具体的には、操作内容ファイルにおいて、入力要素への操作に対応する関数を、表示変更要素への操作に対応する関数より実行順序の上位に記録する。操作情報変換部552は、操作記述文書にもとづいて作成した操作内容ファイルを操作内容ファイル保持部143へ格納する。図27は、操作情報変換部552による変換例を模式的に示す。図27のNo1は、図25のラジオボタン560について37001value0が選択された場合を示している。対応関係保持部546においてラジオボタンへの入力操作は関数clickRadiobuttonByValueとオブジェクトの雛形domdocumentcontentsform要素名と対応づけられている。操作情報変換部552は、操作記述文書に記述された操作対象要素の属性情報を要素情報保持部544から取得し、その操作対象要素がラジオボタンである場合、操作内容ファイルの関数欄にclickRadiobuttonByValueを設定する。また要素名radRenNumを設定したdomdocumentcontentsformradRenNumをオブジェクト欄に設定する。そして、操作記述文書にユーザが記述したvalue0をパラメータ値欄に設定する。なお、この設定内容は、図20の操作関数510に対応する。また図27のNo2は、図25のテキストボックス562に対して文字列user123が入力された場合を示している。対応関係保持部546においてテキストボックスへの入力操作は関数typeTextとオブジェクトの雛形domdocumentcontentsformelementscontentsform要素名と対応づけられている。操作情報変換部552は、操作記述文書に記述された操作対象要素の属性情報を要素情報保持部544から取得し、その操作対象要素がテキストボックスである場合、操作内容ファイルの関数欄にtypeTextを設定する。また要素名uidを設定したdomdocumentcontentsformelementscontentsformuidをオブジェクト欄に設定する。そして、操作記述文書にユーザが記述したuser123をパラメータ値欄に設定する。また図27のNo3は、図25のチェックボックス564についてグリーン免許valuegreenが選択された場合を示している。対応関係保持部546においてチェックボックスへの入力操作は関数clickCheckboxByValueとオブジェクトの雛形domdocumentcontentsform要素名と対応づけられている。操作情報変換部552は、操作記述文書に記述された操作対象要素の属性情報を要素情報保持部544から取得し、その操作対象要素がチェックボックスである場合、操作内容ファイルの関数欄にclickCheckboxByValueを設定する。また要素名rankを設定したdomdocumentcontentsformrankをオブジェクト欄に設定する。そして、操作記述文書にユーザが記述したvaluegreenをパラメータ値欄に設定する。また図27のNo4は、図25のプルダウンメニュー566について20代value20が選択された場合を示している。対応関係保持部546においてプルダウンメニューへの入力操作は関数selectとオブジェクトの雛形domdocumentcontentsformelementscontentsform要素名と対応づけられている。操作情報変換部552は、操作記述文書に記述された操作対象要素の属性情報を要素情報保持部544から取得し、その操作対象要素がプルダウンメニューである場合、操作内容ファイルの関数欄にselectを設定する。また要素名ageを設定したdomdocumentcontentsformelementscontentsformageをオブジェクト欄に設定する。そして、操作記述文書にユーザが記述したvalue20をパラメータ値欄に設定する。また図27のNo5は、図26のリンク570のクリック操作が指定された場合を示している。対応関係保持部546においてハイパーリンクのクリック操作は関数clickAnchorとオブジェクトの雛形domdocumentgetElementByTagName要素位置と対応づけられている。操作情報変換部552は、操作記述文書に記述された操作対象要素の属性情報を要素情報保持部544から取得し、その操作対象要素がリンクである場合、操作内容ファイルの関数欄にclickAnchorを設定する。また要素情報保持部544に保持されたアンカー位置ここでは7とするを設定したdomdocumentgetElementByTagName7をオブジェクト欄に設定する。また図27のNo6は、図26の送信ボタン572のクリック操作が指定された場合を示している。対応関係保持部546において送信ボタンのクリック操作は関数clickAnchorとオブジェクトの雛形domdocumentgetElementByTagName要素位置と対応づけられている。操作情報変換部552は、操作記述文書に記述された操作対象要素の属性情報を要素情報保持部544から取得し、その操作対象要素が送信ボタンである場合、操作内容ファイルの関数欄にclickAnchorを設定する。また要素情報保持部544に保持されたアンカー位置ここでは5とするを設定したdomdocumentgetElementByTagName5をオブジェクト欄に設定する。なお、図26の汎用ボタン574のクリック操作が指定された場合もオブジェクト欄に設定するアンカー位置が異なる以外は同様の設定内容になる。以上の構成による動作を以下説明する。図28は、動作検証装置100の動作を示すフローチャートである。文書受付部540はテスト対象の構造化文書を指定した操作記述文書の作成要求をユーザから受け付けるとS300のY、その構造化文書を読み込むS302。要素抽出部548は、読み込まれた構造化文書に記述された操作対象要素に関する情報を抽出するS304。操作記述文書設定部550は操作対象要素に関する情報を設定した文書であり、ユーザに操作対象要素への操作内容を記述させるための操作記述文書のデータを設定し、操作記述文書出力部542は操作記述文書をユーザが指定したディレクトリへ出力するS306。操作記述文書の作成要求を受け付けなければS300のN、S302からS306をスキップする。文書受付部540は操作記述文書を指定した操作内容ファイルの作成要求をユーザから受け付けるとS308のY、その操作記述文書を読み込むS310。操作情報変換部552は、動作検証装置100において予め定められた関数であり、操作記述文書に記述された操作対象要素への操作に対応する関数を呼び出すことを定めた操作内容ファイルを作成して操作内容ファイル保持部143へ格納するS312。操作情報変換部552は、操作記述文書にユーザが記述した操作内容を示すレコード行ごとにS312の処理を実行し、各レコードに対応した操作内容ファイルを作成する。操作内容ファイルの作成要求が受け付けられなければS308のN、S310およびS312をスキップする。テスト対象の構造化文書に対するテストの実行要求が受け付けられるとS314のY、プログラム生成部132は、操作内容ファイル保持部143に保持された操作内容ファイルに記述された関数について、オブジェクト欄およびパラメータ値欄の値を引数として各関数を呼び出すステップを組み合わせたテストプログラムを生成するS316。プログラム実行部134は、テストプログラムに記述された関数を順次呼び出すことにより構造化文書を表示したウェブブラウザを介してウェブページに対する操作をユーザに代わり実行するS318。テストの実行要求が受け付けられなければS314のN、S316およびS318をスキップする。以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。上記実施の形態では言及していないが、操作情報変換部552は、操作記述文書に記述された操作に対応する関数を操作内容ファイルへ設定する都度、ウェブページの表示内容を証左物として記録するための関数を操作内容ファイルへ自動で付加してもよい。例えば、図21の操作記述文書のNO1のレコードにもとづいて図20の操作内容ファイルを設定する場合、操作関数510の前操作関数510の次操作関数512の次のそれぞれにスクリーンショット操作に対応する関数を付加してもよい。請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。例えば、請求項に記載のプログラム生成部は、操作情報変換部552とプログラム生成部132との連携により実現されてもよい。また、操作内容ファイルの内容は実質的にテスト実行コードであると言えるため、請求項に記載のプログラム生成部は、操作情報変換部552により実現されると言えることも当業者には理解されるところである。