(57)【要約】      （修正有）【課題】容易かつ詳細なテスト仕様書を自動作成することにより、作成者の作成負担軽減を図ること。【解決手段】Ｗｅｂ画面ＪＳＰ１の期待値情報書き込み後のテスト仕様書データ１１０において、領域１４００内のセルに期待値情報が書き込まれていることがわかる。つぎに、Ｗｅｂ画面ＪＳＰ１の操作手順記述『入力欄に「粂」を入力して、検索ボタンを押す』どおりに入力情報を与えてＨＴＴＰリクエストをＷｅｂサーバに送信すると、そのメタ情報付きレスポンスＨＴＭＬを受信する。このメタ情報付きレスポンスＨＴＭＬは、Ｗｅｂブラウザにより、Ｗｅｂ画面ＪＳＰ２として表示される。このメタ情報付きレスポンスＨＴＭＬを解析することでＷｅｂ画面ＪＳＰ２に関する期待値情報を抽出する。これにより、領域１５００内のセルに期待値情報が書き込まれている。【選択図】図１５
2008242738.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
ＷｅｂサーバにインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データを受け付ける受付手段、
前記一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むレスポンスを取得する取得手段、
前記取得手段によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値を抽出する抽出手段、
前記抽出手段によって抽出された期待値を前記画面遷移仕様に関連付けて、前記受付手段によって受け付けられたテスト仕様書データへ書き込む書き込み手段、
として機能させることを特徴とするテスト仕様書作成プログラム。
【請求項２】
前記取得手段は、
前記出力項目と当該出力項目に関するメタ情報とを含むレスポンスを取得し、
前記抽出手段は、
前記取得手段によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値と前記メタ情報とを抽出し、
前記書き込み手段は、
前記抽出手段によって抽出された期待値とメタ情報とを前記画面遷移仕様に関連付けて書き込むことを特徴とする請求項１に記載のテスト仕様書作成プログラム。
【請求項３】
前記メタ情報は、
前記期待値を挟むタグに埋め込まれていることを特徴とする請求項２に記載のテスト仕様書作成プログラム。
【請求項４】
前記取得手段は、
前記画面遷移仕様に操作手順記述が含まれている場合、当該操作手順記述にしたがって操作することで前記Ｗｅｂ画面の遷移先Ｗｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記遷移先Ｗｅｂ画面に関するレスポンスを取得し、
前記抽出手段は、
前記取得手段によって取得された前記遷移先Ｗｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、前記遷移先Ｗｅｂ画面に関するレスポンスの中から前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を抽出し、
前記書き込み手段は、
前記抽出手段によって抽出された前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を前記遷移先Ｗｅｂ画面の画面遷移仕様に関連付けて書き込むことを特徴とする請求項１〜３のいずれか一つに記載のテスト仕様書作成プログラム。
【請求項５】
前記取得手段は、
前記Ｗｅｂ画面の遷移先Ｗｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記遷移先Ｗｅｂ画面に関するレスポンスを取得し、
前記抽出手段は、
前記取得手段によって取得された前記遷移先Ｗｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、前記遷移先Ｗｅｂ画面に関するレスポンスの中から前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を抽出し、
前記書き込み手段は、
前記抽出手段によって抽出された前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を前記遷移先Ｗｅｂ画面の画面遷移仕様に関連付けて書き込むことを特徴とする請求項１〜３のいずれか一つに記載のテスト仕様書作成プログラム。
【請求項６】
ＷｅｂサーバにインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データを受け付ける受付手段と、
前記一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むレスポンスを取得する取得手段と、
前記取得手段によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値を抽出する抽出手段と、
前記抽出手段によって抽出された期待値を前記画面遷移仕様に関連付けて、前記受付手段によって受け付けられたテスト仕様書データへ書き込む書き込み手段と、
を備えることを特徴とするテスト仕様書作成装置。
【請求項７】
ＷｅｂサーバにインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データを受け付ける受付工程と、
前記一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むレスポンスを取得する取得工程と、
前記取得工程によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値を抽出する抽出工程と、
前記抽出工程によって抽出された期待値を前記画面遷移仕様に関連付けて、前記受付工程によって受け付けられたテスト仕様書データへ書き込む書き込み工程と、
を含んだことを特徴とするテスト仕様書作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、開発されたＷｅｂアプリケーションテストに使用されるテスト仕様書データを作成するテスト仕様書作成プログラム、テスト仕様書作成装置、およびテスト仕様書作成方法に関する。
【背景技術】
【０００２】
近年のＷｅｂアプリケーション開発においては、ＪＳＰファイルなどのテンプレートフィルを用いたデザイン機能とビジネスロジック機能とを分離する手法が一般的である。ビジネスロジックとは、ビジネス取引などの動作処理を実行するＷｅｂアプリケーションの論理記述であり、たとえば、『お客様が買い物カゴに品物をいれた時に、在庫確認を行い結果を通知する。』、『送信ボタンを押すと、カード会社に接続し認証をとる。』といった、各々の業務の流れ方を取り決めた論理記述である。ビジネスロジック内で処理された出力項目がＪＳＰファイル内のカスタムタグで指定された位置に表示される構造をとる。
【０００３】
このようなＷｅｂアプリケーションのテストでは、Ｗｅｂブラウザに対する操作を繰返し行うことにより、Ｗｅｂアプリケーションが正しく動作するかを確認する手法が一般的に採られている。そして、そのテストに用いられる従来のテスト仕様書は、以下のテストデータ（１）〜（５）で構成されることが一般的である。
【０００４】
（１）画面操作および画面遷移
（２）画面にテスト実行者が入力する入力値(画面入力テストデータ)
（３）画面に出力される情報の出力期待値(画面出力テストデータ)
（４）データベースの初期状態
（５）データベースの終了状態の期待値
【０００５】
上記テストデータ（２）〜（５）は省略されることもあるが、テストにおけるあいまい性を排除するために、できるだけ詳細に書くことが品質の維持には望ましいとされる。画面系のテストデータ（２）および（３）の作成に際しては、画面に対する入力項目や出力項目ごとに、入力する値、出力されるべき期待値を定義していく。
【０００６】
たとえば、入力される氏名に基づいて住所や電話番号を出力するＷｅｂアプリケーションでは、入力情報(テストデータ（２）)として氏名、出力期待値(テストデータ（３）)として住所および電話番号という項目を抽出し、その項目ごとに入力値、出力期待値を定義していく。
【０００７】
同姓同名の人がいる場合には、出力期待値として複数のレコードを管理する。この入力値および出力期待値は、機能設計書などの設計情報から項目名や複数レコードに対応するための繰り返しの有無等の情報として抽出することは可能であるが、具体的な値についてはテスト仕様書の作成者が手作業により記入するしか方法がない。
【０００８】
そこで、テスト用プログラムを利用することにより、開発したＷｅｂアプリケーションを実行してその際の入出力を記録することでテスト仕様書を自動的に作成する方法が提案されている（たとえば、下記非特許文献１、非特許文献２、および下記特許文献１を参照。）。
【０００９】
この方法では、各ツールで指定された規約に則り、ＨＴＴＰのリクエストを作成し、Ｗｅｂアプリケーションが配備されたＷｅｂサーバ１０１にこのリクエストを送信する。Ｗｅｂアプリケーション内で処理された結果としてＨＴＴＰレスポンスがＷｅｂサーバより返却され、このＨＴＴＰレスポンスをテスト用プログラム内で解析することにより、合否判定をおこなう。
【００１０】
このテスト用プログラムを利用してテスト仕様書を自動的に作成する方法は、一度テスト用プログラムを記述してしまえば、何度でも同じテストを自動的に実行することができるメリットがある。また、一度実行されたテストを再実行するリグレッションテストでは、最初に実行したテストの際に受信したＨＴＴＰレスポンスをログなどの形式で記録しておき、再実行時に記録しておいたログとの突合せをおこなうことで、再実行時のテストを自動化する方法も考えられる。
【００１１】
特に、テストデータ（１）〜（５）のうちテストデータ（２）については、既存の操作ログ取得ツールを利用して、テスト対象のＷｅｂアプリケーションを実際に動作させながら記録を取ることでテスト仕様書への反映が可能である。
【００１２】
このような操作ログ取得ツールを用いると、データベースの初期・終了状態（テストデータ（４），（５））も、ある時点のデータベースのスナップショットを記録することでテスト仕様書への反映は可能である。
【００１３】
【非特許文献１】Jakarta Cactus、［online］、［平成１８年１０月１０日検索］、インターネット＜ＵＲＬ：http://jakarta.apache.org/cactus＞
【非特許文献２】HttpUnit、［online］、［平成１８年１０月１０日検索］、インターネット＜ＵＲＬ：http://httpunit.sourceforge.net/＞
【特許文献１】特開２００５‐２６６９５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述したように手作業でテスト仕様書を作成する方法では、設計情報を基に入力に対する期待値をみずから組み立てなければならず、テスト仕様書の作成者の負担が増大してしまうという問題があった。特に、テスト仕様書の品質を維持するためには、上述したテストデータ（１）〜（５）をすべて網羅するように記述しなければならず、工数が膨大になり、テスト仕様書の作成者の負担が増大してしまう要因となっている。
【００１５】
また、設計情報の項目名とＪＳＰファイル上の項目名（タグクラス名や属性名）は一致しないことが多く、項目名とＪＳＰファイルの項目名とをマッピングさせるのに時間を要することとなり、テスト仕様書の作成者の負担が増大してしまうという問題があった。
【００１６】
また、上述したテスト用プログラムを利用してテスト仕様書を自動的に作成する方法では、操作ログ取得ツールを用いても、画面に出力される期待値について、出力されるＨＴＭＬデータ全体を比較するため、「氏名」、「住所」などの細かい項目単位で期待値を出力することは困難であるという問題があった。
【００１７】
特に、ＨＴＭＬデータでは、結果的に出力される項目がＨＴＭＬデータ上のどの部分に出現するのかがわからないため、項目名と期待値の突合せ判定が難しい要因となっている。
【００１８】
また、Ｗｅｂアプリケーションのビジネスロジック機能が同一であっても、デザイン機能を変更した場合、判定結果がＮＧとなり、誤判定してしまうという問題があった。すなわち、デザインが異なってもビジネスロジック機能が正しければ判定結果をＯＫとしなければならない。たとえば、氏名を入力すると電話番号とメールアドレスを提示するＷｅｂアプリケーションにおいて、当該Ｗｅｂアプリケーション自体にバグがない場合であっても、電話番号とメールアドレスの表示順が変更されていたり、各出力項目のタグ名が変更されていたりした場合には、ＮＧと判定されてしまう。
【００１９】
また、日付や伝票番号など、Ｗｅｂアプリケーションを実行するたびに変化する項目が存在すると、Ｗｅｂアプリケーションに不具合がなくても判定結果がＮＧとなり、誤判定してしまうという問題があった。また、作成された期待値はＨＴＭＬデータに埋め込まれているため、後から編集することは困難であり、テスト仕様書の作成者の負担が増大してしまうという問題があった。
【００２０】
この発明は、上述した従来技術による問題点を解消するため、容易かつ詳細なテスト仕様書を自動作成することにより、作成者の作成負担軽減を図ることができるテスト仕様書作成プログラム、テスト仕様書作成装置、およびテスト仕様書作成方法を提供することを目的とする。また、作成されたテスト仕様書のテストケースを編集可能とすることにより、テストケースのバリエーションの増加によるテストケースの網羅性向上および作成者の作成負担軽減を図ることができるテスト仕様書作成プログラム、テスト仕様書作成装置、およびテスト仕様書作成方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上述した課題を解決し、目的を達成するため、この発明にかかるテスト仕様書作成プログラム、該プログラムを記録した記録媒体、テスト仕様書作成装置、およびテスト仕様書作成方法は、ＷｅｂサーバにインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データを受け付け、前記一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むレスポンスを取得し、取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値を抽出し、抽出された期待値を前記画面遷移仕様に関連付けて、前記受付手段によって受け付けられたテスト仕様書データへ書き込むことを特徴とする。
【００２２】
この発明によれば、テスト仕様書データに期待値を自動的に設定することができる。
【００２３】
また、上記発明において、前記出力項目と当該出力項目に関するメタ情報とを含むレスポンスを取得し、取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値と前記メタ情報とを抽出し、抽出された期待値とメタ情報とを前記画面遷移仕様に関連付けて書き込むこととしてもよい。
【００２４】
この発明によれば、テスト仕様書データに期待値とともにそのメタ情報を自動的に設定することができる。
【００２５】
また、上記発明において、前記メタ情報は、前記期待値を挟むタグに埋め込まれていることとしてもよい。
【００２６】
この発明によれば、期待値のメタ情報を容易に特定することができる。
【００２７】
また、上記発明において、前記画面遷移仕様に操作手順記述が含まれている場合、当該操作手順記述にしたがって操作することで前記Ｗｅｂ画面の遷移先Ｗｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記遷移先Ｗｅｂ画面に関するレスポンスを取得し、取得された前記遷移先Ｗｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、前記遷移先Ｗｅｂ画面に関するレスポンスの中から前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を抽出し、抽出された前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を前記遷移先Ｗｅｂ画面の画面遷移仕様に関連付けて書き込むこととしてもよい。
【００２８】
この発明によれば、操作手順記述に応じたレスポンスの期待値を得ることができる。
【００２９】
また、上記発明において、前記Ｗｅｂ画面の遷移先Ｗｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記遷移先Ｗｅｂ画面に関するレスポンスを取得し、取得された前記遷移先Ｗｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、前記遷移先Ｗｅｂ画面に関するレスポンスの中から前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を抽出し、抽出された前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を前記遷移先Ｗｅｂ画面の画面遷移仕様に関連付けて書き込むこととしてもよい。
【００３０】
この発明によれば、操作手順記述どおりの入力作業を省略することができる。
【００３１】
また、上記発明において、前記一連の画面遷移仕様に類似する他の一連の画面遷移仕様の前記テスト仕様書データへの追加入力を受け付け、追加入力された他の一連の画面遷移仕様の中から選ばれた画面遷移仕様（以下、「追加画面遷移仕様」という）のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記追加画面遷移仕様のＷｅｂ画面に関するレスポンスを取得し、取得された前記追加画面遷移仕様のＷｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、当該レスポンスの中から前記追加画面遷移仕様に対する期待値を抽出し、抽出された前記追加画面遷移仕様に対する期待値を前記追加画面遷移仕様に関連付けて書き込むこととしてもよい。
【００３２】
この発明によれば、テスト仕様書データの編集自由度の向上を図ることができる。
【発明の効果】
【００３３】
本発明にかかるテスト仕様書作成プログラム、該プログラムを記録した記録媒体、テスト仕様書作成装置、およびテスト仕様書作成方法によれば、容易かつ詳細なテスト仕様書を自動作成することにより、作成者の作成負担軽減を図ることができるという効果を奏する。また、作成されたテスト仕様書のテストケースを編集可能とすることにより、テストケースのバリエーションの増加によるテストケースの網羅性向上および作成者の作成負担軽減を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００３４】
以下に添付図面を参照して、この発明にかかるテスト仕様書作成プログラム、該プログラムを記録した記録媒体、テスト仕様書作成装置、およびテスト仕様書作成方法の好適な実施の形態を詳細に説明する。
【００３５】
（テスト仕様書作成システムの概略構成）
まず、この発明の実施の形態にかかるテスト仕様書作成システムの概略構成について説明する。図１は、この発明の実施の形態にかかるテスト仕様書作成システムの概略構成を示す説明図である。テスト仕様書作成システム１００は、Ｗｅｂサーバ１０１とクライアント１０２とがインターネットなどのネットワーク１０３により相互に交信可能に接続されている。なお、Ｗｅｂサーバ１０１とクライアント１０２とは、一台のマシンとして構成することとしてもよい。
【００３６】
Ｗｅｂサーバ１０１は、検査対象となるＷｅｂアプリケーションがインストールされているコンピュータ装置である。Ｗｅｂサーバ１０１は、Ｗｅｂアプリケーションを実行することにより、クライアント１０２に対し当該Ｗｅｂアプリケーションに応じたサービスを提供することができる。
【００３７】
クライアント１０２は、テスト仕様書作成者が利用するコンピュータ装置であり、本実施の形態におけるテスト仕様書作成装置に相当する。クライアント１０２は、テスト仕様書データ１１０を作成する。この作成にあたり、クライアント１０２は、Ｗｅｂサーバ１０１にアクセスすることで、任意の画面遷移仕様のＷｅｂ画面を要求するリクエストをＷｅｂサーバ１０１に送信するとともに、そのレスポンスをＷｅｂサーバ１０１から受信する。そして、そのレスポンスを解析してディスプレイに表示することができる。
【００３８】
（コンピュータ装置のハードウェア構成）
つぎに、図１に示したコンピュータ装置のハードウェア構成について説明する。図２は、図１に示したコンピュータ装置のハードウェア構成を示すブロック図である。図２において、コンピュータ装置は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００３９】
ここで、ＣＰＵ２０１は、コンピュータ装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００４０】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータをコンピュータ装置に読み取らせたりする。
【００４１】
また、着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４２】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク１０３に接続され、このネットワーク１０３を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク１０３と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４３】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４４】
スキャナ２１２は、画像を光学的に読み取り、コンピュータ装置内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００４５】
（テスト仕様書データ）
つぎに、図１に示したテスト仕様書データについて説明する。図３は、作成開始前のテスト仕様書データを示す説明図である。テスト仕様書データ１１０は、Ｗｅｂサーバ１０１にインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された電子データであり、具体的には、たとえば、表形式のスプレッドシートなどのマクロファイルにより作成される。
【００４６】
このテスト仕様書データ１１０には、検査対象となるＷｅｂアプリケーションに対し、検査したいテストケースＴＣｉ（ｉ＝１，２，・・・，ｎ）ごとに、一連の画面遷移仕様と期待値情報とが記述される。図３では、例として２つ（ｎ＝２）のテストケースＴＣ１，ＴＣ２が示されている。画面遷移仕様は、手作業で記入しても良いし、その一部または全部を画面遷移図などの設計書情報から機械的に抽出することとしてもよい。
【００４７】
画面遷移仕様は、画面名と操作手順記述とにより特定される。画面名とは、クライアントに表示されるＷｅｂ画面の画面ファイルを特定する名称であり、たとえば、米国サンマイクロシステムズが規定するＪＳＰおよびＪａｖａ（登録商標）言語仕様に則る場合、ＪＳＰファイル名（例として、ＪＳＰ１，ＪＳＰ２など）のように記述される。
【００４８】
図４は、Ｗｅｂ画面ＪＳＰ１の画面例を示す説明図である。図５は、Ｗｅｂ画面ＪＳＰ２の画面例を示す説明図である。図４および図５は、Ｗｅｂアプリケーションが電話帳検索に関するソフトウェアである場合の画面例である。
【００４９】
また、図３において、操作手順記述は、対応付けられているＷｅｂ画面、すなわち、左隣のセルの画面名により特定されるＷｅｂ画面が表示されている場合のユーザの操作手順をあらわしている。この操作手順記述どおりにＷｅｂ画面に入力情報を与えると、左斜め下のセルの画面名のＷｅｂ画面が表示されることとなる。
【００５０】
たとえば、テストケースＴＣ１において図４に示したＷｅｂ画面ＪＳＰ１が表示されている場合、入力欄４０１に「粂」という漢字を入力し、検索ボタン４０２をクリックすると、図５に示したＷｅｂ画面ＪＳＰ２に遷移する。遷移先となるＷｅｂ画面ＪＳＰ２は、検索結果を示している。
【００５１】
なお、操作手順記述に「終了」が記述されている場合、それ以降の画面遷移はなくそのテストケースＴＣが終了することを意味している。たとえば、テストケースＴＣ１では、Ｗｅｂ画面ＪＳＰ３が表示されると、テストケースＴＣ１のテストが終了し、テストケースＴＣ２では、Ｗｅｂ画面ＪＳＰ４が表示されると、テストケースＴＣ２のテストが終了する。
【００５２】
一方、期待値情報は、作成中に、ＷｅｂアプリケーションがインストールされているＷｅｂサーバからのレスポンスに基づいて記述される。あるテストケースＴＣｉについて、期待値情報における空欄のセルがすべて記述されると、そのテストケースＴＣｉに関するテスト仕様書データ１１０は完成する。
【００５３】
期待値情報中、メタ情報とは、タグクラスとその属性からなる情報である。タグクラスとは、Ｗｅｂアプリケーションのタグが属するクラスである。属性とは、タグクラスの詳細情報であり、タグクラスに属するタグの属性名（name）と属性値（property）とを含む。また、呼び出し回数とは、メタ情報の出現回数である。また、期待値とは、タグクラス、属性名、および属性値からなるメタ情報により特定されるタグを実行した場合に出力値として期待される値である。
【００５４】
（各コンピュータ装置の機能的構成）
つぎに、図１に示した各コンピュータ装置の機能的構成について説明する。図６は、図１に示した各コンピュータ装置の機能的構成を示すブロック図である。まず、Ｗｅｂサーバ１０１の機能的構成について説明する。
【００５５】
図６において、Ｗｅｂサーバ１０１は、通信部６１１と、実行部６１２と、特定部６１３と、生成部６１４と、を備えている。なお、これらの機能的構成は、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００５６】
通信部６１１は、クライアント１０２からのリクエストを受信する機能を有する。具体的には、Ｗｅｂアプリケーションの所在を特定するＵＲＬやディレクトリ、Ｗｅｂ画面の入力欄に入力データなどの入力値を含むリクエストを受信する。そして、そのリクエストを送信したクライアント１０２に対し、後述する生成部６１４により生成されたレスポンスを送信する。
【００５７】
また、実行部６１２は、通信部６１１によって受信されたリクエストを与えてＷｅｂアプリケーションを実行する機能を有する。Ｗｅｂアプリケーションの計算結果を出力項目という。出力項目は、Ｗｅｂアプリケーションが実行されると、その出力位置が自動的に決定されるようにプログラムされている。ここで、出力位置とは、リクエストに対するレスポンスを解釈して画面表示する場合の表示位置である。
【００５８】
また、特定部６１３は、実行部６１２によるＷｅｂアプリケーションの実行内容に関するメタ情報を特定する機能を有する。具体的には、たとえば、ある処理が実行されたときのその処理に関するタグクラスおよびタグクラス属性を示す記述を、Ｗｅｂアプリケーションの実行内容をソースコード化した情報の中から特定する。
【００５９】
また、生成部６１４は、通信部６１１により受信されたリクエストに対するレスポンスを生成する。具体的には、特定部６１３によりメタ情報が特定されると、メタ情報を出力項目に関連付けて埋め込むことにより、リクエストに対するレスポンスを生成する。より具体的には、メタ情報が出力項目とともに表示画面に表示できるように、メタ情報を出力項目の出力位置に関連付けて埋め込む。
【００６０】
たとえば、ＨＴＭＬ形式によりレスポンスを生成する場合、出力項目に対してメタ情報をＨＴＭＬコメントとして記述することで、出力項目とともに表示することができる。このように、メタ情報を含むレスポンスを「メタ情報付きレスポンス」と称す。このメタ情報付きレスポンスは、通信部６１１によりクライアント１０２に送信される。
【００６１】
このように、Ｗｅｂサーバ１０１は、テスト仕様書データ１１０における期待値情報の元となる出力項目およびメタ情報が埋め込まれたメタ情報付きレスポンスを、リクエストを送信してきたクライアント１０２に返却することができる。
【００６２】
つぎに、クライアント１０２の機能的構成について説明する。クライアント１０２は、受付部６２１と、取得部６２２と、抽出部６２３と、書き込み部６２４と、を備えている。なお、これらの機能的構成は、図２に示したＲＯＭ２０２，ＲＡＭ２０３，ＨＤ２０５などの記録媒体に記録されているプログラムを、ＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００６３】
まず、受付部６２１は、Ｗｅｂサーバ１０１にインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データ１１０を受け付ける。具体的には、たとえば、図３に示したテスト仕様書データ１１０を読み込む。
【００６４】
また、取得部６２２は、任意の画面遷移仕様のＷｅｂ画面を要求するリクエストをＷｅｂサーバ１０１に送信する。このリクエストは、具体的には、図３に示したテスト仕様書データ１１０の一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストである。そして、このリクエストをＷｅｂサーバ１０１に送信することにより、Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むメタ情報付きレスポンスを受信する。
【００６５】
また、抽出部６２３は、取得部６２２によって取得されたメタ情報付きレスポンスに含まれている出力項目に基づいて、メタ情報付きレスポンスの中から画面遷移仕様に対する期待値を抽出する。具体的には、メタ情報付きレスポンスに含まれている出力項目を期待値として抽出する。
【００６６】
また、抽出部６２３は、期待値のほか、メタ情報付きレスポンスからメタ情報や期待値の呼び出し回数も抽出する。抽出部６２３により抽出される期待値、メタ情報または呼び出し回数のうち少なくとも一つを含む情報を「期待値情報」と称す。
【００６７】
また、書き込み部６２４は、抽出部６２３によって抽出された期待値情報を画面遷移仕様に関連付けて、受付部６２１によって受け付けられたテスト仕様書データ１１０へ書き込む。具体的には、たとえば、図３に示したテスト仕様書データ１１０のテストケースＴＣ１を例に挙げると、クライアントにおいてブラウザを起動している状態において、Ｗｅｂ画面ＪＳＰ１を取得するためのリクエスト（たとえば、Ｗｅｂ画面ＪＳＰ１のＵＲＬ）をＷｅｂサーバ１０１に送信すると、このリクエストに応じたメタ情報付きレスポンスを受信する。
【００６８】
このメタ情報付きレスポンスを解析することにより、図４に示したＷｅｂ画面ＪＳＰ１が表示されるとともに、Ｗｅｂ画面ＪＳＰ１の右側の期待値情報の空欄セルに、メタ情報付きレスポンスから抽出された期待値情報が書き込まれる。
【００６９】
このあと、Ｗｅｂ画面ＪＳＰ１が表示されている状態において、その操作手順記述どおりに入力情報を与えてリクエストをＷｅｂサーバ１０１に送信すると、このリクエストに応じたメタ情報付きレスポンスを受信する。
【００７０】
このメタ情報付きレスポンスを解析することにより、Ｗｅｂ画面ＪＳＰ２が表示されるとともに、Ｗｅｂ画面ＪＳＰ２の右側の期待値情報の空欄セルに、メタ情報付きレスポンスから抽出された期待値情報が書き込まれる。Ｗｅｂ画面ＪＳＰ３についても同様の処理をおこなうことにより、テストケースＴＣ１の期待値情報がすべて記述されることとなる。したがって、クライアント１０２によれば、テスト仕様書データ１１０を自動作成することができる。
【００７１】
また、受付部６２１は、テスト仕様書データ１１０の作成中または作成後において、あらたなテストケースＴＣの画面遷移仕様の記述を受け付ける。具体的には、作成中または作成後のテスト仕様書データ１１０を表示させておき、テスト仕様書作成者がすでに記述されている画面遷移仕様を参考にして、その画面遷移仕様をコピーすることで、あらたなテストケースＴＣを作成する。
【００７２】
これにより、テスト仕様書作成者は、すでに期待値情報が書き込まれたテストケースに類似するテストケースの画面遷移仕様を容易に作成することができる。この場合、あらたなテストケースＴＣについては、まだ期待値情報が書き込まれていないため、上記と同様の手法により、期待値情報を書き込むことができる。これにより、類似するテストパターンの網羅性を高めることができる。
【００７３】
（各コンピュータ装置の詳細な内部構成）
つぎに、各コンピュータ装置の詳細な内部構成について説明する。図７は、各コンピュータ装置の詳細な内部構成を示すブロック図である。まず、Ｗｅｂサーバ１０１の詳細な内部構成について説明する。
【００７４】
Ｗｅｂサーバ１０１は、ＡＰサーバ７１１とプリプロセッサ７１２とコンパイラ７１３とＷｅｂアプリケーション７１４とメタ情報挿入エンジン７１７とを有する。ＡＰサーバ７１１は、Ｗｅｂアプリケーション７１４の実行環境となるプログラムであり、プリプロセッサ７１２とコンパイラ７１３を有している。なお、このＡＰサーバ７１１は、図６に示した通信部６１１および生成部６１４に相当する構成である。
【００７５】
ここで、米国サンマイクロシステムズが規定するＪＳＰおよびＪａｖａ言語仕様に則る場合、プリプロセッサ７１２としてＪＳＰ展開エンジンを適用することができ、コンパイラ７１３としてＪＡＶＡコンパイラを適用することができる。
【００７６】
また、ＡＰサーバ７１１には、検査対象となるＷｅｂアプリケーション７１４が実装され、ビジネスロジック７１５とテンプレートファイル７１６から構成される。ビジネスロジック７１５とは、ビジネス取引などの動作処理を実行するＷｅｂアプリケーション７１４の論理記述であり、たとえば、『お客様が買い物カゴに品物をいれた時に、在庫確認をするように決めている。』、『送信ボタンを押すと、カード会社に認証をとるようにしている。』といった、各々の業務の流れ方を取り決めた論理記述である。
【００７７】
また、テンプレートファイル７１６とは、画面デザインと出力項目の表示位置を定義するファイルである。ＪＡＶＡを用いる場合、テンプレートファイル７１６としてＪＳＰファイルを適用することができる。
【００７８】
このように、近年のＷｅｂアプリケーション開発においては、デザイン機能とビジネスロジック機能を分離する手法が一般化しつつある。このため、ビジネスロジック７１５内で処理された出力項目がＪＳＰファイル内のカスタムタグで指定された位置に表示されるような構造となる。
【００７９】
また、メタ情報挿入エンジン７１７は、Ｊａｖａソース断片から、タグクラス、name属性の属性値、およびproperty属性の属性値からなるメタ情報を特定する。そして、出力項目のコメント文として挿入する。なお、このメタ情報挿入エンジン７１７、Ｗｅｂアプリケーション７１４、ビジネスロジック７１５、およびテンプレートファイル７１６（ＪＳＰファイル）は、図６に示した実行部６１２および特定部６１３に相当する構成である。
【００８０】
つぎに、クライアント１０２の詳細な内部構成について説明する。クライアント１０２は、Ｗｅｂブラウザ７２１と実行ナビゲータ７２２とを有する。
【００８１】
Ｗｅｂブラウザ７２１は、Ｗｅｂサーバ１０１のＷｅｂアプリケーション７１４に対してＨＴＴＰリクエストを生成して送信したり、Ｗｅｂサーバ１０１からのＨＴＭＬ形式のメタ情報付きレスポンス（以下、「メタ情報付きレスポンスＨＴＭＬ」と称す。）を受信する通信機能と、受信されたメタ情報付きレスポンスＨＴＭＬを解析する解析機能と、その解析結果をディスプレイに描画する描画機能とを有するプログラムである。このＷｅｂブラウザ７２１は、図６に示した取得部６２２に相当する構成である。
【００８２】
また、実行ナビゲータ７２２は、つぎに実行すべき操作手順記述を取得して、Ｗｅｂブラウザ７２１に渡したり、メタ情報付きレスポンスＨＴＭＬから期待値情報を抽出してテスト仕様書データ１１０に書き込むためにインストールされたプログラムである。なお、この実行ナビゲータ７２２は、図６に示した受付部６２１、取得部６２２、抽出部６２３、および書き込み部６２４に相当する構成である。
【００８３】
（Ｗｅｂサーバ１０１によるＷｅｂアプリケーション実行処理手順）
つぎに、Ｗｅｂサーバ１０１によるＷｅｂアプリケーション実行処理手順について説明する。図８は、Ｗｅｂサーバ１０１によるＷｅｂアプリケーション実行処理手順を示すフローチャートである。
【００８４】
図８において、まず、クライアント１０２からＨＴＴＰリクエストが受信されるまで待ち受け（ステップＳ８０１：Ｎｏ）、ＨＴＴＰリクエストが受信されると（ステップＳ８０１：Ｙｅｓ）、リクエスト解析処理（ステップＳ８０２）、出力項目展開処理（ステップＳ８０３）、アスペクト注入処理（ステップＳ８０４）、およびレスポンス生成処理（ステップＳ８０５）を実行して、メタ情報付きレスポンスＨＴＭＬをクライアント１０２に送信する（ステップＳ８０６）。これにより、一連の処理を終了する。
【００８５】
ここで、リクエスト解析処理（ステップＳ８０２）、出力項目展開処理（ステップＳ８０３）、アスペクト注入処理（ステップＳ８０４）、およびレスポンス生成処理（ステップＳ８０５）について、図９を用いて具体的に説明する。
【００８６】
図９および図１０は、Ｗｅｂサーバ１０１によるＷｅｂアプリケーション実行処理内容を示す説明図である。まず、リクエスト解析処理（ステップＳ８０２）では、ＡＰサーバ７１１が、受信されたＨＴＴＰリクエストの内容（リクエスト行やメッセージ・ヘッダ、エンティティ・ボディ）を分析して、検査対象となるビジネスロジック７１５を呼び出す。ビジネスロジック７１５は、図９（Ａ）に示したように、ＨＴＴＰリクエストの内容を分析して画面への出力項目を計算する。
【００８７】
つぎに、Ｗｅｂサーバ１０１は、出力項目展開処理を実行する（ステップＳ８０３）。具体的には、ＪＳＰ展開エンジンが、図９（Ａ）に示したように、ＪＳＰファイル７１６内の出力項目９１０の表示位置を決定する。そして、図９（Ｂ）に示したように、そのＪＳＰファイル７１６を出力項目９１０の出力位置が指定されたソースコード９０２に変換する。ソースコード９０２に変換することで、ＪＳＰファイル７１６のカスタムタグ９０１は、Ｊａｖａソース断片９０３に変換される。
【００８８】
Ｊａｖａソース断片９０３は、カスタムタグ９０１に相当するクラスのdoStartTag()メソッドとdoEndTag()メソッドを呼び出すようなコードである。そして、コンパイラ７１３は、図９（Ｃ）に示したように、変換されたソースコード９０２をバイナリファイルにコンパイルすることで、画面クラスファイル９０４を生成する。
【００８９】
つぎに、Ｗｅｂサーバ１０１は、アスペクト注入処理を実行する（ステップＳ８０４）。具体的には、メタ情報挿入エンジン７１７が、画面クラスファイル９０４にメタ情報を挿入することで、図９（Ｄ）に示したように、アスペクト付きＪＡＶＡクラスファイル９１５を得る。
【００９０】
つぎに、Ｗｅｂサーバ１０１は、レスポンス生成処理を実行する（ステップＳ８０５）。具体的には、ＡＰサーバ７１１が、アスペクト付きＪＡＶＡクラスファイル９１５を実行することで、メタ情報付きレスポンスＨＴＭＬ９２０を生成する。図９（Ｅ）に示したように、メタ情報付きレスポンスＨＴＭＬ９２０には、ＨＴＭＬコメント９２１，９２２が付加されている。このあと、Ｗｅｂサーバ１０１は、生成されたメタ情報付きレスポンスＨＴＭＬ９２０をクライアント１０２に送信する。
【００９１】
また、図１０では、アスペクト付きＪＡＶＡクラスファイル９１５により動作が置き換えられることによって、どのようにメタ情報付きレスポンスＨＴＭＬ９２０が生成されるかを示している。メタ情報挿入エンジン７１７はAspectJなどのアスペクト指向のプログラミング言語により構成されている場合、メタ情報挿入エンジン７１７およびＡＰサーバ７１１は、つぎの手順（１）〜（５）でメタ情報付きレスポンスＨＴＭＬ９２０を生成する。
【００９２】
（１）Ｊａｖａソース断片９０３のsetPageContext()メソッドが属するクラスのクラス名を取得する。この例では、図９（Ｂ）および図１０（Ａ）に示したＪａｖａソース断片９０３の１４５行目に記述されている「org.apache.struts.taglib.bean.WriteTag」が、カスタムタグ９０１のタグクラス１００１として取得される。
【００９３】
（２）タグクラス１００１とＪａｖａソース断片９０３上のsetXxx()メソッドを属性リストとして抽出する。この例では、図９（Ｂ）および図１０（Ａ）に示したＪａｖａソース断片９０３の１４８行目に記述されている「AddForm」がname属性の属性値１００２として、１４９行目に記述されている「result」がproperty属性の属性値１００３として、抽出される。
【００９４】
（３）doStartTag()メソッドが呼び出される直前に、メタ情報がＨＴＭＬとしてコメント化されたＨＴＭＬコメント１０１０を出力する。これにより、図１０（Ｂ）に示したように、「<!--testStart class="WriteTag" name="AddForm" property="result" -->」が表示される。
【００９５】
（４）doStartTag()メソッドおよびdoEndTag()メソッドを実行し、Ｗｅｂアプリケーション７１４を通常通り実行させる。これにより、図１０（Ｃ）に示したように、実行結果の出力項目９１０として出力値「５」が表示される。
【００９６】
（５）doEndTag()が終了した直後に、ＨＴＭＬコメント１０２０を出力する。これにより、図１０（Ｂ）に示したように、「<!--testEnd -->」が表示される。
【００９７】
図１１は、上記（１）〜（５）によるＷｅｂアプリケーション７１４の実行結果を示す説明図である。図１１に示したように、メタ情報付きレスポンスＨＴＭＬ９２０では、出力項目９１０である出力値「５」の出力位置の前後に、メタ情報を示すＨＴＭＬコメント９２１，９２２が配置されて出力されることとなる。これにより、ステップＳ８０６において、メタ情報付きレスポンスＨＴＭＬ９２０がクライアント１０２に返却されることとなる。
【００９８】
（クライアント１０２によるテスト仕様書作成処理手順）
つぎに、クライアント１０２によるテスト仕様書作成処理手順について説明する。図１２は、クライアント１０２によるテスト仕様書作成処理手順を示すフローチャートである。
【００９９】
図１２において、まず、図３に示したテスト仕様書データ１１０を読み込む（ステップＳ１２０１）。そして、テストケースＴＣのインデックスｉをｉ＝１とし（ステップＳ１２０２）、ｉ＞ｎであるか否かを判断する（ステップＳ１２０３）。ｉ＞ｎでない場合（ステップＳ１２０３：Ｎｏ）、テストケースＴＣｉの期待値情報書き込み処理を実行する（ステップＳ１２０４）。このあと、ｉをインクリメントして（ステップＳ１２０５）、ステップＳ１２０３に戻る。
【０１００】
このあと、ｉ＞ｎの場合（ステップＳ１２０３：Ｙｅｓ）、Ｗｅｂブラウザ７２１によりテスト仕様書データ１１０を表示する（ステップＳ１２０６）。これにより、期待値情報を目視で確認することができる。そして、テストケースの追加があったか否かを判断する（ステップＳ１２０７）。追加があった場合（ステップＳ１２０７：Ｙｅｓ）、ｉ＞ｍであるか否かを判断する（ステップＳ１２０８）。ｍは、追加後のテストケース総数である。
【０１０１】
ｉ＞ｍでない場合（ステップＳ１２０８：Ｎｏ）、テストケースＴＣｉの期待値情報書き込み処理を実行する（ステップＳ１２０９）。このあと、ｉをインクリメントして（ステップＳ１２１０）、ステップＳ１２０８に戻る。
【０１０２】
このあと、ｉ＞ｍの場合（ステップＳ１２０８：Ｙｅｓ）、Ｗｅｂブラウザ７２１によりテスト仕様書データ１１０を表示する（ステップＳ１２１１）。これにより、追加分の期待値情報を目視で確認することができる。そして、ステップＳ１２０７に戻る。
【０１０３】
また、ステップＳ１２０７において、テストケースの追加がない場合（ステップＳ１２０７：Ｎｏ）、テスト仕様書データ１１０について、ＲＡＭ２０３やＨＤ２０５への格納、ディスプレイへ２０８の表示、プリンタ２１３からの印刷出力、他のコンピュータ装置への送信などの出力処理を実行する（ステップＳ１２１２）。これにより、一連の処理を終了する。
【０１０４】
（テストケースＴＣｉの期待値情報書き込み処理手順）
つぎに、ステップＳ１２０４、Ｓ１２０９において示したテストケースＴＣｉの期待値情報書き込み処理の具体的な処理手順について説明する。図１３は、テストケースＴＣｉの期待値情報書き込み処理の具体的な処理手順を示すフローチャートである。
【０１０５】
図１３において、まず、初期画面のＨＴＴＰリクエストをＷｅｂサーバ１０１に送信する（ステップＳ１３０１）。図３に示したテスト仕様書データ１１０のテストケースＴＣ１を例に挙げると、Ｗｅｂ画面ＪＳＰ１が初期画面となるため、Ｗｅｂ画面ＪＳＰ１のＨＴＴＰリクエストをＷｅｂサーバ１０１に送信する。
【０１０６】
Ｗｅｂサーバ１０１にＨＴＴＰリクエストを送信したあと、このＨＴＴＰリクエストに応じたメタ情報付きレスポンスＨＴＭＬ９２０を受信する（ステップＳ１３０２）。そして、Ｗｅｂブラウザ７２１により、メタ情報付きレスポンスＨＴＭＬ９２０を表示する（ステップＳ１３０３）。
【０１０７】
このあと、Ｗｅｂブラウザ７２１によりメタ情報付きレスポンスＨＴＭＬ９２０を解析して、メタ情報付きレスポンスＨＴＭＬ９２０の中から期待値情報を抽出する（ステップＳ１３０４）。そして、抽出された期待値情報をテストケースＴＣｉの空欄のセルに書き込む（ステップＳ１３０５）。このあと、テストケースＴＣｉにおいて、現在のＷｅｂ画面から遷移する遷移先画面があるか否かを判断する（ステップＳ１３０６）。
【０１０８】
遷移先画面がある場合（ステップＳ１３０６：Ｙｅｓ）、現在のＷｅｂ画面の操作手順記述どおりの入力情報が受け付けられるのを待ち受ける（ステップＳ１３０７：Ｎｏ）。図３に示したテスト仕様書データ１１０のテストケースＴＣ１を例に挙げると、Ｗｅｂ画面ＪＳＰ１の操作手順記述『入力欄に「粂」を入力して、検索ボタンを押す』どおりに入力された入力情報が受け付けられるのを待ち受ける。
【０１０９】
入力情報が受け付けられた場合（ステップＳ１３０７：Ｙｅｓ）、遷移先画面のＨＴＴＰリクエスト、すなわち、この入力情報を含んだＨＴＴＰリクエストをＷｅｂサーバ１０１に送信する（ステップＳ１３０８）。このあと、ステップＳ１３０２に戻る。一方、ステップＳ１３０６において、遷移先画面がない場合（ステップＳ１３０６：Ｎｏ）、ステップＳ１２０５（Ｓ１２１０）に移行する。これにより、一連のテストケースＴＣｉの期待値情報書き込み処理手順を終了する。
【０１１０】
（テスト仕様書データ１１０の作成例）
つぎに、この発明の実施の形態にかかるテスト仕様書データ１１０の作成例について説明する。ここでは、図３に示したテスト仕様書データ１１０に期待値情報を書き込む例について説明する。したがって、初期画面は、図４に示したＷｅｂ画面ＪＳＰ１となり、Ｗｅｂ画面ＪＳＰ１からの遷移先画面は、図５に示したＷｅｂ画面ＪＳＰ２となる。
【０１１１】
まず、Ｗｅｂ画面ＪＳＰ１のＨＴＴＰリクエストをＷｅｂサーバ１０１に送信すると、そのメタ情報付きレスポンスＨＴＭＬ９２０を受信する。このメタ情報付きレスポンスＨＴＭＬ９２０は、Ｗｅｂブラウザ７２１により、Ｗｅｂ画面ＪＳＰ１として表示される。このメタ情報付きレスポンスＨＴＭＬ９２０を解析することでＷｅｂ画面ＪＳＰ１に関する期待値情報を抽出する。
【０１１２】
具体的には、実行ナビゲータ７２２は、メタ情報付きレスポンスＨＴＭＬ９２０の内部を走査し、「<!--testStart ＸＸＸ-->」と「<!--testEnd -->」に囲まれた部分の値を検出する。なお、ＸＸＸにはメタ情報としての文字列が記入されている。そして、このタグに囲まれた部分の文字列を、Ｗｅｂアプリケーション７１４の実行結果となる出力項目と判断する。そして、この出力項目を期待値として抽出する。
【０１１３】
また、実行ナビゲータ７２２は、「<!--testStart ＸＸＸ-->」におけるメタ情報の記述ＸＸＸからタグクラスと属性を抽出する。そして、抽出された期待値、メタ情報（タグクラスおよび属性）をテスト仕様書データ１１０に書き込む。また、属性の呼び出し回数も書き込む。
【０１１４】
図１４は、Ｗｅｂ画面ＪＳＰ１の期待値情報書き込み後のテスト仕様書データ１１０を示す説明図である。図１４において、領域１４００内のセルに期待値情報が書き込まれていることがわかる。
【０１１５】
つぎに、Ｗｅｂ画面ＪＳＰ１の操作手順記述『入力欄に「粂」を入力して、検索ボタンを押す』どおりに入力情報を与えてＨＴＴＰリクエストをＷｅｂサーバ１０１に送信すると、そのメタ情報付きレスポンスＨＴＭＬ９２０を受信する。このメタ情報付きレスポンスＨＴＭＬ９２０は、Ｗｅｂブラウザ７２１により、Ｗｅｂ画面ＪＳＰ２として表示される。このメタ情報付きレスポンスＨＴＭＬ９２０を解析することでＷｅｂ画面ＪＳＰ２に関する期待値情報を抽出する。
【０１１６】
実行ナビゲータ７２２による抽出手法は、Ｗｅｂ画面ＪＳＰ１と同様である。図１５は、Ｗｅｂ画面ＪＳＰ２の期待値情報書き込み後のテスト仕様書データ１１０を示す説明図である。図１５において、領域１５００内のセルに期待値情報が書き込まれていることがわかる。
【０１１７】
また、属性"name"，"kana"，"affiliation"，"external"，"presence"，"pageNum"は、「粂田太郎」，「クメタタロウ」，「ＢＢ部」，「在席」，「１２３４−５６７９」で最初に出現しているため、このときの呼び出し回数はそれぞれ「１」であるが、「粂照宣」，「クメテルノブ」，「ＡＡ部」，「１２３４−５６７８」，「出張中」で再度読み出されているため、このときの呼び出しを累積することにより、呼び出し回数は、「２」となる。
【０１１８】
つぎに、同様に、Ｗｅｂ画面ＪＳＰ２の操作手順記述『「粂田太郎」をクリック』どおりに入力情報を与えて、すなわち、図５に示したＷｅｂ画面ＪＳＰ２の「粂田太郎」をクリックすることで入力情報を与えてＨＴＴＰリクエストをＷｅｂサーバ１０１に送信すると、そのメタ情報付きレスポンスＨＴＭＬ９２０を受信する。このメタ情報付きレスポンスＨＴＭＬ９２０は、Ｗｅｂブラウザ７２１により、Ｗｅｂ画面ＪＳＰ３として表示される。
【０１１９】
図１６は、Ｗｅｂ画面ＪＳＰ３の一例を示す説明図である。このＷｅｂ画面ＪＳＰ３は、個人情報を表示する画面である。そして、このメタ情報付きレスポンスＨＴＭＬ９２０を解析することでＷｅｂ画面ＪＳＰ３に関する期待値情報を抽出する。
【０１２０】
実行ナビゲータ７２２による抽出手法は、Ｗｅｂ画面ＪＳＰ１，ＪＳＰ２と同様である。図１７は、Ｗｅｂ画面ＪＳＰ３の期待値情報書き込み後のテスト仕様書データ１１０を示す説明図である。図１７において、領域１７００内のセルに期待値情報が書き込まれていることがわかる。これにより、テストケースＴＣ１についての期待値情報の書き込みが完了する。
【０１２１】
このあと、テストケースＴＣ２についても同様の処理をおこなうことで、テストケースＴＣ２についても期待値情報が書き込まれることとなる。図１８は、テストケースＴＣ２の期待値情報書き込み後のテスト仕様書データ１１０を示す説明図である。図１８において、Ｗｅｂ画面ＪＳＰ１については領域１８００内のセルに期待値情報が書き込まれていることがわかる。同様に、Ｗｅｂ画面ＪＳＰ４については領域１８０１内のセルに期待値情報が書き込まれていることがわかる。
【０１２２】
図１９は、Ｗｅｂ画面ＪＳＰ４の一例を示す説明図である。これにより、テストケースＴＣ２についての期待値情報の書き込みが完了する。テストケース２の書き込みが完了することで、テスト仕様書データ１１０の作成が完了する。
【０１２３】
このあと、あらたなテストケースを追加したい場合は、参考とするテストケースＴＣｉの画面遷移仕様が記述されているセルをコピーすることで、あらたなテストケースを追加することができる。
【０１２４】
図２０は、あらたなテストケースＴＣ３の画面遷移仕様を追加したテスト仕様書データ１１０を示す説明図である。図２０においては、テストケースＴＣ１をコピーして、一部を書き換えている。すなわち、Ｗｅｂ画面ＪＳＰ１の操作手順記述を『入力欄に「粂田」を入力して、検索ボタンを押す。』に書き換え、そのＷｅｂ画面の画面名をＪＳＰ５としている。
【０１２５】
図２１は、Ｗｅｂ画面ＪＳＰ５の一例を示す説明図である。このあと、追加されたテストケースＴＣ３についても同様の処理をおこなうことで、テストケースＴＣ３についても期待値情報が書き込まれることとなる。
【０１２６】
図２２は、テストケースＴＣ３の期待値情報書き込み後のテスト仕様書データ１１０を示す説明図である。図２２において、Ｗｅｂ画面ＪＳＰ１については領域２２００内のセルに期待値情報が書き込まれていることがわかる。同様に、Ｗｅｂ画面ＪＳＰ５については領域２２０１内のセルに期待値情報が書き込まれていることがわかる。また、Ｗｅｂ画面ＪＳＰ３については領域２２０２内のセルに期待値情報が書き込まれていることがわかる。
【０１２７】
このように、この発明の実施の形態によれば、Ｗｅｂアプリケーション７１４を実行させながら各出力項目に対応する期待値を取得することができるため、出力項目単位のテスト仕様書を容易に作成することができる。また、一度作成した期待値が誤りである場合には、編集により簡単に修正することもできる。
【０１２８】
また、取得された期待値を不定値や日付フォーマット等に変更することで、実行ごとに変化する出力項目に対する判定基準を変更することができる。これにより、出力されるＨＴＭＬに日付などの不定値が入っていてもリグレッション時の結果が不当にＮＧとなることはない。また、以降のテストの検査時にエラーを検出した際も、どの項目でエラーが発生したかまでを検出できるので、テスト実施者はその後の原因究明の時間が大幅に短縮することができる。
【０１２９】
また、上述した実施の形態において、テスト仕様書データ１１０の画面遷移仕様を画面名と操作手順記述との組み合わせとしたが、画面名のみとすることもできる。ユーザ操作が不要な場合には、画面遷移仕様を画面名のみとする方がよい。この場合、図１３に示したフローチャートにおいて、ステップＳ１３０７の処理が省略されることとなる。
【０１３０】
したがって、テスト仕様書データ１１０の作成中に、テスト実施者（テスト仕様書作成者）による操作手順記述どおりに入力情報を与えるという手間を省くことができ、テスト実施者（テスト仕様書作成者）の作成負担軽減を図ることができる。
【０１３１】
これにより、Ｗｅｂアプリケーション７１４を実行させながら画面遷移と期待値からなるテスト仕様書データ１１０を表形式で作成することができる。したがって、一度実行した結果から期待値が得られるため、開発者は得られた期待値が正しいかどうかを判定するだけでよい。また、期待値が正しくない場合は編集時に期待値を正しく修正することができる。また、開発者はＪＳＰ上の項目名（画面名）のみを意識すればよいため、設計情報の項目名とのマッピングを考慮する必要がなく、開発者の負担軽減を図ることができる。
【０１３２】
以上説明したように、本発明にかかるテスト仕様書作成プログラム、該プログラムを記録した記録媒体、テスト仕様書作成装置、およびテスト仕様書作成方法によれば、容易かつ詳細なテスト仕様書を自動作成することにより、作成者の作成負担軽減を図ることができる。また、作成されたテスト仕様書のテストケースを編集可能とすることにより、テストケースのバリエーションの増加によるテストケースの網羅性向上および作成者の作成負担軽減を図ることができる。
【０１３３】
なお、本実施の形態で説明したテスト仕様書作成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１３４】
（付記１）コンピュータを、
ＷｅｂサーバにインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データを受け付ける受付手段、
前記一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むレスポンスを取得する取得手段、
前記取得手段によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値を抽出する抽出手段、
前記抽出手段によって抽出された期待値を前記画面遷移仕様に関連付けて、前記受付手段によって受け付けられたテスト仕様書データへ書き込む書き込み手段、
として機能させることを特徴とするテスト仕様書作成プログラム。
【０１３５】
（付記２）前記取得手段は、
前記出力項目と当該出力項目に関するメタ情報とを含むレスポンスを取得し、
前記抽出手段は、
前記取得手段によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値と前記メタ情報とを抽出し、
前記書き込み手段は、
前記抽出手段によって抽出された期待値とメタ情報とを前記画面遷移仕様に関連付けて書き込むことを特徴とする付記１に記載のテスト仕様書作成プログラム。
【０１３６】
（付記３）前記メタ情報は、
前記期待値を挟むタグに埋め込まれていることを特徴とする付記２に記載のテスト仕様書作成プログラム。
【０１３７】
（付記４）前記取得手段は、
前記画面遷移仕様に操作手順記述が含まれている場合、当該操作手順記述にしたがって操作することで前記Ｗｅｂ画面の遷移先Ｗｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記遷移先Ｗｅｂ画面に関するレスポンスを取得し、
前記抽出手段は、
前記取得手段によって取得された前記遷移先Ｗｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、前記遷移先Ｗｅｂ画面に関するレスポンスの中から前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を抽出し、
前記書き込み手段は、
前記抽出手段によって抽出された前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を前記遷移先Ｗｅｂ画面の画面遷移仕様に関連付けて書き込むことを特徴とする付記１〜３のいずれか一つに記載のテスト仕様書作成プログラム。
【０１３８】
（付記５）前記取得手段は、
前記Ｗｅｂ画面の遷移先Ｗｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記遷移先Ｗｅｂ画面に関するレスポンスを取得し、
前記抽出手段は、
前記取得手段によって取得された前記遷移先Ｗｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、前記遷移先Ｗｅｂ画面に関するレスポンスの中から前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を抽出し、
前記書き込み手段は、
前記抽出手段によって抽出された前記遷移先Ｗｅｂ画面に関する画面遷移仕様に対する期待値を前記遷移先Ｗｅｂ画面の画面遷移仕様に関連付けて書き込むことを特徴とする付記１〜３のいずれか一つに記載のテスト仕様書作成プログラム。
【０１３９】
（付記６）前記受付手段は、
前記一連の画面遷移仕様に類似する他の一連の画面遷移仕様の前記テスト仕様書データへの追加入力を受け付け、
前記取得手段は、
前記受付手段によって追加入力された他の一連の画面遷移仕様の中から選ばれた画面遷移仕様（以下、「追加画面遷移仕様」という）のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含む前記追加画面遷移仕様のＷｅｂ画面に関するレスポンスを取得し、
前記取得手段によって取得された前記追加画面遷移仕様のＷｅｂ画面に関するレスポンスに含まれている出力項目に基づいて、当該レスポンスの中から前記追加画面遷移仕様に対する期待値を抽出し、
前記抽出手段によって抽出された前記追加画面遷移仕様に対する期待値を前記追加画面遷移仕様に関連付けて書き込むことを特徴とする付記４または５に記載のテスト仕様書作成プログラム。
【０１４０】
（付記７）ＷｅｂサーバにインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データを受け付ける受付手段と、
前記一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むレスポンスを取得する取得手段と、
前記取得手段によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値を抽出する抽出手段と、
前記抽出手段によって抽出された期待値を前記画面遷移仕様に関連付けて、前記受付手段によって受け付けられたテスト仕様書データへ書き込む書き込み手段と、
を備えることを特徴とするテスト仕様書作成装置。
【０１４１】
（付記８）ＷｅｂサーバにインストールされるＷｅｂアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された未完成のテスト仕様書データを受け付ける受付工程と、
前記一連の画面遷移仕様の中から選ばれた画面遷移仕様のＷｅｂ画面を要求するリクエストを前記Ｗｅｂアプリケーションに与えることにより、前記Ｗｅｂアプリケーションの実行結果として得られる出力項目を含むレスポンスを取得する取得工程と、
前記取得工程によって取得されたレスポンスに含まれている出力項目に基づいて、前記レスポンスの中から前記画面遷移仕様に対する期待値を抽出する抽出工程と、
前記抽出工程によって抽出された期待値を前記画面遷移仕様に関連付けて、前記受付工程によって受け付けられたテスト仕様書データへ書き込む書き込み工程と、
を含んだことを特徴とするテスト仕様書作成方法。
【産業上の利用可能性】
【０１４２】
以上のように、本発明にかかるテスト仕様書作成プログラム、該プログラムを記録した記録媒体、テスト仕様書作成装置、およびテスト仕様書作成方法は、Ｗｅｂアプリケーション開発時におけるテスト工程に有用である。
【図面の簡単な説明】
【０１４３】
【図１】この発明の実施の形態にかかるテスト仕様書作成システムの概略構成を示す説明図である。
【図２】図１に示したコンピュータ装置のハードウェア構成を示すブロック図である。
【図３】作成開始前のテスト仕様書データを示す説明図である。
【図４】Ｗｅｂ画面ＪＳＰ１の画面例を示す説明図である。
【図５】Ｗｅｂ画面ＪＳＰ２の画面例を示す説明図である。
【図６】図１に示した各コンピュータ装置の機能的構成を示すブロック図である。
【図７】各コンピュータ装置の詳細な内部構成を示すブロック図である。
【図８】ＷｅｂサーバによるＷｅｂアプリケーション実行処理手順を示すフローチャートである。
【図９】ＷｅｂサーバによるＷｅｂアプリケーション実行処理内容を示す説明図である。
【図１０】ＷｅｂサーバによるＷｅｂアプリケーション実行処理内容を示す説明図である。
【図１１】Ｗｅｂアプリケーションの実行結果を示す説明図である。
【図１２】クライアントによるテスト仕様書作成処理手順を示すフローチャートである。
【図１３】テストケースＴＣｉの期待値情報書き込み処理の具体的な処理手順を示すフローチャートである。
【図１４】Ｗｅｂ画面ＪＳＰ１の期待値情報書き込み後のテスト仕様書データを示す説明図である。
【図１５】Ｗｅｂ画面ＪＳＰ２の期待値情報書き込み後のテスト仕様書データを示す説明図である。
【図１６】Ｗｅｂ画面ＪＳＰ３の一例を示す説明図である。
【図１７】Ｗｅｂ画面ＪＳＰ３の期待値情報書き込み後のテスト仕様書データを示す説明図である。
【図１８】テストケースＴＣ２の期待値情報書き込み後のテスト仕様書データを示す説明図である。
【図１９】Ｗｅｂ画面ＪＳＰ４の一例を示す説明図である。
【図２０】あらたなテストケースＴＣ３の画面遷移仕様を追加したテスト仕様書データを示す説明図である。
【図２１】Ｗｅｂ画面ＪＳＰ５の一例を示す説明図である。
【図２２】テストケースＴＣ３の期待値情報書き込み後のテスト仕様書データを示す説明図である。
【符号の説明】
【０１４４】
１００  テスト仕様書作成システム
１０１  Ｗｅｂサーバ
１０２  クライアント
１１０  テスト仕様書データ
６１１  通信部
６１２  実行部
６１３  特定部
６１４  生成部
６２１  受付部
６２２  取得部
６２３  抽出部
６２４  書き込み部
【図１】
2008242738.tif 000003
【図２】
2008242738.tif 000004
【図３】
2008242738.tif 000005
【図４】
2008242738.tif 000006
【図５】
2008242738.tif 000007
【図６】
2008242738.tif 000008
【図７】
2008242738.tif 000009
【図８】
2008242738.tif 000010
【図９】
2008242738.tif 000011
【図１０】
2008242738.tif 000012
【図１１】
2008242738.tif 000013
【図１２】
2008242738.tif 000014
【図１３】
2008242738.tif 000015
【図１４】
2008242738.tif 000016
【図１５】
2008242738.tif 000017
【図１６】
2008242738.tif 000018
【図１７】
2008242738.tif 000019
【図１８】
2008242738.tif 000020
【図１９】
2008242738.tif 000021
【図２０】
2008242738.tif 000022
【図２１】
2008242738.tif 000023
【図２２】
2008242738.tif 000024