(57)【要約】【課題】処理能力が低くてもWebアプリケーション機能試験を多重化して実施できるWebアプリケーション機能試験端末を提供する。【解決手段】Webアプリケーション機能試験端末１では、機能試験部１５が、シナリオ記録部１３に記録された１つのシナリオのシナリオ情報のユーザイベント情報を複数のWebブラウザ１１に送信する。よって、複数のシナリオが必要なく、Webアプリケーション機能試験端末１の処理能力が低くてもWebアプリケーション機能試験を多重化して実施することができる。【選択図】図１
2007200143.tif 000002
【特許請求の範囲】
【請求項１】
Webアプリケーション機能試験端末であって、
複数のWebブラウザと、
前記Webアプリケーション機能試験端末で発生したユーザイベントのユーザイベント情報ならびに該ユーザイベント情報により得られたWebレスポンスにより描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報と当該指定内容とからなるアサーション条件を含むシナリオ情報を含むシナリオが記録されるシナリオ記録手段と、
前記シナリオを読み込み、予め設定された多重指定条件に従って、当該シナリオのシナリオ情報のユーザイベント情報を前記複数のWebブラウザに送信するユーザイベント情報送信手段と、
得られた各Webレスポンスにおける、当該シナリオ情報のアサーション条件のタグ特定情報で示されるタグの位置の内容と、当該アサーション条件の指定内容とによる判定を行う判定手段と
を備えることを特徴とするWebアプリケーション機能試験端末。
【請求項２】
アサーション条件が設定される前のシナリオ情報を含むシナリオを読み込み、そのシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指定内容とからなるアサーション条件を当該シナリオ情報に設定する条件設定手段
を備えることを特徴とする請求項１記載のWebアプリケーション機能試験端末。
【請求項３】
前記シナリオは、先に描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報からなる指示情報を含むシナリオ情報と、後に描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報を含むアサーション条件を含むシナリオ情報とを含み、
前記判定手段は、
前記指示情報のタグ特定情報で示されるタグの位置の内容を記憶し、前記アサーション条件のタグ特定情報で示されるタグの位置の内容と、前記記憶した内容とによる判定を行う
ことを特徴とする請求項１記載のWebアプリケーション機能試験端末。
【請求項４】
アサーション条件と指示情報が設定される前のシナリオ情報を含むシナリオを読み込み、
指示情報が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報からなる指示情報を当該シナリオ情報に設定し、
アサーション条件が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指示情報のタグ特定情報で示されるタグの位置にある文字列を使用する旨の内容とからなるアサーション条件を当該シナリオ情報に設定する条件設定手段
を備えることを特徴とする請求項３記載のWebアプリケーション機能試験端末。
【請求項５】
前記条件設定手段は、シナリオを読み込み、そのシナリオのシナリオ情報のユーザイベント情報のイベント内容情報に置換されることとなるイベント内容情報を１以上含む多重指定条件を生成し、この多重指定条件を当該シナリオ情報に設定し、
前記ユーザイベント情報送信手段は、当該シナリオ情報のユーザイベント情報を１つのWebブラウザに送信するとともに、当該ユーザイベント情報を当該多重指定条件の各イベント内容情報で置換して他のWebブラウザに送信する
ことを特徴とする請求項１ないし４のいずれかに記載のWebアプリケーション機能試験端末。
【請求項６】
得られたWebレスポンスにより描画データを生成しておき、そのWebレスポンスについての判定結果が期待に反する場合は、当該描画データにより画面描画を行う
ことを特徴とする請求項１ないし５のいずれかに記載のWebアプリケーション機能試験端末。
【請求項７】
前記判定手段は、
タグ特定情報で示されるタグ以外の位置にある内容についての判定を省略する
ことを特徴とする請求項１ないし６のいずれかに記載のWebアプリケーション機能試験端末。
【請求項８】
請求項１ないし７のいずれかに記載のWebアプリケーション機能試験端末において、
ユーザイベント情報送信手段が、前記シナリオを読み込み、予め設定された多重指定条件に従って、当該シナリオのシナリオ情報のユーザイベント情報を前記複数のWebブラウザに送信し、
判定手段が、得られた各Webレスポンスにおける、当該シナリオ情報のアサーション条件のタグ特定情報で示されるタグの位置の内容と、当該アサーション条件の指定内容とによる判定を行う
ことを特徴とするWebアプリケーション機能試験方法。
【請求項９】
請求項３ないし７のいずれかに記載のWebアプリケーション機能試験端末において、
ユーザイベント情報送信手段が、前記シナリオを読み込み、予め設定された多重指定条件に従って、当該シナリオのシナリオ情報のユーザイベント情報を前記複数のWebブラウザに送信し、
判定手段が、
指示情報のタグ特定情報で示されるタグの位置の内容を記憶し、アサーション条件のタグ特定情報で示されるタグの位置の内容と、前記記憶した内容とによる判定を行う
ことを特徴とするWebアプリケーション機能試験方法。
【請求項１０】
請求項２、５ないし７のいずれかに記載のWebアプリケーション機能試験端末において、
条件設定手段が、アサーション条件が設定される前のシナリオ情報を含むシナリオを読み込み、そのシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指定内容とからなるアサーション条件を当該シナリオ情報に設定する
ことを特徴とするWebアプリケーション機能試験端末のシナリオ設定方法。
【請求項１１】
請求項４ないし７のいずれかに記載のWebアプリケーション機能試験端末において、
条件設定手段が、
アサーション条件と指示情報が設定される前のシナリオ情報を含むシナリオを読み込み、
指示情報が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報からなる指示情報を当該シナリオ情報に設定し、
アサーション条件が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指示情報のタグ特定情報で示されるタグの位置にある文字列を使用する旨の内容とからなるアサーション条件を当該シナリオ情報に設定する
ことを特徴とするWebアプリケーション機能試験端末のシナリオ設定方法。
【請求項１２】
請求項１ないし７のいずれかに記載のWebアプリケーション機能試験端末としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webアプリケーション分野において、Webアプリケーションに対し、多くのユーザからアクセス、様々なサービス要求があった場合などで、予め指定された機能が正常に動作するかを検証するWebアプリケーション機能試験を多重化して実施する、Webアプリケーション機能試験端末に関するものである。
【背景技術】
【０００２】
Webアプリケーションの開発では、Webアプリケーションが仕様通り動作していることを検証する機能試験が繰り返し行われる。例えば、特定のハードウェア、ミドルウェア環境の元で開発されたWebアプリケーションが、異なるハードウェア等の元で動作することを確認するために、Webアプリケーションに対して機能試験を行う必要がある。機能試験の実施には多くの労力を要し、その労力がWebアプリケーションの開発コストの多くの部分を占める。機能試験に関する負担を軽減するため、現在いくつかの方法が用いられている。
【０００３】
（１）非特許文献１の方法（ソフトウェア構築型機能試験方法）
非特許文献１によるとコンピュータで実行可能なプログラムとして機能試験を記述でき、コンピュータが機能試験を行えるため、それを繰り返し行う場合に負担が軽減される。
【０００４】
ここで、ソフトウェア構築型機能試験方法の配置図を図６に、動作概念図を図７に示す。
【０００５】
図６において、パーソナルコンピュータ、ワークステーションなど（以下、ＰＣなどという）のWebアプリケーション機能試験端末１００は、内部に機能試験作業ごとに作成されたWebアプリケーション機能試験部１０１を備える。また、ＰＣなどのWebアプリケーションサーバ端末２は、内部にWebアプリケーション部２１を備える。端末１００と端末２は互いにインターネット、イントラネット等のコンピュータネットワーク（以下、単にネットワークという）で接続されている。
【０００６】
次に、図７を参照して、Webアプリケーション機能試験端末１００に含まれる、Webアプリケーション機能試験部１０１が、Webアプリケーションサーバ端末２に含まれる、Webアプリケーション部２１にHttp(Hyper Text Transfer Protocol)リクエストを送信し、Webアプリケーション部２１から返却されたHttpレスポンスの内容が予め定められた仕様と合致しているか否かを検証する動作を説明する。
【０００７】
ユーザにより起動されたWebアプリケーション機能試験部１０１では、Httpリクエスト送信部１０１−１がWebアプリケーション部２１にHttpリクエストを送信する。
【０００８】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、Httpリクエストを受信し、Httpレスポンス作成部２１２は、Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、HttpレスポンスをWebアプリケーション機能試験部１０１に送信する。
【０００９】
Webアプリケーション機能試験部１０１では、Httpレスポンス受付部１０１−２がHttpレスポンスを受信し、それが予めプログラム内に定められた仕様と合致しているか否かをHttpレスポンス検証部１０１−３が検証し、検証結果通知部１０１−４が検証結果をユーザに通知する。
【００１０】
（２）非特許文献２の方法（オブジェクトイベント記録型機能試験方法）
また、アプリケーションに対するユーザイベントを記録し、記録された一連のユーザイベントであるシナリオを再生するアプリケーションの機能試験も実施されており、商用のWebブラウザをアプリケーションに指定することにより、Webアプリケーションに対する機能試験を行う事も可能である
ここで、オブジェクトイベント記録型機能試験方法の配置図を図８に、そのシナリオ記録の動作概念図を図９に、シナリオにWebアプリケーションが満たすべき条件であるアサーション条件（背景技術の説明ではアサーションと略記する）を設定する動作概念図を図１０に、アサーションが設定されたシナリオを再生し、機能試験を行うときの動作概念図を図１１にそれぞれ示す。
【００１１】
図８において、ＰＣなどのWebアプリケーション機能試験端末２００は、内部にユーザイベントを記録、再生可能なWebアプリケーション機能試験部２０１、ユーザイベントの記録対象となるアプリケーションであるWebブラウザ１１を備える。また、ＰＣなどのWebアプリケーションサーバ端末２は、内部にWebアプリケーション部２１を備える。端末２００と端末２は互いにネットワークで接続されている。
【００１２】
次に、図９を参照して、ユーザがWebアプリケーション機能試験端末２００に含まれる、Webアプリケーション機能試験部２０１を用い、Webブラウザ１１に対して行ったユーザイベント、Webブラウザ１１に含まれるオブジェクト情報を記録する動作を説明する。
【００１３】
ユーザはWebアプリケーション機能試験部２０１を起動し、Webブラウザ１１に対してユーザイベントを発生させる。Webアプリケーション機能試験部２０１で、発生されたユーザイベントをユーザイベント受付部２０１−１が受け付け、シナリオ記録部２０１−２がユーザイベントを記録し、ユーザイベントがWebブラウザ１１に含まれるどのオブジェクトに対するものであるかをオブジェクト特定部２０１−３が特定し、シナリオ記録部２０１−２がオブジェクト情報を記録し、ユーザイベント送信部２０１−４がWebブラウザ１１にユーザイベントを送信する。Webブラウザ１１はユーザイベントを受け取り、Webアプリケーション部２１にHttpリクエストを送信する。
【００１４】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、Httpリクエストを受信し、Httpレスポンス作成部２１２は、Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、HttpレスポンスをWebブラウザ１１に送信する。
【００１５】
Webブラウザ１１はHttpレスポンスに応じて画面を描画し、これによりWebブラウザ１１に含まれるオブジェクトも更新される。
【００１６】
以上の処理を、ユーザから逐次投入されるユーザイベントに対して繰り返し、記録された一連のユーザイベント、オブジェクト情報をシナリオとする。ここで、シナリオとは、アプリケーションに含まれるオブジェクトに対しユーザイベントが発生することにより、変化するアプリケーションの状態の遷移とも言える。
【００１７】
次に、図１０を参照して、シナリオ内のそれぞれの状態に含まれるオブジェクトに対して、アサーションを設定する動作を説明する。
【００１８】
シナリオ読み込み部２０１−５はシナリオを読み込み、アサーションが設定される状態を状態指定部２０１−６が指定する。さらに、その状態において、Webブラウザに含まれるオブジェクトをオブジェクト特定部２０１−３が特定した後、ユーザの指示により、アサーション指定部２０１−７はオブジェクトにアサーションを設定する。ここでアサーションは、「Webブラウザに表示される特定の画面の特定の個所に固有の文字列が含まれる」のような内容である。
【００１９】
次に、図１１を参照して、アサーションが設定されたシナリオを再生して仕様充足性を検証する動作を説明する。
【００２０】
シナリオ読み込み部２０１−５はシナリオを読み込み再生する。Webアプリケーション機能試験部２０１では、ユーザイベント特定部２０１−８がシナリオに含まれるユーザイベントを最初から逐次読み出す。そして、ユーザイベント発生部２０１−９がWebブラウザ１１にユーザイベントを送信する。Webブラウザ１１はユーザイベントに応じ、Webアプリケーション部２１に対してHttpリクエストを送信する。
【００２１】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、Httpリクエストを受信し、Httpレスポンス作成部２１２は、Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、HttpレスポンスをWebブラウザ１１に送信する。
【００２２】
Webブラウザ１１にどのようなオブジェクトが含まれるか、あるいは含まれるオブジェクトの状態はHttpレスポンスを受け付けることにより変化する。変化後の状態にアサーションが設定されている場合、Webアプリケーション機能試験部２０１のオブジェクト検証部２０１−１０は、指定されたオブジェクトが指定された条件を満たしているかを検証する。例えば、「Webブラウザに表示される特定の画面の特定の個所に固有の文字列が含まれる」ことを検証する。条件を満たさない場合は、検証結果通知部２０１−１１が、条件に一致しなかったことをユーザに通知する。その後シナリオに以降のユーザイベントが含まれる場合は、ユーザイベント特定部２０１−８に戻る。これらの処理はシナリオに含まれるすべてのユーザイベントに対し実行される。
【００２３】
非特許文献２に記載の方法を用いると、仕様を検証するにあたりプログラムを作成する必要が無くなる。さらにWebブラウザ上の表示結果を用いてシナリオ、アサーションを作成、編集、実行可能であり、直感的かつ簡易に機能試験作業を行う事ができる。
【００２４】
（３）非特許文献３の方法（負荷試験方法）
さて、Webアプリケーションは運用時において複数のユーザから利用されるが、どの程度の多重利用に耐えられるかを測定検証するために、Webアプリケーションに対してリクエストを多重化して発生させる試験（負荷試験）が実施される。負荷試験を行うにあたってはWebブラウザとWebアプリケーションの間に発生する通信を傍受し、これを複製することにより仮想的に負荷を多重化する手法が用いられる。
【００２５】
ここで、負荷試験方法の配置図を図１２に、そのシナリオ記録の動作概念図を図１３に、シナリオを再生し、負荷試験を行うときの動作概念図を図１４に示す。
【００２６】
図１２において、ＰＣなどのWebクライアント端末３００は、内部にWebブラウザ１１を備える。また、ＰＣなどのWebアプリケーション負荷試験端末４００は、内部にHttpプロトコルを記録し、多重化して再生するWebアプリケーション負荷試験部４０１を備える。また、ＰＣなどのWebアプリケーションサーバ端末２は、内部にWebアプリケーション部２１を備える。端末３００、端末４００、端末２は互いにネットワークで接続されている。
【００２７】
次に、図１３を参照して、ユーザがWebクライアント端末３００に含まれる、Webブラウザ１１のプロキシサーバをWebアプリケーション負荷試験端末４００に設定した後、WebブラウザからWebアプリケーションサーバ端末２に含まれるWebアプリケーション部２１に対して行ったアクセス（Httpプロトコル）を記録する動作を説明する。
【００２８】
Webブラウザ１１のプロキシサーバをWebアプリケーション負荷試験端末４００に設定した後、Httpリクエスト送信部１１−１が、Webアプリケーション負荷試験部４０１に対してHttpリクエストを送信する。Webアプリケーション負荷試験部４０１では、Httpリクエスト受付部４０１−１がHttpリクエストを受け付け、Httpリクエスト記録部４０１−２にHttpリクエストを記録し、Httpリクエスト送信部４０１−３がWebアプリケーション部２１に対してHttpリクエストを送信する。
【００２９】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、Httpリクエストを受信し、Httpレスポンス作成部２１２は、Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、HttpレスポンスをWebアプリケーション負荷試験部４０１に送信する。
【００３０】
Webアプリケーション負荷試験部４０１では、Httpレスポンス受付部４０１−４がHttpレスポンスを受信し、Httpレスポンス送信部４０１−５がWebブラウザ１１にHttpレスポンスを送信する。Webブラウザ１１はHttpレスポンス受付部１１−２でHttpレスポンスを受信し、Httpレスポンスを用いて画面を描画する。
【００３１】
以上の処理を繰り返すことにより、ブラウザとWebアプリケーションの間に発生する一連のHttpリクエストが記録される。
【００３２】
次に、図１４を参照して、ユーザがWebアプリケーション負荷試験端末４００を用い、図１３に示す手順を用いて記録したアクセス（Httpプロトコル）をWebアプリケーションサーバ端末２に含まれるWebアプリケーション部２１に対して多重化して再現する動作を説明する。
【００３３】
ユーザにより、Webアプリケーション負荷試験部４０１に負荷試験要求が送信されると、Webアプリケーション負荷試験部４０１では、負荷発生要求受付部４０１−６が負荷発生要求を受信し、HttpリクエストをHttpリクエスト読み出し部４０１−７が、図１３に示す手順を用いて記録したHttpリクエストを読み出し、Httpリクエスト送信部４０１−３が、Webアプリケーション部２１に対してHttpリクエストを送信する。
【００３４】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、Httpリクエストを受信し、Httpレスポンス作成部２１２は、Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、HttpレスポンスをWebアプリケーション負荷試験部４０１に送信する。
【００３５】
Webアプリケーション負荷試験部４０１では、Httpレスポンス受付部４０１−４がHttpレスポンスを受信し、測定結果表示部４０１−８がレスポンスタイム等のHttp通信結果を表示する。以上の仕組みにより、Webアプリケーションの負荷耐性を測定することができる。
【非特許文献１】Http Unit Home[2005年5月12日検索],[online]インターネット<URL:Http://Httpunit.sourceforge.net/>
【非特許文献２】自動テスト Mercury Quick Test Professional [2005年5月12日検索],[online]インターネット<URL:http://www.mercury.com/jp/products/quality-center/functional-testing/quicktest-professional/>
【非特許文献３】JMeter-Apache.JMeter[2005年5月23日検索],[online]インターネット＜URL:http://jakarta.apache.org/jmeter/＞
【発明の開示】
【発明が解決しようとする課題】
【００３６】
図１５に示す通り、シナリオは、様々な遷移方法を表現した複数のシナリオの集合でもあり、すべてのシナリオが正常に動作することを確認する必要があるため長い時間を要する。
【００３７】
あるいは、図１６に示す通り、Webアプリケーションに多くのユーザからのサービス要求を処理する負荷試験を実施する場合、Webアプリケーションの個々の処理が期待通りのHttpレスポンスを返却するという条件で、リクエストが多重化されている必要があるが、非特許文献３に示す方法を用いると、検証をしないので、多重試験時にWebアプリケーションが期待通りのHttpレスポンスを返却していることが保証されない。例えば負荷試験時にWebアプリケーションから得られたレスポンスが期待と異なる場合、それを発見できない。
【００３８】
そこで、以上の課題を解決するために、機能試験を多重起動する仕組みが求められるが、非特許文献１の方法を多重起動で実施する場合、シナリオ作成ごとにプログラムを開発する必要がある。
【００３９】
非特許文献２の方法は、１台のWebアプリケーション機能試験端末２００から負荷を多重発生させることを想定していない。仮に負荷を多重発生させた場合、図１７に示す通り、多重発生したユーザイベント、あるいはユーザがアプリケーションを操作するために発生させたユーザイベントが相互に干渉し不具合が発生する可能性がある。また、Webブラウザの多重起動には多くのCPU、メモリ資源を必要とするため、よって、処理能力の低いWebアプリケーション機能試験端末では大規模な多重化を行うことはできない。
【００４０】
さらに、機能試験を多重化して実施することが可能であったとしても、多重化して実施された複数の機能試験のうち、一部の機能試験がアサーション不合格となった場合に、他の機能試験や負荷試験は、継続したい場合がある。よって、他の機能試験、あるいは負荷試験は継続実行し、後にアサーション不合格となった機能試験も含めて、試験結果の発生状況を把握する必要がある。
【００４１】
本発明は、上記従来の課題に鑑みなされたものであり、その目的とするところは、処理能力が低くてもWebアプリケーション機能試験を多重化して実施できるWebアプリケーション機能試験端末を提供することにある。
【課題を解決するための手段】
【００４２】
上記従来の課題を解決するため、本発明のWebアプリケーション機能試験端末は、複数のWebブラウザと、Webアプリケーション機能試験端末で発生したユーザイベントのユーザイベント情報ならびに該ユーザイベント情報により得られたWebレスポンス（Httpレスポンスや他のプロトコルによるレスポンス）により描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報と当該指定内容とからなるアサーション条件を含むシナリオ情報を含むシナリオが記録されるシナリオ記録手段と、シナリオを読み込み、予め設定された多重指定条件に従って、当該シナリオのシナリオ情報のユーザイベント情報を複数のWebブラウザに送信するユーザイベント情報送信手段と、得られた各Webレスポンスにおける、当該シナリオ情報のアサーション条件のタグ特定情報で示されるタグの位置の内容と、当該アサーション条件の指定内容とによる判定を行う判定手段とを備えることを特徴とする。
【００４３】
本発明のWebアプリケーション機能試験端末によれば、１つのシナリオのシナリオ情報のユーザイベント情報を複数のWebブラウザに送信するので、複数のシナリオが必要なく、よって、Webアプリケーション機能試験端末の処理能力が低くてもWebアプリケーション機能試験を多重化して実施することができる。
【００４４】
また、本発明のWebアプリケーション機能試験端末は、アサーション条件が設定される前のシナリオ情報を含むシナリオを読み込み、そのシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指定内容とからなるアサーション条件を当該シナリオ情報に設定する条件設定手段を備えることで、Webアプリケーション機能試験を多重化して実施するためのシナリオに対するアサーション条件の設定を画面上で容易に行うことができる。
【００４５】
また、本発明のWebアプリケーション機能試験端末では、シナリオは、先に描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報からなる指示情報を含むシナリオ情報と、後に描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報を含むアサーション条件を含むシナリオ情報とを含み、判定手段は、指示情報のタグ特定情報で示されるタグの位置の内容を記憶し、アサーション条件のタグ特定情報で示されるタグの位置の内容と、記憶した内容とによる判定を行うので、２つの画面内容同士の関連性を試験することができる。
【００４６】
また、本発明のWebアプリケーション機能試験端末は、アサーション条件と指示情報が設定される前のシナリオ情報を含むシナリオを読み込み、指示情報が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報からなる指示情報を当該シナリオ情報に設定し、アサーション条件が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指示情報のタグ特定情報で示されるタグの位置にある文字列を使用する旨の内容とからなるアサーション条件を当該シナリオ情報に設定する条件設定手段を備えるので、２つの画面内容同士の関連性を試験可能なWebアプリケーション機能試験を多重化して実施でき、そのアサーション条件が設定されたシナリオを画面上で容易に生成することがことができる。
【００４７】
また、本発明のWebアプリケーション機能試験端末では、条件設定手段が、シナリオを読み込み、そのシナリオのシナリオ情報のユーザイベント情報のイベント内容情報に置換されることとなるイベント内容情報を１以上含む多重指定条件を生成し、この多重指定条件を当該シナリオ情報に設定し、ユーザイベント情報送信手段は、当該シナリオ情報のユーザイベント情報を１つのWebブラウザに送信するとともに、当該ユーザイベント情報を当該多重指定条件の各イベント内容情報で置換して他のWebブラウザに送信するので、処理能力が低くてもWebアプリケーション機能試験を多重化して実施することができる。
【００４８】
また、本発明のWebアプリケーション機能試験端末は、得られたWebレスポンスにより描画データを生成しておき、そのWebレスポンスについての判定結果が期待に反する場合は、当該描画データにより画面描画を行うので、期待に反する結果となったときの画面内の他の文字列や画像からそのときの状況を知ることができる。
【００４９】
また、本発明のWebアプリケーション機能試験端末では、判定手段が、タグ特定情報で示されるタグ以外の位置にある内容についての判定を省略するので高速化が図れる。
【発明の効果】
【００５０】
本発明によれば、１つのシナリオのシナリオ情報のユーザイベント情報を複数のWebブラウザに送信するので、複数のシナリオが必要なく、よって、Webアプリケーション機能試験端末の処理能力が低くてもWebアプリケーション機能試験を多重化して実施することができる。
【発明を実施するための最良の形態】
【００５１】
以下、本発明の実施の形態を図面を参照して説明する。
【００５２】
図１は、本実施の形態に係るWebアプリケーション機能試験端末の構成とその利用形態を示す図である。
【００５３】
パーソナルコンピュータ、ワークステーションなどのコンピュータで構成されるWebアプリケーション機能試験端末１およびWebアプリケーションサーバ端末２は、互いにインターネット、イントラネット等のコンピュータネットワークで接続されている。
【００５４】
Webアプリケーション機能試験端末１は、複数のWebブラウザ１１と、Webアプリケーションサーバ端末２を試験するためのシナリオを作成するシナリオ作成部１２と、シナリオが記録されるシナリオ記録部１３と、シナリオに多重指定条件とアサーション条件を設定する条件設定部１４と、Webアプリケーションサーバ端末２を試験する機能試験部１５と、試験により生成されたシナリオ結果情報が記録されるシナリオ結果情報記録部１６を備える。また、図示しないが、端末１には、Webブラウザ１１により描画される画面や試験結果を表示する表示装置が接続されている。
【００５５】
Webアプリケーションサーバ端末２は、Httpリクエストを受け付けるHttpリクエスト受付部２１１と、Httpレスポンスを作成するHttpレスポンス作成部２１２と、Httpレスポンスを送信するHttpレスポンス送信部２１３とを備えるWebアプリケーション部２１を備える。
【００５６】
（シナリオ作成部１２）
まず、シナリオ作成部１２の動作を説明する。
【００５７】
端末１のユーザの操作でユーザイベント（キーボードイベントやマウスイベント）が発生すると、シナリオ作成部１２はユーザイベントの位置を示すイベント位置情報と内容を示すイベント内容情報（文字列など）とからなるユーザイベント情報をシナリオ記録部１３を記録し、さらに、ユーザイベント情報を１つのWebブラウザ１１に送信する。
【００５８】
Webブラウザ１１は、必要に応じて、ユーザイベント情報に応じたHttpリクエストを生成し、Webアプリケーション部２１とシナリオ作成部１２に送信する。シナリオ作成部１２は、送信されたHttpリクエストをシナリオ記録部１３に記録する。
【００５９】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、Httpリクエストを受信し、Httpレスポンス作成部２１２は、Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、HttpレスポンスをWebブラウザ１１に送信する。
【００６０】
Webブラウザ１１は、そのHttpレスポンスをシナリオ作成部１２に送信し、そのHttpレスポンスに応じて画面を描画する。シナリオ作成部１２は、送信されたHttpレスポンスをシナリオ記録部１３に記録する。
【００６１】
以上の処理をユーザイベント毎に行うことでシナリオが生成される。
【００６２】
図２は、シナリオ記録部１３に生成されたシナリオの一例を示す図である。
【００６３】
シナリオには、ユーザイベント情報（イベント位置情報とイベント内容情報）が記録され、場合によっては、HttpリクエストとHttpレスポンスが記録される。１回のユーザイベントに対応するシナリオ情報を、ユーザイベントの回数分記録したものがシナリオとなる。例えば、ユーザイベントが１０回発生した場合、１０個のシナリオ情報の全体が１個のシナリオとなる。また、多くの場合、シナリオは、シナリオ情報ａのようなHttpリクエストおよびHttpレスポンスを含まないシナリオ情報と、シナリオ情報ＡのようなHttpリクエストおよびHttpレスポンスを含まないシナリオ情報とを備える。
【００６４】
（条件設定部１４）
次に、図３と図４を参照して、条件設定部１４の構成および動作を説明する。
【００６５】
図３は、条件設定部１４の構成および動作の説明図であり、図４は、条件設定後の図２のシナリオを示す図である。
【００６６】
条件設定部１４は、シナリオを読み込むシナリオ読み込み部１４１と、多重指定条件やアサーション条件を生成する条件生成部１４２と、多重指定条件やアサーション条件をシナリオに設定する条件設定部１４３とを備える。
【００６７】
（多重指定条件の設定動作）
まず、シナリオに多重指定条件を設定する動作を説明する。
【００６８】
シナリオ読み込み部１４１は、シナリオ記録部１３からシナリオを読み込む。そして、その各シナリオ情報のユーザイベント情報に応じたHttpリクエストをWebブラウザ１１がWebアプリケーションサーバ端末２に送信し、それにより得られたHttpレスポンス、または、そのシナリオ情報内のHttpレスポンスにより順次に描画がなされる。
【００６９】
ユーザにより、例えば、シナリオ情報Ａのユーザイベント情報のイベント内容情報である文字列「ＮＡＧＡＩ」（いわゆるユーザＩＤ）が指定され、さらに、他のユーザＩＤ「ＳＡＴＯ」、「ＴＡＮＡＫＡ」、…が入力されると、条件生成部１４２は、それらの他のユーザＩＤからなる多重指定条件を条件設定部１４３に送信し、条件設定部１４３は、送信された多重指定条件をシナリオ情報Ａに追加する。
【００７０】
ユーザが、例えば、シナリオ情報Ｂのユーザイベント情報のイベント内容情報である文字列「５３８９」（いわゆるパスワード）を指定すると、条件生成部１４２は、先に記録した多重指定条件（ユーザＩＤ「ＳＡＴＯ」、「ＴＡＮＡＫＡ」、…）を表示させ、その各ユーザＩＤに対応づけてその人のパスワードが入力されると、条件生成部１４２は、パスワードとユーザＩＤの組のそれぞれからなる多重指定条件を条件設定部１４３に送信し、条件設定部１４３は、送信された多重指定条件をシナリオ情報Ｂに追加する。
【００７１】
（アサーション条件の設定動作１）
次に、シナリオにアサーション条件を設定する動作を説明する。
【００７２】
ユーザにより、シナリオ情報Ｃのユーザイベント情報やHttpレスポンスにより描画された画面上の文字列「東京」が指定されると、条件生成部１４２は、その文字列の位置情報（座標など）をWebブラウザ１１に送信する。
【００７３】
Webブラウザ１１は、送信された位置情報を基に、該当するHTML(Hyper Text Markup Language)タグを検出し、そのHTMLタグを示すタグ特定情報（例えば、３番目の＜ａ／＞タグであることを示す情報）を条件生成部１４２に送信する。
【００７４】
条件生成部１４２は、送信されたタグ特定情報と文字列「東京」とからなるアサーション条件を条件設定部１４３に送信し、条件設定部１４３は、送信されたアサーション条件をシナリオ情報Ｃに追加する。このアサーション条件は、そのタグ特定情報の位置に文字列「東京」が存在すべきことを示すものである。
【００７５】
（アサーション条件の設定動作２）
次に、シナリオにアサーション条件を設定する他の動作を説明する。
【００７６】
ユーザにより、シナリオ情報Ｄのユーザイベント情報やHttpレスポンスにより描画された画面上の文字列「１０００円」が指定されると、前記同様、条件生成部１４２は、その画面上の文字列「１０００円」の位置情報をWebブラウザ１１に送信し、Webブラウザ１１は、送信された位置情報を基に、該当するHTMLタグを検出し、そのHTMLタグを示すタグ特定情報を条件生成部１４２に送信する。
【００７７】
条件生成部１４２は、送信されたタグ特定情報からなる指示情報を条件設定部１４３に送信し、条件設定部１４３は、送信された指示情報をシナリオ情報Ｄに追加する。
【００７８】
この指示情報は、その指示情報のタグ特定情報の位置にある文字列と、後述するアサーション条件のタグ特定情報の位置にある文字列とが等しくなっているべきであり、よって、指示情報のタグ特定情報で示されるHTMLタグの位置にある文字列を記憶する必要があるることを示すものである。
【００７９】
その後、シナリオ情報Ｅのユーザイベント情報やHttpレスポンスにより描画された画面上の文字列「１０００円」が指定されると、前記同様、条件生成部１４２は、その画面上の文字列「１０００円」の位置情報をWebブラウザ１１に送信し、Webブラウザ１１は、送信された位置情報を基に、該当するHTMLタグを検出し、そのHTMLタグを示すタグ特定情報を条件生成部１４２に送信する。
【００８０】
そして、さらに、前記指示情報のタグ特定情報で示されるHTMLタグの位置にある文字列を使用する旨が指定されると、条件生成部１４２は、送信されたタグ特定情報とその旨の内容とからなるアサーション条件を条件設定部１４３に送信し、条件設定部１４３は、送信されたアサーション条件をシナリオ情報Ｅに追加する。このアサーション条件は、そのタグ特定情報で示されるHttpタグの位置に、指示情報により記憶された文字列が存在すべきことを示すものである。
【００８１】
（機能試験部１５）
次に、図５を参照して、機能試験部１５の構成および動作を説明する。
【００８２】
機能試験部１５は、シナリオを読み込むシナリオ読み込み部１５１と、そのシナリオの各シナリオ情報のユーザイベント情報および多重指定条件とアサーション条件等をそれに応じた振り分け先に振り分けて送信する振り分け部１５２と、そのユーザイベント情報を多重指定条件により多重化して各Webブラウザ１１に送信し、各Webブラウザ１１からのHttpレスポンスをシナリオ結果情報記録部１６に記録する試験管理部１５３と、アサーション条件等に基づいてHttpレスポンスを検証する検証部１５４と、検証の結果を表示させる検証結果表示制御部１５５とを備える。
【００８３】
まず、ユーザの指示により、シナリオ読み込み部１５１は、シナリオ記録部１３からシナリオを読み込む。ここでは、図４のシナリオが読み込まれたこととする。
【００８４】
（シナリオ情報ａ）
振り分け部１５２は、まず、シナリオ情報ａのユーザイベント情報を読み出し、そのユーザイベント情報を試験管理部１５３に送信する。また、シナリオ情報ａには、多重指定条件が含まれないので、試験管理部１５３へのさらなる送信は行わない。また、シナリオ情報ａには、アサーション条件と指示情報のいずれも含まれないので、検証部１５４への送信は行わない。
【００８５】
試験管理部１５３は、多重指定条件が送信されなかったので、送信されたユーザイベント情報をそのまま各Webブラウザ１１に転送する。なお、これにより、Httpリクエストが発生することはないので、次のシナリオ情報Ａの説明に移る。
【００８６】
（シナリオ情報Ａ）
振り分け部１５２は、次に、シナリオ情報Ａのユーザイベント情報を読み出し、そのユーザイベント情報を試験管理部１５３に送信する。シナリオ情報Ａには、多重指定条件が含まれるので、それを試験管理部１５３へ送信する。また、シナリオ情報Ａには、アサーション条件と指示情報のいずれも含まれないので、検証部１５４への送信は行わない。
【００８７】
試験管理部１５３は、多重指定条件が送信されたので、送信されたユーザイベント情報を多重指定条件により多重化し、その１づつを各Webブラウザ１１に送信する。
【００８８】
つまり、送信されたユーザイベント情報（イベント位置情報とユーザＩＤ「ＮＡＧＡＩ」）を１のWebブラウザ１１に送信し、そのイベント位置情報とユーザＩＤ「ＳＡＴＯ」からなるユーザイベント情報を他の１のWebブラウザ１１に送信し、そのイベント位置情報とユーザＩＤ「ＴＡＮＡＫＡ」からなるユーザイベント情報を他の１のWebブラウザ１１に送信する。また、他のユーザＩＤについても同様なことを行う。
【００８９】
各Webブラウザ１１は、自身に送信されたユーザイベント情報（イベント位置情報とイベント内容情報（ユーザＩＤ））に応じたHttpリクエストを生成し、Webアプリケーション部２１に送信する。
【００９０】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、各Httpリクエストを受信し、Httpレスポンス作成部２１２は、各Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、各Httpレスポンスを対応するWebブラウザ１１に送信する。
【００９１】
各Webブラウザ１１は、自身に送信されたHttpレスポンスに応じて画面を描画することは行わず、これにより、処理の高速化が図れる。なお、内容を確認したい場合は、画面を描画してもよいが、いずれかのWebブラウザ１１が画面を描画を行わないことで、処理の高速化が図れる。
【００９２】
（シナリオ情報Ｂ）
振り分け部１５２は、次に、シナリオ情報Ｂのユーザイベント情報を読み出し、そのユーザイベント情報を試験管理部１５３に送信する。シナリオ情報Ｂには、多重指定条件が含まれるので、それを試験管理部１５３へ送信する。また、シナリオ情報Ｂには、アサーション条件と指示情報のいずれも含まれないので、検証部１５４への送信は行わない。
【００９３】
試験管理部１５３は、多重指定条件が送信されたので、送信されたユーザイベント情報を多重指定条件により多重化し、その１づつを各Webブラウザ１１に送信する。
【００９４】
つまり、試験管理部１５３が先にユーザＩＤ「ＮＡＧＡＩ」を含むユーザイベント情報を送信した送信先のWebブラウザ１１に対し、今回送信されたユーザイベント情報（イベント位置情報とパスワード「５３８９」）を送信し、試験管理部１５３が先にユーザＩＤ「ＳＡＴＯ」を含むユーザイベント情報を送信した送信先のWebブラウザ１１に対し、今回のイベント位置情報ならびに当該ユーザＩＤと組をなすパスワード（イベント内容情報）からなるユーザイベント情報を送信し、試験管理部１５３が先にユーザＩＤ「ＴＡＮＡＫＡ」を含むユーザイベント情報を送信した送信先のWebブラウザ１１に対し、今回のイベント位置情報ならびに当該ユーザＩＤと組をなすパスワード（イベント内容情報）からなるユーザイベント情報を送信する。また、他のパスワードについても同様なことを行う。
【００９５】
各Webブラウザ１１は、自身に送信されたユーザイベント情報（イベント位置情報とイベント内容情報（パスワード））に応じたHttpリクエストを生成し、Webアプリケーション部２１に送信する。
【００９６】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、各Httpリクエストを受信し、Httpレスポンス作成部２１２は、各Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、各Httpレスポンスを対応するWebブラウザ１１に送信する。
【００９７】
各Webブラウザ１１は、自身に送信されたHttpレスポンスに応じて画面を描画することは行わず、これにより、処理の高速化が図れる。なお、内容を確認したい場合は、画面を描画してもよいが、いずれかのWebブラウザ１１が画面を描画を行わないことで、処理の高速化が図れる。
【００９８】
（シナリオ情報Ｃ）
振り分け部１５２は、次に、シナリオ情報Ｃのユーザイベント情報を読み出し、そのユーザイベント情報を試験管理部１５３に送信する。シナリオ情報Ｃには、多重指定条件が含まれないので、試験管理部１５３へのさらなる送信は行わない。また、シナリオ情報Ｃには、アサーション条件と指示情報の内の前者が含まれるので、そのアサーション条件を検証部１５４へ送信する。
【００９９】
試験管理部１５３は、多重指定条件が送信されなかったので、送信されたユーザイベント情報をそのままWebブラウザ１１に転送する。なお、先に多重指定条件が送信されているので、送信されたユーザイベント情報を各Webブラウザ１１に転送する。
【０１００】
各Webブラウザ１１は、自身に送信されたユーザイベント情報に応じたHttpリクエストを生成し、Webアプリケーション部２１に送信する。
【０１０１】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、各Httpリクエストを受信し、Httpレスポンス作成部２１２は、各Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、各Httpレスポンスを対応するWebブラウザ１１に送信する。
【０１０２】
各Webブラウザ１１は、Httpレスポンスに応じて画面を描画することは行わず、Httpレスポンスを試験管理部１５３に転送し、このHttpレスポンスと対応するユーザＩＤとからなるシナリオ結果情報を試験管理部１５３がシナリオ結果情報記録部１６に記録する。
【０１０３】
検証部１５４は、各シナリオ結果情報をシナリオ結果情報記録部１６から読み出し、そのシナリオ結果情報のHttpレスポンスにおける、予め送信されたアサーション条件のタグ特定情報で示されるHTMLタグの位置に、当該アサーション条件の文字列「東京」があるか否かを判定する。なお、当該タグ特定情報で示されるHTMLタグ以外の位置にある文字列についての判定を省略することで高速化が図れる。
【０１０４】
例えば、ある１つのHttpレスポンスにつき、文字列「東京」がないと判定した場合、検証部１５４は、シナリオ結果情報記録部１６の対応するシナリオ結果情報に対し、文字列「東京」となるべきところが文字列「大阪」になっている旨を記録する。そして、検証部１５４は、そのシナリオ結果情報を検証結果表示制御部１５５に送信し、検証結果表示制御部１５５が、そのシナリオ結果情報内のユーザＩＤと文字列「東京」となるべきところが文字列「大阪」になっている旨を画面表示する。
【０１０５】
このように、ユーザＩＤを表示することで、どのユーザＩＤのときに、期待に反する結果となるかを知ることができる。また、「東京」、「大阪」を表示することで、期待される文字列と期待に反して得られた文字列とを知ることができる。
【０１０６】
（シナリオ情報Ｄ）
振り分け部１５２は、次に、シナリオ情報Ｄのユーザイベント情報を読み出し、そのユーザイベント情報を試験管理部１５３に送信する。シナリオ情報Ｄには、多重指定条件が含まれないので、試験管理部１５３へのさらなる送信は行わない。また、シナリオ情報Ｄには、アサーション条件と指示情報の内の後者が含まれるので、その指示情報を検証部１５４へ送信する。
【０１０７】
試験管理部１５３は、多重指定条件が送信されなかったので、送信されたユーザイベント情報をそのまま各Webブラウザ１１に転送する。
【０１０８】
各Webブラウザ１１は、自身に送信されたユーザイベント情報に応じたHttpリクエストを生成し、Webアプリケーション部２１に送信する。
【０１０９】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、各Httpリクエストを受信し、Httpレスポンス作成部２１２は、各Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、各Httpレスポンスを対応するWebブラウザ１１に送信する。
【０１１０】
各Webブラウザ１１は、Httpレスポンスに応じて画面を描画することは行わず、Httpレスポンスを試験管理部１５３に転送し、このHttpレスポンスと対応するユーザＩＤとからなるシナリオ結果情報を試験管理部１５３がシナリオ結果情報記録部１６に記録する。
【０１１１】
検証部１５４は、各シナリオ結果情報をシナリオ結果情報記録部１６から読み出し、そのシナリオ結果情報のHttpレスポンスにおける、予め送信された指示情報のタグ特定情報で示されるHttpタグの位置の文字列（例えば、文字列「１０００円」）を記憶する。
【０１１２】
（シナリオ情報Ｅ）
振り分け部１５２は、次に、シナリオ情報Ｅのユーザイベント情報を読み出し、そのユーザイベント情報を試験管理部１５３に送信する。シナリオ情報Ｅには、多重指定条件が含まれないので、試験管理部１５３へのさらなる送信は行わない。また、シナリオ情報Ｅには、アサーション条件と指示情報の内の前者が含まれるので、そのアサーション条件を検証部１５４へ送信する。
【０１１３】
試験管理部１５３は、多重指定条件が送信されなかったので、送信されたユーザイベント情報をそのまま各Webブラウザ１１に転送する。
【０１１４】
各Webブラウザ１１は、自身に送信されたユーザイベント情報に応じたHttpリクエストを生成し、Webアプリケーション部２１に送信する。
【０１１５】
Webアプリケーション部２１のHttpリクエスト受付部２１１は、各Httpリクエストを受信し、Httpレスポンス作成部２１２は、各Httpリクエストに対応するHttpレスポンスを作成し、Httpレスポンス送信部２１３が、各Httpレスポンスを対応するWebブラウザ１１に送信する。
【０１１６】
各Webブラウザ１１は、Httpレスポンスに応じて画面を描画することは行わず、Httpレスポンスを試験管理部１５３に転送し、このHttpレスポンスと対応するユーザＩＤとからなるシナリオ結果情報を試験管理部１５３がシナリオ結果情報記録部１６に記録する。
【０１１７】
検証部１５４は、各シナリオ結果情報をシナリオ結果情報記録部１６から読み出し、予め送信されたアサーション条件に指示情報があるので、そのシナリオ結果情報のHttpレスポンスにおける、予め送信されたアサーション条件のタグ特定情報で示されるHTMLタグの位置に、その指示情報により記憶した文字列に等しい文字列があるか否かを判定する。なお、当該タグ特定情報で示されるHTMLタグ以外の位置にある文字列についての判定を省略することで高速化が図れる。
【０１１８】
例えば、予め文字列「１０００円」を記憶し、ある１つのHttpレスポンスにつき、予め送信されたアサーション条件のタグ特定情報で示されるHTMLタグの位置には、文字列「１０５０円」があり、これにより、文字列「１０００円」がないと判定した場合、検証部１５４は、シナリオ結果情報記録部１６の対応するシナリオ結果情報に対し、文字列「１０００円」となるべきところが文字列「１０５０円」になっている旨を記録する。そして、検証部１５４は、そのシナリオ結果情報を検証結果表示制御部１５５に送信し、検証結果表示制御部１５５が、そのシナリオ結果情報内のユーザＩＤと文字列「１０００円」となるべきところが文字列「１０５０円」になっている旨を画面表示する。
【０１１９】
このように、ユーザＩＤを表示することで、どのユーザＩＤのときに、期待に反する結果となるかを知ることができる。また、「１０００円」、「１０５０円」を表示することで、期待される文字列と期待に反して得られた文字列とを知ることができる。
【０１２０】
なお、図５の説明では、上記のように、期待に反する内容をシナリオ結果情報記録部１６に記録し、検証結果表示制御部１５５が画面表示したが、期待通りの結果となったときに、その旨をシナリオ結果情報記録部１６に記録し、検証結果表示制御部１５５が画面表示してもよい。
【０１２１】
また、図５の説明では、例えば、いずれかのWebブラウザ１１は、Httpレスポンスに応じて画面の描画データを生成し、これを試験管理部１５３に送信し、これを試験管理部１５３がシナリオ結果情報記録部１６の対応するシナリオ結果情報に記録しておき、期待に反する結果となったときは、この描画データにより画面を描画してもよい。これにより、期待に反する結果となったときの画面内の他の文字列や画像からそのときの状況を知ることができる。
【０１２２】
また、図５の説明では、指示情報により文字列「１０００円」を記憶し、タグ特定情報で示されるHTMLタグの位置に、等しい文字列「１０００円」があるか否かを判定したが、指示情報により数値「５００」および「５００」を記憶し、タグ特定情報で示されるHTMLタグの位置にある数値が、合計の数値「１０００」に等しいか否かを判定するというように、計算とその結果の判定を行ってもよい。
【０１２３】
また、図５の説明では、指示情報により文字列「東京都」および「三鷹市」を記憶し、タグ特定情報で示されるHTMLタグの位置にある文字列が、文字列「東京都三鷹市」に等しいか否かを判定するというように、文字列操作とその結果の判定を行ってもよい。文字列操作は合成でなく分解でもよい。
【０１２４】
また、図５の説明では、数値や文字列だけでなく、静止画や動画を扱ってもよい。また、リンク先の情報を扱ってもよい。
【０１２５】
以上のように、本実施の形態によれば、機能試験ごとのプログラム構築が不要である。また、Webブラウザによりシナリオを直感的かつ簡易に作成でき、人の替わりにコンピュータが機能試験を行うことにより、機能試験を繰り返し行う必要がある場合の負担を軽減できる。
【０１２６】
さらに、アサーション条件を予めシナリオに設定し、これを用いた判定を行うので、機能試験の実施と同様に多くの時間を要する結果確認作業が自動的に行える。また、このアサーション条件の設定はWebブラウザの画面上で行えるため、直感的かつ簡易にアサーション条件が設定可能となる。また、シナリオ内に設定したアサーション条件の検証をHttpレスポンスに対して実施可能で、機能試験の多重実施時でも機能試験の結果判定を行うので、問題があった機能試験と同時に行っている他の機能試験に影響を与えずに、機能試験を多重実施し、実施機能試験の結果を保存でき、ソフトウェアの機能追加等のデグレード確認作業等、繰り返し行う必要のある機能試験で人間への負担を軽減できる。
【０１２７】
また、アサーション条件の検証をHttpレスポンスに対して行うため、その際には、Webブラウザを終了させることができる。つまり、まとまったリソースを必要とするWebブラウザはを常に起動しておく必要がなく、よって、処理能力が低くてもWebアプリケーション機能試験を多重化して実施することができる。。
【０１２８】
さらに、Webブラウザに対するユーザイベント情報の送信タイミングを適切に管理することで、機能試験実施時にWebブラウザが必須であるような、多数のユーザに様々なWebサービスを提供するWebアプリケーションに対する多重機能試験を実施することが可能となる。
【０１２９】
以上説明したように、本実施の形態に係るWebアプリケーション機能試験端末は、複数のWebブラウザと、Webアプリケーション機能試験端末で発生したユーザイベントのユーザイベント情報ならびに該ユーザイベント情報により得られたWebレスポンスにより描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報と当該指定内容とからなるアサーション条件を含むシナリオ情報を含むシナリオが記録されるシナリオ記録手段たるシナリオ記録部１３と、シナリオを読み込み、予め設定された多重指定条件に従って、当該シナリオのシナリオ情報のユーザイベント情報を複数のWebブラウザに送信するユーザイベント情報送信手段たる試験管理部１５３と、得られた各Webレスポンスにおける、当該シナリオ情報のアサーション条件のタグ特定情報で示されるタグの位置の内容と、当該アサーション条件の指定内容とによる判定を行う判定手段たる検証部１５４とを備える。
【０１３０】
このWebアプリケーション機能試験端末によれば、１つのシナリオのシナリオ情報のユーザイベント情報を複数のWebブラウザに送信するので、複数のシナリオが必要なく、よって、Webアプリケーション機能試験端末の処理能力が低くてもWebアプリケーション機能試験を多重化して実施することができる。
【０１３１】
また、各Webレスポンスにおける内容とアサーション条件の指定内容とによる判定を行うので、判定時にWebブラウザを多重起動する必要が無く、大規模な多重化が可能である。
【０１３２】
また、このWebアプリケーション機能試験端末は、アサーション条件が設定される前のシナリオ情報を含むシナリオを読み込み、そのシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指定内容とからなるアサーション条件を当該シナリオ情報に設定する条件設定手段たる条件設定部１４を備えるので、Webアプリケーション機能試験を多重化して実施するためのシナリオに対するアサーション条件の設定を画面上で容易に行うことができる。
【０１３３】
また、このWebアプリケーション機能試験端末では、シナリオは、先に描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報からなる指示情報を含むシナリオ情報と、後に描画された画面上での指定内容の位置情報から検出されたタグを示すタグ特定情報を含むアサーション条件を含むシナリオ情報とを含み、判定手段は、指示情報のタグ特定情報で示されるタグの位置の内容を記憶し、アサーション条件のタグ特定情報で示されるタグの位置の内容と、記憶した内容とによる判定を行うので、２つの画面内容同士の関連性を試験することができる。
【０１３４】
また、このWebアプリケーション機能試験端末は、アサーション条件と指示情報が設定される前のシナリオ情報を含むシナリオを読み込み、指示情報が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報からなる指示情報を当該シナリオ情報に設定し、アサーション条件が設定される前のシナリオ情報のユーザイベント情報により描画された画面上での指定内容の位置情報をWebブラウザに送信し、その位置情報を基に検出されたタグの位置を示すタグ特定情報を受信し、そのタグ特定情報と当該指示情報のタグ特定情報で示されるタグの位置にある文字列を使用する旨の内容とからなるアサーション条件を当該シナリオ情報に設定する条件設定手段たる条件設定部１４を備えるので、２つの画面内容同士の関連性を試験可能なWebアプリケーション機能試験を多重化して実施でき、そのアサーション条件が設定されたシナリオを画面上で容易に生成することがことができる。
【０１３５】
また、このWebアプリケーション機能試験端末では、条件設定手段が、シナリオを読み込み、そのシナリオのシナリオ情報のユーザイベント情報のイベント内容情報に置換されることとなるイベント内容情報を１以上含む多重指定条件を生成し、この多重指定条件を当該シナリオ情報に設定し、ユーザイベント情報送信手段は、当該シナリオ情報のユーザイベント情報を１つのWebブラウザに送信するとともに、当該ユーザイベント情報を当該多重指定条件の各イベント内容情報で置換して他のWebブラウザに送信するので、処理能力が低くてもWebアプリケーション機能試験を多重化して実施することができる。
【０１３６】
また、このWebアプリケーション機能試験端末は、得られたWebレスポンスにより描画データを生成しておき、そのWebレスポンスについての判定結果が期待に反する場合は、当該描画データにより画面描画を行うので、期待に反する結果となったときの画面内の他の文字列や画像からそのときの状況を知ることができる。
【０１３７】
また、このWebアプリケーション機能試験端末では、判定手段が、タグ特定情報で示されるタグ以外の位置にある内容についての判定を省略するので高速化が図れる。
【０１３８】
また、Webアプリケーション機能試験端末としてコンピュータを機能させるコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納したり、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【図面の簡単な説明】
【０１３９】
【図１】本実施の形態に係るWebアプリケーション機能試験端末の構成とその利用形態を示す図である。
【図２】シナリオ記録部１３に生成されたシナリオの一例を示す図である。
【図３】条件設定部１４の構成および動作の説明図である。
【図４】条件設定後の図２のシナリオを示す図である。
【図５】機能試験部１５の構成および動作の説明図である。
【図６】ソフトウェア構築型機能試験方法の配置図である。
【図７】図６の方法の動作概念図である。
【図８】オブジェクトイベント記録型機能試験方法の配置図である。
【図９】図８の方法におけるシナリオ記録の動作概念図である。
【図１０】図８の方法におけるアサーション設定の動作概念図である。
【図１１】図８の方法においてシナリオを再生して機能試験を行うときの動作概念図である。
【図１２】負荷試験方法の配置図である。
【図１３】図１３の方法におけるシナリオ記録の動作概念図である。
【図１４】図１３の方法においてシナリオを再生して機能試験を行うときの動作概念図である。
【図１５】シナリオの構成を示す図である。
【図１６】負荷試験の課題を示す図である。
【図１７】機能試験多重化の課題を示す図である。
【符号の説明】
【０１４０】
１…Webアプリケーション機能試験端末
２…Webアプリケーションサーバ端末
１１…Webブラウザ
１２…シナリオ作成部
１３…シナリオ記録部
１４…条件設定部
１５…機能試験部
１６…シナリオ結果情報記録部
２１…Webアプリケーション部
２１１…Httpリクエスト受付部
２１２…Httpレスポンス作成部
２１３…Httpレスポンス送信部
１４１…シナリオ読み込み部
１４２…条件生成部
１４３…条件設定部
１５１…シナリオ読み込み部
１５２…振り分け部
１５３…試験管理部
１５４…検証部
１５５…検証結果表示制御部
ａ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ  シナリオ情報
【図１】
2007200143.tif 000003
【図２】
2007200143.tif 000004
【図３】
2007200143.tif 000005
【図４】
2007200143.tif 000006
【図５】
2007200143.tif 000007
【図６】
2007200143.tif 000008
【図７】
2007200143.tif 000009
【図８】
2007200143.tif 000010
【図９】
2007200143.tif 000011
【図１０】
2007200143.tif 000012
【図１１】
2007200143.tif 000013
【図１２】
2007200143.tif 000014
【図１３】
2007200143.tif 000015
【図１４】
2007200143.tif 000016
【図１５】
2007200143.tif 000017
【図１６】
2007200143.tif 000018
【図１７】
2007200143.tif 000019