(57)【要約】【課題】動的なウェブページに対する動作テストを再現するためのテスト・プログラムを作成し実行する。【解決手段】操作記録部１３７は、動作確認対象のウェブページに対するデータ入力操作を検出し、データ入力操作に対応する関数であってウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する。オブジェクト検出部５２４は、ページ構成ファイルの中から、ユーザ操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出する。イベント記録部５２６は、イベントハンドラが埋め込まれているオブジェクトで発生するイベントに対応する関数を操作内容ファイルに記録する。動的タグ記録部５２８は、ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザ操作を操作内容ファイルに記録する。【選択図】図２０
2011164785.tif 000002
【特許請求の範囲】
【請求項１】
ウェブページの動作確認のためのテスト・プログラムを実行する動作検証装置であって、
動作確認対象のウェブページに対するデータ入力操作を検出し、前記データ入力操作に対応する関数であって前記ウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する操作記録部と、
前記ウェブページを構成するためのページ構成ファイルを取得するファイル取得部と、
前記ページ構成ファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出部と、
前記イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を前記操作内容ファイルに記録するイベント記録部と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作を前記操作内容ファイルに記録する動的タグ記録部と、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項２】
前記動的タグ記録部は、前記操作内容ファイルの作成中に定期的に前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１に記載の動作検証装置。
【請求項３】
前記動的タグ記録部は、前記操作内容ファイルの作成中にユーザからなされる指示に応じて前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１に記載の動作検証装置。
【請求項４】
前記プログラム実行部は、前記テスト・プログラムの実行中に、初期状態では表示されない動的オブジェクトが作成されるまで実行を待機する機能を有することを特徴とする請求項１ないし３のいずれかに記載の動作検証装置。
【請求項５】
前記プログラム実行部は、前記操作内容ファイルの作成時に動的オブジェクトが作成されるのに要した時間に基づき、前記テスト・プログラムを実行中の待機時間を設定することを特徴とする請求項４に記載の動作検証装置。
【請求項６】
ウェブページの動作確認のためのテスト・プログラムを実行する装置に、
前記ウェブページに対するデータ入力操作を検出し、前記データ入力操作に対応する関数であって、前記ウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する操作記録機能と、
前記ウェブページを構成するためのページ構成ファイルを取得するファイル取得機能と、
前記ページ構成ファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出機能と、
前記イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を前記操作内容ファイルに記録するイベント記録機能と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作を前記操作内容ファイルに記録する動的タグ記録機能と、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成機能と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行機能と、
を実現させるための動作検証プログラム。
【請求項７】
ウェブページの動作確認のためのテスト・プログラムを実行する装置により実行される動作検証方法であって、
動作確認対象のウェブページに対するデータ入力操作を検出し、前記データ入力操作に対応する関数であって前記ウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録するステップと、
前記ウェブページを構成するためのページ構成ファイルを取得するステップと、
前記ページ構成ファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するステップと、
前記イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を前記操作内容ファイルに記録するステップと、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作を前記操作内容ファイルに記録するステップと、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するステップと、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記装置に前記テスト・プログラムを実行させるステップと、
を含むことを特徴とする動作検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、製品の動作をテストするための技術に関する。
【背景技術】
【０００２】
製品品質を保証する上で、製品出荷前の動作テストは不可欠である。一般的には、テスト・エンジニアが製品を手動操作し、その操作結果を確認することにより動作テストを実行することが多い。しかし、操作バリエーションが豊富な多機能製品の場合、手動による動作テストには限界がある。
【０００３】
そこで、テスト・プログラムで動作テストを自動実行することにより、動作テストの省力化を図ることも多い。例えば、ＨＰ（Hewlett-Packard）社が提供する自動機能テストツール「ＱＴＰ（Quick Test Professional）」は、ユーザが自作したテスト・プログラムを実行することにより、動作テストを自動化する。ウェブページの動作テストは、一般的に、そのウェブページを表示するウェブブラウザに対して入力操作を行い、操作結果を確認することにより実施される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２２７３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年注目されているＡｊａｘを利用することで、所定のユーザ操作のイベントに応じてＨＴＭＬ画面の表示態様が変化したりタグが追加されるなどの動的なウェブページを作成することができる。このような動的なウェブページでは、ウェブブラウザに対する入力操作を全て記録するだけでは、ユーザの行った動作テストをテスト・プログラムで再現できないという問題がある。
【０００６】
本発明は上記課題を鑑みてなされたものであり、その目的は、動的なウェブページに対する動作テストを再現するためのテスト・プログラムを作成し実行する技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様は、ウェブページの動作確認のためのテスト・プログラムを実行する動作検証装置である。この装置は、動作確認対象のウェブページに対するデータ入力操作を検出し、前記データ入力操作に対応する関数であって前記ウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する操作記録部と、前記ウェブページを構成するためのページ構成ファイルを取得するファイル取得部と、前記ページ構成ファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出部と、前記イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を前記操作内容ファイルに記録するイベント記録部と、前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作を前記操作内容ファイルに記録する動的タグ記録部と、前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、を備える。
【０００８】
この態様によると、動的なウェブページにおける、ユーザによる明示的な操作として現れないイベントハンドラによる画面態様の変化やタグの自動生成をも、それらに対応する関数を操作内容ファイルに記録することができる。したがって、動的なウェブページに対する動作テストをテスト・プログラムとして生成し実行することができる。
【０００９】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、動的なウェブページに対する動作テストを再現するためのテスト・プログラムを作成し実行することができる。
【図面の簡単な説明】
【００１１】
【図１（ａ）】ポータルサイト第１画面の画面図である。
【図１（ｂ）】ポータルサイト第２画面の画面図である。
【図２】辞書テストを実行したときのログを示す図である。
【図３】辞書テストを実行するためのプログラムを示す図である。
【図４】動作検証装置の機能ブロック図である。
【図５】ログを取得して動作テストを実行するまでの概要図である。
【図６】ログ画面の画面図である。
【図７】関数設定画面の画面図である。
【図８】プログラム画面の画面図である。
【図９】入力設定画面の画面図である。
【図１０】ケース設定画面の画面図である。
【図１１】参考技術１の動作検証装置と参考技術２の動作検証装置とのそれぞれにおける構成の概要を示す図である。
【図１２】参考技術１の動作検証装置と参考技術２の動作検証装置とのそれぞれにおける動作の概要を示す図である。
【図１３】参考技術２の動作検証装置の機能構成を示すブロック図である。
【図１４】参考技術２において、ユーザのデータ入力操作を検出して動作テストを実行するまでの概要図である。
【図１５】参考技術２における関数設定画面の画面図である。
【図１６】参考技術２における関数設定画面の画面図である。
【図１７】参考技術２における入力設定画面の画面図である。
【図１８】参考技術２におけるケース設定画面の画面図である。
【図１９】（ａ）はＡｊａｘを利用したウェブページにおいて動的にタグが追加される例を示し、（ｂ）はＪａｖａＳｃｒｉｐｔがＤＯＭを書き換える例を示す図である。
【図２０】本発明の実施の形態に係る動作検証装置の構成を示すブロック図である。
【図２１】イベント記録部および動的タグ記録部によって操作内容ファイルに追加される関数の例を示す図である。
【図２２】実施の形態による動作検証装置の操作記録時のフローチャートである。
【図２３】実施の形態による動作検証装置のプログラム実行時のフローチャートである。
【発明を実施するための形態】
【００１２】
本実施の形態の動作検証システムについて説明する前に、その前提となる動作検証装置に係る参考技術１および２について説明する。
【００１３】
（参考技術１）
図１（ａ）は、ポータルサイト第１画面３００の画面図である。
参考技術１においては、ポータル・サイト「ＸＹＺ！」を対象とした動作テストについて説明する。ポータルサイト第１画面３００は、エディットボックス３０２と検索リンク３０４を含む。検索リンク３０４は、「ウェブ」、「ブログ」、「画像」、「辞書」という４つのリンクを含む。ユーザがエディットボックス３０２に文字列を入力し、検索リンク３０４のうちのいずれかをマウス・クリックすると、入力文字列の検索が開始される。例えば、エディットボックス３０２に文字列「液晶」と入力し、リンク「ウェブ」をマウス・クリックした場合、文字列「液晶」を含むウェブサイトが検索対象となる。エディットボックス３０２に文字列「液晶」と入力し、リンク「ブログ」をマウス・クリックした場合には、このポータル・サイトに開設されているブログ（Weblog）のうち、文字列「液晶」を含むブログページが検索対象となる。
ここでは、エディットボックス３０２に文字列「テスト」が入力され、リンク「辞書」がマウス・クリックされたとする。
【００１４】
図１（ｂ）は、ポータルサイト第２画面３１０の画面図である。
ポータルサイト第１画面３００にて、「テスト」を入力し、「辞書」をマウス・クリックすると、図１（ｂ）に示すポータルサイト第２画面３１０が表示される。検索結果欄３０６には、このポータル・サイトが提供している「辞書」サービスにより、文字列「テスト」に関連する項目が羅列される。
ここで、検索結果欄３０６の１番上にあるリンク「テスト（test）」がマウス・クリックされたとする。
【００１５】
上記過程においては、以下に示す３つの操作がなされている。
Ａ１．ポータルサイト第１画面３００のエディットボックス３０２に文字列「テスト」を入力する操作。
Ａ２．ポータルサイト第１画面３００の検索リンク３０４のうち、リンク「辞書」をマウス・クリックする操作。
Ａ３．ポータルサイト第２画面３１０の検索結果欄３０６のうち、リンク「テスト（test）」をマウス・クリックする操作。
以下においては、上記Ａ１〜Ａ３の操作により実現される動作過程のことを、「辞書テスト」とよぶ。
【００１６】
図２は、辞書テストを実行したときのログ３２０を示す図である。
ＨＰ社のＱＴＰが導入されているクライアント端末を操作して、上記ポータル・サイトにアクセスし、Ａ１〜Ａ３の操作を実行した場合、ＱＴＰは図２に示すログ３２０を生成する。ログ３２０には、操作Ａ１〜Ａ３が所定フォーマットの符合文として記録される。
例えば、操作Ａ１は、
Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テスト"
という符号文にて表現される。これは、"XYZ!"というウェブ・サイト、"XYZ!"という名前のウェブページ、pという名前のエディットボックス（図１（ａ）、図１（ｂ）に示すエディットボックス３０２に相当する）に対して、文字列「テスト」が入力されたことを意味している。
同様にして、操作Ａ２は、
Browser("XYZ!").Page("XYZ!").Link("辞書").Click
操作Ａ３は、
Browser("XYZ!").Page("XYZ!-全ての辞書-テスト").Link("テスト(test)").Click
という符号文にて表示される。参考技術１においては、ＱＴＰの文法に基づいて説明するが、符合文のフォーマットはこれに限られるものではない。
【００１７】
ＱＴＰは、ログ３２０の符合文を解釈しながら、符合文により表現される操作を再現実行できる。このため、いったんログ３２０を生成すれば、同一内容の辞書テストを何度でも繰り返し実行できる。また、ログ３２０の一部を書き換えれば、手動操作時とは異なる内容にて辞書テストを実行できる。例えば、
Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テスト"
に含まれる文字列「テスト」を別の文字列「テイスト」に変更し、
Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テイスト"
と書き換えてＱＴＰに入力すれば、エディットボックス３０２への入力文字列だけ変更した同内容の辞書テストを自動実行できる。
しかし、ログ３２０を書き換えながら動作テストを実行するには、ログ３２０の文法に関してある程度の知識が必要である。また、ログ３２０の書き換えに際し、人為的なミスが発生する可能性がある。
【００１８】
図３は、辞書テストを実行するためのプログラム３３０を示す図である。
ログ３２０により動作テストを実行する代わりに、ログ３２０と同等の内容をＶＢ（Visual Basic）スクリプト等で記述することにより、テスト・プログラムを作成してもよい。図３に示すプログラム３３０は、図２のログ３２０を参照しつつ作成されたテスト・プログラムである。
例えば、操作Ａ１は、
WebEditSet(Browser("XYZ!").Page("XYZ!").WebEdit("p"),DataTable("p1,dtGlobalSheet")
というＶＢ関数により表現される。WebEditSet関数の具体的なロジックは、同図中段に記述されている通りである。
【００１９】
プログラム３３０、文字列「テスト」のような入力データをプログラム３３０中に含まない点においてログ３２０と異なる。代わりに、WebEditSet関数は、dtGlobalSheetとして表現されるファイル（以下、「入力データファイル」とよぶ）から入力データを受け取る。すなわち、ロジックと入力データが分離されることになる。入力データファイルの書き換えや取り替えにより、様々な入力データに基づいて同一ロジックの辞書テストを実行できる。手動による動作テストやログ３２０による動作テストに比べて、プログラム３３０による動作テストは、入力データのバリエーションを増やしやすいというメリットがある。
【００２０】
ただし、プログラム３３０による動作テストには、以下の問題点がある。
ｄ１．プログラムを作成する手間が新たに発生する。
ｄ２．プログラム作成者によって、プログラムの内容が変化する。例えば、プログラマＰ１が操作Ａ１に対応して作成するWebEditSet関数と、プログラマＰ２が操作Ａ１に対応して作成するWebEditSet関数は、関数名は同じでもロジックが同一になるとは限らない。また、プログラム自体にバグが混入する可能性がある。このため、プログラム３３０自体の信頼性を担保するための取り組みが必要となる。また、プログラム３３０には、例外処理等、動作テストとは直接関係しないロジックも必要であるが、全てのプログラマが例外処理まで考慮したロジックを実装するとは限らない。例えば、図３に示すWebEditSet関数の場合、入力データが空文字の場合にも対応できるようにロジックが組まれているが、別のプログラマがWebEditSet関数を実装する場合には、こういった配慮が欠如するかもしれない。
結果として、プログラマのスキルが動作テストの内容・結果に影響を及ぼしやすくなってしまう。
【００２１】
図４は、動作検証装置１００の機能ブロック図である。
本明細書のブロック図が示す各機能ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組み合わせによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、各機能ブロックは、コンピュータプログラムとして記録媒体に格納され、情報処理装置のハードディスクにインストールされ、適宜メインメモリに読み出されてプロセッサにより実行されてもよい。
動作検証装置１００は、専用ハードウェアとして形成されてもよいし、ウェブブラウザなどのユーザインタフェースと連携するソフトウェア・モジュールとして形成されてもよい。
参考技術１の動作検証装置１００とは、ＱＴＰのアドオンとして形成されるソフトウェア・モジュールであるとして説明する。
【００２２】
動作検証装置１００は、ＩＦ（インタフェース）部１１０、データ処理部１３０およびデータ保持部１４０を含む。
ＩＦ部１１０は、ユーザやＱＴＰとのインタフェースを担当する。データ処理部１３０は、ＩＦ部１１０やデータ保持部１４０から取得されたデータを元にして各種のデータ処理を実行する。データ処理部１３０は、ＩＦ部１１０とデータ保持部１４０との間のインタフェースの役割も果たす。データ保持部１４０は、各種データを保持するための記憶領域である。
【００２３】
ＩＦ部１１０：
ＩＦ部１１０は、入力部１１２と出力部１１８を含む。入力部１１２はユーザやＱＴＰからの入力処理を担当し、出力部１１８はユーザやＱＴＰに対する出力処理を担当する。入力部１１２は、ログ取得部１１４と入力データ取得部１１６を含む。ログ取得部１１４は、ＱＴＰからログを取得する。入力データ取得部１１６は、入力データファイルを取得し、入力データファイルからプログラムに提供する入力データを取得する。入力データファイルの詳細については、図５や図９に関連して詳述する。
【００２４】
出力部１１８は、関数設定画面表示部１２０、入力設定画面表示部１２２、プログラム画面表示部１２４およびケース設定画面表示部１２６を含む。関数設定画面表示部１２０は、図７に示す関数設定画面２１０を表示させる。入力設定画面表示部１２２は、図９に示す入力設定画面２３０を表示させる。プログラム画面表示部１２４は、図８に示すプログラム画面２２０を表示させる。ケース設定画面表示部１２６は、図１０に示すケース設定画面２４０を表示させる。
【００２５】
データ処理部１３０：
データ処理部１３０は、プログラム生成部１３２、プログラム実行部１３４およびテストケース登録部１３６を含む。プログラム生成部１３２は、動作テスト用のプログラムを自動的に生成する。プログラム実行部１３４は、生成されたプログラムを実行させる。参考技術１においては、ＱＴＰにプログラムを実行させる。テストケース登録部１３６は、実行セットをケースファイルに登録する。実行セットおよびケースファイルについては図１０に関連して詳述する。
【００２６】
データ保持部１４０：
データ保持部１４０は、ログ保持部１４２、プログラム保持部１４４、入力データファイル保持部１４６、ケースファイル保持部１４８、関数保持部１５０および結果保持部１５２を含む。ログ保持部１４２は、ログを保持する。プログラム保持部１４４は、プログラムを保持する。入力データファイル保持部１４６は、入力データファイルを保持する。ケースファイル保持部１４８は、ケースファイルを保持する。関数保持部１５０は、動作テスト用のプログラムに登録される関数について、関数ライブラリを保持する。結果保持部１５２は、動作テストの結果を保持する。
【００２７】
図５は、参考技術１において、ログを取得して動作テストを実行するまでの概要図である。
まず、動作テストの対象となる機器を手動操作する。参考技術１においては、クライアント端末のウェブブラウザを操作して、ポータル・サイト「ＸＹＺ！」にアクセスする。ＱＴＰはログを生成し、ログ取得部１１４はＱＴＰからログを取得する。各種符合文にはあらかじめ関数が対応づけられている。関数設定画面表示部１２０は、関数保持部１５０の関数ライブラリを読み出し、ログに含まれる各符号文に対応する関数を一覧表示させる（Ｓ１）。関数設定画面表示部１２０において、ユーザは、適宜、関数を追加・変更・削除できる。こうして、プログラムに含まれるべき関数が特定される。Ｓ１については、図７に関連して後に詳述する。
【００２８】
次に、このプログラムに供給すべき入力データを設定する（Ｓ２）。設定内容は、入力データファイルとして登録される。Ｓ２については、図９に関連して後に詳述する。Ｓ１で設定された関数群からプログラムを自動生成する（Ｓ３）。Ｓ３については、図８に関連して後に詳述する。
【００２９】
次に、複数種類のプログラムおよび複数種類の入力データファイルから、プログラムと入力データファイルの組み合わせを「実行セット」として登録する。実行セットは複数個登録することもできる（Ｓ４）。設定内容は、ケースファイルとして登録される。例えば、プログラムＰ１を入力データファイルＦ２に基づいて実行した後、プログラムＰ２を入力データファイルＦ６に基づいて実行させたい場合、
実行セット１：プログラムＰ１＋入力データファイルＦ２
実行セット２：プログラムＰ２＋入力データファイルＦ６
としてケースファイルに登録される。Ｓ４については、図１０に関連して詳述する。
最後に、ケースファイルにしたがって、プログラムを実行する（Ｓ５）。上記例の場合には、プログラム実行部１３４は、実行セット１と実行セット２を連続実行させる。プログラム実行部１３４は、プログラムの実行結果、言い換えれば、テスト結果をテスト結果保持部１５２に登録する。
【００３０】
図６は、ログ画面２００の画面図である。
ログ取得部１１４がログを取得すると、出力部１１８はログ画面２００におけるログ表示領域２０２にログを画面表示させる。ユーザは、ＱＴＰのログをログ表示領域２０２にコピー＆ペーストしてもよい。あるいは、出力部１１８は、ログ画面２００の表示時において、ＱＴＰが生成したログ（ファイル）を取得し、ログ表示領域２０２に画面表示させてもよい。ユーザが実行ボタン２０４をマウス・クリックすると、次の図７に示す関数設定画面２１０が表示される。
【００３１】
図７は、関数設定画面２１０の画面図である。
プログラム生成部１３２は、ログに含まれる符号文について関数を特定し、関数設定画面２１０の関数欄２１４に特定した関数を一覧表示させる。番号欄２１２は実行順序、説明欄２１６は関数の概要説明、オブジェクト欄２１８は操作対象オブジェクト、パラメータ欄２１９はパラメータ名、入力値欄２１７は入力データを示す。
先述の操作Ａ１を示す符合文、
Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テスト"
には、あらかじめ、WebEditSet関数が関数ライブラリにおいて対応づけられている。プログラム生成部１３２はログ３２０の１番目の符合文を読み出すと、関数保持部１５０の関数ライブラリを参照し、WebEditSet関数を特定する。操作Ａ１が操作対象とするオブジェクトは、「Browser("XYZ!").Page("XYZ!")」のページであるため、オブジェクト欄２１８には、「Browser("XYZ!").Page("XYZ!")」が設定される。WebEditSet関数は、エディットボックスp（エディットボックス３０２）に設定される入力データを引数とする関数である。入力値欄２１７において、エディットボックスpに設定すべき入力データを設定することもできるが、関数設定画面２１０では入力データを登録しないものとして説明する。エディットボックスpに設定すべき入力データは、図９に関連して詳述する入力設定画面２３０にて設定される。
【００３２】
ログ３２０には操作Ａ１〜Ａ３に対応して３つの符合文が含まれているため、プログラム生成部１３２は３つの関数を特定する。ユーザは、関数設定画面２１０にて、関数を追加・削除・変更してもよい。図７における４番目のTextCheck関数と５番目のWebScreenCapture関数は、ユーザが追加選択した関数である。
【００３３】
TextCheck関数は、表示中のウェブページにおいて、変数qに代入される文字列が含まれているかを判定する関数である。WebScreenCapture関数は、表示中のウェブページを画面キャプチャする関数である。動作テストの結果を証跡管理する上で、WebScreenCapture関数は便利な関数である。このように、関数ライブラリには、WebEditSet関数のようにユーザの操作に対応した関数だけでなく、TestCheck関数のように動作テストを補助・支援するための関数も用意されている。ユーザは、関数ライブラリから所望の関数を選択するだけで、動作テストに含めたいロジックを設定できる。
【００３４】
テストケース設定ボタン２１５がクリックされると、図１０のケース設定画面２４０が表示される。入力データファイル作成ボタン２１３がクリックされると、図９の入力設定画面２３０が表示される。プログラム作成ボタン２１１がクリックされると、図８のプログラム画面２２０が表示される。
【００３５】
参考技術１の動作検証装置１００には、以下のメリットがある。
ｍ１．ＧＵＩ（Graphical User Interface）ベースで関数を選択するだけで、プログラムに含めたいロジックを選択できる。プログラムを作成するための手間がほとんどかからない。
ｍ２．プログラムに含まれる関数は、関数ライブラリとして登録済みの関数であるため、作成者によってプログラムの品質がばらつきにくい。例外処理等の必要なロジックも、あらかじめ各関数に組み込まれている。
【００３６】
図８は、プログラム画面２２０の画面図である。
関数設定画面２１０において、プログラム作成ボタン２１１がマウス・クリックされると、プログラム生成部１３２がプログラムを生成し、プログラム画面表示部１２４はプログラム画面２２０におけるプログラム表示領域２２２にそのソースコードを表示させる。プログラムは、プログラム保持部１４４に保持される。
【００３７】
図９は、入力設定画面２３０の画面図である。
関数設定画面２１０において、入力データファイル作成ボタン２１３がマウス・クリックされると、入力設定画面表示部１２２は入力設定画面２３０を表示させる。関数設定画面２１０においては、パラメータpとqが定義されている。番号欄２３２は入力順序、変数欄２３４はパラメータpへの入力データ、変数欄２３６はパラメータqへの入力データを示す。入力設定画面２３０では、このパラメータpとqに代入する入力データを設定する。各入力データは、入力データファイルとして入力データファイル保持部１４６に保持される。
【００３８】
例えば、プログラム３３０に、図９に示す形式の入力データファイルを与えると、
１．文字列「テスト」をエディットボックス３０２に入力して辞書を検索し、実行結果を示す画面に文字列「試験」が含まれているかを判定するテスト
２．文字列「test」をエディットボックス３０２に入力して辞書を検索し、実行結果を示す画面に文字列「試験」が含まれているかを判定するテスト
３．文字列「テストケース」をエディットボックス３０２に入力して辞書を検索し、実行結果を示す画面に文字列「試験」が含まれているかを判定するテスト
・・・のように、異なる入力データに基づく複数の辞書テストを連続実行できる。
【００３９】
図１０は、ケース設定画面２４０の画面図である。
関数設定画面２１０において、テストケース設定ボタン２１５がマウス・クリックされると、ケース設定画面表示部１２６はケース設定画面２４０を表示させる。番号欄２４４は実行順序、実行セット欄２４５は実行セットの概要、プログラム欄２４６は実行対象となるプログラム、入力データファイル欄２４７は入力データの抽出対象となる入力データファイルを示す。
ここでは、インターネット証券のウェブ・サイトを動作テストの対象として説明する。
【００４０】
同図においては、１．ログイン、２．ニュースチェック、３．株売り、４．債券売り、５．住所変更、６．ログアウトという６つの実行セットが登録されている。まず、ＱＴＰは、プログラム「login.vbs」から「login」プロジェクトを生成する。ここでいう「プロジェクト」とは、ＱＴＰの実行形式ファイル群を含むディレクトリである。ＱＴＰは「login」プロジェクトを入力として、login.vbsとlogin.xlsに定義された処理を実行する。ユーザが実行ボタン２４８をマウス・クリックすると、最初に、実行セット「ログイン」の「login」プロジェクトが実行される。１番目の実行セット「ログイン」が完了すると、実行セット「ニュースチェック」として、「ncheck」プロジェクトが実行される。
【００４１】
このように、実行ボタン２４８がマウス・クリックされると、１．ログイン、２．ニュースチェック、３．株売り、４．債券売り、５．住所変更、６．ログアウトという６つの実行セットが連続実行される。これにより、「ログインして、ニュースをチェックした後、手持ち株と手持ち債券の売りを指示し、住所変更をした上で、ログアウトする」というテスト・シナリオに基づく動作テストを自動化できる。
【００４２】
ユーザは、ケース設定画面２４０において自由にテスト・シナリオを作ることができる。例えば、実行セット「株売り」の代わりに実行セット「株買い」を登録してもよいし、実行セット「株売り」の入力データファイルとして「stock1.xls」ではなく別の入力データファイルを登録してもよい。ケース設定画面２４０において登録されたテスト・シナリオはケースファイルとして記録され、ケースファイル保持部１４８に保持される。
テスト・シナリオの構成や入力データファイル等を少しずつ変化させることにより、動作テストのバリエーションを広げやすくなる。
【００４３】
以上、参考技術１の動作検証装置１００を説明した。
動作検証装置１００によれば、プログラムと入力データ、すなわち、処理とパラメータを分離できる。そして、そのためのプログラムをＧＵＩベースの設定に基づき自動生成できる。これにより、プログラムに含めるロジックの多様性を確保しつつも、安定した品質のプログラムを簡易に生成できる。また、入力データファイルの内容を変更するだけで、動作テストの内容を変更できるため、動作テストのバリエーションを広げやすくなる。
【００４４】
さらに、実行セットをケースファイルに登録してテスト・シナリオを作ることにより、既存のプログラムを組み合わせながら、様々な状況における動作テストを実現できる。また、WebEditSet関数のようなテスト対象機器を操作するための関数だけでなく、WebScreenCapture関数のような動作テストを支援するための関数を用意しておくことにより、動作テストの効率や信頼性をいっそう向上させやすくなる。
【００４５】
（参考技術２）
参考技術２では、上記の参考技術１を改良した動作検証装置１００を提案する。
まず、参考技術１における動作検証装置１００と、参考技術２の動作検証装置１００とを比較しつつ、参考技術２の動作検証装置１００についてその概要を説明する。
【００４６】
図１１は、参考技術１の動作検証装置１００と参考技術２の動作検証装置１００とのそれぞれにおける構成の概要を示す。図１１（ａ）が示すように、参考技術１の動作検証装置１００は、動作テストの実行エンジンであるＱＴＰモジュール１０２と、ＱＴＰモジュール１０２を使用したウェブサーバ４００の動作テストを効率化するためのラッパーモジュール１０４とを備えた。このラッパーモジュール１０４には、図４で示した各機能ブロックが含まれる。
【００４７】
図１１（ａ）において、ユーザは、ＱＴＰモジュール１０２を介して、動作確認の対象装置であるウェブサーバ４００を操作する（Ｓ１００）。ラッパーモジュール１０４は、その操作内容が記録されたログをＱＴＰモジュール１０２から取得して、関数設定画面２１０をユーザに提供した（Ｓ１０２）。ユーザは、動作テスト実行の際、ＱＴＰモジュールが読み込み可能な動作テスト用プログラムをラッパーモジュール１０４において生成させ、ＱＴＰモジュール１０２にそのプログラムを実行させた（Ｓ１０４）。
【００４８】
これに対して、図１１（ｂ）が示すように、参考技術２の動作検証装置１００は、動作テストの実行エンジンの機能とラッパーモジュール１０４の機能とが統合された統合検証モジュール１０６を備える。ユーザが統合検証モジュール１０６を介してウェブサーバ４００を操作すると（Ｓ２００）、統合検証モジュール１０６はその操作内容を逐次検出して関数設定画面２１０のデータを設定し、関数設定画面２１０をユーザに提供する（Ｓ２０２）。ユーザは、動作テスト実行の際、統合検証モジュール１０６において動作テスト用プログラムを生成させて実行させる（Ｓ２０４）。
【００４９】
図１２は、参考技術１の動作検証装置１００と参考技術２の動作検証装置１００とのそれぞれにおける動作の概要を示す。図１２（ａ）は、参考技術１の動作検証装置１００における動作の概要を示している。ユーザはウェブサーバ４００に対するデータ入力操作を実行し（Ｓ１１０）、ＱＴＰモジュール１０２はその操作内容が記録されたログを出力する（Ｓ１１２）。ユーザはそのログのデータをＱＴＰモジュール１０２の所定の入力エリアにコピーする（Ｓ１１４）。ラッパーモジュール１０４は所定の入力エリアに設定されたログのデータに基づいて関数設定画面を設定して表示させ（Ｓ１１６）、ユーザはその関数設定画面を介して追加・変更すべき関数・入力データを設定する（Ｓ１１８）。
【００５０】
ラッパーモジュール１０４は、関数設定画面のデータに基づいて、動作テストのためのＱＴＰ用プログラムを生成する（Ｓ１２０）。ユーザは、ＱＴＰ用プログラムをＱＴＰモジュール１０２の所定の入力エリアにコピーする（Ｓ１２２）。ユーザは、ケース設定画面において、ＱＴＰ用プログラムと入力データファイルとをセットとして指定した動作テストのシナリオを設定する（Ｓ１２４）。ラッパーモジュール１０４は、そのシナリオに基づいて、ＱＴＰ用プログラムと入力データファイルのセットをＱＴＰモジュール１０２に渡して、セット毎に動作テストを実行させる（Ｓ１２６）。
【００５１】
図１２（ｂ）は、参考技術２の動作検証装置１００における動作の概要を示している。ユーザは、ウェブサーバ４００に対するデータ入力操作を実行する（Ｓ２１０）。統合検証モジュール１０６は、そのデータ入力操作を逐次検出して、データ入力操作に対応する関数を操作内容ファイルに記録し、その操作内容ファイルの記録データを関数設定画面において表示する（Ｓ２１２）。ユーザは、その関数設定画面を介して追加・変更すべき関数・入力データを操作内容ファイルに設定する（Ｓ２１４）。そしてユーザは、ケース設定画面において、操作内容ファイルと入力データファイルとをセットとして指定した動作テストのシナリオを設定する（Ｓ２１６）。統合検証モジュール１０６は、そのシナリオに基づいて、シナリオ内の１以上のセットを集約した動作テスト用プログラムを生成して実行する（Ｓ２１８）。
【００５２】
このように、参考技術１の動作検証装置１００では、ＱＴＰモジュール１０２とラッパーモジュール１０４とが分離していた。したがって、両モジュールを連係させるために、ユーザ自身が仲介作業を実行する必要があった。また、ラッパーモジュール１０４はシナリオ内のセット毎にＱＴＰモジュール１０２をコールして、テスト用プログラムをセット毎に実行させる必要があった。
【００５３】
これに対して、参考技術２の動作検証装置１００では、動作テストの実行エンジンと、その効率的な利用を実現するラッパーとが分離されることなく、シームレスに統合されている。したがって、参考技術１の動作検証装置１００と比較すると、分離したモジュールを連係させるために必要であったユーザの作業が不要になり、動作テストのためのユーザの作業量が低減する。また、シナリオ内の複数のセットが集約された動作テスト用プログラムが生成され、そのプログラムの実行により一連のシナリオが実行されるため、迅速な動作テストが実現される。
【００５４】
図１３は、参考技術２の動作検証装置１００の機能構成を示すブロック図である。同図の機能ブロックは、図１１（ｂ）で示した統合検証モジュール１０６に含まれる。参考技術２の機能ブロックのうち、参考技術１の機能ブロックに対応する機能ブロックには、同じ符号を付している。参考技術１の機能ブロックと同じ符号を付した機能ブロックについてはその機能が参考技術１に既述した内容と異なる場合に記載しており、同様の機能についてはその記載を省略する。
【００５５】
データ保持部１４０は、操作内容ファイル保持部１４３と、プログラム保持部１４４と、入力データファイル保持部１４６と、ケースファイル保持部１４８と、関数保持部１５０とを有する。操作内容ファイル保持部１４３は、動作テスト用プログラムに設定すべき関数が記録される操作内容ファイルを記憶する。プログラム保持部１４４は、操作内容ファイルにしたがって生成された動作テスト用プログラムを記憶する。
【００５６】
ＩＦ部１１０の入力部１１２は、操作検出部１１５とユーザ設定受付部１１７とを有する。操作検出部１１５は、ウェブサーバ４００に対するユーザのデータ入力操作を逐次検出する。ユーザ設定受付部１１７は、関数設定画面２１０、入力設定画面２３０、ケース設定画面２４０に対するユーザによる設定情報を検出する。
【００５７】
ＩＦ部１１０の出力部１１８は、関数設定画面表示部１２０と入力設定画面表示部１２２とケース設定画面表示部１２６とを有する。関数設定画面表示部１２０は、操作内容ファイル保持部１４３に記録された操作内容ファイルの内容を表示する関数設定画面２１０を所定の表示装置に表示させる。
【００５８】
データ処理部１３０は、プログラム生成部１３２と、プログラム実行部１３４と、テストケース登録部１３６と、操作記録部１３７と、入力データ記録部１３８とを有する。操作記録部１３７は、関数保持部１５０を参照して、操作検出部１１５において検出されたデータ入力操作に対応する関数を特定し、その関数を操作内容ファイルに記録する。また操作記録部１３７は、関数設定画面２１０に対するユーザの設定情報を操作内容ファイルに記録する。入力データ記録部１３８は、入力設定画面２３０を介してユーザが入力した入力データを入力データファイルに記録する。プログラム生成部１３２は、操作内容ファイルに記録された関数に応じて動作テスト用プログラムを生成する。プログラム実行部１３４は、動作テストの実行エンジンとして、動作テスト用プログラムを実行し、その結果をテスト結果保持部１５２に記録する。
【００５９】
図１４は、参考技術２において、ユーザのデータ入力操作を検出して動作テストを実行するまでの概要図である。まず、ユーザはクライアント端末のウェブブラウザを操作してウェブサーバ４００にアクセスし、ウェブサーバ４００に対する各種操作、典型的にはウェブサーバ４００が提供するウェブページに対するデータ入力操作を実行する。操作検出部１１５はユーザによるデータ入力操作を逐次検出し、操作記録部１３７は関数保持部１５０の関数ライブラリを読み出し、そのデータ入力操作に対応する関数を操作内容ファイルに逐次記録する（Ｓ２２０）。
【００６０】
次に、関数設定画面表示部１２０は、操作内容ファイル保持部１４３の操作内容ファイルを読み出し、ユーザによる操作に対応する関数を一覧表示する関数設定画面を表示させる。関数設定画面において、ユーザは、適宜、関数を追加・変更・削除でき、また、動作テスト用プログラムに静的に設定すべき入力データを設定できる。こうして、動作テスト用プログラムに含まれるべき関数が特定される。関数設定画面については、図１５および図１６に関連して後述する。
【００６１】
次に、入力設定画面表示部１２２は、入力設定画面２３０を表示させる。ユーザは、入力設定画面２３０を介して、動作テストの実行時に動作テスト用プログラムに対して動的に供給されるべき入力データを設定する。ユーザにより設定された入力データは、入力データファイルに記録される（Ｓ２２２）。入力設定画面２３０については、図１７に関連して後述する。
【００６２】
次に、ケース設定画面表示部１２６は、ケース設定画面２４０を表示させる。ユーザは、複数種類の操作内容ファイルおよび複数種類の入力データファイルから、操作内容ファイルと入力データファイルとの組み合わせを実行セットとして登録する。テストケース登録部１３６は、１以上の実行セットをケースファイルに記録する（Ｓ２２４）。例えば、テストケース１において、操作内容ファイルＦ０１の設定内容を入力データファイルＦ１２に基づいて実行させた後、操作内容ファイルＦ０２の設定内容を入力データファイルＦ１６に基づいて実行させる場合、
テストケース１：
実行セット１：操作内容ファイルＦ０１＋入力データファイルＦ１２
実行セット２：操作内容ファイルＦ０２＋入力データファイルＦ１６
としてケースファイルに登録される。ケース設定画面２４０については、図１８に関連して後述する。
【００６３】
次に、プログラム生成部１３２は、ケースファイルおよび操作内容ファイルに基づいて動作テスト用プログラムを生成する（Ｓ２２６）。具体的には、実行セットに設定された操作内容ファイルに順次記録された関数を、動作テスト用プログラムのプログラムコードに順次設定してもよい。また、プログラム生成部１３２は、１つのテストケースに複数の実行セットが設定されている場合、各実行セットの操作内容ファイルに記録された関数を１つの動作テスト用プログラムに集約して設定する。
【００６４】
また、プログラム生成部１３２は、操作内容ファイルの関数に対して入力データそのものが設定されていた場合には、その入力データを動作テスト用プログラムに静的に設定する。例えば、動作テスト用プログラムの生成の際に、そのプログラムコードにおける関数の引数として入力データをあらかじめ設定する。また、操作内容ファイルの関数に対して入力データファイルが指定されていた場合には、その入力データファイルのデータをプログラム実行時に読み込むように設定する。
【００６５】
最後に、プログラム実行部１３４は、動作テスト用プログラムを実行して、ウェブサーバ４００に対してユーザにより実行された一連の操作を再現する（Ｓ２２８）。入力データファイルのデータを必要とする関数に対しては、動作テスト用プログラムの実行の際に読み込んだ入力データファイルのデータを引数として渡す。すなわち、入力データファイルから動的に取得した入力データに基づいて関数を実行する。
【００６６】
図１５は、関数設定画面２１０の画面図である。同図は、図１８で後述する「検索記入．ｘｌｓ」を表示する関数設定画面２１０を示している。データファイルカラム名欄２５０は、パラメータに設定する入力データを記録した入力データファイルのカラム名が指定される領域である。ユーザは、入力値欄２１７に入力データそのものを記述してもよく、その代わりに、データファイルカラム名欄２５０に入力データファイルのカラム名を指定してもよい。データファイルカラム名欄２５０に入力データファイルのカラム名が指定された場合、動作テスト用プログラムの実行時に、その入力データファイルのカラムに設定された１以上の入力データが読み込まれて関数に渡される。
【００６７】
図１６は、参考技術２における関数設定画面２１０の画面図である。同図の「検索部署名」パラメータの入力値欄２１７においては、入力データの候補がドロップダウンリスト２５２で一覧表示されている。ドロップダウンリスト２５２において表示される入力データの候補は、ウェブページに対するユーザによるデータ入力の際に、そのウェブページのドロップダウンリストにおいて表示された入力データの候補である。ユーザはドロップダウンリスト２５２から入力データを選択することができ、入力データの設定におけるユーザの負担が軽減される。
【００６８】
ドロップダウンリスト２５２を設定するために、操作検出部１１５は、ウェブページに対するユーザによるデータ入力操作の際に、そのウェブページのドロップダウンリストにおいて表示された入力データの候補を取得する。例えば、ウェブサーバ４００から取得されたウェブページのデータ、例えばＨＴＭＬデータからドロップダウンリストにおける入力データの候補を取得する。操作記録部１３７は、その入力データの候補を操作内容ファイルの入力値欄２１７に記録する。関数設定画面表示部１２０は、入力値欄２１７が入力される際に、操作内容ファイルに記録された入力データの候補をドロップダウンリストの形式で一覧表示させる。
【００６９】
図１７は、参考技術２における入力設定画面２３０の画面図である。図１７（ａ）は、図１５および図１６の関数設定画面２１０においてカラム名が指定された入力データファイル「検索記入データ．ｘｌｓ」を表示する入力設定画面２３０を示している。なお、図１５および図１６では、図１７（ａ）の「氏名漢字」カラムと「氏名カナ」カラムとが指定されている。図１６（ｂ）は、別の入力データファイル「ログインデータ２．ｘｌｓ」を表示する入力設定画面２３０を示している。同図の入力データファイルについては、図１８に関連して後述する。
【００７０】
図１８は、参考技術２におけるケース設定画面２４０の画面図である。実行番号欄２５３には各実行セットの基本的な実行順序、テストケースＩＤ欄２５４にはテストケースの識別情報が設定される。グループＩＤ欄２５６には実行セットの繰り返し処理のグループを示す識別情報、行番号欄２５８には動作テストにおける入力データファイルの参照範囲が設定される。操作内容ファイル欄２６０は各実行セットにおける操作内容ファイル、入力データファイル欄２６２は各実行セットの入力データファイルが設定される。ケース設定画面２４０における設定内容は、ケースファイル保持部１４８においてケースファイルとして記憶される。
【００７１】
ケース設定画面２４０においてテスト実行ボタン２６４が押下されると、プログラム生成部１３２は、ケースファイルおよび操作内容ファイルにしたがって動作テスト用プログラムを生成する。具体的には、ケースファイルにおいて同一のテストケースＩＤが設定された１以上の操作内容ファイルに基づいて、各操作内容ファイルに記録された関数がプログラムコードに設定された１つの動作テスト用プログラムを生成する。例えば、プログラム生成部１３２は、図１８のケース設定画面２４０の内容が記録されたケースファイルにしたがって、登録ケースを実行するための１つの動作テスト用プログラムと、検索ケースを実行するための１つの動作テスト用プログラムとを生成する。なお、「１つの動作テスト用プログラム」は、１つの実行単位として実行されるプログラム、言い換えれば１つの実行契機で実行されるプログラムを意味し、物理的なプログラム数は問わない。
【００７２】
プログラム実行部１３４は、各操作内容ファイルに記録された１つの関数を実行する際、その操作内容ファイルと対応づけられた入力データファイルのデータのうち、操作内容ファイルにおいてその関数と対応づけられたカラムのデータをその関数に渡す。
【００７３】
また、プログラム実行部１３４は、同一のテストケースにおいて同一のグループＩＤが付与された複数の実行セットを、同一の繰り返し処理を実行すべき同一のグループとして取り扱う。具体的には、同一のグループＩＤが付与された複数の実行セットそれぞれの実行を繰り返し、繰り返しのたびに、各実行セットの操作内容ファイルに記録された関数に対して、入力データファイルに記録された所定数のレコードを渡す。参考技術２では、繰り返しのたびに入力データファイルに記録された１レコードを関数に渡すこととする。なお、上述の処理を実行するための繰り返し命令がプログラムコードに設定された動作テスト用プログラムを、プログラム生成部１３２おいて生成してもよい。
【００７４】
また、プログラム実行部１３４は、行番号が指定された実行セットについては、その操作内容ファイルに記録された関数に対して、入力データファイルにおいてその行番号で特定される入力データを渡す。したがって、グループＩＤによる繰り返し処理が指定され、さらに行番号が指定された場合には、行番号の指定数だけその繰り返しを実行することになる。例えば、図１８の登録ケースでは、実行セットをまたがったグループの設定はなく、各実行セットでは入力データ１個分の処理が実行される。これに対し、図１８の検索ケースでは、各実行セットにおける入力データ１個分の処理が３回繰り返される。
【００７５】
具体的には、１回目の繰り返しでは、ログイン２．ｘｌｓに記録された関数に対してログインデータ２．ｘｌｓの３５行目のデータ「ｔ＿ｙａｍａｄａ」が渡される。そして、検索記入．ｘｌｓに記録された関数、具体的には図１５のＮｏ１の関数に対しては検索記入データ．ｘｌｓの１行目・氏名漢字のデータ「山田太郎」が渡される。また、図１５のＮｏ２の関数に対しては検索記入データ．ｘｌｓの１行目・氏名カナのデータ「ヤマダタロウ」が渡される。
２回目の繰り返しでは、ログイン２．ｘｌｓに記録された関数に対してログインデータ２．ｘｌｓの３６行目のデータ「ｈ＿ｙａｍａｄａ」が渡される。そして、検索記入．ｘｌｓに記録された図１５のＮｏ１の関数に対して検索記入データ．ｘｌｓの２行目・氏名漢字のデータ「山田花子」が渡される。また、図１５のＮｏ２の関数に対して検索記入データ．ｘｌｓの２行目・氏名カナのデータ「ヤマダハナコ」が渡される。
３回目の繰り返しにおいても同様に、インクリメントされた行番号における入力データが各関数に渡されることになる。
【００７６】
参考技術２の動作検証装置１００においても、参考技術１で既述した効果を奏する。具体的には、処理とパラメータの分離、および、ＧＵＩベースの設定が実現されるため、動作テスト用プログラムに含めるロジックの多様性を確保しつつも、安定した品質のプログラムを簡易に生成できる。また、入力データファイルの設定によって、動作テストのバリエーションを広げやすくなる。さらに、ケースファイルの設定によって、様々なシナリオにおける動作テストを実現できる。
【００７７】
参考技術２の動作検証装置１００においては、さらに、動作テスト用プログラムを実行する実行エンジン機能と、実行エンジンの効率的な利用を実現するラッパー機能とがシームレスに、ユーザによる仲介を要することなく連係する。これにより、動作テストを実行するためのユーザの負担を軽減できる。また、参考技術１の動作検証装置１００の場合と異なり、ユーザは、ＱＴＰのプロジェクト等、プログラム実行のための環境を意識する必要がない。すなわち、ユーザにとって理解・操作が容易な形式の操作内容ファイルと入力データファイルとを設定すればよい。これにより、ユーザは動作テストを容易に実施できるようになる。
【００７８】
参考技術２の動作検証装置１００においては、さらにまた、同一テストケースの複数の実行セットが集約された１つの動作テスト用プログラムが生成され、その１つの動作テスト用プログラムが実行される。参考技術１の動作検証装置１００における実行セット毎、すなわち実行セットに基づき生成されたＱＴＰのプロジェクト毎の実行と比較して、１つのテストケースにおける一連の動作テストを実行する際のオーバーヘッドが低減され、迅速な動作テストを実現できる。
【００７９】
参考技術２の動作検証装置１００においては、さらにまた、複数の実行セットにわたる繰り返しのグループを設定できる。これにより、実行セットを柔軟に分割でき、また、動作テストのシナリオを柔軟に設定できる。さらにまた、入力データファイルの参照範囲を設定できる。これにより、入力データファイルが同一であっても、シナリオに応じて柔軟に参照範囲を変更でき、様々なバリエーションの動作テストを容易に実現できる。
【００８０】
上述した参考技術２においては、関数設定画面２１０における値設定を支援する例としてドロップダウンリスト２５２を示した。変形例においては、ウェブページにおけるラジオボタン、チェックボックス、リストボックス等で選択可能に表示された入力データの候補が、ドロップダウンリスト２５２またはその他の形式で関数設定画面２１０において選択可能に表示されてもよい。すなわち、動作確認対象の機器に対するデータ入力操作の際にユーザに対して様々な形式で選択可能に表示された入力データの候補が、関数設定画面２１０における値設定の際に選択可能に表示されてもよい。
【００８１】
上述した参考技術１においては、ウェブサーバ４００に対するユーザの操作をＱＴＰが受け付け、ログを生成したことを条件として、動作検証装置１００が動作テスト用プログラムを作成している。また、上述した参考技術２においては、ウェブサーバ４００に対するユーザの操作を動作検証装置１００が検出して、動作テスト用プログラムを作成している。変形例として、動作検証装置１００においてウェブサーバ４００からＨＴＭＬファイルを取得した時点で、動作テスト用プログラムを生成してもよい。この場合、動作検証装置１００は、ＨＴＭＬファイルに含まれるフォームタグを検索し、ＨＴＭＬファイルにどのような入力インタフェースが含まれているかを特定する。そして、各入力インタフェースにデータを入力するための関数を選択し、これらの関数を様々な順序で並べれば、ユーザによる明示的なウェブ操作がなくても、動作テスト用のプログラムを生成できる。
【００８２】
（実施の形態）
以下、本発明の実施の形態について述べる。
【００８３】
上記の参考技術１および２では、動作検証装置１００がウェブページの動作テスト用プログラムを作成し、ウェブページの動作検証を行うことを述べた。具体的には、参考技術１では、ウェブサーバ４００に対するユーザの操作をＱＴＰが受け付け、ログを生成したことを条件として、動作検証装置１００が動作テスト用プログラムを作成する。また、参考技術２では、ウェブサーバ４００に対するユーザの操作を動作検証装置１００が検出して、動作テスト用プログラムを作成する。いずれの場合も、検証対象のウェブページが静的な場合を前提としている。
【００８４】
近年では、Ａｊａｘ（Asynchronous JavaScript + XML）を活用して動的なウェブページを作成することも広く行われている。従来のウェブアプリケーションでは、画面の遷移を発生させるためには、ウェブサーバに対してＨＴＴＰリクエストを送信後、ＨＴＴＰレスポンスを新たにサーバから受け取ることで行われる。Ａｊａｘを利用すると、画面遷移を伴うことなく、動的なウェブアプリケーションを実現することができる。ウェブサーバとの間ではＪａｖａＳｃｒｉｐｔのＨＴＴＰ通信機能を利用し、サーバからの通信結果をＪａｖａＳｃｒｉｐｔで処理して、ＨＴＭＬの更新が実現される。
【００８５】
Ａｊａｘを利用したウェブページでは、ＨＴＭＬ画面とＤＯＭ（Document Object Model）ツリーとが常に連動している。ここで、ＤＯＭとは、ＨＴＭＬやＸＭＬをプログラム上で使うためのＡＰＩであり、ＨＴＭＬやＸＭＬのデータとＡｊａｘを結び付けるためのものであり、ＨＴＭＬやＸＭＬをツリー構造として展開する。ＪａｖａＳｃｒｉｐｔでＤＯＭを操作することで、画面の遷移を行わずに画面の変化、すなわち動的なタグの追加が可能となる。Ａｊａｘはプラグインを必要とすることなくウェブブラウザのみで動作することから、ウェブアプリケーションの可能性を広げるものとして注目されている。
【００８６】
ウェブページを構成するためのＨＴＭＬは複数種類のタグの組み合わせで構成されているが、これらのタグには「イベント」を設定することができる。例えば「ｏｎＣｌｉｃｋ」というイベントを設定することで、ＨＴＭＬ画面に表示されたオブジェクトをクリックすることが可能になる。さらに、所定のイベントが実行されたときに動作するＪａｖａＳｃｒｉｐｔを設定することができる。Ａｊａｘでは、このようなＪａｖａＳｃｒｉｐｔを利用することで、ウェブアプリケーションにおいて、クリック操作、入力操作、オンマウス操作などを利用可能にする。
【００８７】
Ａｊａｘにより実現される操作について、以下に例を述べる。
１．クリック操作：ＨＴＭＬ画面上のオブジェクトをクリックする操作であり、画面遷移、選択、入力操作前のフォーカスなどの様々な場面で利用される。
２．入力処理：オブジェクトに対する文字列の入力操作に使用される。
３．オンマウス操作：オブジェクト上にマウスカーソルを合わせたときに、オブジェクトの色を変更したり、メニューをスクロール表示させたりする際に利用される。
４．ドラッグアンドドロップ操作：オブジェクト（例えばスライドバー）の移動などに利用される。
５．マウスホイール操作：オブジェクト（例えばマップ）の拡大・縮小などに利用される。
６．ダブルクリック操作：ダブルクリック時に、文字入力用のオブジェクトを表示させるときなどに利用される。
【００８８】
このように、Ａｊａｘを利用することで動的なウェブページの作成が可能になるが、Ａｊａｘ機能によって動的に作成されるオブジェクトには、イベントハンドラが埋め込まれていないので、上述の参考技術１および２の構成では、ユーザによる入力操作の内容をＱＴＰまたは動作検証装置１００が検出することができず、動作テスト用プログラムの操作内容ファイルに記録することができないという問題がある。
【００８９】
さらに、Ａｊａｘを利用したウェブページの動作に関して、タグの自動生成がある。図１９は、Ａｊａｘを利用したウェブページにおいて動的にタグが追加される例を示す。図１９（ａ）では、「名前」のテキストボックスにテキストを入力すると、ウェブページ内に「クリア」ボタンが自動的に追加される様子を示している。これは、「名前」のテキストボックスのタグにおいてテキスト入力操作のイベントが設定されており、テキストを入力することで、このイベントに関連づけられたＪａｖａＳｃｒｉｐｔが「クリア」ボタンを追加するのである。
【００９０】
図１９（ｂ）は、（ａ）に応じてＪａｖａＳｃｒｉｐｔがＤＯＭを書き換える例を示す。イベントに関連づけられたＪａｖａＳｃｒｉｐｔは、このＤＯＭツリーに「クリア」ボタンに対応するタグを追加する。
【００９１】
図１９のように動的に追加されるタグは、データ入力処理の記録の後に追加されるので、参考技術１および２の動作検証装置では、このタグを操作内容ファイルに記録できないという問題がある。さらに、テスト・プログラムの実行の際にも、動的に追加されるタグに対する操作を実行できないという問題がある。さらに、テスト結果データをキャプチャして記録する際にも、動的に追加されるタグをキャプチャできないという問題がある。
【００９２】
そこで、本実施の形態では、Ａｊａｘを利用したウェブページにおいて、ユーザによりなされる操作や動的なタグを動作テスト用プログラムに正確に反映させるための技術を提供する。
【００９３】
図２０は、本発明の実施の形態に係る動作検証装置５００の機能構成を示すブロック図である。同図の機能ブロックのうち、参考技術１および２で示した動作検証装置１００の機能ブロックに対応する機能ブロックには、同じ符号を付している。同じ符号を付した機能ブロックについては、その機能が参考技術１および２に既述した内容と異なる場合に記載しており、同様の機能については既述であるため適宜その記載を省略する。
【００９４】
Ａｊａｘを利用したウェブページは、ＨＴＭＬソースに直接記述されるかまたは外部に記述されたＪａｖａＳｃｒｉｐｔをウェブブラウザが読み込んで実現されるが、図２０の機能ブロックは、これらを切り分けることなく機能のみに注目した機能ブロックとして表されている。
【００９５】
本実施の形態のデータ処理部１３０は、Ａｊａｘ対応ウェブページにおけるテスト操作の自動記録およびテスト操作自動実行を実現する。
【００９６】
データ処理部１３０のうち、プログラム生成部１３２、プログラム実行部１３４、テストケース登録部１３６、操作記録部１３７および入力データ記録部１３８については、参考技術２で説明したものと同様の機能を有している。本実施の形態では、これらに加えてＡｊａｘ対応部５２０が追加されている。Ａｊａｘ対応部５２０は、ＩＦ部１１０、データ処理部１３０およびデータ保持部１４０と協働して、Ａｊａｘを利用したウェブページにおけるデータ入力操作を検出する。Ａｊａｘ対応部５２０は、ファイル取得部５２２、オブジェクト検出部５２４、イベント記録部５２６および動的タグ記録部５２８を含む。
【００９７】
ファイル取得部５２２は、ウェブページを構成しているＨＴＭＬファイルやＸＭＬファイル等のファイルを取得する
【００９８】
オブジェクト検出部５２４は、ファイル取得部５２２により取得されたＨＴＭＬファイルまたはＸＭＬファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出する。
【００９９】
イベント記録部５２６は、イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を、操作記録部１３７内の操作内容ファイルに記録する。イベント記録部５２６は、ＩＦ部１１０およびデータ処理部１３０と連携して動作する。
【０１００】
イベント記録部５２６および動的タグ記録部５２８は、操作記録部１３７と連携して動作する。すなわち、ユーザは、クライアント端末のウェブブラウザを操作してウェブサーバ４００にアクセスし、ウェブサーバ４００に対する各種操作、典型的にはウェブサーバ４００が提供するウェブページに対するデータ入力操作を実行する。操作検出部１１５はユーザによるデータ入力操作を逐次検出し、操作記録部１３７は関数保持部１５０の関数ライブラリを読み出し、そのデータ入力操作に対応する関数を操作内容ファイルに逐次記録する。さらに、イベントハンドラが埋め込まれているオブジェクトに対してユーザによるオンマウス操作やクリック操作などが行われた場合は、その操作に対応する関数を操作内容ファイルに記録する。
【０１０１】
動的タグ記録部５２８は、ページ構成ファイル内にオブジェクトを動的に作成するプログラム、典型的にはＪａｖａＳｃｒｉｐｔが含まれている場合、そのＪａｖａＳｃｒｉｐｔによって動的に作成されたオブジェクトに対するユーザによる操作を、操作記録部１３７内の操作内容ファイルに記録する。より具体的には、動的タグ記録部５２８は、操作内容ファイルの作成中に、定期的にウェブページを構成するＨＴＭＬファイルまたはＸＭＬファイルを再取得することによって、動的に作成されたオブジェクトを検出し、操作内容ファイルに記録することができる。別法では、動的タグ記録部５２８は、操作内容ファイルの作成中にユーザからなされる指示に応じて、ウェブページを構成するＨＴＭＬファイルまたはＸＭＬファイルを再取得することによって、動的に作成されたオブジェクトを検出し、操作内容ファイルに記録することができる。
【０１０２】
図２１は、イベント記録部５２６および動的タグ記録部５２８によって操作内容ファイルに追加される関数の例６００を示す。左列が関数名であり、中央列が関数の説明であり、右列が関数で扱われるパラメータの例である。関数６０２〜６１４は、イベントハンドラに対応する関数であり、関数６１６は、後述する動的タグ作成時の待機時間を規定するための関数である。
【０１０３】
ｍｏｕｓｅＯｖｅｒ関数６０２は、オブジェクト（エレメント）へのオンマウス操作の関数である。パラメータのポイント位置は、該当エレメント内の相対座標であり、指定があった場合はその位置でｍｏｕｓｅＯｖｅｒイベントを発行する。
【０１０４】
ｄｒａｇＳｔａｒｔ関数６０４、ｄｒａｇＥｎｄ関数６０６、ｄｒａｇＡｎｄＤｒｏｐ関数６０８は、オブジェクト（エレメント）のドラッグアンドドロップ操作の関数である。ｄｒａｇＳｔａｒｔ関数６０４は、指定エレメントのドラッグを開始する。ｄｒａｇＥｎｄ関数６０６は、ドラッグ中のエレメントをドロップする。ドロップ先はエレメントで指定するか、またはドラッグエレメントからの相対座標で指定する。ｄｒａｇＡｎｄＤｒｏｐ関数６０８は、指定エレメントのドラッグアンドドロップを一括実行する。ドロップ先はエレメントで指定するか、ドラッグエレメントからの相対座標で指定する。
【０１０５】
ｄｏｕｂｌｅＣｌｉｃｋ関数６１０は、エレメントのダブルクリック操作の関数であり、指定エレメントに対してダブルクリックイベントを実行する。
【０１０６】
ｍｏｕｓｅＷｈｅｅｌ関数６１２は、エレメント上でのマウスホイール回転操作の関数である。指定エレメントにフォーカスを設定し、ロボット操作としてマウスホイールを回転させる。
【０１０７】
ｍｏｕｓｅＡｃｔｉｏｎ関数６１４は、汎用的なマウス操作の関数である。
【０１０８】
ｗａｉｔ関数６１６は、動的タグ生成待機の際の待機時間を規定する関数である。
【０１０９】
図２０に戻り、操作内容ファイル作成後のＩＦ部１１０およびデータ処理部１３０の動作は、参考技術２で説明したのと同様である。すなわち、関数設定画面表示部１２０が、操作内容ファイル保持部１４３の操作内容ファイルを読み出し、ユーザによる操作に対応する関数を一覧表示する関数設定画面を表示する。続いて、ユーザは、入力設定画面を介して、動作テストの実行時に動作テスト用プログラムに対して動的に供給されるべき入力データを設定する。さらに、ユーザは、複数種類の操作内容ファイルおよび複数種類の入力データファイルから、操作内容ファイルと入力データファイルとの組み合わせを実行セットとして登録する。テストケース登録部１３６は、１以上の実行セットをケースファイルへ記録する。関数設定画面、入力データ設定画面、およびケース設定画面についても、参考技術２で示したものと同様であってよい。
【０１１０】
プログラム生成部１３２は、ケースファイルおよび操作内容ファイルに基づいて動作テスト用プログラムを生成する。具体的には、実行セットに設定された操作内容ファイルに順次記録された関数を、動作テスト用プログラムのプログラムコードに順次設定してもよい。また、プログラム生成部１３２は、１つのテストケースに複数の実行セットが設定されている場合、各実行セットの操作内容ファイルに記録された関数を１つの動作テスト用プログラムに集約して設定する。プログラム生成部１３２の他の動作も、参考技術２と同様である。
【０１１１】
プログラム実行部１３４は、動作テスト用プログラムを実行して、ウェブサーバ４００に対してユーザにより実行された一連の操作を再現する。入力データファイルのデータを必要とする関数に対しては、動作テスト用プログラムの実行の際に読み込んだ入力データファイルのデータを引数として渡す。すなわち、入力データファイルから動的に取得した入力データに基づいて関数を実行する。
【０１１２】
本実施の形態におけるプログラム実行部１３４は、上記の他に、動的タグに対応する以下の機能が必須となる。これについて説明する。
【０１１３】
図１９（ａ）に示したような動的タグを生成するとき、処理に時間がかかる場合がある。したがって、動的タグの生成を伴うテスト・プログラムを実行したとき、動的タグを検出できなかったり、または動的タグに対する操作がエラーになることがある。具体的には、図１９（ａ）の構成に対するテスト・プログラムにおいて、テキストボックスへのテキストの入力と、「クリア」ボタンのクリック操作が連続して行われる場合、「クリア」ボタンの生成に時間がかかると、クリック操作の対象となるオブジェクトが見つからないため、エラーになってしまう。
【０１１４】
そこで、プログラム実行部１３４は、テスト・プログラムの実行中に、初期状態では表示されない動的タグの生成が完了するのを待機するために、予め設定された時間だけ後続のクリック操作や入力操作等の処理を待機する機能、または、動的タグ生成の後続の処理の対象となるオブジェクトが検出されるまで、後続の処理を繰り返すリトライ機能を有している。設定時間だけ待機しても動的タグが生成されなかったり、または所定の回数だけリトライしても後続の操作の対象が検出されない場合は、エラー表示を行う。
【０１１５】
代替的に、プログラム実行部１３４は、操作内容ファイルの作成時に動的タグが生成されるのに要した時間に基づき、テスト・プログラムを実行中の待機時間を設定するようにしてもよい。この場合、動的タグ記録部５２８は、イベントが発生してから動的タグが生成されるまでに要した時間を測定して操作内容ファイルまたは他のファイルに記録し、プログラム実行部１３４は、テスト・プログラムの実行時にそれらのファイルを参照するようにする。
【０１１６】
図２２は、本実施の形態による動作検証装置５００の、操作記録時のフローチャートである。
ユーザは、ウェブサーバ４００に対するデータ入力操作を実行する（Ｓ３０２）。統合検証モジュール１０６は、そのデータ入力操作を逐次検出して、データ入力操作に対応する関数を操作内容ファイルに記録するとともに、イベントの発生を検出して、イベントハンドラに対応する関数を操作内容ファイルに記録する（Ｓ３０４）。ウェブページのＨＴＭＬファイル等に動的タグの生成が含まれる場合は、それに対応する関数を操作内容ファイルに記録する（Ｓ３０６）。続いて、操作内容ファイルの記録データを関数設定画面において表示する（Ｓ３０８）。ユーザは、その関数設定画面を介して追加・変更すべき関数・入力データを操作内容ファイルに設定する（Ｓ３１０）。そしてユーザは、ケース設定画面において、操作内容ファイルと入力データファイルとをセットとして指定した動作テストのシナリオを設定する（Ｓ３１２）。統合検証モジュール１０６は、そのシナリオに基づいて、シナリオ内の１以上のセットを集約した動作テスト用プログラムを生成する（Ｓ３１４）。
【０１１７】
図２３は、本実施の形態による動作検証装置５００のプログラム実行時のフローチャートである。
プログラム実行部１３４は、動作テスト用プログラムを実行する（Ｓ３２０）。動的タグ生成が含まれる場合、ｗａｉｔ関数にしたがって所定の時間だけ後続の処理を待機するか、または所定の回数だけ後続の処理をリトライする（Ｓ３２２）。所定の時間内、または所定のリトライ回数内に動的タグが生成された場合は（Ｓ３２４のＹ）、後続の処理を継続する（Ｓ３２６）。動的タグが生成されない場合は（Ｓ３２４のＮ）、その旨をユーザに知らせるエラー表示をする（Ｓ３２８）。
【０１１８】
以上説明したように、本実施形態によれば、Ａｊａｘを利用した動的なウェブページにおける、ユーザによる明示的な操作として現れないイベントハンドラによる画面態様の変化やタグの自動生成をも、それらに対応する関数を操作内容ファイルに記録することができる。したがって、動的なウェブページに対する動作テストをテスト・プログラムとして生成し実行することができる。
【０１１９】
上述した参考技術、実施の形態、変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わせされる参考技術、実施の形態、変形例それぞれの効果をあわせもつ。
【０１２０】
請求項に記載の各構成要件が果たすべき機能は、参考技術、実施の形態、変形例において示された各構成要素の単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【符号の説明】
【０１２１】
１３２  プログラム生成部、  １３４  プログラム実行部、  １３７  操作記録部、  ５００  動作検証装置、  ５２０  Ａｊａｘ対応部、  ５２２  ファイル取得部、  ５２４  オブジェクト検出部、  ５２６  イベント記録部、  ５２８  動的タグ記録部。
【図１（ａ）】
2011164785.tif 000003
【図１（ｂ）】
2011164785.tif 000004
【図２】
2011164785.tif 000005
【図３】
2011164785.tif 000006
【図４】
2011164785.tif 000007
【図５】
2011164785.tif 000008
【図６】
2011164785.tif 000009
【図７】
2011164785.tif 000010
【図８】
2011164785.tif 000011
【図９】
2011164785.tif 000012
【図１０】
2011164785.tif 000013
【図１１】
2011164785.tif 000014
【図１２】
2011164785.tif 000015
【図１３】
2011164785.tif 000016
【図１４】
2011164785.tif 000017
【図１５】
2011164785.tif 000018
【図１６】
2011164785.tif 000019
【図１７】
2011164785.tif 000020
【図１８】
2011164785.tif 000021
【図１９】
2011164785.tif 000022
【図２０】
2011164785.tif 000023
【図２１】
2011164785.tif 000024
【図２２】
2011164785.tif 000025
【図２３】
2011164785.tif 000026
【手続補正書】
【提出日】平成22年7月12日(2010.7.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定機器の動作確認のためのテスト・プログラムを実行させる装置であって、
前記所定機器に対して実行された一連の操作の内容を示すログを取得するログ取得部と、
各種操作を実現するためのロジックが組み込まれた複数種類の関数のうち前記ログに記録された操作に対応する関数を選択し、前記所定機器へのデータ入力操作については前記所定機器への入力データを取得するためのインタフェースを備える入力関数を選択することにより、前記一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記入力関数に渡すべき入力データを取得する入力データ取得部と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項２】
前記入力関数に渡すべき入力データを設定するための入力設定画面を表示させる入力設定画面表示部、を更に備え、
前記入力データ取得部は、前記入力設定画面を介して設定された入力データを入力データファイルとして記録し、
前記プログラム実行部は、前記入力データファイルから前記入力関数に渡すべき入力データを抽出することを特徴とする請求項１に記載の動作検証装置。
【請求項３】
テスト・プログラムと入力データファイルを対応づけるためのケース設定画面を表示させるケース設定画面表示部と、
前記ケース設定画面を介して設定されたテスト・プログラムと入力データファイルのセットをケースファイルとして記録するテストケース登録部と、を更に備え、
前記プログラム実行部は、前記ケースファイルにおいて複数のセットが記録されているときには、前記複数のセットに含まれる各テスト・プログラムを各入力データファイルに基づいて順次実行させることを特徴とする請求項２に記載の動作検証装置。
【請求項４】
前記ログに記録された操作内容に応じて選択された関数を一覧表示させる画面であって、前記テスト・プログラムに登録すべき関数を変更するための関数設定画面を表示させる関数設定画面表示部、を更に備え、
前記プログラム生成部は、前記関数設定画面に対する変更操作の結果として登録された関数により前記テスト・プログラムを生成することを特徴とする請求項１から３のいずれかに記載の動作検証装置。
【請求項５】
前記テスト・プログラムの実行中における前記所定機器の表示画面を記録するための画面キャプチャ関数を前記テスト・プログラムに登録可能であることを特徴とする請求項４に記載の動作検証装置。
【請求項６】
所定機器の動作確認のためのテスト・プログラムを実行させるコンピュータ・プログラムであって、
前記所定機器に対して実行された一連の操作の内容を示すログを取得する処理と、
各種操作を実現するためのロジックが組み込まれた複数種類の関数のうち前記ログに記録された操作に対応する関数を選択し、前記所定機器へのデータ入力操作については前記所定機器への入力データを取得するためのインタフェースを備える入力関数を選択することにより、前記一連の操作を再現するためのテスト・プログラムを生成する処理と、
前記入力関数に渡すべき入力データを取得する処理と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを実行させる処理と、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【請求項７】
所定機器に対する一連の操作をログに記録する機能と、前記所定機器の動作確認のためのテスト・プログラムを実行する機能とを備える自動機能テストツールと連携し、
前記自動機能テストツールから前記ログを取得する処理と、
各種操作を実現するためのロジックが組み込まれた複数種類の関数のうち前記ログに記録された操作に対応する関数を選択し、前記所定機器へのデータ入力操作については前記所定機器への入力データを取得するためのインタフェースを備える入力関数を選択することにより、前記一連の操作を再現するためのテスト・プログラムを生成する処理と、
前記入力関数に渡すべき入力データを取得する処理と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを前記自動機能テストツールに実行させる処理と、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【請求項８】
所定機器の動作確認のためのテスト・プログラムを実行させる装置であって、
前記所定機器に対するデータ入力操作を検出し、前記テスト・プログラムに設定すべき関数が記録される操作内容ファイルに対して、前記データ入力操作に対応し、前記所定機器への入力データを取得するためのインタフェースを備える関数を記録する操作記録部と、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記所定機器に対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項９】
前記操作内容ファイルに記録された関数を一覧表示させる画面であって、当該関数に対する入力データの指定を受け付けるための関数設定画面を表示させる関数設定画面表示部と、
前記関数設定画面を介して、前記関数に対する入力データそのものの指定、もしくは、前記関数に対する入力データファイルの指定をユーザから受け付けるユーザ設定受付部と、
をさらに備え、
前記プログラム生成部は、前記関数に対して入力データそのものが指定された場合、その入力データを前記プログラムコードにあらかじめ設定し、
前記プログラム実行部は、前記関数に対して入力データファイルが指定された場合、前記テスト・プログラムを実行する際にその入力データファイルから入力データを取得して前記関数に渡すことを特徴とする請求項８に記載の動作検証装置。
【請求項１０】
前記操作記録部は、前記所定機器に対してデータ入力操作が実行された際、ユーザに対して選択可能に表示された複数の入力データの候補を取得し、
前記関数設定画面表示部は、前記関数設定画面に表示された関数に対して入力データそのものが指定される際、前記複数の入力データの候補を選択可能に表示させることを特徴とする請求項９に記載の動作検証装置。
【請求項１１】
操作内容ファイルと入力データファイルとを対応づけるためのケース設定画面を表示させるケース設定画面表示部と、
前記ケース設定画面を介して設定された操作内容ファイルと入力データファイルとのセットをケースファイルとして記録するテストケース登録部と、
をさらに備え、
前記プログラム生成部は、前記ケースファイルにおいて複数のセットが記録されている場合、前記複数のセットのそれぞれに含まれる操作内容ファイルに記録された関数が集約して設定された一つのテスト・プログラムを生成し、
前記プログラム実行部は、前記一つのテスト・プログラムを前記複数のセットのそれぞれに含まれる入力データファイルに基づいて実行することを特徴とする請求項８に記載の動作検証装置。
【請求項１２】
前記入力データファイルには、複数の入力データが記録され、
前記ケースファイルには、グループ化された複数のセットが記録され、
前記プログラム実行部は、前記一つのテスト・プログラムの実行において前記グループ化された複数のセットを繰り返し実行し、繰り返しのたびに、各セットに含まれる操作内容ファイルに記録された関数に対して、各セットに含まれる入力データファイルに記録された入力データのうち所定数の入力データを渡すことを特徴とする請求項１１に記載の動作検証装置。
【請求項１３】
前記入力データファイルには、複数の入力データが記録され、
前記ケースファイルには、前記入力データファイルに対する参照範囲がさらに記録され、
前記プログラム実行部は、前記一つのテスト・プログラムの実行において、操作内容ファイルに記録された関数に対して、その操作内容ファイルに対応づけられた入力データファイルに記録された入力データのうち前記参照範囲の入力データを渡すことを特徴とする請求項１１に記載の動作検証装置。
【請求項１４】
所定機器の動作確認のためのテスト・プログラムを実行させるコンピュータプログラムであって、
前記所定機器に対するデータ入力操作を逐次検出し、前記テスト・プログラムに設定すべき関数が記録される操作内容ファイルに対して、前記データ入力操作に対応し、前記所定機器への入力データを取得するためのインタフェースを備える関数を記録する機能と、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記所定機器に対して実行された一連の操作を再現するためのテスト・プログラムを生成する機能と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させる機能と、
をコンピュータに実現させるための動作検証プログラム。
【請求項１５】
ウェブページの動作確認のためのテスト・プログラムを実行する動作検証装置であって、
動作確認対象のウェブページに対するデータ入力操作を検出し、前記データ入力操作に対応する関数であって前記ウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する操作記録部と、
前記ウェブページを構成するためのページ構成ファイルを取得するファイル取得部と、
前記ページ構成ファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出部と、
前記イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を前記操作内容ファイルに記録するイベント記録部と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作を前記操作内容ファイルに記録する動的タグ記録部と、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項１６】
前記動的タグ記録部は、前記操作内容ファイルの作成中に定期的に前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１に記載の動作検証装置。
【請求項１７】
前記動的タグ記録部は、前記操作内容ファイルの作成中にユーザからなされる指示に応じて前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１に記載の動作検証装置。
【請求項１８】
前記プログラム実行部は、前記テスト・プログラムの実行中に、初期状態では表示されない動的オブジェクトが作成されるまで実行を待機する機能を有することを特徴とする請求項１ないし３のいずれかに記載の動作検証装置。
【請求項１９】
前記プログラム実行部は、前記操作内容ファイルの作成時に動的オブジェクトが作成されるのに要した時間に基づき、前記テスト・プログラムを実行中の待機時間を設定することを特徴とする請求項４に記載の動作検証装置。
【請求項２０】
ウェブページの動作確認のためのテスト・プログラムを実行する装置に、
前記ウェブページに対するデータ入力操作を検出し、前記データ入力操作に対応する関数であって、前記ウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する操作記録機能と、
前記ウェブページを構成するためのページ構成ファイルを取得するファイル取得機能と、
前記ページ構成ファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出機能と、
前記イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を前記操作内容ファイルに記録するイベント記録機能と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作を前記操作内容ファイルに記録する動的タグ記録機能と、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成機能と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行機能と、
を実現させるための動作検証プログラム。
【請求項２１】
ウェブページの動作確認のためのテスト・プログラムを実行する装置により実行される動作検証方法であって、
動作確認対象のウェブページに対するデータ入力操作を検出し、前記データ入力操作に対応する関数であって前記ウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録するステップと、
前記ウェブページを構成するためのページ構成ファイルを取得するステップと、
前記ページ構成ファイルの中から、ユーザによる操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するステップと、
前記イベントハンドラが埋め込まれているオブジェクトにおいて発生するイベントに対応する関数を前記操作内容ファイルに記録するステップと、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作を前記操作内容ファイルに記録するステップと、
前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するステップと、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記装置に前記テスト・プログラムを実行させるステップと、
を含むことを特徴とする動作検証方法。
【手続補正書】
【提出日】平成22年10月5日(2010.10.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させる装置であって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせが記録されたログを取得するログ取得部と、
前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた複数種類の関数のうち、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を選択し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を選択し、選択した関数を呼び出すコールステップを組み合わせて前記ログに記録された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記入力関数に引数として渡すべき入力データを取得する入力データ取得部と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項２】
前記入力関数に渡すべき入力データを設定するための入力設定画面を表示させる入力設定画面表示部、を更に備え、
前記入力データ取得部は、前記入力設定画面を介して設定された入力データを入力データファイルとして記録し、
前記プログラム実行部は、前記入力データファイルから前記入力関数に渡すべき入力データを抽出することを特徴とする請求項１に記載の動作検証装置。
【請求項３】
テスト・プログラムと入力データファイルを対応づけるためのケース設定画面を表示させるケース設定画面表示部と、
前記ケース設定画面を介して設定されたテスト・プログラムと入力データファイルのセットをケースファイルとして記録するテストケース登録部と、を更に備え、
前記プログラム実行部は、前記ケースファイルにおいて複数のセットが記録されているときには、前記複数のセットに含まれる各テスト・プログラムを各入力データファイルに基づいて順次実行させることを特徴とする請求項２に記載の動作検証装置。
【請求項４】
前記ログに記録された操作内容に応じて選択された関数を一覧表示させる画面であって、前記テスト・プログラムに登録すべき関数を変更するための関数設定画面を表示させる関数設定画面表示部、を更に備え、
前記プログラム生成部は、前記関数設定画面に対する変更操作の結果として登録された関数により前記テスト・プログラムを生成することを特徴とする請求項１から３のいずれかに記載の動作検証装置。
【請求項５】
前記テスト・プログラムの実行中における前記ウェブページの表示画面を記録するための画面キャプチャ関数を前記テスト・プログラムに登録可能であることを特徴とする請求項４に記載の動作検証装置。
【請求項６】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させるコンピュータ・プログラムであって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせが記録されたログを取得する処理と、
前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた複数種類の関数のうち、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を選択し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を選択し、選択した関数を呼び出すコールステップを組み合わせて前記ログに記録された一連の操作を再現するためのテスト・プログラムを生成する処理と、
前記入力関数に引数として渡すべき入力データを取得する処理と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを実行させる処理と、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【請求項７】
ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせをログに記録する機能と、前記ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行する機能とを備える自動機能テストツールと連携し、
前記自動機能テストツールから前記ログを取得する処理と、
前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた複数種類の関数のうち、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を選択し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を選択し、選択した関数を呼び出すコールステップを組み合わせて前記ログに記録された一連の操作を再現するためのテスト・プログラムを生成する処理と、
前記入力関数に引数として渡すべき入力データを取得する処理と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを前記自動機能テストツールに実行させる処理と、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【請求項８】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させる装置であって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせが記録されたログを取得し、前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数が記録される操作内容ファイルに対して、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を記録し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を記録する操作記録部と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記入力関数に引数として渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項９】
前記操作内容ファイルに記録された関数を一覧表示させる画面であって、当該関数に対する入力データの指定を受け付けるための関数設定画面を表示させる関数設定画面表示部と、
前記関数設定画面を介して、前記関数に対する入力データそのものの指定、もしくは、前記関数に対する入力データファイルの指定をユーザから受け付けるユーザ設定受付部と、
をさらに備え、
前記プログラム生成部は、前記関数に対して入力データそのものが指定された場合、その入力データを前記プログラムコードにあらかじめ設定し、
前記プログラム実行部は、前記関数に対して入力データファイルが指定された場合、前記テスト・プログラムを実行する際にその入力データファイルから入力データを取得して前記関数に渡すことを特徴とする請求項８に記載の動作検証装置。
【請求項１０】
前記操作記録部は、前記ウェブページに対してデータ入力操作が実行された際、ユーザに対して選択可能に表示された複数の入力データの候補を取得し、
前記関数設定画面表示部は、前記関数設定画面に表示された関数に対して入力データそのものが指定される際、前記複数の入力データの候補を選択可能に表示させることを特徴とする請求項９に記載の動作検証装置。
【請求項１１】
操作内容ファイルと入力データファイルとを対応づけるためのケース設定画面を表示させるケース設定画面表示部と、
前記ケース設定画面を介して設定された操作内容ファイルと入力データファイルとのセットをケースファイルとして記録するテストケース登録部と、
をさらに備え、
前記プログラム生成部は、前記ケースファイルにおいて複数のセットが記録されている場合、前記複数のセットのそれぞれに含まれる操作内容ファイルに記録された関数が集約して設定された一つのテスト・プログラムを生成し、
前記プログラム実行部は、前記一つのテスト・プログラムを前記複数のセットのそれぞれに含まれる入力データファイルに基づいて実行することを特徴とする請求項８に記載の動作検証装置。
【請求項１２】
前記入力データファイルには、複数の入力データが記録され、
前記ケースファイルには、グループ化された複数のセットが記録され、
前記プログラム実行部は、前記一つのテスト・プログラムの実行において前記グループ化された複数のセットを繰り返し実行し、繰り返しのたびに、各セットに含まれる操作内容ファイルに記録された関数に対して、各セットに含まれる入力データファイルに記録された入力データのうち所定数の入力データを渡すことを特徴とする請求項１１に記載の動作検証装置。
【請求項１３】
前記入力データファイルには、複数の入力データが記録され、
前記ケースファイルには、前記入力データファイルに対する参照範囲がさらに記録され、
前記プログラム実行部は、前記一つのテスト・プログラムの実行において、操作内容ファイルに記録された関数に対して、その操作内容ファイルに対応づけられた入力データファイルに記録された入力データのうち前記参照範囲の入力データを渡すことを特徴とする請求項１１に記載の動作検証装置。
【請求項１４】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させるコンピュータプログラムであって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせが記録されたログを取得し、前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数が記録される操作内容ファイルに対して、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を記録し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を記録する機能と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成する機能と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記入力関数に引数として渡すことにより、前記テスト・プログラムを実行させる機能と、
をコンピュータに実現させるための動作検証プログラム。
【請求項１５】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作を確認するためのテスト・プログラムを実行する動作検証装置であって、
動作確認対象のウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせが記録されたログを取得し、前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数であって前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を、操作内容ファイルに記録する操作記録部と、
前記ウェブページを表示させるページ構成ファイルを取得するファイル取得部と、
前記ページ構成ファイルの中から、前記ウェブページに含まれるオブジェクトに対するマウスを利用したユーザによる操作に応じて予め定められた処理を発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出部と、
前記イベントハンドラが埋め込まれているオブジェクトに対する前記ユーザによる操作に関連づけられた前記予め定められた処理を実行する関数を前記操作内容ファイルに記録するイベント記録部と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作のみを前記操作内容ファイルに記録する動的タグ記録部と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記入力関数に引数として渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項１６】
前記動的タグ記録部は、前記操作内容ファイルの作成中に定期的に前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１５に記載の動作検証装置。
【請求項１７】
前記動的タグ記録部は、前記操作内容ファイルの作成中にユーザからなされる指示に応じて前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１５に記載の動作検証装置。
【請求項１８】
前記プログラム実行部は、前記テスト・プログラムの実行中に、初期状態では表示されない動的オブジェクトが作成されるまで実行を待機する機能を有することを特徴とする請求項１５ないし１７のいずれかに記載の動作検証装置。
【請求項１９】
前記プログラム実行部は、前記操作内容ファイルの作成時に動的オブジェクトが作成されるのに要した時間に基づき、前記テスト・プログラムを実行中の待機時間を設定することを特徴とする請求項１８に記載の動作検証装置。
【請求項２０】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作を確認するためのテスト・プログラムを実行する装置に、
動作確認対象のウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせが記録されたログを取得し、前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数であって前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を、操作内容ファイルに記録する操作記録機能と、
前記ウェブページを表示させるページ構成ファイルを取得するファイル取得機能と、
前記ページ構成ファイルの中から、前記ウェブページに含まれるオブジェクトに対するマウスを利用したユーザによる操作に応じて予め定められた処理を発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出機能と、
前記イベントハンドラが埋め込まれているオブジェクトに対する前記ユーザによる操作に関連づけられた前記予め定められた処理を実行する関数を前記操作内容ファイルに記録するイベント記録機能と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作のみを前記操作内容ファイルに記録する動的タグ記録機能と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成機能と、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記入力関数に引数として渡すことにより、前記テスト・プログラムを実行させるプログラム実行機能と、
を実現させるための動作検証プログラム。
【請求項２１】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作を確認するためのテスト・プログラムを実行する装置により実行される動作検証方法であって、
動作確認対象のウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトに対してデータを入力するデータ入力操作との組み合わせが記録されたログを取得し、前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数であって前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述したファイルの識別情報とを引数とする入力関数を、操作内容ファイルに記録するステップと、
前記ウェブページを表示させるページ構成ファイルを取得するステップと、
前記ページ構成ファイルの中から、前記ウェブページに含まれるオブジェクトに対するマウスを利用したユーザによる操作に応じて予め定められた処理を発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するステップと、
前記イベントハンドラが埋め込まれているオブジェクトに対する前記ユーザによる操作に関連づけられた前記予め定められた処理を実行する関数を前記操作内容ファイルに記録するステップと、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作のみを前記操作内容ファイルに記録するステップと、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するステップと、
前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記入力関数に引数として渡すことにより、前記装置に前記テスト・プログラムを実行させるステップと、
を含むことを特徴とする動作検証方法。
【手続補正書】
【提出日】平成22年12月28日(2010.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させる装置であって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得するログ取得部と、
前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた複数種類の関数のうち、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を選択し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を選択し、選択した関数を呼び出すコールステップを組み合わせて前記ログに記録された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記入力データファイルから前記入力関数に渡すべき前記識別子で指定される入力データを取得する入力データ取得部と、
前記入力データ取得部により取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項２】
前記入力データファイル内の入力データを設定するための入力設定画面を表示させる入力設定画面表示部、を更に備え、
前記入力データ取得部は、前記入力設定画面を介して設定された入力データを入力データファイルとして記録し、
前記プログラム実行部は、前記入力データファイルから前記入力関数に渡すべき入力データを抽出することを特徴とする請求項１に記載の動作検証装置。
【請求項３】
テスト・プログラムと入力データファイルを対応づけるためのケース設定画面を表示させるケース設定画面表示部と、
前記ケース設定画面を介して設定されたテスト・プログラムと入力データファイルのセットをケースファイルとして記録するテストケース登録部と、を更に備え、
前記プログラム実行部は、前記ケースファイルにおいて複数のセットが記録されているときには、前記複数のセットに含まれる各テスト・プログラムを各入力データファイルに基づいて順次実行させることを特徴とする請求項２に記載の動作検証装置。
【請求項４】
前記ログに記録された操作内容に応じて選択された関数を一覧表示させる画面であって、前記テスト・プログラムに登録すべき関数を変更するための関数設定画面を表示させる関数設定画面表示部、を更に備え、
前記プログラム生成部は、前記関数設定画面に対する変更操作の結果として登録された関数により前記テスト・プログラムを生成することを特徴とする請求項１から３のいずれかに記載の動作検証装置。
【請求項５】
前記テスト・プログラムの実行中における前記ウェブページの表示画面を記録するための画面キャプチャ関数を前記テスト・プログラムに登録可能であることを特徴とする請求項４に記載の動作検証装置。
【請求項６】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させるコンピュータ・プログラムであって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得する処理と、
前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた複数種類の関数のうち、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を選択し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を選択し、選択した関数を呼び出すコールステップを組み合わせて前記ログに記録された一連の操作を再現するためのテスト・プログラムを生成する処理と、
前記入力データファイルから前記入力関数に渡すべき前記識別子で指定される入力データを取得する処理と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを実行させる処理と、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【請求項７】
ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせをログに記録する機能と、前記ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行する機能とを備える自動機能テストツールと連携し、
前記自動機能テストツールから前記ログを取得する処理と、
前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた複数種類の関数のうち、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を選択し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を選択し、選択した関数を呼び出すコールステップを組み合わせて前記ログに記録された一連の操作を再現するためのテスト・プログラムを生成する処理と、
前記入力データファイルから前記入力関数に渡すべき前記識別子で指定される入力データを取得する処理と、
前記取得された入力データに基づいて前記一連の操作を実行したときの動作確認のために、前記取得された入力データを前記入力関数に渡して前記テスト・プログラムを前記自動機能テストツールに実行させる処理と、
をコンピュータに実行させることを特徴とする動作検証プログラム。
【請求項８】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させる装置であって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得し、前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数が記録される操作内容ファイルに対して、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を記録し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を記録する操作記録部と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記操作内容ファイルとは異なる入力データファイルから前記識別子で指定される入力データを取得して前記入力関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項９】
前記操作内容ファイルに記録された関数を一覧表示させる画面であって、当該関数に対する入力データの指定を受け付けるための関数設定画面を表示させる関数設定画面表示部と、
前記関数設定画面を介して、前記関数に対する入力データそのものの指定、もしくは、前記関数に対する入力データファイルの指定をユーザから受け付けるユーザ設定受付部と、
をさらに備え、
前記プログラム生成部は、前記関数に対して入力データそのものが指定された場合、その入力データを前記プログラムコードにあらかじめ設定し、
前記プログラム実行部は、前記関数に対して入力データファイルが指定された場合、前記テスト・プログラムを実行する際にその入力データファイルから入力データを取得して前記関数に渡すことを特徴とする請求項８に記載の動作検証装置。
【請求項１０】
前記操作記録部は、前記ウェブページに対してデータ入力操作が実行された際、ユーザに対して選択可能に表示された複数の入力データの候補を取得し、
前記関数設定画面表示部は、前記関数設定画面に表示された関数に対して入力データそのものが指定される際、前記複数の入力データの候補を選択可能に表示させることを特徴とする請求項９に記載の動作検証装置。
【請求項１１】
操作内容ファイルと入力データファイルとを対応づけるためのケース設定画面を表示させるケース設定画面表示部と、
前記ケース設定画面を介して設定された操作内容ファイルと入力データファイルとのセットをケースファイルとして記録するテストケース登録部と、
をさらに備え、
前記プログラム生成部は、前記ケースファイルにおいて複数のセットが記録されている場合、前記複数のセットのそれぞれに含まれる操作内容ファイルに記録された関数が集約して設定された一つのテスト・プログラムを生成し、
前記プログラム実行部は、前記一つのテスト・プログラムを前記複数のセットのそれぞれに含まれる入力データファイルに基づいて実行することを特徴とする請求項８に記載の動作検証装置。
【請求項１２】
前記入力データファイルには、複数の入力データが記録され、
前記ケースファイルには、グループ化された複数のセットが記録され、
前記プログラム実行部は、前記一つのテスト・プログラムの実行において前記グループ化された複数のセットを繰り返し実行し、繰り返しのたびに、各セットに含まれる操作内容ファイルに記録された関数に対して、各セットに含まれる入力データファイルに記録された入力データのうち所定数の入力データを渡すことを特徴とする請求項１１に記載の動作検証装置。
【請求項１３】
前記入力データファイルには、複数の入力データが記録され、
前記ケースファイルには、前記入力データファイルに対する参照範囲がさらに記録され、
前記プログラム実行部は、前記一つのテスト・プログラムの実行において、操作内容ファイルに記録された関数に対して、その操作内容ファイルに対応づけられた入力データファイルに記録された入力データのうち前記参照範囲の入力データを渡すことを特徴とする請求項１１に記載の動作検証装置。
【請求項１４】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させるコンピュータプログラムであって、
前記ウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトをマウス・クリックする操作または前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得し、前記マウス・クリックする操作または前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数が記録される操作内容ファイルに対して、前記ログに記録された前記データ入力操作については前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を記録し、前記ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を記録する機能と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成する機能と、
前記操作内容ファイルとは異なる入力データファイルから前記識別子で指定される入力データを取得して前記入力関数に渡すことにより、前記テスト・プログラムを実行させる機能と、
をコンピュータに実現させるための動作検証プログラム。
【請求項１５】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作を確認するためのテスト・プログラムを実行する動作検証装置であって、
動作確認対象のウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得し、前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数であって前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を、操作内容ファイルに記録する操作記録部と、
前記ウェブページを表示させるページ構成ファイルを取得するファイル取得部と、
前記ページ構成ファイルの中から、前記ウェブページに含まれるオブジェクトに対するマウスを利用したユーザによる操作に応じて予め定められた処理を発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出部と、
前記イベントハンドラが埋め込まれているオブジェクトに対する前記ユーザによる操作に関連づけられた前記予め定められた処理を実行する関数を前記操作内容ファイルに記録するイベント記録部と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作のみを前記操作内容ファイルに記録する動的タグ記録部と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、
前記操作内容ファイルとは異なる入力データファイルから前記識別子で指定される入力データを取得して前記入力関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、
を備えることを特徴とする動作検証装置。
【請求項１６】
前記動的タグ記録部は、前記操作内容ファイルの作成中に定期的に前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１５に記載の動作検証装置。
【請求項１７】
前記動的タグ記録部は、前記操作内容ファイルの作成中にユーザからなされる指示に応じて前記ページ構成ファイルを再取得することによって、動的に作成されたオブジェクトを検出することを特徴とする請求項１５に記載の動作検証装置。
【請求項１８】
前記プログラム実行部は、前記テスト・プログラムの実行中に、初期状態では表示されない動的オブジェクトが作成されるまで実行を待機する機能を有することを特徴とする請求項１５ないし１７のいずれかに記載の動作検証装置。
【請求項１９】
前記プログラム実行部は、前記操作内容ファイルの作成時に動的オブジェクトが作成されるのに要した時間に基づき、前記テスト・プログラムを実行中の待機時間を設定することを特徴とする請求項１８に記載の動作検証装置。
【請求項２０】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作を確認するためのテスト・プログラムを実行する装置に、
動作確認対象のウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得し、前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数であって前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を、操作内容ファイルに記録する操作記録機能と、
前記ウェブページを表示させるページ構成ファイルを取得するファイル取得機能と、
前記ページ構成ファイルの中から、前記ウェブページに含まれるオブジェクトに対するマウスを利用したユーザによる操作に応じて予め定められた処理を発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するオブジェクト検出機能と、
前記イベントハンドラが埋め込まれているオブジェクトに対する前記ユーザによる操作に関連づけられた前記予め定められた処理を実行する関数を前記操作内容ファイルに記録するイベント記録機能と、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作のみを前記操作内容ファイルに記録する動的タグ記録機能と、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成機能と、
前記操作内容ファイルとは異なる入力データファイルから前記識別子で指定される入力データを取得して前記入力関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行機能と、
を実現させるための動作検証プログラム。
【請求項２１】
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作を確認するためのテスト・プログラムを実行する装置により実行される動作検証方法であって、
動作確認対象のウェブページに含まれるオブジェクトの識別情報と、前記オブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得し、前記データ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数であって前記ウェブページに含まれるオブジェクトの識別情報と前記オブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を、操作内容ファイルに記録するステップと、
前記ウェブページを表示させるページ構成ファイルを取得するステップと、
前記ページ構成ファイルの中から、前記ウェブページに含まれるオブジェクトに対するマウスを利用したユーザによる操作に応じて予め定められた処理を発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出するステップと、
前記イベントハンドラが埋め込まれているオブジェクトに対する前記ユーザによる操作に関連づけられた前記予め定められた処理を実行する関数を前記操作内容ファイルに記録するステップと、
前記ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザによる操作のみを前記操作内容ファイルに記録するステップと、
前記操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、前記ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するステップと、
前記操作内容ファイルとは異なる入力データファイルから前記識別子で指定される入力データを取得して前記入力関数に渡すことにより、前記装置に前記テスト・プログラムを実行させるステップと、
を含むことを特徴とする動作検証方法。