(57)【要約】【課題】Ｗｅｂアプリケーションテスト支援ツールにおいて、Ｗｅｂアプリケーションテストシナリオの再利用性を高めることができ、テスト管理も容易になるようにする。【解決手段】Ｗｅｂサーバ２提供の１アプリケーションを構成しており、クライアント装置１からのリクエスト情報と該リクエスト情報に対するＷｅｂサーバ２からのレスポンス情報とから構成される１テスト項目を連続させて成るテストシナリオを作成するテストシナリオ作成方法において、テスト自動実行ツール１１は、テスト項目にキー情報を付加し、キー情報が付加された複数のテスト項目をテスト項目情報ＤＢ１３として保存しておき、保存されているテスト項目のキー情報をテストシナリオ１２から参照する一方、テスト項目中の変更情報に第２のキー情報を付加し、第２のキー情報を付加した変更情報を変更部変更情報ＤＢ１４として保存し、第２のキー情報により変更情報を参照する。【選択図】図２
2007334837.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂサーバにより提供される１つのアプリケーションを構成しており、前記Ｗｅｂサーバに対するクライアント装置からのリクエスト情報と該リクエスト情報に対する該Ｗｅｂサーバからのレスポンス情報とから構成されるテスト単位としての１テスト項目を連続させて成るテストシナリオを作成するテストシナリオ作成方法において、前記テスト項目にキー情報を付加し、該キー情報が付加された複数のテスト項目をテスト項目情報データベースとして保存しておき、保存されているテスト項目のキー情報を前記テストシナリオから参照する構成にしたことを特徴とするテストシナリオ作成方法。
【請求項２】
請求項１記載のテストシナリオ作成方法において、テストシナリオの作成が、前記テストシナリオの新規作成または前記テストシナリオの編集または前記テスト項目の編集であることを特徴とするテストシナリオ作成方法。
【請求項３】
請求項１または２記載のテストシナリオ作成方法において、前記テスト項目を、変更の必要のない固定部とテスト内容に応じて変更される変動部から構成することを特徴とするテストシナリオ作成方法。
【請求項４】
請求項１、２または３記載のテストシナリオ作成方法において、編集を行なったテスト項目中の変更情報に第２のキー情報を付加し、該第２のキー情報を付加した前記変更情報を変更情報データベースとして保存し、該第２のキー情報をもとに該変更情報を参照することを特徴とするテストシナリオ作成方法。
【請求項５】
請求項１乃至４のいずれか１項に記載のテストシナリオ作成方法において、前記変動部の個々の変更情報をテスト項目ごとにまとめてデータベース化することを特徴とするテストシナリオ作成方法。
【請求項６】
オペレーティングシステム上で実行されるアプリケーションプログラムにおいて、請求項１乃至５のいずれか１項に記載の方法のテストシナリオ作成を実行させるようにプログラミングされていることを特徴とするアプリケーションプログラム。
【請求項７】
プログラムを記録した記録媒体において、請求項６記載のプログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーションの開発者などがそのＷｅｂアプリケーションをテストするためのテスト支援ツールに係り、特に、ネットワークを介してＷｅｂサーバ・クライアント装置間で交信して行うテストシナリオの作成に関する。
【背景技術】
【０００２】
近年、Ｗｅｂアプリケーションの規模の増大により、Ｗｅｂアプリケーションのテスト項目も増加の一途を辿っている。そのようなことから最近では、Ｗｅｂアプリケーションのテストにはテスト支援ツールを利用し、テストの一部を自動化していることが多い。テスト支援ツールを利用する場合、あらかじめテストシナリオを準備しておき、テスト支援ツールはそのテストシナリオに従ってテストを行なっていく。テストシナリオはテスト項目が連続したものとして構成されるわけである。テスト項目とは、クライアント装置からＷｅｂサーバへ送るリクエスト情報とそのリクエストに対するＷｅｂサーバからのレスポンス情報で構成されるＷｅｂアプリケーションのテスト単位である。なお、テスト支援ツールの機能の１つとしてテストシナリオ作成機能も用意されている。
【０００３】
例えば、富士通「ＳＩＭＰＬＩＡ／ＪＦ  ＣｌｉｅｎｔＭａｔｅ」は、前記したテスト支援ツールの代表例であり、以下の機能を持つ。
（１）記録機能：Ｗｅｂブラウザ上で操作した事象を記録する（これは操作ログと呼ばれる）とともにその際の画面の内容を記録する。
（２）実行機能：記録機能で記録された操作ログをＷｅｂブラウザ上で再現する。
（３）比較機能：実行機能でＷｅｂブラウザに再現された画面の内容と記録機能で記録された画面の内容を比較する。
（４）編集機能：記録機能で記録された操作ログの内容を編集する。
（５）補助機能：Ｗｅｂブラウザ上の入力操作を支援したり表示性能を測定したりする。
なお、前記した機能において、操作ログはテストシナリオとも言うことができ、編集とはテスト項目中の変動内容の編集と言ってよい。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては、作成したテストシナリオの再利用性が悪いという問題や、Ｗｅｂアプリケーションのテスト管理がしにくいという問題があった。
本発明は、このような従来技術の問題を解決しようとするものであり、具体的には、作成したテストシナリオの再利用性を高めることができ、また、Ｗｅｂアプリケーションのテスト管理がしやすくなるＷｅｂアプリケーションテスト支援技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記した課題を解決するために、請求項１記載の方法は、Ｗｅｂサーバにより提供される１つのアプリケーションを構成しており、前記Ｗｅｂサーバに対するクライアント装置からのリクエスト情報と該リクエスト情報に対する該Ｗｅｂサーバからのレスポンス情報とから構成されるテスト単位としての１テスト項目を連続させて成るテストシナリオを作成するテストシナリオ作成方法において、前記テスト項目にキー情報を付加し、該キー情報が付加された複数のテスト項目をテスト項目情報データベースとして保存しておき、保存されているテスト項目のキー情報を前記テストシナリオから参照する構成とする。
請求項２記載の方法は、請求項１記載のテストシナリオ作成方法において、テストシナリオの作成が前記テストシナリオの新規作成または前記テストシナリオの編集または前記テスト項目の編集である構成とする。
請求項３記載の方法は、請求項１または２記載のテストシナリオ作成方法において、前記テスト項目を、変更の必要のない固定部とテスト内容に応じて変更される変動部から構成する。
【０００６】
請求項４記載の方法は、請求項１、２または３記載のテストシナリオ作成方法において、編集を行なったテスト項目中の変更情報に第２のキー情報を付加し、該第２のキー情報を付加した前記変更情報を変更情報データベースとして保存し、該第２のキー情報をもとに該変更情報を参照する構成とする。
請求項５記載の方法は、請求項１乃至４のいずれか１項に記載のテストシナリオ作成方法において、前記変動部の個々の変更情報をテスト項目ごとにまとめてデータベース化する構成とする。
【０００７】
請求項６記載のプログラムは、オペレーティングシステム上で実行されるアプリケーションプログラムが請求項１乃至５のいずれか１項に記載の方法のテストシナリオ作成を実行させるようにプログラミングされている構成とする。
請求項７記載の記録媒体は、プログラムを記録した記録媒体において、請求項６記載のプログラムを記録した構成とする。
【発明の効果】
【０００８】
本発明によれば、テスト項目にキー情報を付加し、キー情報が付加された複数のテスト項目をテスト項目情報データベースとして保存しておき、保存されているテスト項目のキー情報をテストシナリオから参照できるので、テストシナリオをキー情報列として実現でき、個々のテストシナリオを短く表現でき、再利用の際、類似のテストシナリオを見つけやすくなり、したがって、作成したテストシナリオの再利用性を高めることができる。また、テスト項目の管理がしやすくなる。また、テスト項目を、変更の必要のない固定部とテスト内容に応じて変更される変動部に分けているので、Ｗｅｂアプリケーションの仕様変更などに伴いテスト内容を変更する必要が生じた場合でも、すべてのテストシナリオの変更の必要な箇所を容易に変更できる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施形態を詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対位置などは特定的な記載がない限りこの説明の範囲をそれのみに限定する主旨ではなく、単なる説明例に過ぎない。
図１は本発明が実施される実施形態としてＷｅｂアプリケーションテストシステムの概略構成を示すシステム構成図である。図示したように、このＷｅｂアプリケーションテストシステムは、ネットワークを介して接続されるパーソナルコンピュータなどクライアント装置１およびＷｅｂサーバ２を有し、クライアント装置１はオペレーティングシステム上で実行されるアプリケーションプログラムとして実現されるテスト自動実行ツール１１を備えるとともに、作成されたテストシナリオ１２が記憶される記憶装置などを持つ。なお、テストシナリオ１２は、テスト項目（１）・テスト項目（２）・テスト項目（３）・・・というように連続した複数のテスト項目情報から成る。
このような構成で、Ｗｅｂアプリケーションのテストシナリオ実行時、テスト自動実行ツール１１ａはテストシナリオ１２ａを構成しているテスト項目情報ごとにリクエスト情報をＷｅｂサーバ２へ送信し、Ｗｅｂサーバ２はそれぞれのリクエスト情報に応じてレスポンス情報を返す。このレスポンス情報が意図通りの内容か否かを調べることによりＷｅｂアプリケーションが正しく作られているか否かを調べるのである。なお、リクエスト情報およびレスポンス情報は図示したようにプロトコルのヘッダ情報と例えばＨＴＭＬで記載された文書情報を持つ。
【００１０】
図２は、本発明が実施された一実施形態としてＷｅｂアプリケーション実行システムの概略構成を示すシステム構成図である。図示したように、クライアント装置１は、図１に示した構成に加え、ハードディスク記憶装置内にテスト項目情報ＤＢ（データベース）１３およびテスト項目変動部変更情報ＤＢを持つ。
このような構成で、テスト自動実行ツール１１は、Ｗｅｂアプリケーションのテストシナリオ１２に従って、テストの対象となるＷｅｂサーバ２と通信し、テストを自動的に実行する。通信においてやりとりされるデータはプロトコルのヘッダ情報とＨＴＭＬで記述された文書などから構成されている。また、テストシナリオ１２はテスト項目情報ＤＢ１３中の複数のテスト項目を指す（参照する）ように構成されている。さらに、テスト項目情報ＤＢ１３のそれぞれのテスト項目には、どの部分を固定部または変動部として定義したかを示す情報も保存されており、それぞれの変動部はテスト項目変動部変更情報ＤＢ１４中のそれぞれの位置を指している。
【００１１】
テスト項目変動部変更情報ＤＢ１４にはテスト項目ごとに各変動部に関する変更情報が保存されており、それぞれの変更情報にはキー情報が付加されている。このように、テスト項目ごとに変更箇所をまとめて、ひとつのテスト項目変更情報として扱うことにより、そのテスト項目において、正常値入力テスト、異常値入力テストなど、どのような目的でテストを行なったのかが容易にわかる。なお、変動部とは、Ｗｅｂアプリケーションのテストに際し、例えばＷｅｂブラウザなどによりクライアント装置１から行うことのできる入力情報や、Ｗｅｂアプリからのレスポンスの情報のうち、テストのために確認を行うための情報のことであり、これらはテストの内容に応じて変更する必要がある。
【００１２】
以下、本発明の実施例を説明する。
図３はこの実施例のテスト項目情報ＤＢ１３の内部構成を示すデータ構成図である。図示したように、このテスト項目情報ＤＢ１３は複数のテスト項目から構成され、各テスト項目はそれぞれキー情報を持ち、テスト項目の本体は固定部と変動部に分割されている。これらのテスト項目に関する情報はテスト者（例えばＷＥＢアプリケーションの開発者）がキーボードやマウスなどを用いて登録する。
図４はテスト項目変動部変更情報ＤＢ１４の内部構成を示すデータ構成図である。図示したように、このテスト項目変動部変更情報ＤＢ１４は複数のテスト項目のそれぞれにおける変動部変更情報１６から成り、各変更情報はキー情報を有している。この変更情報はテスト者により登録され、その内容としては、テストを行う際にテスト者によってＷｅｂブラウザのフォーム（ＦＯＲＭ）などから入力される入力情報、クリック入力などを元にしたアクション情報、Ｗｅｂサーバ２からのレスポンスが予想されたレスポンスか否かを確認するための情報などを含む。なお、アクション情報とは、ページのジャンプやスクリプト実行など動作を示す情報である。
図５に、テストシナリオ１２の構成を示す。テストシナリオＡは各テスト項目（１）、（２）、（３）、（４）を指し、テスト項目（１）の変動部はテスト項目（１）変更情報を指し、テスト項目（２）の変動部はテスト項目（２）変更情報を指し、テスト項目（３）の変動部はテスト項目（３）変更情報を指し、テスト項目（４）の変動部はテスト項目（４）変更情報を指す。
【００１３】
図６に、従来におけるテストシナリオ（ａ図）とこの実施例におけるテストシナリオ（ｂ図）の違いを示す。図示したように、この実施例におけるテストシナリオ１２はテスト項目を指す項目キー情報とそのテスト項目に対応するテスト項目変更キーから構成される。そのため、この実施例では、Ｗｅｂアプリケーションのテスト内容の変更に伴うテストシナリオ変更を柔軟に行うことが可能となる。
図７は実施するＷｅｂアプリケーションのテストシナリオを示したものである。テストシナリオＡとテストシナリオＢは、クライアント装置１にＷＥＢサーバ２のトップページが表示されている状態から（初期条件）ネットワーク設定画面に移行し（項目１）、ネットワーク設定画面からテスト者がネットワークの設定値を入力し、ネットワーク設定内容に伴う設定変更が成功したか失敗したかのメッセージが表示され（項目２）、メッセージが表示された後、メール設定画面に移行する（項目３）シナリオである。テストシナリオＡではネットワーク設定画面からの設定値が正常値であり、設定が正常に反映された旨のメッセージが表示され（項目２）、テストシナリオＢでは設定値が異常値であり、設定が正常に反映されなかった旨のメッセージが表示される（項目２）。なお、項目２で入力する値は、サブネットマスク値であり、テストシナリオＡでは２５５．２５５．２５５．０、テストシナリオＢでは２５５．２５５．２５６．０を入力している。
図８〜図１３に、前記したテストシナリオＡ、Ｂを実行した際のクライアント装置１における画面遷移を示す。テストシナリオＡおよびテストシナリオＢは、図示した初期画面（図８参照）からネットワーク設定情報入力画面（図９参照）に移行し、ネットワーク設定情報入力画面にてサブネットマスク入力フォームへの入力を行い（図９、図１０参照）、ネットワーク情報設定結果画面（図１１、図１２参照）に移行して設定の結果を表示メッセージにて確認した後、メール設定画面（図１３）に移行する。
【００１４】
図１４に、このようなテストシナリオを作成・実行する際の動作フローを示す。以下、この動作フローを説明する。
まず、テスト者に、各テスト項目について固定部と変動部を定義する情報をキーボードなどにより入力させる（ステップ１）。前記したテストシナリオにおいて、例えば固定部はネットワーク情報設定画面であり、変動部は、現在のサブネットマスク値、およびテスト者により入力されるサブネットマスク値の部分である。また、固定部の他の例としてはネットワーク情報設定変更結果画面であり、この変動部の例としては、設定変更にともなう成功・不成功を示す結果のメッセージを示す部分である。
テスト者により入力された各テスト項目の固定部および変動部の内容はＷｅｂブラウザで表示されるＨＴＭＬ文書になる（図１５参照）。そして、テスト自動実行ツールはこのテスト項目の内容をテスト項目情報ＤＢ１３に格納する（ステップ２）。なお、この格納の際、テスト項目の固定部および変動部にキー情報を付加する。
さらに、テスト者に変動部の変更情報を定義させる（ステップ３）。例えば設定変更情報結果画面（図１１、図１２参照）の変動部の場合で例示すると、変更情報は、
（１）０００１「設定が更新されました。」
（２）０００２「パラメータが不適切です。設定しなおしてください。」
となる。テスト項目の変動部はこれらの変更情報を指し示す。
続いて、テスト自動実行ツール１１は各変更情報をテスト項目変動部変更情報ＤＢ１４に格納する（ステップ４）。図１６はテスト項目情報ＤＢ１３に格納された内容、図１７はテスト項目変動部変更情報ＤＢ１４に格納された内容である。
【００１５】
次に、テスト自動実行ツール１１がテストシナリオを作成する（ステップ５）。例えば複数のテストシナリオを作成しておく。図１８にテストシナリオの実施例を示す。テストシナリオＡとテストシナリオＢとは共通部分が大半で、違いはテスト項目（２）の内容の一部である。したがって、テストシナリオＡが既存で、テストシナリオＢを新しく作成する場合、テストシナリオＡとテストシナリオＢの共通部を基準にして、テスト項目（２）の変更情報のみを変更するだけでテストシナリオＢは作成できる。つまり、テストシナリオＡを作成した後、テスト自動実行ツール１１は作成したテストシナリオＡを記憶装置に保存しておき、テストシナリオＢを作成する際にはそれを記憶装置から読み出し、一部編集してテストシナリオＢを作成するのである。これにより、テストシナリオＢを簡単に作成できる。
ここで、テストシナリオは、テスト自動実行ツール１１により、読み込み可能なデータ形式とする。例えばＸＭＬなどの汎用文書形式であり、そのようなデータ形式で保存管理を行うことにより、どのようなテスト自動実行ツールからでも読み込むことができるようになる。
なお、この実施例において、テストシナリオの作成とは、テストシナリオの新規作成または既存のテストシナリオに対してテスト項目を追加したり削除したり入れ替えたりするテストシナリオの編集である。
【００１６】
最後に、テスト自動実行ツール１１はテスト対象のＷＥＢサーバ２との通信を行い、テストシナリオに従ったテストを行う（ステップ６）。具体的には、各レスポンス情報中の変更情報をテスト項目変動部変更情報ＤＢ１４中の対応する照合用変更情報と比較し、一致していなければその箇所をＷＥＢアプリケーションの不具合とし、その変更情報を特定する情報を記録するのである。この特定する情報にテストシナリオを特定する情報を付加することにより複数のテストシナリオの自動テストを連続的に実行することもできる。この自動テストの後、記録された不具合箇所リストを表示させるかプリントさせるかしてテスト者はテスト対象のＷＥＢアプリケーションの不具合箇所を知ることができる。
こうして、この実施例によれば、既存のテストシナリオおよびテスト項目を容易に再利用することができる。また、変更情報をテスト項目ごとに個別に管理しているので、あるテストシナリオでどの内容のテストを行なっているのかをテスト者は把握しやすい。さらに、テストシナリオはテスト項目を、テスト項目は変更情報を指して（参照して）いるので、Ｗｅｂアプリケーションの仕様変更などに伴いテスト内容を変更する必要が生じた場合でも、テスト項目情報ＤＢやテスト項目変更情報ＤＢの内容を変更することにより、すべてのテストシナリオに容易に対応することができる。
【００１７】
以上、一実施形態について説明したが、プログラムとして実現されるテスト自動実行ツール１１（請求項６記載のプログラムに相当する）を着脱可能な記録媒体に記録し、その記録媒体をこれまで本発明によったテストシナリオ作成を行えなかったクライアント装置に装着することにより、または、テスト自動実行ツール１１をネットワークを介してそのようなクライアント装置へ転送することにより、そのようなクライアント装置においても本発明によったテストシナリオ作成を行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態として本発明が実施されるＷｅｂアプリケーションテストシステムの概略構成を示すシステム構成図である。
【図２】本発明の一実施形態として本発明が実施されたＷｅｂアプリケーション実行システムの概略構成を示すシステム構成図である。
【図３】本発明の一実施例としてテスト項目情報ＤＢの内部構成を示すデータ構成図である。
【図４】本発明の一実施例としてテスト項目変動部変更情報ＤＢの内部構成を示すデータ構成図である。
【図５】本発明の一実施例としてテストシナリオの構成を示すデータ構成図である。
【図６】本発明の一実施例としてテスト項目情報ＤＢの内部構成を示すデータ構成図である。
【図７】従来のテストシナリオと本発明の一実施例のテストシナリオの違いを示すデータ構成図である。
【図８】本発明の一実施例としてクライアント装置における表示例を示す画面図である。
【図９】本発明の一実施例としてクライアント装置における表示例を示す他の画面図である。
【図１０】本発明の一実施例としてクライアント装置における表示例を示す他の画面図である。
【図１１】本発明の一実施例としてクライアント装置における表示例を示す他の画面図である。
【図１２】本発明の一実施例としてクライアント装置における表示例を示す他の画面図である。
【図１３】本発明の一実施例としてクライアント装置における表示例を示す他の画面図である。
【図１４】本発明の一実施例としてテストシナリオ作成・実行の動作フローを示すフロー図である。
【図１５】本発明の一実施例としてテスト項目の固定部および変動部の記述例を示す図である。
【図１６】本発明の一実施例としてテスト項目情報ＤＢに格納される内容を示す説明図である。
【図１７】本発明の一実施例としてテスト項目変動部変更情報ＤＢに格納される内容を示す説明図である。
【図１８】本発明の一実施例としてテストシナリオの内容例を示す説明図である。
【符号の説明】
【００１９】
１  クライアント装置
２  Ｗｅｂサーバ
１１  テスト自動実行ツール
１２  テストシナリオ
１３  テスト項目情報ＤＢ
１４  テスト項目変動部変更情報ＤＢ
１５  テスト項目
１６  変動部変更情報
【図１】
2007334837.tif 000003
【図２】
2007334837.tif 000004
【図３】
2007334837.tif 000005
【図４】
2007334837.tif 000006
【図５】
2007334837.tif 000007
【図６】
2007334837.tif 000008
【図７】
2007334837.tif 000009
【図８】
2007334837.tif 000010
【図９】
2007334837.tif 000011
【図１０】
2007334837.tif 000012
【図１１】
2007334837.tif 000013
【図１２】
2007334837.tif 000014
【図１３】
2007334837.tif 000015
【図１４】
2007334837.tif 000016
【図１５】
2007334837.tif 000017
【図１６】
2007334837.tif 000018
【図１７】
2007334837.tif 000019
【図１８】
2007334837.tif 000020