(57)【要約】  計算機は、ＷｅｂコンテンツとＷｅｂコンテンツを操作するためのテストシナリオとを保持し、更新前の第１のＷｅｂコンテンツと更新後の第２のＷｅｂコンテンツとの共通部分と差部分とを抽出し、第１のＷｅｂコンテンツを操作するための第１のテストシナリオのうち、共通部分に対応するテストシナリオを抽出し、抽出された共通部分に対応するテストシナリオと、抽出された差部分に対応する新たに生成されたテストシナリオとを結合することによって、第２のＷｅｂコンテンツを操作するための第２のテストシナリオを生成する。
2012014284.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂコンテンツと、前記Ｗｅｂコンテンツを操作するためのテストシナリオとを、記憶媒体に保持する計算機における、テストシナリオ生成方法であって、
前記計算機が、前記記憶媒体に保持される更新前の第１のＷｅｂコンテンツと、更新後の第２のＷｅｂコンテンツとの共通部分と差部分とを抽出し、
前記計算機が、前記第１のＷｅｂコンテンツを操作するための第１の前記テストシナリオのうち、前記共通部分に対応する前記テストシナリオを、前記第１のテストシナリオが格納される前記記憶媒体から抽出し、
前記計算機が、前記抽出された共通部分に対応するテストシナリオと、前記抽出された差部分に対応する新たに生成されたテストシナリオとを結合することによって、前記第２のＷｅｂコンテンツを操作するための第２のテストシナリオを生成することを特徴とするテストケース生成方法。
【請求項２】
前記方法は、
前記計算機が、前記第２のＷｅｂコンテンツのうち、前記第１のＷｅｂコンテンツに追加されたＷｅｂコンテンツを、前記差部分に含め、
前記計算機が、前記第１のＷｅｂコンテンツのうち、前記第２のＷｅｂコンテンツに含まれていないＷｅｂコンテンツを、前記差部分に含めないことを特徴とする請求項１に記載のテストシナリオ生成方法。
【請求項３】
前記方法は、
前記計算機が、前記第２のＷｅｂコンテンツを取得し、
前記計算機が、前記取得された第２のＷｅｂコンテンツに基づいて、前記記憶媒体によって保持されるＷｅｂコンテンツのうち、前記第１のＷｅｂコンテンツと、前記第１のＷｅｂコンテンツを操作するための第１のテストシナリオとを、抽出することを特徴とする請求項１又は２に記載のテストシナリオ生成方法。
【請求項４】
前記方法は、
前記計算機が、前記第１のＷｅｂコンテンツと前記第２のＷｅｂコンテンツとの前記共通部分が抽出されるか否かを判定し、
前記共通部分が抽出されない場合、前記計算機が、前記抽出された差部分に対応するテストシナリオを、前記第２のテストシナリオとして新たに生成し、
前記共通部分が抽出された場合、前記計算機が、前記抽出された共通部分に対応する前記テストシナリオと、前記差部分に対応する新たに生成されたテストシナリオとを結合することによって、前記第２のテストシナリオを生成することを特徴とする請求項１から３のいずれか一項に記載のテストシナリオ生成方法。
【請求項５】
前記テストシナリオは、少なくとも一つのテストケースを含み、
前記計算機は、前記Ｗｅｂコンテンツに含まれるフォームに対応する前記テストケースを保持し、
前記方法は、
前記計算機が、前記差部分に含まれるフォームに対応する前記テストケースを取得し、
前記計算機が、前記取得されたテストケースを含む前記テストシナリオを生成することによって、前記差部分に対応するテストシナリオを生成することを特徴とする請求項１から４のいずれか一項に記載のテストシナリオ生成方法。
【請求項６】
前記計算機は、前記Ｗｅｂコンテンツを前記テストシナリオを用いて操作するための指示ファイルを保持し、
前記方法は、
前記計算機が、前記操作するための指示ファイルを、前記Ｗｅｂコンテンツに付加し、
前記計算機が、前記操作するための指示ファイルを付加された第２のＷｅｂコンテンツと前記第２のＷｅｂコンテンツを操作するためのテストシナリオとを送信することを特徴とする請求項１から５のいずれか一項に記載のテストシナリオ生成方法。
【請求項７】
前記方法は、
前記計算機が、前記テストシナリオを修正するための画面を表示するためのデータを提供し、
前記計算機が、前記画面によって修正されたテストシナリオを取得し、
前記計算機が、前記画面によって修正されたテストシナリオを保持することを特徴とする請求項１から６のいずれか一項に記載のテストシナリオ生成方法。
【請求項８】
前記計算機は、前記テストシナリオを修正するための指示ファイルを保持し、
前記方法は、
前記計算機が、前記修正するための指示ファイルと前記テストシナリオとを、前記第２のＷｅｂコンテンツに付加し、
前記計算機が、前記修正するための指示ファイルを付加された第２のＷｅｂコンテンツと前記第２のＷｅｂコンテンツを操作するためのテストシナリオとを送信することを特徴とする請求項１から７のいずれか一項に記載のテストシナリオ生成方法。
【請求項９】
Ｗｅｂコンテンツと前記Ｗｅｂコンテンツを操作するためのテストシナリオとを保持するサーバを備えるテストシナリオ生成システムであって、
前記サーバは、
更新前の第１のＷｅｂコンテンツと更新後の第２のＷｅｂコンテンツとの共通部分と差部分とを抽出し、
前記第１のＷｅｂコンテンツを操作するための第１の前記テストシナリオのうち、前記共通部分に対応する前記テストシナリオを抽出し、
前記抽出された共通部分に対応するテストシナリオと、前記抽出された差部分に対応する新たに生成されたテストシナリオとを結合することによって、前記第２のＷｅｂコンテンツを操作するための第２のテストシナリオを生成することを特徴とするテストシナリオ生成システム。
【請求項１０】
前記サーバは、
前記第２のＷｅｂコンテンツのうち、前記第１のＷｅｂコンテンツに追加されたＷｅｂコンテンツを、前記差部分に含め、
前記第１のＷｅｂコンテンツのうち、前記第２のＷｅｂコンテンツに含まれていないＷｅｂコンテンツを、前記差部分に含めないことを特徴とする請求項９に記載のテストシナリオ生成システム。
【請求項１１】
前記サーバは、
前記Ｗｅｂコンテンツを実行するクライアントと接続され、
前記第２のＷｅｂコンテンツを、前記クライアントから取得し、
前記取得された第２のＷｅｂコンテンツに基づいて、前記サーバによって保持されるＷｅｂコンテンツのうち、前記第１のＷｅｂコンテンツと、前記第１のＷｅｂコンテンツを操作するための第１のテストシナリオとを、抽出することを特徴とする請求項９又は１０に記載のテストシナリオ生成システム。
【請求項１２】
前記サーバは、
前記第１のＷｅｂコンテンツと前記第２のＷｅｂコンテンツとの前記共通部分が抽出されるか否かを判定し、
前記共通部分が抽出されない場合、前記抽出された差部分に対応するテストシナリオを、前記第２のテストシナリオとして新たに生成し、
前記共通部分が抽出された場合、前記抽出された共通部分に対応する前記テストシナリオと、前記差部分に対応する新たに生成されたテストシナリオとを結合することによって、前記第２のテストシナリオを生成することを特徴とする請求項９から１１のいずれか一項に記載のテストシナリオ生成システム。
【請求項１３】
前記テストシナリオは、少なくとも一つのテストケースを含み、
前記サーバは、前記Ｗｅｂコンテンツに含まれるフォームに対応する前記テストケースを保持し、
前記差部分に含まれるフォームに対応する前記テストケースを取得し、
前記取得されたテストケースを含む前記テストシナリオを生成することによって、前記差部分に対応するテストシナリオを生成することを特徴とする請求項９から１２のいずれか一項に記載のテストシナリオ生成システム。
【請求項１４】
Ｗｅｂコンテンツと、前記Ｗｅｂコンテンツを操作するためのテストシナリオとを保持する計算機によって実行されるテストシナリオ生成プログラムであって、
前記プログラムは、
前記計算機に、更新前の第１のＷｅｂコンテンツと更新後の第２のＷｅｂコンテンツとの共通部分と差部分とを抽出させ、
前記計算機に、前記第１のＷｅｂコンテンツを操作するための第１の前記テストシナリオのうち、前記共通部分に対応する前記テストシナリオを抽出させ、
前記計算機に、前記抽出された共通部分に対応するテストシナリオと、前記抽出された差部分に対応する新たに生成された前記テストシナリオとを結合することによって、前記第２のＷｅｂコンテンツを操作するための第２の前記テストシナリオを生成させることを特徴とするテストシナリオ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストシナリオ生成方法に関し、特にＷｅｂコンテンツをテストするためのテストシナリオを生成する方法に関する。
【背景技術】
【０００２】
近年、様々なサービスが、Ｗｅｂアプリケーションによって実現されている。Ｗｅｂアプリケーションによって提供されるサービスは、このＷｅｂブラウザのみで利用できるという便利さを持つため、Ｂ２Ｂ（Ｂｕｓｉｎｅｓｓ  ｔｏ  Ｂｕｓｉｎｅｓｓ）、Ｂ２Ｃ（Ｂｕｓｉｎｅｓｓ  ｔｏ  Ｃｏｎｓｕｍｅｒ）など、多くのシーンで利用されている。【０００３】
この様な背景から、類似のサービスがＷｅｂアプリケーションによって数多く提供され、サービス間の競争が激しくなっている。そのため、Ｗｅｂアプリケーションを早期に開発し、いち早く公開することが重要になっており、このため、Ｗｅｂアプリケーションの開発において多くの時間を要するテスト工程を自動的に行うことによって期間を短縮するための技術が求められている。【０００４】
このようなテストに関する従来技術には、Ｗｅｂブラウザ又はテストを行うマシンに、テストを自動的に行うソフトウェアをインストールし、さらに、テストの内容が含まれるスクリプトファイルを、プログラミングすることによって最初から作成するという方法がある。さらに、作成されたスクリプトファイルは、ソフトウェアがインストールされたＷｅｂブラウザ又はテストを行うマシンによって実行される。【０００５】
しかし、この従来技術には、全てのテストの内容が人間の手によって作成されるため、失念等によって、実施する必要のあるテストケースをすべて挙げることができない場合がある。この場合において、テストを十分に実施することなくＷｅｂアプリケーションが公開され、問題が発生するという課題がある。また、テストの結果が、Ｗｅｂブラウザ上でテスト実施者が目視できるように表示されず、テキストベースによるログで出力されるといった課題があった。【０００６】
さらに、Ｗｅｂアプリケーションのうちの、更に多くのツールは、Ｗｅｂブラウザ上で行われる操作の過程のうち、サーバ側に送られるリクエストをテストしているものである。このため、Ｗｅｂブラウザ上で、最終的にどのように表示されるのかを確認するテストには、Ｗｅｂブラウザ上に表示されるＧＵＩを人の手で操作し、出力画面を目視で確認するという方法が一般的に用いられる。【０００７】
また、特許文献１には、Ｗｅｂブラウザ上で表示されるＧＵＩとは異なる、あるＯＳ上で動作するＧＵＩのソフトウェアを自動的に操作し、テストする技術が開示されている。特許文献１に開示される技術によれば、ＧＵＩ画面を示すファイルを予め書いておき、ＧＵＩ画面にテストを自動で行えるスクリプトファイルを作成することができる。【０００８】
しかし、特許文献１に開示される技術には、ＯＳ上で直接動作するＧＵＩのソフトウェアに対して適用できるが、Ｗｅｂブラウザ上で動作するＧＵＩに対しては適用することができないという課題がある。またテスト時にどのような操作が行われているのかを目で確認することができないという課題もある。【０００９】
更に、特許文献２には、Ｗｅｂブラウザ上で行った操作を記録及び再生する技術が開示されている。特許文献２に開示される技術によれば、Ｗｅｂブラウザ上にＪａｖａＳｃｒｉｐｔを用いたプログラムを挿入することによって、Ｗｅｂブラウザ上で行った操作を記録及び再生することができる。ただし、ＷｅｂブラウザのＧＵＩに対するテストを最初から実行する必要があり、テストの結果を目で確認することはできるが、テスト工程を短縮することはできない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−３２３５７３号公報
【特許文献２】特開２００８−１１７０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明が解決しようとする課題は、以下の２点である。【００１２】
一つ目の課題は、既に公開されている既存のＷｅｂコンテンツを用いることによって、新しいＷｅｂコンテンツを開発する際のテスト工程を短縮させることである。従来技術では、既存のＷｅｂコンテンツをテストした際に用いた、自動的にテストするためのスクリプトファイルを、新しいＷｅｂコンテンツをテストするために、人の手によって再編集していた。このため、スクリプトファイルを作成するためのテスト工程が長期間になるという課題がある。【００１３】
二つ目の課題は、Ｗｅｂコンテンツに対するテストの漏れを防ぐことである。テストで実施される観点は三つ（正常、異常、及び、境界値条件）ある。Ｗｅｂコンテンツには数多くの要素（例えば、ＧＵＩにおけるフォーム）が使用されており、テスト実施者は、個々の要素に対する正常、異常、及び、境界値条件のうち、一つ、又は少なくとも二つを組み合わせ、Ｗｅｂコンテンツに対するテストケースを生成する。そして、テスト実施者は、生成された個々のテストケースに対応する、スクリプトファイルを生成する。【００１４】
このため一般的に公開されるＷｅｂコンテンツには、数多くのテストケースが存在するため、これらの一般的に公開されるＷｅｂコンテンツから導出されるテストケースには、適切に挙げられないテストケースが存在しやすい。この結果、新たなＷｅｂコンテンツ品質が、テスト後においても低いという課題がある。
【課題を解決するための手段】
【００１５】
本発明の代表的な一形態によると、Ｗｅｂコンテンツと、前記Ｗｅｂコンテンツを操作するためのテストシナリオとを、記憶媒体に保持する計算機における、テストシナリオ生成方法であって、前記計算機が、前記記憶媒体に更新前の第１のＷｅｂコンテンツと、更新後の第２のＷｅｂコンテンツとの共通部分と差部分とを抽出し、前記計算機が、前記第１のＷｅｂコンテンツを操作するための第１の前記テストシナリオのうち、前記共通部分に対応する前記テストシナリオを、前記第１のテストシナリオが格納される記憶媒体から抽出し、前記計算機が、前記抽出された共通部分に対応するテストシナリオと、前記抽出された差部分に対応する新たに生成されたテストシナリオとを結合することによって、前記第２のＷｅｂコンテンツを操作するための第２のテストシナリオを生成する。
【発明の効果】
【００１６】
本発明の一実施形態によると、既存のＷｅｂコンテンツに基づいて作成されたＷｅｂコンテンツの開発に要するテスト工数を削減し、かつ、作成されたＷｅｂコンテンツの品質を向上させる。
【図面の簡単な説明】
【００１７】
【図１Ａ】本発明の実施形態のクライアント装置に備わる主記憶装置を示すブロック図である。
【図１Ｂ】本発明の実施形態のクライアント装置の主記憶装置に含まれるプログラムを示すブロック図である。
【図１Ｃ】本発明の実施形態のクライアント装置に備わる補助記憶装置を示すブロック図である。
【図１Ｄ】本発明の実施形態のサーバ装置に備わる主記憶装置を示すブロック図である。
【図１Ｅ】本発明の実施形態のサーバ装置に備わる補助記憶装置を示すブロック図である。
【図１Ｆ】本発明の実施形態のサーバ装置に備わる補助記憶装置を示すブロック図である。
【図２】本発明の実施形態の補助記憶装置に保持されるＷｅｂコンテンツの例を示す説明図である。
【図３】本発明の実施形態の補助記憶装置に保持される操作ログを示す説明図である。
【図４】本発明の実施形態のＷｅｂブラウザにおいて行われた操作を記録する処理、及び、サーバ装置に記録結果を格納する処理を示すシーケンス図である。
【図５】本発明の実施形態の操作記録をするＷｅｂコンテンツを取得する処理を示すフローチャートである。
【図６】本発明の実施形態のＷｅｂコンテンツを実行時に操作を記録する処理を示すフローチャートである。
【図７】本発明の実施形態の操作と操作ログとの関係を示す説明図である。
【図８】本発明の実施形態のサーバ装置に操作ログを格納する処理を示すフローチャートである。
【図９】本発明の実施形態の更新したＷｅｂコンテンツに対するテストケースを自動生成する処理を示すシーケンス図である。
【図１０】本発明の実施形態のテストケースを生成されるＷｅｂコンテンツを、クライアント装置に入力するための画面を示す説明図である。
【図１１】本発明の実施形態のコンテンツ解析処理を示すフローチャートである。
【図１２Ａ】本発明の実施形態のテストケースを生成する処理を示すフローチャートである。
【図１２Ｂ】本発明の実施形態のテストケースを生成する処理を示すフローチャートである。
【図１３】本発明の実施形態のテストケース定義ファイルを示す説明図である。
【図１４】本発明の実施形態のテストケースを修正するための画面を示す説明図である。
【図１５】本発明の実施形態のテストケースの値を修正するための画面を示す説明図である。
【図１６】本発明の実施形態のクライアント装置によって修正されたテストケース及び操作ログを格納する処理を示すフローチャートである。
【図１７】本発明の実施形態のサーバ装置に保持されるＷｅｂコンテンツ及びＷｅｂコンテンツに対応する操作ログを、クライアント装置において再生する処理を示すシーケンス図である。
【図１８】本発明の実施形態の操作を再生するための情報の取得処理を示すフローチャートである。
【図１９】本発明の実施形態の操作を再生する処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１９】
図１Ａは、本発明の実施形態のＷｅｂ画面のテストケース自動生成システムの構成を示すブロック図である。
【００２０】
本発明の実施形態のテストケース自動生成システムは、クライアント装置２００、サーバ装置１０、及び、ネットワーク１９０を備える。クライアント装置２００は、テスト実施者が使用する装置である。サーバ装置１０は、クライアント装置２００から送られる要求に従って、Ｗｅｂ画面のテストケースを自動生成する。クライアント装置２００及びサーバ装置１０は、ネットワーク１９０を介して接続された計算機システムに含まれる。
【００２１】
クライアント装置２００は、通信インタフェース２１０を介してネットワーク１９０に接続され、サーバ装置１０は、通信インタフェース１８０を介してネットワーク１９０に接続される。ネットワーク１９０は、データを転送可能な通信路であり、ＴＣＰ／ＩＰを用いたＬＡＮ（ローカルエリアネットワーク）、イーサネット、インターネット、又は、無線通信ネットワーク等でもよい。
【００２２】
（クライアント装置２００の構成）
クライアント装置２００は、ＣＰＵ（中央処理演算装置）２２０、主記憶装置（メモリ）２４０、入出力装置２３０、通信インタフェース２１０及び補助記憶装置２５０を備える計算機である。クライアント装置２００に備わる各要素は、内部バスによって接続される。
【００２３】
ＣＰＵ２２０は、主記憶装置２４０に保持されるプログラムを実行する演算装置である。補助記憶装置２５０は、プログラムの実行に伴って生成されるデータ、又は、プログラムに使用されるデータを保持する。また、入出力装置２３０は、ユーザインタフェースを提供するキーボード、マウス又は表示装置等の装置である。
【００２４】
図１Ｂは、本発明の実施形態のクライアント装置２００の主記憶装置２４０に含まれるプログラムを示すブロック図である。
【００２５】
主記憶装置２４０は、Ｗｅｂブラウザ（Ｗｅｂコンテンツ表示部）２６０、操作記録／操作再生スクリプト部２７０、及び、テストケース修正スクリプト部２８０を保持する。ＣＰＵ２２０は、主記憶装置２４０に格納されたＷｅｂブラウザ２６０、操作記録／操作再生スクリプト部２７０、テストケース修正スクリプト部２８０のプログラムを実行する演算装置である。
【００２６】
図１Ｃは、本発明の実施形態のクライアント装置２００に備わる補助記憶装置２５０を示すブロック図である。
【００２７】
補助記憶装置２５０は、前述のＷｅｂコンテンツ２９０及び操作ログ（スクリプトファイル）３００を保持する記憶装置である。
【００２８】
Ｗｅｂブラウザ２６０は、サーバ装置１０から送信され、クライアント装置２００によって受信されたコンテンツデータを、表示装置に出力する機能を有する。受信されたコンテンツデータは、補助記憶装置２５０に保持されるＷｅｂコンテンツ２９０に格納される。
【００２９】
操作記録／操作再生スクリプト部２７０は、サーバ装置１０から送信され、クライアント装置２００によって受信されたコンテンツデータに含まれるスクリプトファイルをテスト実施者が実行する際に、テスト実施者によってＷｅｂブラウザ２６０上で行われた操作を、記録及び再生する機能並びにサーバ装置１０から操作ログ３００を取得及び記録する機能を有する。なお、本実施形態では、スクリプトファイルとしてＪａｖａスクリプトファイルを適用する。
【００３０】
テストケース修正スクリプト部２８０は、サーバ装置１０から送信され、クライアント装置２００によって受信された後述の操作ログ１５０を修正する機能を有する。また、テストケース修正スクリプト部２８０は、テストケース修正スクリプト部２８０によって修正された操作ログ１５０を、補助記憶装置２５０に保持される操作ログ３００に格納する機能と、サーバ装置１０へ操作ログ３００を送信する機能とを有する。
【００３１】
（サーバ装置１０の構成）
サーバ装置１０は、ＣＰＵ１６０、主記憶装置２０、補助記憶装置３０、補助記憶装置４０、入出力装置１７０及び通信インタフェース１８０を備える計算機である。サーバ装置１０が備える各要素は、内部バスによって接続される。ＣＰＵ１６０は、主記憶装置２０に保持されるプログラムを実行する演算装置である。
【００３２】
図１Ｄは、本発明の実施形態のサーバ装置１０に備わる主記憶装置２０を示すブロック図である。
【００３３】
主記憶装置２０は、操作記録／操作再生スクリプト埋込部５０、テストケース自動生成部６０、アプリケーションサーバ部７０及びＨＴＴＰサーバ部８０などのプログラムを保持する。また、主記憶装置２０は、一時的にデータを記憶できる記憶領域を持つ。
【００３４】
図１Ｅは、本発明の実施形態のサーバ装置１０に備わる補助記憶装置３０を示すブロック図である。
【００３５】
補助記憶装置３０は、Ｗｅｂコンテンツ１１０、操作記録スクリプト１２０、操作再生スクリプト１３０、テストケース修正スクリプト９０及びテストケース定義ファイル１００を保持する記憶媒体である。
【００３６】
Ｗｅｂコンテンツ１１０とは、例えば、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）によって記載されるドキュメントファイルである。Ｗｅｂコンテンツ１１０によって、テスト実施者が操作可能な画面がＷｅｂブラウザ２６０に表示される。
【００３７】
操作記録スクリプト１２０とは、例えば、Ｊａｖａスクリプトによって記載されるドキュメントファイルである。操作記録スクリプト１２０は、Ｗｅｂブラウザ２６０上で行われる操作を、クライアント装置２００の補助記憶装置２５０に操作ログ３００として格納する機能を有する。また、Ｗｅｂブラウザ２６０上で行われる操作を、サーバ装置１０の補助記憶装置４０に保持される操作ログ１５０に格納する機能を有する。
【００３８】
操作再生スクリプト１３０とは、例えば、Ｊａｖａスクリプトによって記載されるドキュメントファイルである。操作再生スクリプト１３０は、サーバ装置１０の補助記憶装置４０が保持する操作ログ１５０の内容を、クライアント装置２００のＷｅｂブラウザ２６０において再生する機能を有する。
【００３９】
テストケース修正スクリプト９０とは、Ｊａｖａスクリプトによって記載されるドキュメントファイルである。テストケース修正スクリプト９０は、クライアント装置２００に備わる補助記憶装置２５０が保持する操作ログ３００、又は、サーバ装置１０によって送られる操作ログ１５０を修正する機能を有する。また、修正した操作ログ３００又は操作ログ１５０を、サーバ装置１０の操作ログ３００へ格納する機能を有する。
【００４０】
図１Ｆは、本発明の実施形態のサーバ装置１０に備わる補助記憶装置４０を示すブロック図である。
【００４１】
補助記憶装置４０は、Ｗｅｂコンテンツ１４０、及び、操作ログ（スクリプトファイル）１５０を保持する記憶媒体である。本実施形態の補助記憶装置４０は、データベースによってデータを保持する。
【００４２】
Ｗｅｂコンテンツ１４０とは、Ｗｅｂブラウザ２６０における操作を記録されたＷｅｂコンテンツを示す。Ｗｅｂコンテンツ１４０は、補助記憶装置４０に文字列情報として格納される。操作ログ１５０は、Ｗｅｂコンテンツ１４０に対応する操作を示す情報である。操作ログ１５０は、実行可能なスクリプトファイルである。
【００４３】
Ｗｅｂコンテンツ１４０と操作ログ１５０とは、各々対応しており、Ｗｅｂコンテンツ１４０には一意の識別子が付加される。
【００４４】
補助記憶装置３０に保持されるＷｅｂコンテンツ１１０は、原本であり、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０と対応する。テスト実施者は、Ｗｅｂコンテンツ１１０の内容を更新した後、更新後のＷｅｂコンテンツを操作記録又はテストする場合がある。このため、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０には、クライアント装置２００において操作記録又はテストに用いられたＷｅｂコンテンツが格納される。
【００４５】
（Ｗｅｂコンテンツ１４０及び操作ログ１５０）
図２は、本発明の実施形態の補助記憶装置４０に保持されるＷｅｂコンテンツ１４０の例を示す説明図である。
【００４６】
Ｗｅｂコンテンツ１４０は、識別子１３１０、ＵＲＬ１３２０、及び、データ１３３０を含む。識別子１３１０は、各Ｗｅｂコンテンツ１４０に一意に付与された識別子である。
【００４７】
ＵＲＬ１３２０は、Ｗｅｂコンテンツ１４０を示す名称であり、Ｗｅｂコンテンツ１４０を格納するリソース（サーバ、フォルダなど）を示す文字列を含んでもよい。データ１３３０は、Ｗｅｂコンテンツ１４０の内容であり、具体的なスクリプトが格納される。図２に示すデータ１３３０は、Ｗｅｂコンテンツ１４０をｈｔｍｌによって記載した場合の例である。
【００４８】
なお、サーバ装置１０に備わるＷｅｂコンテンツ１４０とクライアント装置２００に備わるＷｅｂコンテンツ２９０とは、同じ内容を含む。
【００４９】
図３は、本発明の実施形態の補助記憶装置４０に保持される操作ログ１５０を示す説明図である。
【００５０】
操作ログ１５０は、識別子１３１０、イベント１３４０、及び、データ１３５０を含む。操作ログ１５０に含まれる識別子１３１０は、Ｗｅｂコンテンツ１４０に含まれる１３１０に対応する。同じ識別子１３１０の行は、同じＷｅｂコンテンツ１４０における操作を示す。
【００５１】
イベント１３４０は、Ｗｅｂコンテンツ１４０が実行された際に、Ｗｅｂコンテンツ１４０に含まれるフォームに行われる操作の内容を示す。データ１３５０は、イベント１３４０の対象になるフォーム、又は、入力される値などを含む。例えば、操作ログ１５０のイベント１３４０が"ｏｎＣｌｉｃｋ"であり、データ１３５０が"ＲａｄｉｏＢｕｔｔｏｎ"である場合、その操作ログ１５０は、ラジオボタンをクリックした操作であることを示す。
【００５２】
ここでフォームとは、例えば、ＷｅｂコンテンツをＨＴＭＬによって作成する場合に、Ｗｅｂコンテンツに含まれる、リストボックス、テキストボックス、又は、ダイアログボックスといった、操作の対象を示す。
【００５３】
なお、サーバ装置１０に備わる操作ログ１５０とクライアント装置２００に備わる操作ログ３００とは、同じ内容を含む。
【００５４】
（アプリケーションサーバ部７０及びＨＴＴＰサーバ部８０）
ＨＴＴＰサーバ部８０は、ネットワーク１９０を介してクライアント装置２００によって送られたＨＴＴＰリクエストを受信する。その後、受信したＨＴＴＰリクエストに含まれるクライアント装置２００からの要求又はデータを抽出し、抽出された要求又はデータをアプリケーションサーバ部７０へ送る。
【００５５】
また、アプリケーションサーバ部７０による処理が完了した後、ＨＴＴＰサーバ部８０は、クライアント装置２００から送られたＨＴＴＰリクエストに対して、アプリケーションサーバ部７０から受信した処理結果が挿入されたＨＴＴＰレスポンスを生成し、ネットワーク１９０を介して、生成されたＨＴＴＰレスポンスをクライアント装置２００に送る。
【００５６】
アプリケーションサーバ部７０は、クライアント装置２００によって送られたＨＴＴＰリスクエスト（要求）の内容に従って、操作記録／操作再生スクリプト埋込部５０、又は、テストケース自動生成部６０に要求又はデータを送り、その結果を受信する。
【００５７】
クライアント装置２００によって送られた要求が、操作記録及び／又は操作再生を行う処理の要求である場合、又は、操作ログ等を格納する要求である場合、アプリケーションサーバ部７０は、操作記録／操作再生スクリプト埋込部５０へ要求を渡す。
【００５８】
操作記録／操作再生スクリプト埋込部５０は、クライアント装置２００から送られた要求が、クライアント装置２００においてＷｅｂブラウザ２６０において行われる操作を記録する要求である場合、補助記憶装置３０からＷｅｂコンテンツ１１０と操作記録スクリプト１２０とを取得する。そして、操作記録／操作再生スクリプト埋込部５０は、後述の処理を行った後、Ｗｅｂコンテンツ１１０と操作記録スクリプト１２０とを、処理の結果としてアプリケーションサーバ部７０に送る。
【００５９】
また、操作記録／操作再生スクリプト埋込部５０は、クライアント装置２００から送られた要求が、クライアント装置２００においてＷｅｂブラウザ２６０上で操作を再生する要求である場合、補助記憶装置３０に保持される操作再生スクリプト１３０、及び、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０と操作ログ１５０とを取得する。そして、操作記録／操作再生スクリプト埋込部５０は、後述の処理を行った後、取得された操作再生スクリプト１３０、Ｗｅｂコンテンツ１４０及び操作ログ１５０を、処理の結果として、アプリケーションサーバ部７０に送る。
【００６０】
クライアント装置２００から送られた要求が、テストケースを自動的に生成する要求を含む場合、アプリケーションサーバ部７０は、テストケース自動生成部６０へ要求を送る。テストケース自動生成部６０は、アプリケーションサーバ部７０から要求を受信すると、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０と操作ログ１５０とを取得する。
【００６１】
そして、テストケース自動生成部６０は、後述の処理を行った後、取得されたＷｅｂコンテンツ１４０と操作ログ１５０とを、処理の結果としてアプリケーションサーバ部７０へ送る。さらに、アプリケーションサーバ部７０は、ＨＴＴＰサーバ部８０を介して、クライアント装置２００へ取得されたＷｅｂコンテンツ１４０と操作ログ１５０とを送る。
【００６２】
本実施形態のアプリケーションサーバ部７０及びＨＴＴＰサーバ部８０は、常に前述のように、クライアント装置２００から送信される要求を操作記録／操作再生スクリプト埋込部５０又はテストケース自動生成部６０に送り、操作記録／操作再生スクリプト埋込部５０又はテストケース自動生成部６０からの結果をクライアント装置２００に送る。
【００６３】
（テストケース自動生成の処理概要）
以下に、本実施形態のシステムのテストケース自動生成処理の概要を示す。
【００６４】
テストケースを自動的に生成するため、本実施形態のシステムは、Ｗｅｂコンテンツ２９０がクライアント装置２００において実行された際に、テスト実施者が行ったテストに関する操作ログ３００を記録し、サーバ装置１０の補助記憶装置４０にあらかじめ保持する。
【００６５】
そして、クライアント装置２００が更新後のＷｅｂコンテンツ２９０のテストケースを生成する要求を、サーバ装置１０に送信した際に、本実施形態のサーバ装置１０は、あらかじめ保持されていた操作ログ１５０に基づいて、新たなテストケースを生成し、さらに、クライアント装置２００に送る。クライアント装置２００は、送られたテストケースを必要に応じて修正し、修正されたテストケースと対応するＷｅｂコンテンツ２９０（Ｗｅｂコンテンツ１４０）とを登録する要求を、サーバ装置１０に送る。
【００６６】
さらに、クライアント装置２００は、操作の自動再生をサーバ装置１０に要求する。サーバ装置１０は、クライアント装置２００からの要求に従って、Ｗｅｂコンテンツ１４０（Ｗｅｂコンテンツ２９０）に対応する操作ログ１５０をクライアント装置２００に送信する。クライアント装置２００は、サーバ装置１０によって送信された操作ログ１５０に基づいて、Ｗｅｂコンテンツ２９０を自動再生する。これによって、本実施形態のシステムは、自動的に生成されたテストケースを、実行することができる。
【００６７】
以下において、操作の記録処理、テストケースの自動生成処理、及び、操作の再生処理を説明する。
【００６８】
（操作の記録処理）
以下に、本実施形態のシステムのＷｅｂブラウザ２６０における操作を記録する処理を示す。
【００６９】
図４は、本発明の実施形態のＷｅｂブラウザ２６０において行われた操作を記録する処理、及び、サーバ装置１０に記録結果を格納する処理を示すシーケンス図である。
【００７０】
テスト実施者は、特定のＷｅｂコンテンツのテストケースを生成する場合、まず、ＷｅｂコンテンツをＷｅｂブラウザ２６０において実行した際の操作を記録する。テスト実施者は、クライアント装置２００によって、特定のＷｅｂコンテンツと、操作を記録する要求とをサーバ装置１０に送る（３１０）。
【００７１】
なお、操作を記録されるＷｅｂコンテンツが、あらかじめ補助記憶装置３０のＷｅｂコンテンツ１１０に格納されている場合、クライアント装置２００は、シーケンス３１０において、操作を記録されるＷｅｂコンテンツを示す情報（ファイル名、識別子等）をサーバ装置１０に送ってもよい。また、操作を記録されるＷｅｂコンテンツが、クライアント装置２００の補助記憶装置２５０に格納されていない場合、シーケンス３１０において操作を記録されるＷｅｂコンテンツを、補助記憶装置２５０に格納してもよい。
【００７２】
サーバ装置１０は、特定のＷｅｂコンテンツ又はＷｅｂコンテンツを示す情報と、操作を記録する要求とを、クライアント装置２００から、前述の通り、ＨＴＴＰサーバ部８０及びアプリケーションサーバ部７０によって受信する。そして、クライアント装置２００から送信された要求が、操作を記録する要求であるため、アプリケーションサーバ部７０は、受信した要求等を、操作記録／操作再生スクリプト埋込部５０に送る。
【００７３】
その後（３２０）、操作記録／操作再生スクリプト埋込部５０は、送られたＷｅｂコンテンツに対応するＷｅｂコンテンツ１１０が補助記憶装置３０に保持される場合、クライアント装置２００から送られたＷｅｂコンテンツ又はＷｅｂコンテンツを示す情報に対応するＷｅｂコンテンツ１１０を取得する（３３０）。
【００７４】
さらに、サーバ装置１０の操作記録／操作再生スクリプト埋込部５０は、補助記憶装置３０に保持される操作記録スクリプト１２０を取得する（３４０）。操作記録／操作再生スクリプト埋込部５０は、操作を記録されるＷｅｂコンテンツ１１０と、操作記録スクリプト１２０とを取得した後、操作記録／操作再生スクリプト埋込部５０によって、取得されたＷｅｂコンテンツ１１０に操作記録スクリプト１２０を付加する。
【００７５】
さらに操作記録／操作再生スクリプト埋込部５０は、クライアント装置２００によって送信されたＷｅｂコンテンツ、又は、補助記憶装置３０から取得されたＷｅｂコンテンツ１１０に一意な識別子を付与し、補助記憶装置４０のＷｅｂコンテンツ１４０に格納する（３５０）。
【００７６】
なお、シーケンス３５０において付与される識別子は、同じファイル名を持つＷｅｂコンテンツ１４０に一意に付与されてもよい。すなわち、識別子は、バージョンが異なるが同じ名称のＷｅｂコンテンツ１４０に一意に付与されてもよいし、Ｗｅｂコンテンツ１４０のバージョン毎に付与されてよい。
【００７７】
ただし、バージョンが異なるが同じ名称のＷｅｂコンテンツ１４０に一意に識別子を付与する場合、サーバ装置１０には、管理者等によって、クライアント装置２００に送るＷｅｂコンテンツ１４０のバージョンをあらかじめ設定される。例えば、サーバ装置１０には、常に最新のバージョンのＷｅｂコンテンツ１４０を、クライアント装置２００に送信するように、あらかじめ設定される。
【００７８】
シーケンス３３０及び３４０によって、サーバ装置１０は、操作を記録されるＷｅｂコンテンツ１４０と、操作記録スクリプト１２０とを、あわせてクライアント装置２００に送信することができる。
【００７９】
サーバ装置１０は、シーケンス３３０、３４０及び３５０の後、操作を記録されるＷｅｂコンテンツ１４０と、操作記録スクリプト１２０と、Ｗｅｂコンテンツ１４０を一意に示す識別子とを、クライアント装置２００に送信する。なお、サーバ装置１０は、前述の通り、アプリケーションサーバ部７０及びＨＴＴＰサーバ部８０を介して、操作を記録されるＷｅｂコンテンツ１４０等を、クライアント装置２００に送信する。
【００８０】
クライアント装置２００は、サーバ装置１０からＷｅｂコンテンツ１４０と、操作記録スクリプト１２０と、Ｗｅｂコンテンツ１４０を一意に示す識別子とを受信した後、サーバ装置１０から送られたＷｅｂコンテンツ１４０を、受信した識別子とともに、補助記憶装置２５０のＷｅｂコンテンツ２９０に格納する。
【００８１】
そしてクライアント装置２００は、操作を記録されるＷｅｂコンテンツ２９０を、Ｗｅｂブラウザ２６０によって実行する（３６０）。そして操作記録／操作再生スクリプト部２７０は、テスト実施者がＷｅｂコンテンツ２９０をテストする際に行う操作を、操作記録スクリプト１２０を実行することによって記録する（３７０）。クライアント装置２００は、シーケンス３７０において取得された操作ログを、操作ログ３００に格納する。
【００８２】
クライアント装置２００は、シーケンス３７０において取得された操作ログ３００と、Ｗｅｂコンテンツ２９０の識別子と、操作ログ３００の格納の要求とを、サーバ装置１０に送信する（３８０）。
【００８３】
サーバ装置１０は、クライアント装置２００から操作ログ３００と、Ｗｅｂコンテンツ２９０の識別子と、操作ログ３００の格納の要求を、前述の通り、アプリケーションサーバ部７０及びＨＴＴＰサーバ部８０を介して、受信する。その後（３９０）、操作記録／操作再生スクリプト埋込部５０は、受信した操作ログ３００を、同じく受信したＷｅｂコンテンツ２９０の識別子に基づいて、補助記憶装置４０の操作ログ１５０に格納する（４００）。具体的には、受信したＷｅｂコンテンツ２９０の識別子が示すＷｅｂコンテンツ１４０に対応する操作ログ１５０に、受信した操作ログ３００を格納する。
【００８４】
その後、サーバ装置１０は、処理結果をクライアント装置２００に送信する。処理結果には、操作を記録したＷｅｂコンテンツ２９０の識別子と、操作ログ３００を格納した旨が含まれる。これによって、補助記憶装置２５０のＷｅｂコンテンツ２９０及び操作ログ３００と、補助記憶装置４０のＷｅｂコンテンツ１４０及び操作ログ１５０とは、同期される。
【００８５】
図４に示す処理のとおり、更新前のＷｅｂコンテンツの操作ログ１５０をあらかじめ取得することによって、テスト実施者が更新後のＷｅｂコンテンツのテストケースを新たに作成する場合、クライアント装置２００は、基準となる操作ログ１５０を取得することができる。
【００８６】
図５は、本発明の実施形態の操作記録をするＷｅｂコンテンツを取得する処理を示すフローチャートである。
【００８７】
図５は、図４に示すステップ３２０を示すフローチャートである。図５に示す処理によれば、クライアント装置２００から記録を要求されたＷｅｂコンテンツ１４０に、操作記録スクリプト１２０を、付加することができる。
【００８８】
図４に示すシーケンス３１０の後、特定のＷｅｂコンテンツ又はＷｅｂコンテンツを示す情報と、操作を記録する要求とをクライアント装置２００から受信した後、サーバ装置１０の操作記録／操作再生スクリプト埋込部５０は、図５に示す処理を開始する（６１０）。操作記録／操作再生スクリプト埋込部５０は、クライアント装置２００から送られたＷｅｂコンテンツ、又は、Ｗｅｂコンテンツを示す情報を用いて、補助記憶装置３０に保持されるＷｅｂコンテンツ１１０のうち、クライアント装置２００から要求されたＷｅｂコンテンツに対応するＷｅｂコンテンツ１１０を取得する（６２０）。
【００８９】
ステップ６２０の後、操作記録／操作再生スクリプト埋込部５０は、取得されたＷｅｂコンテンツ１１０に、同じく補助記憶装置３０から取得された操作記録スクリプト１２０を付加する（６３０）。そして操作記録／操作再生スクリプト埋込部５０は、操作を記録されるＷｅｂコンテンツ１１０に、一意な識別子を付与する（６４０）。そして操作記録／操作再生スクリプト埋込部５０は、識別子を付与されたＷｅｂコンテンツ１１０を、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０に格納する（６５０）。
【００９０】
サーバ装置１０は、ステップ６５０の後、操作を記録されるＷｅｂコンテンツ１１０をクライアント装置２００へ送り、処理を終了する（６６０）。
【００９１】
図６は、本発明の実施形態のＷｅｂコンテンツ２９０の実行時に操作を記録する処理を示すフローチャートである。
【００９２】
図６は、図４に示すシーケンス３７０を示すフローチャートである。ここでは、Ｗｅｂブラウザ２６０において実行されたＷｅｂコンテンツに、テスト実施者が行った操作に対応する操作ログ３００を記録する処理を示す。
【００９３】
図４のシーケンス３７０において、Ｗｅｂコンテンツ２９０が実行されると、図６に示す処理が開始される（６７０）。まず、テスト実施者が、実行されたＷｅｂコンテンツ２９０を操作すると（６８０）、操作記録／操作再生スクリプト部２７０が操作記録スクリプト１２０を実行することによって、操作内容を操作ログ（スクリプトファイル）３００に記録する（６９０）。
【００９４】
具体的には、操作記録／操作再生スクリプト部２７０は、操作記録スクリプト１２０によって、Ｗｅｂコンテンツ２９０が実行中、Ｗｅｂコンテンツ２９０が操作されているか否かを判定する。そして、Ｗｅｂコンテンツ２９０が操作された場合、操作記録／操作再生スクリプト部２７０は、その操作を操作ログ３００に記録する。
【００９５】
また、操作記録／操作再生スクリプト部２７０は、実行可能なスクリプトファイルとして操作内容を操作ログ３００に記録する。これは、操作記録／操作再生スクリプト部２７０によって記録された操作ログ３００を、クライアント装置２００が実行することによって、操作内容を再生できるようにするためである。
【００９６】
そして、テスト実施者は、Ｗｅｂコンテンツ２９０への操作が終了したか否かを判定し（７００）、操作が終了していない場合、ステップ６８０に戻る。そして、操作が終了した場合、処理を終了する（７１０）。
【００９７】
図７は、本発明の実施形態の操作と操作ログ３００との関係を示す説明図である。
【００９８】
操作記録／操作再生スクリプト部２７０は、図４に示すシーケンス３７０において、Ｗｅｂコンテンツ２９０が実行されたＷｅｂブラウザ２６０にテスト実施者が行う操作を、操作ログ３００に記録する。
【００９９】
図７は、ＷｅｂコンテンツによってＷｅｂブラウザ２６０に表示される画面を示す。図７に示すＷｅｂブラウザ２６０に表示される画面は、名前領域１２８１、性別領域１２８２、職業領域１２８３、及び、登録領域１２８４を含む。名前領域１２８１は、テキストボックスのフォームであり、性別領域１２８２はラジオボタンのフォームであり、職業領域１２８３はリストボックスの領域であり、登録領域１２８４はボタンのフォームである。
【０１００】
例えば、テスト実施者が、名前領域１２８１のテキストボックスに「ＪＯＨＮ  ＳＭＩＴＨ」と入力した場合（操作Ａ）、操作記録／操作再生スクリプト部２７０は、操作ログ３００のイベント１３４０に"ｃｈａｎｇｅｄ"を記録し、データ１３５０に"ＴｅｘｔＢｏｘ＃１：ＪＯＨＮ  ＳＭＩＴＨ"を記録する。
【０１０１】
さらに例えば、テスト実施者が、性別領域１２８２のラジオボタンのうち、"男性"へカーソルを動かし、"男性"を選択した場合（操作Ｂ）、操作記録／操作再生スクリプト部２７０は、イベント１３４０に"ｏｎＣｌｉｃｋ"を記録し、データ１３５０に"ＲａｄｉｏＢｕｔｔｏｎ"を記録する。また、操作Ｂにおいて、イベント１３４０に"ｃｈａｎｇｅｄ"を記録し、データ１３５０に"ＲａｄｉｏＢｕｔｔｏｎ＃１：ｃｈｅｃｋ"を記録する。
【０１０２】
図８は、本発明の実施形態のサーバ装置１０に操作ログを格納する処理を示すフローチャートである。
【０１０３】
図８は、図４のシーケンス３９０に示す処理である。また、クライアント装置２００によって送られた操作ログ３００を、補助記憶装置４０に保持される操作ログ１５０に格納する処理である。
【０１０４】
サーバ装置１０は、クライアント装置２００によって操作ログ３００と、Ｗｅｂコンテンツ２９０を示す識別子と、操作ログ３００の格納の要求とを受信した後、図８に示す処理を開始する（７２０）。７２０の後、サーバ装置１０に備わる操作記録／操作再生スクリプト埋込部５０は、クライアント装置２００から送られた操作ログ３００、及び、Ｗｅｂコンテンツ２９０を示す識別子を取得し（７３０、７４０）、取得した識別子に対応するＷｅｂコンテンツ１４０と対応するように、操作ログ３００を操作ログ１５０に格納する。
【０１０５】
（テストケースの自動生成処理）
（概要）
テスト実施者は、クライアント装置２００に備わるＷｅｂブラウザ２６０を介して、テストケースの自動生成の要求、及び、テストをするＷｅｂコンテンツを示す情報（ＩＤなど）をサーバ装置１０に送信する。サーバ装置１０のＨＴＴＰサーバ部８０は、テスト実施者から送られた要求及びＷｅｂコンテンツを示す情報を受信する。
【０１０６】
テスト実施者から送られた要求が、ＨＴＴＰサーバ部８０から、アプリケーションサーバ部７０へ送られ、さらに、アプリケーションサーバ部７０からテストケース自動生成部６０へ送られた後、テストケース自動生成部６０は、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０及び操作ログ１５０を取得する。そして、テストケース自動生成部６０は、取得されたＷｅｂコンテンツ１４０及び操作ログ１５０に基づいて、テストケースを自動的に生成し、さらに、各テストケースに対応するスクリプトファイルを生成する。そして、生成されたスクリプトファイルを、クライアント装置２００へ生成したスクリプトファイルを送信する。
【０１０７】
その後テスト実施者は、クライアント装置２００のＷｅｂブラウザ２６０を用いて、サーバ装置１０から送られた各テストケースに対応するスクリプトファイルを修正する。そして、クライアント装置２００は、テスト実施者によって修正されたスクリプトファイル（操作ログ３００）をサーバ装置１０へ送信すると共に、送信する操作ログ３００をサーバ装置１０に備わる補助記憶装置４０へ格納する要求を送信する。
【０１０８】
サーバ装置１０は、クライアント装置２００によって送られた補助記憶装置４０へのスクリプトファイル（操作ログ３００）の登録要求を受け、テストケース自動生成部６０によって、スクリプトファイル（操作ログ３００）を補助記憶装置４０に保持される操作ログ１５０に格納する。また、テストケース自動生成部６０によって、テストケースが自動的に生成されたＷｅｂコンテンツ１１０を、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０に格納する。
【０１０９】
図９は、本発明の実施形態の更新したＷｅｂコンテンツに対するテストケースを自動生成する処理を示すシーケンス図である。以下に詳細を説明する。
【０１１０】
図９に示す処理は、テスト実施者が、Ｗｅｂコンテンツを更新し、更新されたＷｅｂコンテンツの新たなテストケースを生成する場合、又は、新規のＷｅｂコンテンツに対応する新たなテストケースを生成する場合などに実施される。
【０１１１】
テスト実施者は、テストケースを生成されるＷｅｂコンテンツを選定し、選定したＷｅｂコンテンツ及びＷｅｂコンテンツを示す情報と、選定したＷｅｂコンテンツのテストケースを自動的に生成（自動生成）する要求とを、クライアント装置２００に入力する（４８０）。
【０１１２】
その後、クライアント装置２００は、Ｗｅｂコンテンツと、入力されたＷｅｂコンテンツを示す情報と、テストケースを自動生成する要求とを、サーバ装置１０に送信する（４９０）。
【０１１３】
なお、シーケンス４９０においてサーバ装置１０に送られる情報のうち、Ｗｅｂコンテンツを示す情報は、Ｗｅｂコンテンツを示すファイル名、ＵＲＬ名、又は、識別子のいずれであってもよい。すなわち、後述するコンテンツ解析処理５００において、更新前のＷｅｂコンテンツ１４０のうち最新を常に抽出する場合、Ｗｅｂコンテンツを示す情報は、ファイル名又はＵＲＬ名であってよい。また、後述するコンテンツ解析処理５００において、更新前のＷｅｂコンテンツ１４０のうち特定のバージョンのＷｅｂコンテンツ１４０を抽出する場合、Ｗｅｂコンテンツを示す情報には、識別子を用いてよい。
【０１１４】
サーバ装置１０は、クライアント装置２００によって送られた、テストケースを自動生成されるＷｅｂコンテンツ、Ｗｅｂコンテンツを示す情報、及び、テストケースを自動生成する要求を、前述の通り、ＨＴＴＰサーバ部８０及びアプリケーションサーバ部７０を介して、受信する。その後、サーバ装置１０のテストケース自動生成部６０は、コンテンツ解析処理５００を実行する。
【０１１５】
なお、以下に示すシーケンス５１０、５２０、５３０及び５５０の処理は、サーバ装置１０によってテストケースを生成されるＷｅｂコンテンツがあらかじめ保持される場合、実行される。すなわち、新規のＷｅｂコンテンツにテストケースが生成される場合、実行されない。
【０１１６】
サーバ装置１０は、テストケース自動生成部６０によってコンテンツ解析処理５００を実行する。コンテンツ解析処理５００において、テストケース自動生成部６０は、送られてきたＷｅｂコンテンツを示す情報に基づいて、Ｗｅｂコンテンツ１４０のうち、送られてきたＷｅｂコンテンツの更新前のＷｅｂコンテンツ１４０を取得する（５２０）。
【０１１７】
サーバ装置１０は、更新後のＷｅｂコンテンツに対応する各テストケースの操作ログを生成するために、基準となる操作ログを取得するため、シーケンス４２０において取得されたＷｅｂコンテンツ１４０に対応する操作ログ１５０を取得する（５５０）。
【０１１８】
また、更新後のＷｅｂコンテンツと、更新前のＷｅｂコンテンツ１４０とを比較し、差分を抽出する（５１０）。そして、更新後のＷｅｂコンテンツのうち、更新前のＷｅｂコンテンツ１４０から変更又は追加された部分を抽出し、Ｗｅｂコンテンツとして生成する（５３０）。
【０１１９】
さらに、サーバ装置１０はコンテンツ解析処理５００において、Ｗｅｂコンテンツ１４０が、バージョンごとに識別子を付与されている場合、クライアント装置から送られてきたＷｅｂコンテンツ、すなわち更新後のＷｅｂコンテンツに一意な識別子を付与する。
【０１２０】
コンテンツ解析処理５００の後、サーバ装置１０のテストケース自動生成部６０は、コンテンツ解析処理５００において取得されたＷｅｂコンテンツとＷｅｂコンテンツ１４０との比較の結果及び操作ログを用い、更新後のＷｅｂコンテンツに対するテストケースを生成する。また、各テストケースに対する操作ログを生成する（５４０）。また、テストケース自動生成部６０は、シーケンス５４０において、補助記憶装置３０に保持されるテストケース修正スクリプト９０を取得する（５５５）。
【０１２１】
ここで、本実施形態のテストケースとは、Ｗｅｂコンテンツ２９０によってＷｅｂブラウザ２６０に表示される各フォームに、テストにおいて入力される値を示す情報である。テストケースには、各フォームに入力された場合に正常な結果を得られる値（正常値）、異常な結果を得られる値（異常値）、正常値と異常値との間の境界値、又は、境界値の前後の値などが、含まれる。
【０１２２】
また、操作ログとは、前述のとおり、ＷｅｂコンテンツがＷｅｂブラウザ２６０に表示する各フォームへの操作を示すスクリプトファイルである。すなわち、本実施形態の操作ログは、テストケースに基づいて作成された場合、テストにおいて実行されるスクリプトファイルになる。
【０１２３】
本実施形態において、操作ログは、テストケース及びＷｅｂコンテンツによって生成される。すなわち、テストケースも操作ログも、同じテストシナリオの内容を保持する。このため、補助記憶装置４０及び補助記憶装置２５０には、操作ログ１５０及び操作ログ３００の代わりに、テストケースが格納され、テスト又は操作の再生等を行う際に、テストケースから操作ログが生成されてもよい。
【０１２４】
サーバ装置１０のテストケース自動生成部６０は、シーケンス５４０において、生成されたテストケースに、テストケース修正スクリプト９０と、コンテンツ解析処理５００において生成された識別子などのＷｅｂコンテンツを示す情報とを付加し、前述の通り、アプリケーションサーバ部７０及びＨＴＴＰサーバ部８０を介して、クライアント装置２００へ送信する。
【０１２５】
なお、シーケンス５４０においてサーバ装置１０は、テストケースとともに、又は、テストケースの代わりに、生成された操作ログをクライアント装置２００に送ってもよい。すなわち、操作ログがクライアント装置２００に送られる場合、クライアント装置２００は、後述のシーケンス５６０において、送られた操作ログに含まれるテストケースを抽出し、抽出されたテストケースを修正してもよい。
【０１２６】
クライアント装置２００が、生成されたテストケースとテストケース修正スクリプト９０とＷｅｂコンテンツを示す情報とを受信した後、クライアント装置２００は、テストケース修正スクリプト部２８０にテストケース修正スクリプト９０を実行させる。
【０１２７】
そして、テストケース修正スクリプト部２８０は、Ｗｅｂブラウザ２６０を用いて、テストケースを修正するための画面を表示することによって、テスト実施者に、サーバ装置１０から送られたテストケースを確認及び修正させる（５６０）。このように、サーバ装置１０から送られたテストケースをテスト実施者が任意に変更することによって、本実施形態のシステムは、テストを実施する環境に従った適切なテストケースを生成することができる。
【０１２８】
その後クライアント装置２００は、修正されたテストケースをサーバ装置１０に格納するため、確認及び修正されたテストケースと、テストケースに対応するＷｅｂコンテンツを示す情報とをサーバ装置１０に送信する（５７０）。
【０１２９】
サーバ装置１０が、前述の通り、ＨＴＴＰサーバ部８０及びアプリケーションサーバ部７０を介して、修正されたテストケースをクライアント装置２００から受信した後（５８０）、テストケース自動生成部６０は、修正されたテストケースから操作ログを生成する。そして、生成された操作ログを、補助記憶装置４０の操作ログ１５０に格納する（５９０）。そして、コンテンツ解析処理５００において受信した更新後のＷｅｂコンテンツを、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０に格納する（６００）。
【０１３０】
なお、コンテンツ解析処理５００においてＷｅｂコンテンツを示す識別子が付与されている場合、シーケンス５９０及び６００において、Ｗｅｂコンテンツを示す識別子をキーとして操作ログ及びＷｅｂコンテンツを補助記憶装置４０へ格納する。
【０１３１】
さらにシーケンス６００の後、サーバ装置１０は、修正されたテストケースから生成された操作ログをクライアント装置２００に送信してもよく、さらに、クライアント装置２００は、サーバ装置１０から送られた操作ログと、更新後のＷｅｂコンテンツと、Ｗｅｂコンテンツを示す識別子とを、補助記憶装置２５０に格納してよい。
【０１３２】
図１０は、本発明の実施形態のテストケースを生成されるＷｅｂコンテンツを、クライアント装置２００に入力するための画面を示す説明図である。
【０１３３】
図１０に示す画面は、Ｗｅｂコンテンツ指定領域１２００、参照ボタン１２１０、識別子指定領域１２２０、生成ボタン１２３０、及び、キャンセルボタン１２４０を含む。テスト実施者は、テストケースを自動生成するＷｅｂコンテンツの名称等を、Ｗｅｂコンテンツ指定領域１２００に記載する。クライアント装置２００に備わるフォルダに、新規又は更新後のＷｅｂコンテンツが格納されている場合、参照ボタン１２１０によって、フォルダ名を取得する。
【０１３４】
また、テストケースが生成されるＷｅｂコンテンツが、更新によって生成されたＷｅｂコンテンツである場合、テスト実施者は、更新前のＷｅｂコンテンツの識別子を１２２０に入力してよい。テスト実施者は、Ｗｅｂコンテンツの識別子として、補助記憶装置２５０に保持されるＷｅｂコンテンツ２９０に含まれる識別子１３１０を参照する。これは、Ｗｅｂコンテンツ２９０に含まれる識別子１３１０は、図４に示す処理など、サーバ装置１０からＷｅｂコンテンツの識別子を送られることによって、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０の識別子と同期しているためである。
【０１３５】
テスト実施者は、Ｗｅｂコンテンツ指定領域１２００又は識別子指定領域１２２０に値を入力し、生成ボタン１２３０を操作する。これによって、図９に示すシーケンス４８０が実行される。なお、生成ボタン１２３０は、クリックなどによって操作される。
【０１３６】
図１１は、本発明の実施形態のコンテンツ解析処理５００を示すフローチャートである。図１１は、図９のコンテンツ解析処理５００を示す。
【０１３７】
シーケンス４９０において、新規又は更新後のＷｅｂコンテンツと、Ｗｅｂコンテンツを示す情報と、テストケースを自動生成する要求とをクライアント装置２００によって送られた後、サーバ装置１０は、図１１に示す処理を開始する（８９０）。サーバ装置１０に備わるテストケース自動生成部６０は、クライアント装置２００から送られたＷｅｂコンテンツに対応する更新前のＷｅｂコンテンツ１４０が、補助記憶装置４０に格納されているか否かを判定する（９００）。更新前のＷｅｂコンテンツ１４０が、補助記憶装置４０に格納されていない場合、クライアント装置２００によって送られたＷｅｂコンテンツは、新規のＷｅｂコンテンツであるため、テストケース自動生成部６０は、ステップ９６０に移行する。
【０１３８】
更新される前のバージョンのＷｅｂコンテンツ１４０が、補助記憶装置４０に格納されている場合、クライアント装置２００によって送られたＷｅｂコンテンツは、以前にテストを実施しており、操作ログ１５０が補助記憶装置４０に格納されているため、テストケース自動生成部６０は、ステップ９１０に移行する。テストケース自動生成部６０は、補助記憶装置４０に保持される、更新前のＷｅｂコンテンツ１４０を取得する（９１０）。また、補助記憶装置４０に保持される、更新される前のバージョンのＷｅｂコンテンツ１４０に対応する操作ログ１５０を取得する（９２０）。
【０１３９】
なお、ステップ９１０及び９２０は、図９に示すシーケンス５２０及び５５０に相当する。
【０１４０】
ステップ９２０の後、テストケース自動生成部６０は、クライアント装置２００によって送られた更新後のＷｅｂコンテンツと、ステップ９１０において取得されたＷｅｂコンテンツ１４０、すなわち更新前のＷｅｂコンテンツとの差分を抽出する（９３０）。テストケース自動生成部６０は、ステップ９３０において、更新後のＷｅｂコンテンツのうち、更新前のＷｅｂコンテンツから追加又は変更された部分、及び、更新前のＷｅｂコンテンツからは削除され、更新後のＷｅｂコンテンツにない部分を、差分として各々抽出する。
【０１４１】
ステップ９３０の後、テストケース自動生成部６０は、更新前のＷｅｂコンテンツと更新後のＷｅｂコンテンツとの共通部分を取得し、ステップ９２０において取得された操作ログ１５０に基づいて、共通部分に対応する操作ログを生成する（９４０）。これは、Ｗｅｂコンテンツが共通すれば、対応する操作ログも共通するためである。なお、テストケース自動生成部６０は、共通部分に対応する生成された操作ログを、主記憶装置２０などに備わる一時記憶領域等に格納する。
【０１４２】
ステップ９４０の後、テストケース自動生成部６０は、ステップ９３０において抽出された差分のうち、更新前のＷｅｂコンテンツから追加又は変更された部分を、共通部分に追加するＷｅｂコンテンツとして生成する（９５０）。これは、更新によって新たに操作ログを生成する必要があるＷｅｂコンテンツを生成するためである。ステップ９４０及び９５０によって、更新前のＷｅｂコンテンツから削除された部分は、新たな操作ログを生成する必要があるＷｅｂコンテンツに含まれない。
【０１４３】
ステップ９００、又は、ステップ９５０の後、テストケース自動生成部６０は、追加するＷｅｂコンテンツに対応する操作ログを生成するため、追加するＷｅｂコンテンツに含まれるフォームを抽出する（９６０）。
【０１４４】
具体的には、ステップ９００からステップ９６０へ直接処理が移行した場合、テストケース自動生成部６０はステップ９６０において、クライアント装置２００によって送られた新規のＷｅｂコンテンツからフォームを抽出する。また、ステップ９５０からステップ９６０へ処理が移行した場合、テストケース自動生成部６０はステップ９６０において、ステップ９５０において生成された、共通部分に追加するＷｅｂコンテンツからフォームを抽出する。
【０１４５】
ステップ９６０の処理によって、テストケース自動生成部６０は、操作ログを生成するフォームを、各々分割することができる。ステップ９６０の後、テストケース自動生成部６０は、コンテンツ解析処理５００を終了する（９７０）。
【０１４６】
なお、図１１に示すステップ９３０の処理が、図９に示すシーケンス５１０に相当し、図１１に示すステップ９４０及び９５０の処理が、図９に示すシーケンス５３０に相当する。
【０１４７】
図１２Ａは、本発明の実施形態のテストケースを生成する処理を示すフローチャートである。
【０１４８】
図１２Ａは、図９のシーケンス５４０を示すフローチャートである。
【０１４９】
テストケース自動生成部６０は、図１１に示す処理を終了すると、図１２Ａに示す処理を開始する（９８０）。そして、テストケース自動生成部６０は、ステップ９６０において抽出されたフォームのうち、一つのフォームを取得する（９９０）。
【０１５０】
そしてテストケース自動生成部６０は、テストケース定義ファイル１００に基づいて、ステップ９９０において取得された一つのフォームに対応するテストケースを生成する（１０００）。テストケース定義ファイル１００の詳細は、図１３において後述する。
【０１５１】
ステップ１０００の後、テストケース自動生成部６０は、ステップ９６０において抽出されたフォームのうち、ステップ１０００の処理が実行されていないフォームがあるか否かを判定する（１０８０）。ステップ１０００の処理が実行されていないフォームがある場合、テストケース自動生成部６０は、ステップ９９０に戻る。
【０１５２】
ステップ１０８０によって、追加又は変更によって更新されたＷｅｂコンテンツに対応するテストケースが生成される。
【０１５３】
ステップ１０００の処理が実行されていないフォームがなく、ステップ９６０において抽出されたフォームがすべて処理された場合、テストケース自動生成部６０は、ステップ１０９０に移行する。テストケース自動生成部６０は、ステップ１０９０において、更新前のＷｅｂコンテンツと更新後のＷｅｂコンテンツとの共通部分に対応する操作ログが、主記憶装置２０に備わる一時記憶領域に格納されているか否かを判定する。すなわち、図１１に示すステップ９４０において生成されたか否かを判定する。
【０１５４】
ステップ１０９０において、更新前のＷｅｂコンテンツと更新後のＷｅｂコンテンツとの共通部分に対応する操作ログが、一時記憶領域に格納されていないと判定された場合、更新後のＷｅｂコンテンツは、すべて追加又は変更されたＷｅｂコンテンツであるため、テストケース自動生成部６０は、ステップ１０００において生成されたテストケースに対応する操作ログのみを生成し、この結果、更新後のＷｅｂコンテンツに対応する操作ログを取得する（１１１０）。
【０１５５】
ステップ１０９０において、更新前のＷｅｂコンテンツと更新後のＷｅｂコンテンツとの共通部分に対応する操作ログが、一時記憶領域に格納されていると判定された場合、テストケース自動生成部６０は、共通部分に対応する操作ログを、主記憶装置２０等に設けられる一時記憶領域から取得する（１１００）。
【０１５６】
ステップ１１００の後、テストケース自動生成部６０は、ステップ１０００において生成されたテストケースに対応する操作ログを生成する。そして、生成された操作ログを、共通部分に対応する操作ログに結合、すなわち、追加又は挿入することによって、更新後のＷｅｂコンテンツに対応する操作ログを生成する（１１２０）。
【０１５７】
ステップ１１１０又はステップ１１２０の後、テストケース自動生成部６０は、生成された操作ログに対応するテストケースを抽出し、抽出されたテストケースを、クライアント装置２００に送信する（１１２５）。また、テストケース自動生成部６０は、ステップ１１２５において、テストケース修正スクリプト９０を補助記憶装置３０から取得する。そして、テストケース修正スクリプト９０とＷｅｂコンテンツを示す情報とを、テストケースに付加し、クライアント装置２００に送信する。
【０１５８】
ステップ１１２５の後、図１２Ａに示す処理を終了する（１１３０）。
【０１５９】
図１２Ａに示す処理によって、更新後のＷｅｂコンテンツに対応するテストケース及び操作ログを生成することができる。
【０１６０】
図１２Ｂは、本発明の実施形態のテストケースを生成する処理を示すフローチャートである。図１２Ｂは、図１２Ａのステップ１０００に相当する。
【０１６１】
テストケース自動生成部６０は、ステップ９９０の後、図１２Ｂに示す処理を開始する（１００１）。テストケース自動生成部６０は、まず、ステップ９９０において取得された一つのフォームの種類を判定する（１００５）。
【０１６２】
例えば、フォームの種類がテキストボックスである場合、テストケース自動生成部６０は、テキストボックスに正常値が入力されるテストケースを生成する（１０１０）。また、テキストボックスに異常値が入力されるテストケースを生成し（１０４０）、テキストボックスに境界値が入力されるテストケースを生成する（１０７０）。
【０１６３】
また例えば、フォームの種類がラジオボタンである場合、テストケース自動生成部６０は、ラジオボタンに正常値が入力されるテストケースを生成し（１０２０）、ラジオボタンに異常値が入力されるテストケースを生成する（１０５０）。
【０１６４】
また例えば、フォームの種類がボタンである場合、テストケース自動生成部６０は、ボタンに正常値が入力されるテストケースを生成し（１０３０）、ボタンに異常値が入力されるテストケースを生成する（１０６０）。
【０１６５】
テストケース自動生成部６０は、各フォームに対応するテストケースを生成すると、図１２Ｂに示す処理を終了し（１０７５）、図１２Ａに示すステップ１０８０に移行する。
【０１６６】
なお、サーバ装置１０は、各フォームに対応するテストケースを生成するためのテストケース定義ファイル１００を、補助記憶装置３０によって保持する。テストケース定義ファイル１００には、フォームの種類に従って、生成されるべきテストケースがあらかじめ記載される。図１２Ｂのステップ１０００において、テストケース自動生成部６０は、テストケース定義ファイル１００を参照することによって、各フォームのテストケースを生成する。
【０１６７】
図１３は、本発明の実施形態のテストケース定義ファイル１００を示す説明図である。
【０１６８】
テストケース定義ファイル１００は、フォーム１０１、条件１０２、及び、値１０３を含む。テストケース定義ファイル１００は、テスト実施者又は管理者等によって、あらかじめ作成される。そして、作成されたテストケース定義ファイル１００は、サーバ装置１０に格納される。
【０１６９】
フォーム１０１は、フォームの種類を示し、例えば、テキストボックス、ラジオボタン、リストボックス、又は、ボタンなどを示す。条件１０２は、各フォーム１０１に操作がされた場合、入力されうる値の種類を示す。例えば、フォーム１０１がテキストボックスである場合、テキストボックスに入力されうる値は、正常値、異常値、又は、境界値のいずれかである。
【０１７０】
値１０３は、各フォーム１０１の各条件１０２に相当する、具体的な値である。例えば、本実施形態のテキストボックスは、半角文字が１０２４文字までを入力することができる。このため、フォーム１０１がテキストボックスであり、条件１０２が正常値である場合、値１０３には、１０２３文字以下の文字数の値が記載される。
【０１７１】
また、フォーム１０１がテキストボックスであり、条件１０２が境界値である場合、値１０３には、１０２４文字及び１０２５文字の値が格納される。また、条件１０２が、異常値である値１０３には、１０２６文字以上の値が格納される。
【０１７２】
また例えば、本実施形態のラジオボタンは、どのラジオボタンにも指定がなく、ラジオボタンが"Ｏｆｆ"を示す場合にエラーを出力する。このため、フォーム１０１がラジオボタンであり、条件１０２が正常値である場合、値１０３には、"Ｏｎ"が格納され、条件１０２が異常値である場合、値１０３には、"Ｏｆｆ"が格納される。
【０１７３】
また例えば、本実施形態のリストボックスは、あらかじめ定められたリストの値（リスト＃１、リスト＃２）以外が指定された場合にエラーを出力する。このため、フォーム１０１がリストボックスであり、条件１０２が正常値である場合、値１０３には、"リスト＃１"、又は、"リスト＃２"が格納され、また、条件１０２が異常値である値１０３には、"リスト＃１"及び"リスト＃２"以外の文字列が格納される。
【０１７４】
テストケース自動生成部６０は、テストケース定義ファイル１００を用いて、各フォームに対応する値１０３を列挙することによって、テストケースを生成する。
【０１７５】
図１４は、本発明の実施形態のテストケースを修正するための画面１１９０を示す説明図である。
【０１７６】
図１４は、サーバ装置１０によって送られた各テストケースをテスト実施者に確認させるため、Ｗｅｂブラウザ２６０に表示される画面１１９０を示す。画面１１９０は、図９に示すシーケンス５６０において表示される。
【０１７７】
Ｗｅｂブラウザ２６０は、各々のフォームの各々の条件を、図１４に示すアイコン１２５０に表示することによって、図９に示すシーケンス５５０において生成されたテストケースを、テスト実施者に示す。
【０１７８】
例えば、図１４に示すＣＡＳＥ１は、テキストボックスのフォームに正常値を入力した後、ボタンのフォームに正常値を入力し、その後終了するテストケースである。また、図１４に示すＣＡＳＥｎは、テキストボックスのフォームに正常値を入力し、ラジオボタンのフォームに正常値を入力し、リストボックスのフォームに正常値を入力し、ボタンのフォームに正常値を入力した後、終了するテストケースである。
【０１７９】
テスト実施者は、テストケースのうち修正したいテストケースがある場合、修正したいテストケースのフォームを示すアイコン１２５０を操作し、テストケースを修正する。そして、テストケースを修正後、テスト実施者が登録ボタン１２６０を操作することによって、クライアント装置２００は、修正したテストケースと、修正されたテストケースの格納の要求とをサーバ装置１０に送信する（図９に示すシーケンス５７０に相当）。なお、アイコン１２５０及び登録ボタン１２６０は、クリックなどによって操作される。
【０１８０】
図１５は、本発明の実施形態のテストケースの値を修正するための画面１２８０を示す説明図である。
【０１８１】
図１５は、サーバ装置１０によって送られた各テストケースの値を、テスト実施者が修正するためにＷｅｂブラウザ２６０に表示される画面１２８０を示す。
【０１８２】
テスト実施者が、図１４に示す画面１１９０において、ＣＡＳＥ１のテキストボックスのフォームに関する値を修正したい場合、テスト実施者は、ＣＡＳＥ１のテキストボックスのフォームを示すアイコン１２５０を操作する。その後、図１５に示す画面１２８０が、Ｗｅｂブラウザ２６０によって表示される。
【０１８３】
画面１２８０には、Ｗｅｂコンテンツによって表示される画面のうち、図１４において操作されたアイコン１２５０に対応するフォームの領域のみが表示される。そして、その他の領域は、テスト実施者によって選択することができないように、マスク等がされる。
【０１８４】
テスト実施者が、画面１２８０に表示されるテキストボックスを選択すると、テキストボックスをテストするための値を修正するための画面１２９０が表示される。テスト実施者は、各条件に対応する値を修正し、ＯＫボタン１３００を操作することによって、修正する内容を決定する。ＯＫボタン１３００は、クリックなどによって操作される。
【０１８５】
なお、テストケースを修正するための画面１１９０及び画面１２８０は、図１４及び図１５の表示方法に限られず、テストケースのフォーム毎に一意に指定でき、値を変更できる方法であれば、いずれの表示方法でもよい。
【０１８６】
図１６は、本発明の実施形態のクライアント装置２００によって修正されたテストケース及び操作ログを格納する処理を示すフローチャートである。
【０１８７】
図１６は、クライアント装置２００に備わるＷｅｂブラウザ２６０とテストケース修正スクリプト部２８０とによって、修正されたテストケース及び操作ログ３００を、サーバ装置１０へ格納する処理を示す。図１６に示す処理は、図９に示すシーケンス５８０に相当する。
【０１８８】
サーバ装置１０は、クライアント装置２００によって修正されたテストケースの格納の要求を受信するると、図１６に示す処理を開始する（１１５０）。サーバ装置１０は、クライアント装置２００から受信したテストケース、及び、テストケースから生成された操作ログに、一意な識別子を付与する（１１６０）。
【０１８９】
そしてサーバ装置１０は、補助記憶装置４０の操作ログ１５０に、クライアント装置２００から送られた操作ログを格納する（１１７０）。その後サーバ装置１０は、図１６に示す処理を終了する。
【０１９０】
（操作の再生処理）
図１７は、本発明の実施形態のサーバ装置１０に保持されるＷｅｂコンテンツ１４０及びＷｅｂコンテンツ１４０に対応する操作ログ１５０を、クライアント装置２００において再生する処理を示すシーケンス図である。
【０１９１】
テスト実施者が、ＷｅｂコンテンツをＷｅｂブラウザ２６０において実行する際に、以前に行われた操作を再生する場合、又は、サーバ装置１０によって自動的に生成されたテストケースによってテストをする場合、まず、クライアント装置２００は、Ｗｅｂコンテンツの操作を再生する要求をサーバ装置１０へ送信する（４１０）。
【０１９２】
クライアント装置２００は、シーケンス４１０において、Ｗｅｂコンテンツの操作を再生する要求と、要求されるＷｅｂコンテンツに対応するＷｅｂコンテンツ１４０を示す情報とを送信する。Ｗｅｂコンテンツ１４０を示す情報は、図４及び図９に示す処理によって、あらかじめクライアント装置２００によって保持される。
【０１９３】
サーバ装置１０が、特定のＷｅｂコンテンツの操作を再生する要求と、要求されるＷｅｂコンテンツに対応するＷｅｂコンテンツ１４０を示す情報とを、前述の通り、ＨＴＴＰサーバ部８０及びアプリケーションサーバ部７０を介して、受信した後（４２０）、操作記録／操作再生スクリプト埋込部５０は、補助記憶装置３０に保持される操作再生スクリプト１３０を取得する（４２５）。
【０１９４】
また、サーバ装置１０の操作記録／操作再生スクリプト埋込部５０は、受信した情報に基づいて、補助記憶装置４０に保持されるＷｅｂコンテンツ１４０とそのＷｅｂコンテンツ１４０に対応する操作ログ１５０とを取得する（４３０、４４０）。そして、取得された操作再生スクリプト１３０とＷｅｂコンテンツ１４０と操作ログ１５０とを、アプリケーションサーバ部７０及びＨＴＴＰサーバ部８０を介して、クライアント装置２００に送信する。
【０１９５】
なお、シーケンス４３０及び４４０において、クライアント装置２００から送られたＷｅｂコンテンツを示す情報が識別子である場合、操作記録／操作再生スクリプト埋込部５０は、識別子に基づいてＷｅｂコンテンツ１４０及び操作ログ１５０を取得する。一方、クライアント装置２００から送られたＷｅｂコンテンツを示す情報がファイル名等である場合、操作記録／操作再生スクリプト埋込部５０は、最新のバージョンなど、管理者等によってあらかじめ定められたバージョンのＷｅｂコンテンツ１４０及び操作ログ１５０を取得する。
【０１９６】
クライアント装置２００は、サーバ装置１０から操作再生スクリプト１３０とＷｅｂコンテンツ１４０と操作ログ１５０とを送信された後、送信されたＷｅｂコンテンツ１４０をＷｅｂコンテンツ２９０に格納し、送信された操作ログ１５０を操作ログ３００に格納する。そして、新たに格納されたＷｅｂコンテンツ２９０を操作記録／操作再生スクリプト部２７０によって実行する（４６０）。操作記録／操作再生スクリプト部２７０は、新たに格納されたＷｅｂコンテンツ２９０を実行し、新たに格納された操作ログ３００を操作再生スクリプト１３０によって逐次実行することによって、操作を再生する（４７０）。
【０１９７】
図１８は、本発明の実施形態の操作を再生するための情報の取得処理を示すフローチャートである。
【０１９８】
図１８に示す処理は、図１７のシーケンス４２０に示す処理である。図１８は、クライアント装置２００によって要求された、操作を再生する対象となるＷｅｂコンテンツ１４０及びＷｅｂコンテンツ１４０に対応する操作ログ１５０を補助記憶装置４０から取得し、クライアント装置２００へ送信する処理を示す。
【０１９９】
Ｗｅｂコンテンツの操作を再生する要求と、そのＷｅｂコンテンツに対応するＷｅｂコンテンツ１４０を示す識別子とを、クライアント装置２００から送信された後、サーバ装置１０は、図１８に示す処理を開始する（７７０）。ステップ７７０の後、操作記録／操作再生スクリプト埋込部５０は、クライアント装置２００から送信されたＷｅｂコンテンツ１４０を示す情報によって、補助記憶装置４０を参照し、Ｗｅｂコンテンツ１４０とＷｅｂコンテンツ１４０に対応する操作ログ１５０とを取得する（７８０、７９０）。
【０２００】
そして操作記録／操作再生スクリプト埋込部５０は、Ｗｅｂコンテンツ１４０をクライアント装置２００において再生するため、補助記憶装置３０に保持される操作再生スクリプト１３０を取得し、ステップ７８０において取得されたＷｅｂコンテンツ１４０に付加する（８００）。そして操作記録／操作再生スクリプト埋込部５０は、Ｗｅｂコンテンツ１４０及び操作ログ１５０を、クライアント装置２００に送信し（８１０）、処理を終了する。
【０２０１】
なお、ステップ７８０及び７９０は、図１７に示すシーケンス４３０及び４４０に相当する。
【０２０２】
図１９は、本発明の実施形態の操作を再生する処理を示すフローチャートである。
【０２０３】
図１９は、図１７のシーケンス４７０の処理を示す。図１９は、サーバ装置１０によって取得されたＷｅｂコンテンツ１４０及びＷｅｂコンテンツ１４０に対応する操作ログ１５０を、クライアント装置２００において再生する処理を示す。
【０２０４】
クライアント装置２００は、サーバ装置１０から送られたＷｅｂコンテンツ１４０を操作記録／操作再生スクリプト部２７０によって実行し、Ｗｅｂブラウザ２６０にＷｅｂコンテンツ１４０の画面を表示させる（８４０）。そして、操作記録／操作再生スクリプト部２７０は、サーバ装置１０から送られた操作ログ１５０のうち、一つの操作を示すデータを取得し（８５０）、取得した操作を、Ｗｅｂコンテンツ１４０に挿入された操作再生スクリプト１３０によって実行させる（８６０）。
【０２０５】
さらに、操作記録／操作再生スクリプト部２７０はステップ８６０の後、サーバ装置１０から送られた操作ログ１５０に、未実行の操作ログが含まれているか否かを判定し（８７０）、未実行の操作ログが含まれている場合、ステップ８５０に戻る。未実行の操作ログが含まれておらず、操作ログ１５０をすべて実行した場合、サーバ装置１０は、操作を再生する処理を終了する（８８０）。
【０２０６】
なお、前述のとおり本実施形態において、操作ログとテストケースとを区別して記載したが、クライアント装置２００及びサーバ装置１０は、操作ログとテストケースとのどちらを保持してもよい。
【０２０７】
例えば、サーバ装置１０は、図４のシーケンス３９０において、クライアント装置２００から送られた操作ログ３００からテストケースを抽出し、抽出されたテストケースを保持してもよい。そして、図９のシーケンス５４０において、更新前と更新後のＷｅｂコンテンツの共通部分に対応するテストケースを抽出し、共通部分に対応するテストケースと差部分に対応するテストケースとを結合させてもよい。
【０２０８】
前述のとおり、本実施形態によれば、Ｗｅｂコンテンツをテストするためのテストケースを、過去のテスト等によって用いられた操作ログ（スクリプトファイル）に基づいて自動的に生成することができ、さらに、自動的にテストを再生できるため、テストのための工数を削減できる。また、あらかじめ作成されたテストケース定義ファイルに基づいて、自動的にテストケースを生成するため、テストケースに漏れが発生することを防ぐことができる。この結果、Ｗｅｂコンテンツの品質向上が望める。
【０２０９】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【産業上の利用可能性】
【０２１０】
本発明は、Ｗｅｂアプリケーションを開発するためのシステムに適用することができる。
【図１Ａ】
2012014284.tif 000003
【図１Ｂ】
2012014284.tif 000004
【図１Ｃ】
2012014284.tif 000005
【図１Ｄ】
2012014284.tif 000006
【図１Ｅ】
2012014284.tif 000007
【図１Ｆ】
2012014284.tif 000008
【図２】
2012014284.tif 000009
【図３】
2012014284.tif 000010
【図４】
2012014284.tif 000011
【図５】
2012014284.tif 000012
【図６】
2012014284.tif 000013
【図７】
2012014284.tif 000014
【図８】
2012014284.tif 000015
【図９】
2012014284.tif 000016
【図１０】
2012014284.tif 000017
【図１１】
2012014284.tif 000018
【図１２Ａ】
2012014284.tif 000019
【図１２Ｂ】
2012014284.tif 000020
【図１３】
2012014284.tif 000021
【図１４】
2012014284.tif 000022
【図１５】
2012014284.tif 000023
【図１６】
2012014284.tif 000024
【図１７】
2012014284.tif 000025
【図１８】
2012014284.tif 000026
【図１９】
2012014284.tif 000027
【国際調査報告】
2012014284.tif 000028
2012014284.tif 000029
2012014284.tif 000030
2012014284.tif 000031