JP2008015709A - テスト支援プログラム、テスト支援装置、およびテスト支援方法 - Google Patents

テスト支援プログラム、テスト支援装置、およびテスト支援方法 Download PDF

Info

Publication number
JP2008015709A
JP2008015709A JP2006184975A JP2006184975A JP2008015709A JP 2008015709 A JP2008015709 A JP 2008015709A JP 2006184975 A JP2006184975 A JP 2006184975A JP 2006184975 A JP2006184975 A JP 2006184975A JP 2008015709 A JP2008015709 A JP 2008015709A
Authority
JP
Japan
Prior art keywords
test
request
link
identification information
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006184975A
Other languages
English (en)
Other versions
JP4940791B2 (ja
Inventor
Yuji Yamaoka
裕司 山岡
Ikuya Morikawa
郁也 森川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006184975A priority Critical patent/JP4940791B2/ja
Priority to US11/642,929 priority patent/US20080008101A1/en
Publication of JP2008015709A publication Critical patent/JP2008015709A/ja
Application granted granted Critical
Publication of JP4940791B2 publication Critical patent/JP4940791B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】ブラウザでは出力できない内容のリクエストも含め、Webサーバへのテスト用リクエストの作成を自動化できるようにする。
【解決手段】デフォルトリクエスト生成手段6により、リンク識別情報記憶手段2に記憶されたリンク識別情報に基づいてテスト対象ページにアクセスするためのリクエストデータが生成され、生成されたリクエストデータがデフォルトリクエスト6aとして出力される。さらに、テスト用リクエスト生成手段7により、デフォルトリクエスト生成手段6から出力されたデフォルトリクエスト6aに対し、差分操作データ記憶手段4に記憶された差分操作データ4a,4b,4cで示される変更対象データに関する操作内容に従った編集操作が行われ、テスト用リクエスト7a,7b,7cが生成される。そして、リクエスト送信手段8により、テスト用リクエスト7a,7b,7cが送信される。
【選択図】図1

Description

本発明はサーバの機能テストを支援するためのテスト支援プログラム、テスト支援装置、およびテスト支援方法に関し、特にネットワーク経由で入力するデータの自動生成を行うテスト支援プログラム、テスト支援装置、およびテスト支援方法に関する。
現在、社内ネットワークや広域ネットワークの普及により、ネットワークを介して様々なサービスを提供することができる。また、最近のほとんどのクライアントコンピュータには、WWW(World Wide Web)用のWebブラウザが実装されている。そのため、Webページ提供用のプログラムが実装されたサーバコンピュータ(以下、Webサーバという)を使用してサービスを提供すれば、クライアント側に特別なプログラムを組み込まずにすみ、システムの導入が容易となる。そこで、Webサーバで実行させる業務用のアプリケーションプログラム(以下、単にアプリケーションという)の開発が盛んに行われている。
WWWサーバ用の業務アプリケーションを開発した場合、運用開始前に、そのアプリケーションが正常に動作することを確認する必要がある。一般的に、GUI(Graphical User Interface)による入出力を伴うアプリケーションの場合、人手によって動作確認が行われていた。ただし、人手によって動作確認を行った場合、仕様書に基づいたデータ入力を行うときに入力ミスをする可能性がある。しかも、画面表示用のプログラムは入力項目が多岐に渡ることが多く、全てのパターンを手作業で入力するには膨大な時間を要していた。
さらに、動作確認の作業では同じテストを繰り返すことがあるが、人手によって同じ作業を繰り返すのは非効率的である。しかも、前回のテスト実行時と何処の結果が異なるのか又は同じなのかを目視で確認するため、常に確認漏れの可能性がある。
そこで、WebブラウザへのGUI上の操作を自動的に実行することで、テストを支援する技術が考えられている。その技術の1つとして、Webブラウザに対して行われた操作に応じて発生したイベントに基づいてスクリプトファイルを生成し、そのスクリプトファイルに基づいてWebブラウザに対して発行されたイベントを再現することで再帰テストを支援する技術がある。このとき、スクリプトファイルはテキスト形式で編集可能であるため、入力フィールドへの入力値をエディタで編集しておくことで、装置に編集後の値を入力させることが可能である。つまり、テスト入力毎にスクリプトファイルを用意しておいてそれらスクリプトファイル群を装置に入力すれば、複数のテスト入力を自動化することができる(たとえば、特許文献1参照)。
特開2005−266954号公報
しかし、特許文献1に示したようなWebブラウザへの操作入力を自動化する技術では、ブラウザ上で操作できる範囲内でしかテストを行うことができない。そのため、セキュリティ上のテストを十分に行うことができない。
たとえば、特にセキュリティ的に重要なテストとして、hiddenパラメータ値の変更や新たなパラメータの追加などがある。すなわち、悪意の第三者は、通常のブラウザから出力されるリクエストデータには設定されることのないパラメータをリクエストに付加する。そのリクエストをWebサーバに送信することで、Webサーバの誤動作を誘発させる。そのような行為に対する安全性を確認するには、Webブラウザに対する操作入力では出力されることのないデータを、テスト用のデータとしてWebサーバに送信できることが望まれる。
なお、Webブラウザから出力されないデータをテスト用のデータとする方法として、Webブラウザから出力されたリクエストを中継し、パラメータなどの内容をエディタによってリアルタイムに編集した後、Webサーバに送信する方法が考えられる。ただし、この方法では、リアルタイムな編集に頼っておりバッチ処理に対応できない。すなわち、一連のテスト入力候補が既知の場合はバッチ的処理を装置に指示し、一連のテスト入力を自動化したいという要求があるが、ユーザの編集操作が介在することでバッチ処理によるテストの自動化ができなくなっている。
本発明はこのような点に鑑みてなされたものであり、ブラウザでは出力できない内容のリクエストも含め、Webサーバへのテスト用リクエストの作成を自動化できるテスト支援プログラム、テスト支援装置、およびテスト支援方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなテスト支援プログラムが提供される。本発明に係るテスト支援プログラムは、ネットワーク上のサーバで提供されるページのテストを支援するために、図1に示す機能をコンピュータに実行させることができる。
リンク識別情報取得手段1は、テスト対象ページに対してリンクが張られたリンク元ページからテスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付ける。リンク識別情報記憶手段2は、リンク識別情報取得手段1に入力されたリンク識別情報を記憶する。差分操作データ取得手段3は、デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データ4a,4b,4cの入力を受け付ける。差分操作データ記憶手段4は、差分操作データ取得手段3に入力された差分操作データを記憶する。デフォルトリクエスト生成手段6は、リンク識別情報記憶手段2に記憶されたリンク識別情報に基づいてテスト対象ページにアクセスするためのリクエストデータを生成し、生成したリクエストデータをデフォルトリクエスト6aとして出力する。テスト用リクエスト生成手段7は、デフォルトリクエスト生成手段6から出力されたデフォルトリクエスト6aに対し、差分操作データ記憶手段4に記憶された差分操作データ4a,4b,4cで示される変更対象データに関する操作内容に従った編集操作を行い、テスト用リクエスト7a,7b,7cを生成する。リクエスト送信手段8は、テスト用リクエスト生成手段7で生成されたテスト用リクエスト7a,7b,7cを、ネットワークを介して送信する。
このようなテスト支援プログラムをコンピュータに実行させることで、リンク識別情報取得手段1により、テスト対象ページに対してリンクが張られたリンク元ページからテスト対象ページへのリンクを辿るために必要なリンク識別情報の入力が受け付けられる。すると、リンク識別情報取得手段1に入力されたリンク識別情報がリンク識別情報記憶手段2に記憶される。また、差分操作データ取得手段3により、デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データ4a,4b,4cの入力が受け付けられる。すると、差分操作データ取得手段3に入力された差分操作データが差分操作データ記憶手段4に記憶される。次に、デフォルトリクエスト生成手段6により、リンク識別情報記憶手段2に記憶されたリンク識別情報に基づいてテスト対象ページにアクセスするためのリクエストデータが生成され、生成されたリクエストデータがデフォルトリクエスト6aとして出力される。さらに、テスト用リクエスト生成手段7により、デフォルトリクエスト生成手段6から出力されたデフォルトリクエスト6aに対し、差分操作データ記憶手段4に記憶された差分操作データ4a,4b,4cで示される変更対象データに関する操作内容に従った編集操作が行われ、テスト用リクエスト7a,7b,7cが生成される。そして、リクエスト送信手段8により、テスト用リクエスト生成手段7で生成されたテスト用リクエスト7a,7b,7cがネットワークを介して送信される。
また、本発明では上記課題を解決するために、ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援装置において、テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付けるリンク識別情報取得手段と、前記リンク識別情報取得手段に入力された前記リンク識別情報を記憶するリンク識別情報記憶手段と、デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付ける差分操作データ取得手段と、前記差分操作データ取得手段に入力された前記差分操作データを記憶する差分操作データ記憶手段と、前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力するデフォルトリクエスト生成手段と、前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成するテスト用リクエスト生成手段と、前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信するリクエスト送信手段と、を有することを特徴とするテスト支援装置が提供される。
また、本発明では上記課題を解決するために、ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援方法において、リンク識別情報取得手段が、テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付け、入力された前記リンク識別情報をリンク識別情報記憶手段に格納し、差分操作データ取得手段が、デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付け、入力された前記差分操作データを差分操作データ記憶手段に格納し、デフォルトリクエスト生成手段が、前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力し、テスト用リクエスト生成手段が、前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成し、リクエスト送信手段が、前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信する、ことを特徴とするテスト支援方法が提供される。
本発明では、リンク識別情報に基づいて生成されたデフォルトリクエストに対して差分操作データに従った編集操作を行うことでテスト用リクエストを生成するようにしたため、リンク元ページを表示するブラウザへの操作入力では設定できないようなデータを含むテスト用リクエストを生成することができる。しかも、差分操作データを予め入力しておけばデフォルトリクエストが自動編集されるため、リクエストデータが生成される毎に操作入力を行う必要がなく、バッチ処理も可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本実施の形態の概略を示す図である。本実施の形態では、ネットワーク上のサーバAで提供されるページのテストを支援するための主な機能として、リンク識別情報取得手段1、リンク識別情報記憶手段2、差分操作データ取得手段3、差分操作データ記憶手段4、リンク関係記憶手段5、デフォルトリクエスト生成手段6、テスト用リクエスト生成手段7、リクエスト送信手段8、およびリンク元ページ再現手段9が設けられている。
リンク識別情報取得手段1は、テスト対象ページに対してリンクが張られたリンク元ページからテスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付ける。たとえば、リンク識別情報取得手段1は、ユーザからの操作入力によりリンク識別情報を取得する。また、リンク識別情報取得手段1は、リンク関係記憶手段5に格納されているリンク関係を選択する操作入力を受け付け、選択されたリンク関係を示すリンク識別情報をリンク関係記憶手段5から取得することもできる。そして、リンク識別情報取得手段1は、取得したリンク識別情報をリンク識別情報記憶手段2に格納する。
リンク識別情報記憶手段2は、リンク識別情報取得手段1に入力されたリンク識別情報を記憶する。なお、リンク識別情報記憶手段2に記憶されたリンク識別情報は、デフォルトリクエスト生成手段6によってデフォルトリクエスト6aが作成された後は消去される。
差分操作データ取得手段3は、デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データ4a,4b,4cの入力を受け付ける。たとえば、ユーザからの操作入力によって差分操作データ4a,4b,4cが入力される。差分操作データ4a,4b,4cでは、たとえば、パラメータ名によって変更対象データが指定されている。また、操作内容としては、「追加」、「変更」、「削除」などが指定される。操作の種別がパラメータの「追加」や「変更」の場合、差分操作データ4a,4b,4c内に操作後のパラメータの値が設定されている。そして、差分操作データ取得手段3は、取得した差分操作データ4a,4b,4cを差分操作データ記憶手段4に格納する。
差分操作データ記憶手段4は、差分操作データ取得手段3に入力された差分操作データ4a,4b,4cを記憶する。なお、デフォルトリクエスト6aに対して複数の差分操作データを適用して1つのテスト用リクエストを生成する場合、同時に適用すべき複数の差分操作データを1つにまとめた差分操作データ群の単位で差分操作データ記憶手段4に格納される。
リンク関係記憶手段5は、サーバAで提供されるページ間のリンク関係が予め記憶されている。たとえば、予めサーバA内のページを収集して解析することで、ページ間のリンク関係をリンク関係記憶手段5に格納することができる。リンク関係としては、どのページからどのページの呼び出しが行われるかを示す情報や、その呼び出しのためにリンク元ページ(呼び出し元のページ)に設定されているリンク識別情報の内容などが設定されている。
たとえば、特開2006−58966号公報には、Webサーバからページを収集し、同様の内容のページ毎にクラス分けする技術が開示されている。具体的には、ページ収集の際に、HTTP(HyperText Transfer Protocol)レスポンスを構文解析して自動的にリンクを検出し、そこからHTTPリクエストデータを生成する。この際、リンクに対して識別データを記録しておく。当該公報ではページの分類単位であるページクラスにIDがつけられ、ページクラスに対応するリンク識別情報は「リンク元ページクラスID」と「リンクURL(Uniform Resource Locator)」との組で表現される。リンクURLは、「リンクの種類に対応するリクエストメソッド」、「URL」、「フォームデータ」の組で表現される。各ページクラスにはそれを再現するのに使用するリンク識別データが記録されている。
なお、クラス分けの条件は、任意に設定できる。たとえば、同じURLで呼び出されるページが同一クラスを分類することができる。また、同じURLでかつ同じ名前のパラメータが設定されたリクエストで呼び出されるページを同一クラスに分類することもできる。
デフォルトリクエスト生成手段6は、リンク識別情報記憶手段2に記憶されたリンク識別情報に基づいてテスト対象ページにアクセスするためのリクエストデータを生成する。そして、デフォルトリクエスト生成手段6は、生成したリクエストデータをデフォルトリクエスト6aとして出力する。
テスト用リクエスト生成手段7は、デフォルトリクエスト生成手段6から出力されたデフォルトリクエスト6aに対し、差分操作データ記憶手段4に記憶された差分操作データ4a,4b,4cで示される変更対象データに関する操作内容に従った編集操作を行い、テスト用リクエスト7a,7b,7cを生成する。
リクエスト送信手段8は、テスト用リクエスト生成手段7で生成されたテスト用リクエスト7a,7b,7cを、ネットワークを介して送信する。
リンク元ページ再現手段9は、リンク関係記憶手段5を参照してリンク元ページを判断し、サーバAにアクセスすることでリンク元ページを再現する。
このようなテスト支援プログラムをコンピュータに実行させることで、リンク識別情報取得手段1により、リンク識別情報の入力が受け付けられリンク識別情報記憶手段2に記憶される。また、差分操作データ取得手段3により、差分操作データ4a,4b,4cの入力が受け付けられ、差分操作データ記憶手段4に記憶される。次に、デフォルトリクエスト生成手段6により、リンク識別情報記憶手段2に記憶されたリンク識別情報に基づいてテスト対象ページにアクセスするためのリクエストデータが生成され、生成されたリクエストデータがデフォルトリクエスト6aとして出力される。その際、デフォルトリクエスト生成手段6は、リンク識別情報から直接リクエストデータを生成することもできるが、リンク元ページ再現手段9で再現したページを利用してリクエストデータを生成することもできる。
リンク元ページ再現手段9でリンク元ページを再現する場合、デフォルトリクエスト生成手段6からリンク元ページ再現手段9へリンク元ページの再現要求が出される。すると、リンク元ページ再現手段9はリンク関係記憶手段5を参照し、リンク識別情報記憶手段2に記憶されているリンク識別情報が属するページクラスのリンク元となるページクラスIDを判断する。そして、リンク元ページ再現手段9は、リンク元のページクラスのリンクURLを用いて、リンク元ページを再現する。
再現されたリンク元ページは、デフォルトリクエスト生成手段6に渡される。デフォルトリクエスト生成手段6では、リンク元ページが解析され、リンク識別情報記憶手段2に記憶されているリンク識別情報に定義されているリンクURLに対応するリンクURLが抽出される。そして、デフォルトリクエスト生成手段6は、リンク元ページから抽出したリンクURLに基づいてリクエストデータが生成され、デフォルトリクエスト6aとして出力される。
このように、再現したリンク元ページ内のリンクURLを用いることで、サーバAにアクセスする毎に値が変化するパラメータ(たとえば、controlなどの値)に対して、テストを実施する時点での値を使用することができる。たとえば、図1の例では、リンク識別情報記憶手段2に記憶されたリンク識別情報を利用してリクエストデータを作成すると、「control=123」となるが、再現したリンク元ページ内のリンクURLを使用するとリンク元ページを再現したときにサーバAから送られた値「control=412」が設定される。
さらに、テスト用リクエスト生成手段7により、デフォルトリクエスト生成手段6から出力されたデフォルトリクエスト6aに対し、差分操作データ記憶手段4に記憶された差分操作データ4a,4b,4cで示される変更対象データに関する操作内容に従った編集操作が行われ、テスト用リクエスト7a,7b,7cが生成される。たとえば、差分操作データ4aにおいて「data=0」と設定されているため、デフォルトリクエスト6aのパラメータ「data=0」に変更したテスト用リクエスト7aが生成されている。
生成されたテスト用リクエスト7a,7b,7cは、リクエスト送信手段8によってサーバAに送信される。
テスト用リクエスト7a,7b,7cに対するサーバAからの応答内容を解析することで、サーバA内のページが設計通りに機能していることを確認することができる。また、不正なパラメータが送信されたときに、セキュリティホールが発生しないことを確認することができる。たとえば、リンク元ページを表示するブラウザへの操作入力では「data」の値として「1」と「2」しか設定できない場合であっても、本実施の形態を利用すれば、「0」、「−1」、「65536」などの不正な値を設定することができる。
このようなテストを行うことで、サーバAに対して悪意を持って不正アクセスを行う第三者からのサーバAの安全性をテストすることが容易となる。しかも、差分操作データ4a,4b,4cを用意しておけば、デフォルトリクエスト6aに対して自動的に差分操作が適用されるため、バッチ処理による自動化も可能となる。
ところで、バッチ処理による自動化を実現する場合、テスト結果の自動判定も実行できることが望まれる。そこで、テスト結果の自動判定までも自動化が可能なシステムの例を用いて、本発明の実施の形態を詳細に説明する。
図2は、本実施の形態のシステム構成例を示す図である。Webサーバ21に対して、ネットワーク10を介してテスト支援装置100が接続されている。Webサーバ21内でプログラムの更新などが行われた場合、テスト支援装置100からWebサーバ21に対してテスト用のリクエストを送信することで、Webサーバ21の動作テストを行うことができる。
図3は、本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。テスト支援装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、テスト支援装置100のハードウェア構成を示したが、Webサーバ21も同様のハードウェア構成で実現できる。
次に、テスト支援装置100がWebページをテストするために必要とする機能について説明する。
図4は、テスト支援装置の機能を示すブロック図である。テスト支援装置100は、テスト定義解析部110、テスト入力部120、Webページ取得部130、テスト結果判定部140、およびリンク識別情報記憶部150を有している。
テスト定義解析部110は、操作入力などによりテスト定義31の入力を受け付け、入力されたテスト定義を解析する。テスト定義31は、テスト内容を定義したものであり、テストの際に入力すべきデータの設定規則を定義したテスト入力規則定義32と、テスト結果の良否判定基準を定義した結果判定規則定義33とで構成される。テスト定義解析部110は、入力されたテスト定義31をテスト入力規則定義32と結果判定規則定義33とに分離する。そして、テスト定義解析部110は、テスト入力規則定義32をテスト入力部120に渡し、結果判定規則定義33をテスト結果判定部140に渡す。
テスト入力部120は、操作入力などにより指定されたリンク識別情報群34をリンク識別情報記憶部150から取得する。そして、テスト入力部120は、テスト定義解析部110からテスト入力規則定義32を受け取り、取得したリンク識別情報群34に含まれる各リンク識別情報についてテスト入力規則定義32に従った処理を行う。
すなわち、テスト入力部120は、リンク識別情報毎にテスト入力規則定義32の<target>タグに従った対象についての差分操作データを、<input_value>タグに従った値で作成する。そして、テスト入力部120は、生成元となったリンク識別情報をリンク指定35としてリンク識別・ページ再現部131に入力すると共に、作成された複数の差分操作データを差分操作データ群36として差分操作適用部132に入力する。
Webページ取得部130は、Webサーバ21にアクセスし、テスト対象のWebページを取得する。具体的には、Webページ取得部130は、リンク指定35によって指定されたWebページを取得する。
なお、Webページには、所定のリンクを辿っていかないと正しく取得できないものがある。たとえば、ログインなどの認証処理を経ないと取得できないWebページの場合、認証処理を行うためのWebページ経由でしか取得することができない。そこで、Webページ取得部130は、リンク指定35で示されたWebページまでの取得手順を再現することで、正しくWebページを取得する機能を備えている。
また、Webページ取得部130は、Webページを取得する際のリクエストの内容を、差分操作データに応じて変更する機能を備えている。これらの機能を実現するため、Webページ取得部130は、リンク識別・ページ再現部131、差分操作適用部132、およびHTTP通信部133を有している。
リンク識別・ページ再現部131は、入力されたリンク指定35に基づいて、リンク指定で指定されたWebページを、所定のリンクを辿って再現する。この機能は、たとえば、特開2006−58966号公報に開示された「ページ情報収集装置」の機能を用いて実現できる。当該公報記載の発明は、WebサイトからWebページを自動収集するものである。収集したWebページは、所定の分類規則に従ってデータ構造毎にクラス分けされる。たとえば、URLが同じであり、かつ他のWebページへのリンク情報が同一の場合には、データ構造が同じと判断して同じクラスに振り分ける。さらに、「ページ情報収集装置」は、任意のクラスに属するWebページを再現するために辿るためのリンク関係などの情報を、リンク識別情報群34として記憶している。
リンク識別・ページ再現部131は、前記公報記載の「ページ情報収集装置」の機能を内包している。そこで、リンク識別・ページ再現部131は、リンク指定35で指定されたWebページを再現するためのリンクを辿り、そのWebページのリンク元ページを再現する。さらに、リンク識別・ページ再現部131は、リンク元ページの中から、リンク指定35で指定されたWebページを取得するためのリンクURLを選択する。そして、リンク識別・ページ再現部131は、選択したリンクURLに基づいて、リクエスト(デフォルトリクエスト42)を生成する。
また、リンク識別・ページ再現部131は、デフォルトリクエスト42、デフォルトリクエスト42の生成元となったリンクURL43、およびデフォルトリクエストに対して適用すべき差分操作データ群41を差分操作適用部132に渡す。この差分操作データ群41は、ページを収集する際に使用した情報として、リンク識別・ページ再現部131内に記録されていたものである。
差分操作適用部132は、リンク識別・ページ再現部131から入力されたデフォルトリクエスト42に対して、リンク識別・ページ再現部131から受け取った差分操作データ群41とテスト入力部120から受け取った差分操作データ群36とを適用し、リンク指定35で指定されたWebページへのテスト用のリクエストを生成する。なお、差分操作の対象がフォームデータの場合、デフォルトリクエスト42と共に受け取ったリンクURL43に設定されているフォームデータに対応するデータをデフォルトリクエスト42から検索し、検出されたデータを差分操作の対象とする。
さらに、差分操作適用部132は、生成したリクエストをHTTP通信部133に渡し、HTTP通信部133からHTTPレスポンス37を受け取る。そして、差分操作適用部132は、受け取ったHTTPレスポンス37をテスト結果判定部140に渡す。
HTTP通信部133は、リクエストデータ(補足情報としてURLを含む)を入力として受け付け、対象Webサーバ21にHTTP/HTTPS通信でリクエストデータを送信する。そして、HTTP通信部133は、リクエストデータの送信に対するレスポンスデータを出力する。この機能は一般的に良く知られているtelnetなどを用いて実現できる。HTTP通信部133は、この機能を用いて、リンク識別・ページ再現部131や差分操作適用部132からのHTTPのリクエストに応じてWebサーバ21にアクセスし、WebページなどのHTTPレスポンスを取得する。そして、HTTP通信部133は、取得したHTTPレスポンスをリンク識別・ページ再現部131や差分操作適用部132に渡す。
テスト結果判定部140は、差分操作適用部132から受け取ったHTTPレスポンス37を、テスト定義解析部110から受け取った結果判定規則定義33で評価する。たとえば、テスト結果判定部140は、結果判定規則定義33で示される情報がHTTPレスポンス37に含まれていれば、テストを正常終了と判定する。テスト結果判定部140は、判定内容をテスト結果38として出力する。
リンク識別情報記憶部150は、リンク識別・ページ再現部131において生成されたリンク識別情報群34を記憶する。
なお、図1に示したサーバA以外の各機能は、Webページ取得部130に含まれる機能である。具体的には、リンク識別情報取得手段1、リンク識別情報記憶手段2、リンク関係記憶手段5、デフォルトリクエスト生成手段6、およびリンク元ページ再現手段9の機能が、リンク識別・ページ再現部131に含まれる。また、差分操作データ取得手段3、差分操作データ記憶手段4、テスト用リクエスト生成手段7、およびリクエスト送信手段8の機能が、差分操作適用部132に含まれる。ただし、リクエスト送信手段8とリンク元ページ再現手段9との機能のうちHTTPによる通信処理機能については、HTTP通信部133によって実現される。
以下、図4に示した各機能で実行される処理の詳細を説明する前に、まずURLとパラメータのデータ構造とリンク識別情報群34とについて説明する。
図5は、URLとパラメータのデータ構造を示す図である。HTTPデータの所在地は、URL201で指定される。URL201には、パラメータ202を付加することが出来る。パラメータ202は、URL201で指定されたHTTPデータを取得する際に、そのHTTPデータを保持するWebサーバに渡される。そして、URL201においてWebアプリケーションが指定されている場合、「?」以降にクエリ203を設定することができる。クエリ203は、1以上のクエリパラメータ204,205で構成される。クエリパラメータ204は、名前206と値207とを有している。このようなURL201に付加されるパラメータ202の場合、そのパラメータ202の一部として含まれるクエリパラメータ204、205毎に差分操作の対象となる。
次に、リンク識別・ページ再現部131が保持するページクラスとリンク識別情報群とについて説明する。
リンク識別情報群は、Webページ収集機能によって収集されたWebページに基づいて生成されている。Webページは、データ構造に応じてページクラスに分類されている。そして、各ページクラスに属するWebページを取得した際のリンクURLと差分操作データとがリンク識別情報で示される。
図6は、ページクラスとリンク識別情報との関係を示す図である。収集したWebページの分類先であるページクラス51〜54には、ページクラスを一意に識別するためのページクラスIDが設定されている。
初期ノード以外の各ページクラス52〜54には、再現用リンク52a,53a,54aが関連づけられている。再現用リンク52a,53a,54aは、対応するページクラスを再現するための代表的なリンク識別情報である。
また、初期ノード以外の各ページクラス52〜54には、そのページクラスに属するページを取得した際に使用したリンク識別情報52b,53b,53c,54bが関連づけられている。
本実施の形態では、差分操作適用後のリクエストも更なる操作の元となるリンクとして扱えるようにするため、特開2006−58966号公報で示されたリンク識別情報を拡張し、「リンク元ページクラスID」、「リンクURL」、「差分操作データ群」の組でリンク識別情報を表現している。このうち、リンク元ページクラスIDとリンクURLとからデフォルトリクエストが生成され、差分操作データ群と共に差分操作適用部に入力される。
ページクラス51のページクラスIDは「0」である。ページクラス51は、初期ノードであり、属するWebページの情報が空(blank)となっている。初期ノードは、Webページのリンク関係を辿る際の起点を示している。初期ノードは、ユーザによる対話型の操作におけるWebページを読み込む前のWebブラウザの状態に相当する。
ページクラス52のページクラスIDは「1」である。ページクラス52には、初期ノードから直接読み出されるWebページが属している。たとえば、Webサーバ21内のトップページがページクラス52に属する。ページクラス52の再現用リンク52aは”(0,(GET,http://example.com/top,-),[])”である。再現用リンク52aの先頭に示されている「0」は、リンク元となるページクラス51のページクラスIDである。
ページクラスIDに続く括弧内の記載”(GET,http://example.com/top)が、リンクURLである。リンクURL内の”GET”の文字は、リンクの種類に対応するリクエストのメソッド属性である<リクエストメソッド>を示している。”GET”は、Webページ取得のリクエストであることを示している。種別に続けて、URL”http://example.com/top”が示されている。URLの後にはフォームデータの設定フィールドであるが、この例ではフォームデータが設定されていないため空欄の記号”-”が設定されている。最後の”[]”は、差分操作データの設定フィールドを示している。この例では、再現用リンク52aの内容が、そのままリンク識別情報52b”(0,(GET,http://example.com/top,-),[])”となる。
ページクラス53のページクラスIDは「2」である。ページクラス53には、ページクラス52からのリクエストに応じてHTTPレスポンスとして返されるWebページが属している。ページクラス53の再現用リンク53aは”(1,(POST,http://example.com/dynamic,control=123&data=1),[])”である。再現用リンク53aの先頭に示されている「1」は、リンク元となるページクラス52のページクラスIDである。次の”POST”の文字は、リクエストの種別を示している。”POST”は、Webページに対するデータ設定のリクエストであることを示している。種別に続けて、URL”http://example.com/dynamic”が示されている。また、”control=123&data=1”によって、パラメータが設定されている。
この例では、ページクラス52を表示するWebブラウザからページクラス53にアクセスするためリクエストデータには、差分操作データを適用しない場合と差分操作データを適用した場合とがある。そこで、ページクラス53に対応するリンク識別情報53b,53cとして、”(1,(POST,http://example.com/dynamic, control=123&data=1),[])”と”(1,(POST,http://example.com/dynamic, control=213&data=1),[From,変更,data,1,2])”が設定されている。
図6に示したページ間のリンク関係を示す情報はリンク識別・ページ再現部131が管理する記憶装置内で記憶されている。すなわち、リンク識別・ページ再現部131は、ページクラスIDに対応付けて、再現用リンクと、そのページクラスに対するリンク識別情報とを記憶している。
リンク識別情報に設定されている”[From,変更,data,1,2]”が差分操作データである。差分操作データは、<対象>、<種類>、<名前>、<順序>、<変更値>というデータ配列となっている。
<対象>フィールドは、リンク識別情報中の変更対象となるデータを特定する情報を示している。本実施の形態では、<対象>フィールドに、「Method」、「URL」、「Form」、「Query」、「Cookie」、「Referer」、「Header」が設定できる。なお、これらの対象の中には差分操作方法に制限がある対象もある。たとえば、「Method」、「URL」、「Referer」については操作の種類として「全体変更」のみに制限される。
<種類>フィールドは、変更処理の種類を示している。種類には、「追加」、「変更」、「削除」、「全て削除」、「全体変更」がある。「追加」は、パラメータを追加することを示す。「変更」は、所定のパラメータの値を変更することを示す。「削除」は、所定のパラメータを削除することを示す。「全て削除」は、全てのパラメータを削除することを示す。「全体変更」は、全体変更のみに制限した変更であることを示す。
<名前>フィールドは、変更対象となるパラメータの名称である。<順序>フィールドは、変更対象のパラメータが同一名称のパラメータ中の前から何番目のパラメータなのかを示している。<変更値>フィールドは、変更対象のパラメータの変更後の値を示している。
たとえば”[From,変更,data,1,2]”という差分操作データは、フォームデータとして設定された名前が「data」の1つ目のパラメータの値を「2」に変更することを示している。
ページクラス54のページクラスIDは「3」である。ページクラス54には、ページクラス52からのリクエストに応じてHTTPレスポンスとして返されるWebページが属している。ページクラス54の再現用リンクは”(1,(GET,http://example.com/static, -),[])”である。ページクラス53に対応するリンク識別情報も同様に”(1,(GET,http://example.com/static, -),[])”である。
このようなページクラスとリンク識別情報とがリンク識別・ページ再現部131によって生成され、ページクラス情報としてリンク識別・ページ再現部131が記憶している。そして、リンク識別・ページ再現部131は、ページクラス情報からリンク識別情報を抽出してリンク識別情報群34とし、リンク識別情報記憶部150に格納する。
図7は、リンク識別情報記憶部に格納されたリンク識別情報群を示す図である。図7に示すように、リンク識別情報記憶部150には、リンク識別情報群34が格納される。
リンク識別情報記憶部150には、たとえばWebサイト毎のリンク識別情報群が格納される。そして、Webページのテストを行う際には、テスト対象となるWebページが属するページクラスに関するリンク識別情報を含むリンク識別情報群がユーザによって指定され、テスト入力部120によって取り出される。
Webページのテストを行う際には、ユーザは、テスト定義解析部110に対してテスト定義31を入力する。
図8は、テスト定義の例を示す図である。このテスト定義31は、既知の各リンク識別情報について、「各「Form」(<target>タグで指定されている)のパラメータに値「ID_STRING」(<input_value>タグで指定されている)を設定したテストリクエストを送信し、そのレスポンスに「ID_STRING」(<finding_value>タグで指定されている)が含まれているものを正しいテスト結果(リンク識別情報、差分操作データ群、リクエスト・レスポンスなど)として出力せよ」ということを意味している。
テスト定義解析部110は、入力されたテスト定義31をテスト入力規則定義32と結果判定規則定義33にわける。具体的には、テスト定義解析部110は、図8の<target>タグと<input_value>タグとの情報をテスト定義31から抽出し、テスト入力規則定義32としてテスト入力部120に入力する。また、テスト定義解析部110は、図8の<finding_value>タグの情報をテスト定義31から抽出し、結果判定規則定義33としてテスト結果判定部140に入力する。
このように、テスト定義31がテスト定義解析部110に入力されることで、テスト定義31の解析結果であるテスト入力規則定義32および結果判定規則定義33がそれぞれテスト入力部120およびテスト結果判定部140に入力される。
また、ユーザは、テスト入力部120に対して、テスト対象となるページクラスの指定、およびそのページクラスへのリンク識別情報を含むリンク識別情報群34の指定を行う。すると、テスト入力部120が、指定されたリンク識別情報群34をリンク識別情報記憶部150から抽出する。そして、テスト入力部120は、テスト入力規則定義32とリンク識別情報群34とに基づいて、リンク指定35と差分操作データ群36とを生成する。
図9は、テスト入力部の処理手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS11]テスト入力部120は、指定された既知のリンク識別情報群34とテスト入力規則定義32とを取得する。
[ステップS12]テスト入力部120は、テスト入力規則定義32から<対象>と<変更値>とを取得する。図8の例では、<target>タグで<対象>が指定され、<input_value>タグで<変更値>が指定されている。
[ステップS13]テスト入力部120は、リンク識別情報群34に含まれるリンク識別情報毎に、ステップS14からステップS22の処理を実行する。
[ステップS14]テスト入力部120は、リンク識別情報から<対象>で指定されたデータである<対象データ>を取得する。
[ステップS15]テスト入力部120は、<対象>が「全体操作」のみに制限されているか否かを判断する。すなわち、テスト定義31における<対象>の指定内容として、「全体操作」のみに制限することを示す情報が設定されているか否かを判断する。たとえば、「全体操作」のみに制限される対象のリストが予め登録されており、<対象>フィールドの内容がリストに含まれている場合、「全体操作」のみに制限されるものと判断される。「全体操作」のみに制限されている場合、処理がステップS16に進められる。「全体操作」のみに制限されていない場合、処理がステップS18に進められる。
[ステップS16]テスト入力部120は、<対象データ>に対する差分操作データ(<対象>、全体変更、−,−,<変更値>)を作成する。なお、全体変更の場合、<変更値>に全体の変更内容が設定される。そのため、変更対象のパラメータを特定するための情報は不要であり、<名前>や<順序>は空欄(”−”の記号で示されている)となる。
[ステップS17]テスト入力部120は、処理対象としたリンク識別情報をリンク指定35としてリンク識別・ページ再現部131に対して出力すると共に、ステップS16で生成した差分操作データを差分操作データ群36として差分操作適用部132に対して出力する。その後、処理がステップS23に進められる。
[ステップS18]テスト入力部120は、<対象データ>のパラメータ毎に、ステップS19〜ステップS21の処理を行う。
[ステップS19]テスト入力部120は、パラメータの<名前>を取得し、そのパラメータの<順序>(同じ名前のパラメータの配列上の何番目か)を判断する。
[ステップS20]テスト入力部120は、<対象データ>に対する差分操作データ(<対象>、<変更>、<名前>、<順序>、<変更値>)を作成する。
[ステップS21]テスト入力部120は、処理対象としたリンク識別情報をリンク指定35としてリンク識別・ページ再現部131に対して出力すると共に、ステップS20で生成した差分操作データを差分操作データ群36として差分操作適用部132に対して出力する。その後、処理がステップS22に進められる。
[ステップS22]テスト入力部120は、対象データの全てのパラメータに対してステップS19〜S21の処理が終了したら、処理をステップS23に進める。
[ステップS23]テスト入力部120は、全てのリンク識別情報に対してステップS14〜S22の処理が終了したら、処理を終了する。
以上の処理により、リンク識別情報に対応するリンク指定35と差分操作データ群36との組がテスト入力部120から出力される。対象データに複数のパラメータが含まれている場合、パラメータの数だけリンク指定35と差分操作データ群36との組が出力される。
次に、リンク指定35を受け取ったリンク識別・ページ再現部131のデフォルトリクエスト生成処理について説明する。
図10は、デフォルトリクエスト生成処理手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS31]リンク識別・ページ再現部131は、入力されたリンク指定35からリンク識別情報を取得する。
[ステップS32]リンク識別・ページ再現部131は、取得したリンク識別情報を解析し、<リンク元ページクラスID>、<リンクURL>、および<差分操作データ群>を取得する。
[ステップS33]リンク識別・ページ再現部131は、<リンク元ページクラスID>に相当するノードが初期ノードか否かを判断する。初期ノードであれば、処理がステップS34に進められる。初期ノードでなければ、処理がステップS35に進められる。
[ステップS34]リンク識別・ページ再現部131は、ステップS32で取得した<リンクURL>からWebページを取得するためのHTTPリクエストデータを作成する。その後、処理がステップS39に進められる。
[ステップS35]リンク識別・ページ再現部131は、<リンク元ページクラスID>に相当するページを再現する。この処理の詳細は後述する(図11参照)。なお、ページが再現できずエラーが出力された場合、図10に示す処理はエラー終了する。
[ステップS36]リンク識別・ページ再現部131は、ステップS35で再取得したレスポンスをパースし、含まれているリンク情報のリストを取得する。ここで「パース」とは、データを解析し、その中から必要なデータを抽出する処理である。
[ステップS37]リンク識別・ページ再現部131は、ステップS36で抽出したリンク情報のリストから、ステップS32で取得した<リンクURL>に相当するリンク情報を選択する。この処理の詳細は後述する(図12参照)。
[ステップS38]リンク識別・ページ再現部131は、選択したリンク情報に基づいて、そのリンク情報が選択されたときにWebブラウザで生成されるHTTPリクエストデータを作成する。
[ステップS39]リンク識別・ページ再現部131は、作成したリクエストデータをデフォルトリクエスト42とし、ステップS32で取得した<差分操作データ群>を差分操作データ群41として、差分操作適用部132に対して出力する。
図11は、ページ再現処理の手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS41]リンク識別・ページ再現部131は、<リンク元ページクラスID>で示されるクラスIDを、再現するページクラスIDとして取得する。
[ステップS42]リンク識別・ページ再現部131は、取得したクラスIDに相当するページクラスを再現するのに使用するリンク識別データを取得する。たとえば、図6に示すように、リンク識別・ページ再現部131は各ページクラスに対応付けて、再現用リンクを予めページクラス情報として保持している。そこで、リンク識別・ページ再現部131は、予め記憶しているページクラス情報から、再現するページクラスIDに対応付けられた再現用リンクを取得する。
[ステップS43]リンク識別・ページ再現部131は、再現用リンクに対応するWebページの取得要求を示すデフォルトリクエストを生成する。具体的には、リンク識別・ページ再現部131は、再現用リンクを新たな入力として、図10に示すデフォルトリクエスト生成処理を再帰的に実行する。
[ステップS44]リンク識別・ページ再現部131は、HTTP通信部133を介してデフォルトリクエストを送信し、そのリクエストに対するレスポンスを取得する。
[ステップS45]リンク識別・ページ再現部131は、レスポンスで取得したデータによって、ページが再現されたか(取得したデータが再現すべきページクラスに分類されたか)否かを判断する。具体的には、リンク識別・ページ再現部131には、各ページクラスに分類するための条件が定義されており、取得したデータが再現すべきページクラスに分類するための条件に合致するか否かによって、再現性の有無が判断される。正しく再現された場合、処理がステップS46に進められる。再現できなかった場合、処理がステップS47に進められる。
[ステップS46]リンク識別・ページ再現部131は、レスポンスを再現結果として出力する。その後、ページ再現処理が終了する。
[ステップS47]リンク識別・ページ再現部131は、再現できなかった旨のエラーを出力し、ページ再現処理を終了する。
図12は、リンク選択処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS51]リンク識別・ページ再現部131は、再現されたページから抽出されたリンクのリストと<リンクURL>とを取得する。
[ステップS52]リンク識別・ページ再現部131は、<リンクURL>から、<リクエストメソッド>、<URL>、<フォームデータ>を取得する。
[ステップS53]リンク識別・ページ再現部131は、リンクのリストの中から、ステップS52で取得した<リクエストメソッド>に一致しないリンクをリストから排除する。たとえば、<リクエストメソッド>が”GET”であれば、”GET”以外の”POST”などのメソッドが削除される。
[ステップS54]リンク識別・ページ再現部131は、ステップS52で取得した<URL>、<フォームデータ>に対してパラメータの順序は問わず一致するリンクが、リンクのリスト中にあるか否かを判断する。なお、<フォームデータ>内のパラメータの値は一致していることが必要である。一致するリンクがあれば、処理がステップS56に進められる。一致するリンクがなければ、処理がステップS55に進められる。
[ステップS55]リンク識別・ページ再現部131は、ステップS52で取得した<URL>、<フォームデータ>に対してパラメータの順序と値は問わず一致するリンクが、リンクのリスト中にあるか否かを判断する。一致するリンクがあれば、処理がステップS56に進められる。一致するリンクがなければ、処理がステップS57に進められる。
[ステップS56]リンク識別・ページ再現部131は、一致したリンクを選択リンクとして出力する。その後、リンク選択処理が終了する。
[ステップS57]リンク識別・ページ再現部131は、再現できなかった旨のエラーを出力する。その後、リンク選択処理が終了する。
以上のようにして、リンク識別・ページ再現部131から差分操作データ群41とデフォルトリクエスト42とが出力される。たとえば、図7に示すリンク識別情報群34がテスト入力部120に入力され、ページクラスID「2」のページクラス53(図6参照)の再現を試みるリンク(1,(POST,http://example.com/dynamic, control=123&data=1),[])をリンク指定35として入力された場合、以下のような手順でデフォルトリクエストが生成される。
入力されたリンク指定35は初期ノード(ID「0」)ではないので、図10のステップS33の条件分岐においてNOと判断される。図11の処理に移行する。入力されたリンク指定35の<リンク元ページクラスID>は「1」であるため、ページクラスID「1」のページクラス52(図6参照)を再現するための再現用リンク(0,(GET,http://example.com/top, -),[])がステップS42で取得される。そして、ステップS43において、ページクラス52の再現用リンクを処理対象のリンク識別情報として、図10の処理が行われる。すると、ページクラス52の再現用リンク(0,(GET,http://example.com/top, -),[])は<リンク元ページクラスID>が初期ノード(ページクラスID「0」)であるため、ステップS33においてYESと判定される。その結果、ステップS34において「http://example.com/top」を要求するGETメソッドのHTTPリクエストデータがデフォルトリクエストとして生成される。生成されたデフォルトリクエストは、処理の呼び出し元である図11のステップS43における処理結果となる。
次に、ステップS44において、生成されたデフォルトリクエストがネットワーク10上に送信され、レスポンスが取得される。
図13は、リクエストに対するレスポンスの例を示す図である。図13に示すように、レスポンスとしてHTTP文書61が得られる。このHTTP文書61からリンクのリストが生成される。
図13の例では、<form>、</form>タグ内の記載がリンクを表している。なお、<input type="radio" name="data" value="1" checked>との記載から、ラジオボタンによる選択によって"data"の値として"1"が選択されていることが分かる。また、<a href="static">problem?</a>のアンカータグによって、リンクが設定されている。
ここで、レスポンスとしてページクラスID「1」に属するページが正しく再現された場合、ステップS46において、そのページが再現結果として出力される。次に、処理が図10のステップS36に進められ、再現されたページがパースされ、そのページに含まれているリンクのリストが取得される。
図14は、レスポンスに含まれるリンクのリストを示す図である。リスト62には、POSTメソッドのリンクとGETメソッドのリンクとが含まれている。POSTメソッドのリンクは、HTTP文書61の、<form>、</form>タグ内の記載に基づくリンクURLである。また、GETメソッドは、HTTP文書61の<a href="static">problem?</a>の記載に基づくリンクURLである。
さらに、取得されたリンクのリスト62から、図12に示す処理に基づいて、リンクが選択される。図14のようなリスト62の場合、再現用リンク(1,(POST,http://example.com/dynamic, control=123&data=1),[])と、リスト62内の各リンクURLとが比較される。すると、(POST,http://example.com/dynamic, control=123&data=1)というリンクURLが、<URL>と一致し、<フォームデータ>内のパラメータの順序と値は問わず一致するか(図12のステップS55)の判断でYESとなり、このリンクが選択される。
リンクが選択されると、図10のステップS38において、HTTPリクエストデータが生成される。
図15は、リクエストデータの例を示す図である。HTTPリクエストデータ63には、所定のWebブラウザ上でリンクが選択されたときに、そのWebブラウザから出力される内容が設定されている。すなわち、リンクが選択されたときにWebブラウザが実行する処理をシミュレートすることで、HTTPリクエストデータ63が生成される。
生成されたHTTPリクエストデータ63は、デフォルトリクエスト42として差分操作適用部132に渡される。なお、デフォルトリクエスト42を生成する際にリンク指定35として入力されたのは、(1,(POST,http://example.com/dynamic, control=123&data=1),[])というリンクである。このリンクには、差分操作データ群が設定されていない。そのため、図15に示したHTTPリクエストデータ63がデフォルトリクエスト42としてリンク識別・ページ再現部131から出力される際には、差分操作データ群41は出力されない。
ここで、リンク指定35として、リンク識別情報群34内の(1,(POST,http://example.com/dynamic,control=213&data=1),[From,変更,data,1,2])というリンク識別情報が入力された場合、図15に示したHTTPリクエストデータ63と同じ内容のリクエストデータが生成される。そして、[From,変更,data,1,2]という差分操作データ群がリンク識別情報に含まれているため、[From,変更,data,1,2]がリンク識別・ページ再現部131から出力される差分操作データ群41となる。
なお、(1,(POST,http://example.com/dynamic,control=213&data=1),[From,変更,data,1,2])というリンク識別情報は、図13に示したHTTP文書61における<form>、</form>タグ内の記載において、<input type="radio" name="data" value="2">で定義されたラジオボタンが選択された場合のリンクを示している。
図14に示すリスト62から(POST,http://example.com/dynamic, control=123&data=1)が選択され、図15に示すHTTPリクエストデータ63が生成された場合、HTTPリクエストデータ63がデフォルトリクエスト42として差分操作適用部132に渡される。また、生成元となったリンクURL43(POST,http://example.com/dynamic, control=123&data=1)も同様に、差分操作適用部132に渡される。
すると、差分操作適用部132において、デフォルトリクエスト42の中から、差分操作データ群36,41に従って差分操作の対象が判断される。対象が「Method」であれば、HTTPリクエストデータ63の一行目の最初の記述(図15の例では、「POST」)が対象として特定される。また、対象が「URL」であれば、HTTPリクエストデータ63の一行目のメソッドに続く記述(図15の例では、「http://example.com/dynamic」)が対象として特定される。対象が「Form」であれば、リンクURL43(POST,http://example.com/dynamic, control=123&data=1)のフォームデータ(control=123&data=1)に対応するHTTPリクエストデータ63内の記述(図15の例では、9行目の「control=123&data=1」)が対象として特定される。対象が「Query」であれば、HTTPリクエストデータ63の一行目に示されたURLの記述内の「?」以降の記述(図15の例ではクエリは設定されていない)が対象として特定される。対象が「Cookie」であれば、HTTPリクエストデータ63内の「Cookie」で始まる行の記載(図15の例ではクッキーは設定されていない)が対象として特定される。対象が「Referer」であれば、HTTPリクエストデータ63内の「Referer」で始まる行の記載(図15の例では4行目)が対象として特定される。対象が「Header」であれば、HTTPリクエストデータ63内の「Content-Length」や「Content-Type」などのフィールド名で示されたヘッダフィールドの行の記載が対象として特定される。
次に、差分操作適用部132における差分操作適用処理について説明する。ここで、差分操作適用処理の代表的な処理として、対象としてクエリが指定された場合の処理を説明する。
図16は、差分操作適用処理の手順を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS61]差分操作適用部132は、入力されたデフォルトリクエスト42と差分操作データ群36,41とを取得する。
[ステップS62]差分操作適用部132は、取得した差分操作データ毎にステップS63〜S72の処理を行う。
[ステップS63]差分操作適用部132は、差分操作データから<種類>、<名前>、<順序>、<値>の各フィールドに設定されたデータを取得する。
[ステップS64]差分操作適用部132は、<種類>フィールドのデータが「追加」か否かを判断する。「追加」であれば処理がステップS65に進められる。「追加」でなければ処理がステップS66に進められる。
[ステップS65]差分操作適用部132は、デフォルトリクエストのクエリの末尾に、ステップS63で取得した<名前>フィールドに示された名前のクエリパラメータを追加する。その際、差分操作適用部132は、追加したクエリパラメータには、ステップS63で取得した<値>フィールドに示された値を設定する。その後、処理がステップS73に進められる。
[ステップS66]差分操作適用部132は、<種類>フィールドのデータが「変更」か否かを判断する。「変更」であれば処理がステップS67に進められる。「変更」でなければ処理がステップS68に進められる。
[ステップS67]差分操作適用部132は、デフォルトリクエストのクエリからステップS63で取得した<名前>フィールドに示された名前と同じ名前のクエリパラメータを抽出する。次に、差分操作適用部132は、抽出したクエリパラメータのうちステップS63で取得した<順番>フィールドに示される順番となるクエリパラメータを選択する。そして、差分操作適用部132は、選択したクエリパラメータの値に、ステップS63で取得した<値>フィールドのデータを設定する。その後、処理がステップS73に進められる。
[ステップS68]差分操作適用部132は、<種類>フィールドのデータが「削除」か否かを判断する。「削除」であれば処理がステップS69に進められる。「削除」でなければ処理がステップS70に進められる。
[ステップS69]差分操作適用部132は、デフォルトリクエストのクエリからステップS63で取得した<名前>フィールドに示された名前と同じ名前のクエリパラメータを抽出する。次に、差分操作適用部132は、抽出したクエリパラメータのうちステップS63で取得した<順番>フィールドに示される順番となるパラメータを選択する。そして、差分操作適用部132は、選択したクエリパラメータを削除する。その後、処理がステップS73に進められる。
[ステップS70]差分操作適用部132は、<種類>フィールドのデータが「全て削除」か否かを判断する。「全て削除」であれば処理がステップS71に進められる。「全て削除」でなければ処理がステップS72に進められる。なお、ステップS70でNOと判断される場合とは、<種類>フィールドのデータが「全て変更」の場合である。
[ステップS71]差分操作適用部132は、デフォルトリクエストのクエリパラメータを全て削除する。その後、処理がステップS73に進められる。
[ステップS72]差分操作適用部132は、デフォルトリクエストのクエリに含まれる全てのクエリパラメータの値を、ステップS63で取得した<値>フィールドに設定されていた値に変更する。その後、処理がステップS73に進められる。
[ステップS73]差分操作適用部132は、全ての差分操作データに対してステップS63〜S72の処理が完了したら、処理をステップS74に進める。
[ステップS74]差分操作適用部132は、差分情報反映後のデフォルトリクエストを、HTTP通信部133を介してWebサーバ21に送信し、その応答をHTTPレスポンス37としてテスト結果判定部140に出力する。
このようにして、デフォルトリクエストに対して差分操作処理を行うことができる。なお、本実施の形態では、リンク識別・ページ再現部131によって提供される差分操作データ群41を優先的に適用し、その後にテスト入力部120によって提供される差分操作データ群36を適用するものとする。
なお、図16の処理は、差分操作の対象がクエリ「Query」の場合の処理であるが、他の対象でも同じような処理で差分操作を適用できる。対象が「Form」であれば、クエリパラメータを、フォームデータのパラメータに置き換えればよい。
なお、操作の種類に制限がある対象もある。たとえば、「Method」、「URL」、「Referer」については操作の種類として「全体変更」のみに制限される。その場合、図16に示すフローチャート中のステップS64,S66,S68は、必ずNOに遷移する。
また、「Header」が対象の場合には、図16のフローチャートの説明における「クエリ」を「ヘッダ」に、「クエリパラメータ」を「ヘッダフィールド」に変更することで適用できる。
また、本実施の形態では差分操作データ群について、対象の種別に応じた適用する順番が決定される。すなわち、「Method」、「URL」、「Form」、「Query」、「Cookie」、「Referer」、「Header」の順で差分操作データを選択し、順次適用される。この順序は主に分かりやすさを考慮して決定されている。
ところで、テスト入力部120は、手動操作によって差分操作データ群36を設定することもできる。たとえば、テスト入力部120は、ユーザからの操作入力により、リンク識別情報群34内の任意のリンク識別情報が選択されると、差分操作メイン画面を表示する。
図17は、差分操作メイン画面を示す図である。差分操作メイン画面70は、差分操作適用部132が提供する手動入力用のGUIの一つであり、選択したリンク識別情報に対する差分操作の概要を表示するものである。
差分操作メイン画面70には、「Method:」などの操作対象71が表示されている。各操作対象71には、操作内容が全体操作か部分操作群かを示す種類毎に、その差分操作を行うか否かを指定するためのチェックボックス72が対応付けられている。種類「全体操作」は、全体変更の差分操作データが設定されていることを示す。種類「部分操作群」は、全体変更以外の差分操作データ群が設定されていることを示す。チェックボックス72がユーザの操作入力によって選択されると、チェックボックス72内にチェックのマークが表示される。
各操作項目(全体操作または部分操作群)に対応付けて、テキストボックス73が設けられている。テキストボックス73内には、操作入力によって、差分操作における変更後の内容が設定できる。なお、各テキストボックス73には、選択されたリンク識別情報に対応する値が各項目の初期値として表示されている。
また、「Form:」などの操作対象に対応付けて、詳細ボタン74が設けられている。詳細ボタン74が押下されると、詳細編集画面が表示される。
「操作済みリクエストを送信する」と表記された確定ボタン75は、差分操作を適用したリクエストの送信を指示するためのボタンである。確定ボタン75が押下されると、差分操作メイン画面70において設定された差分操作を適用したリクエストが、ネットワーク10を介してWebサーバに送信される。すなわち、確定ボタン75がクリックされると、テスト入力部120により、表示中の差分操作データ群が、選択したリンク識別情報とともにWebページ取得部130に入力される。そして差分操作適用部132によって、デフォルトリクエスト42に対して、差分操作データが上から順に(Method全体操作→URL全体操作→Form全体操作→Form部分操作→・・・)適用されていく。
「送信直前に送信元ノードを再現する」と表記されたチェックボックス76は、送信元ノードの再現を指示するためのチェックボックスである。チェックボックス76が選択された状態で確定ボタン75が押下されると、リンク識別・ページ再現部131によって、送信すべきリクエストの送信元となるクラスの再現処理が行われた後、差分操作を適用したリクエストが送信される。
なお、「Form」はHTMLのフォームにより指定されているデータである。「Query」はURLの一部(”?”以降のクエリパラメータ)として指定されているデータである。
次に、詳細編集画面について説明する。
図18は、詳細編集画面を示す図である。これは、「Form」の対応する詳細ボタンが押下されたときに表示される詳細編集画面80である。詳細編集画面80の左上には、「予想される初期値」と表記された初期値表示部81が設けられている。初期値表示部81には、選択したリンク識別情報から取得したFormのパラメータが表示される。
初期値表示部81の下には、「操作群適用後の値」と表記された差分操作結果表示部82が設けられている。差分操作結果表示部82には、「予想される初期値」に対して操作領域83で設定された差分操作データが適用された後の値が、適用値表示部82aに表示される。さらにその下の「上記をパースしたもの」と表記されたパース結果表示部82bは、差分操作適用後のパラメータを見やすいようにパラメータをパースして表形式で表示したものである。
詳細編集画面80右側の「操作群」と表記された操作領域83は、差分操作を設定するための入力領域である。操作領域には、全体操作チェックボックス83aが設けられている。全体操作チェックボックス83aは、種類が全体変更の差分操作を行う際にチェックされる。全体操作チェックボックス83aが選択されたときは、全体操作入力部83bに、変更後のFromパラメータの内容が設定される。
部分操作群を適用する場合、ユーザは、全体操作チェックボックス83aは選択せずに、「部分操作群」と表記されたパラメータ入力部83cに、変更後のパラメータの内容を設定する。パラメータ入力部83cには、「順序」、「名前」、「対象」、および「値」の欄が設けられている。これらの欄の横方向に並べられたデータ同士が関連づけられ、1つの差分操作データを示している。
「順序」の欄には、差分操作の適用順を示している。同じ名前のパラメータの中の何番目のパラメータを変更対象とするのかが設定される。「名前」の欄には、対象とするパラメータの名前が設定される。「対象」の欄には、同じ名前のパラメータの中の何番目のパラメータを変更対象とするのかが設定される。「値」の欄には、パラメータの差分操作適用後の値が設定される。
「新しい操作を追加」と表記された追加ボタン83dは、新しい差分操作データを追加するためのボタンである。追加ボタン83dが押下されると、部分操作入力画面が表示され、その部分操作入力画面に入力された差分操作データが、パラメータ入力部83cの新たな行に追加される。
「選択された全操作(群)を上に移動」と表記された移動ボタン83eは、選択された差分操作データの行を上に移動させるためのボタンである。「選択された全操作(群)を削除」と表記されたボタン83fは、選択された差分操作データの行を削除するためのボタンである。「選択された全操作(群)を下に移動」と表記された移動ボタン83gは、選択された差分操作データの行を下に移動させるためのボタンである。
詳細編集画面80の下部には、OKボタン84とCancelボタン85が設けられている。OKボタン84が押下されると、詳細編集画面80に入力された内容が確定し、差分操作メイン画面70に反映される。Cancelボタン85が押下されると、詳細編集画面80内容が差分操作メイン画面70に反映されることなく、詳細編集画面80が閉じる。
図18の例では、<種類>変更、<名前>data、<順序>1、<値>0という一つの部分操作が、差分操作データとして設定されている。すると、図16に示した処理と同様の処理手順によって「予想される初期値」から「操作群適用後の値」がテスト入力部120で計算され、差分操作結果表示部82に表示されている。ここで、差分操作結果表示部82において、変更された部分を強調表示してもよい(たとえば、他の文字が黒字の場合、変更された部分を赤字で表示する)。
また、図18左上には「URLデコードして表示」と表記されたチェックボックス86が設けられている。このチェックボックス86は、文字符号化方式を指定するためのものである。チェックボックス86が選択された場合、テキストボックス87で指定された文字符号化方式でデコードした後の各データが表示される。
なお、図18には「From」の詳細編集画面80を示したが、「Form」以外の項目についても図18に示したものとほぼ同様の詳細編集画面で編集が行われる。ただし、「Method」などには「全体操作」しかない。また、「Cookie」などには「全体操作」は指定できない。さらに、「Cookie」の場合は一つの「Cookie」(NAME=VALUE)が操作単位となる。また、「Header」の場合は一つのフィールド行(”field-name” : ”field-value”)が操作単位となる。
図19は、部分操作入力画面を示す図である。この部分操作入力画面90は、図18の追加ボタン83dが選択されたとき、またはパース結果表示部82bの任意の行でダブルクリックされたときに表示される。
部分操作入力画面90は、部分操作追加用GUIである。部分操作入力画面90には、操作の種別毎に、種別選択用のチェックボックス91が設けられている。また、「名前」と表記されたテキストボックス92には、変更対象のパラメータの名前が入力される。その下のテキストボックス93には、変更対象のパラメータが、同じ名前のパラメータ中の何番目かが入力される。さらにその下のテキストボックス94には、変更対象のパラメータの変更後の値が入力される。
OKボタン95が押下されると、部分操作入力画面90の設定内容が確定し、詳細編集画面80に反映される。また、Cancelボタン96が押下されると、部分操作入力画面90への設定内容が反映されることなく、部分操作入力画面90が閉じる。図19の上部に表示されている「URLデコードして表示」は、文字符号化方式でデコードした状態で各データが表示されることを示している。
ユーザは、部分操作入力画面90で、差分操作データの<種類>フィールドに設定する種類に対応するチェックボックス91を選択し、<名前>、<順序>、<値>を設定しOKボタン95を押すことにより、詳細編集画面80に新たな部分操作を追加できる。
以上のように、本実施の形態によれば、ブラウザ経由では設定できない値をパラメータに設定したテスト用のリクエストを生成することができる。また、差分操作データを設定しておけば、バッチ処理によってテスト用のリクエストを生成することが可能となる。具体的には、テスト定義31が入力されたテスト定義解析部110が、所定の時刻に達するのを待って、テスト入力規則定義32と結果判定規則定義33とを出力すればよい。その際、テスト入力部120には、予め処理対象のリンク識別情報群34が指定さているものとする。
しかも、リクエスト送信元のページを再現し、再現したページから生成したデフォルトリクエストに対して差分操作を適用するようにしたため、セッショントークンなどのセッション毎の値を操作せずにすむ。すなわち、ページ再現時のセッショントークンなどの値をそのまま使用することで、セッション毎の適切な値で送信できる。その結果、バッチ的処理によるテストも可能となる。
さらに、本実施の形態では、差分操作データをパラメータ単位とし、1つのリクエストに対して複数の差分操作データを適用可能とした。これにより、柔軟な差分操作指定ができるようになっている。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、テスト支援装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
ところで、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援プログラムにおいて、
コンピュータを、
テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付けるリンク識別情報取得手段、
前記リンク識別情報取得手段に入力された前記リンク識別情報を記憶するリンク識別情報記憶手段、
デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付ける差分操作データ取得手段、
前記差分操作データ取得手段に入力された前記差分操作データを記憶する差分操作データ記憶手段、
前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力するデフォルトリクエスト生成手段、
前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成するテスト用リクエスト生成手段、
前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信するリクエスト送信手段、
として機能させることを特徴とするテスト支援プログラム。
(付記2) 前記コンピュータを、さらに、
前記サーバで提供されるページ間のリンク関係が予め記憶されたリンク関係記憶手段、および前記リンク関係記憶手段を参照して前記リンク元ページを判断し、前記サーバにアクセスすることで前記リンク元ページを再現するリンク元ページ再現手段として機能させ、
前記デフォルトリクエスト生成手段は、入力された前記リンク識別情報に対応するリンク識別情報を、前記リンク元ページ再現手段で再現された前記リンク元ページから抽出し、抽出した前記リンク識別情報に基づいてリクエストデータを生成する、
ことを特徴とする付記1記載のテスト支援プログラム。
(付記3) 前記デフォルトリクエスト生成手段は、前記リンク元ページ再現手段で再現された前記リンク元ページを解析し、前記リンク元ページから他のページへのリンクを示すリンク識別情報を抽出し、抽出した前記リンク識別情報の中から少なくとも含まれるパラメータの名前が共通の前記リンク識別情報を選択し、選択した前記リンク識別情報に基づいてリクエストデータを生成することを特徴とする付記2記載のテスト支援プログラム。
(付記4) 前記テスト用リクエスト生成手段は、前記差分操作データにおいて変更対象のパラメータ名および変更後の値を指定したパラメータ変更指示が示されている場合、前記デフォルトリクエストから前記パラメータ名に該当するパラメータを検出し、検出したパラメータの値を指定された値に変更し、前記テスト用リクエストとすることを特徴とする付記1記載のテスト支援プログラム。
(付記5) コンピュータを、さらに、
操作対象データのデータ種別と操作対象データに設定する変更値とを含むテスト入力規則定義および前記リンク識別情報が入力されると、前記リンク識別情報から前記データ種別に該当するパラメータを抽出し、抽出したパラメータの値を前記変更値に変更することを示す前記差分操作データを生成し、生成した前記差分操作データを前記差分操作データ取得手段に対して出力するテスト入力手段として機能させることを特徴とする付記1記載のテスト支援プログラム。
(付記6) コンピュータを、さらに、
前記テスト用リクエストに対する応答が正しいか否かの判定基準が示された結果判定規則定義が予め入力されており、前記リクエスト送信手段から送信された前記テスト用リクエストに対する応答を取得し、応答内容の正否を前記結果判定規則定義に基づいて判定するテスト結果判定手段として機能させることを特徴とする付記1記載のテスト支援プログラム。
(付記7) コンピュータを、さらに、
操作対象データのデータ種別と操作対象データに設定する変更値とを含むテスト入力規則定義および前記リンク識別情報が入力されると、前記リンク識別情報から前記データ種別に該当するパラメータを抽出し、抽出したパラメータの値を前記変更値に変更することを示す前記差分操作データを生成し、生成した前記差分操作データを前記差分操作データ取得手段に対して出力するテスト入力手段、
前記テスト用リクエストに対する応答が正しいか否かの判定基準が示された結果判定規則定義が予め入力されており、前記リクエスト送信手段から送信された前記テスト用リクエストに対する応答を取得し、応答内容の正否を前記結果判定規則定義に基づいて判定するテスト結果判定手段、
前記テスト入力規則定義と前記結果判定規則定義とを含むテスト定義が入力されると、前記テスト定義から前記テスト入力規則定義を抽出して前記テスト入力手段に対して出力し、前記テスト定義から前記結果判定記憶定義を抽出して前記テスト結果判定手段に対して出力するテスト定義解析手段、
として機能させることを特徴とする付記1記載のテスト支援プログラム。
(付記8) 前記テスト定義解析手段は、所定の時刻になったことを確認後、前記テスト入力規則定義と前記結果判定規則定義とをそれぞれ前記テスト入力手段と前記テスト結果判定手段とに対して出力することを特徴とする付記7記載のテスト支援プログラム。
(付記9) 前記差分操作データ取得手段は、変更対象のパラメータの名前と同じ名前のパラメータ内での順番とを含む前記差分操作データの入力を受け付け、
前記テスト用リクエスト生成手段は、前記デフォルトリクエスト内の前記差分操作データで示された名前のパラメータのうち指定された順番のパラメータに対して編集を施すことを特徴とする付記1記載のテスト支援プログラム。
(付記10) ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援装置において、
テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付けるリンク識別情報取得手段と、
前記リンク識別情報取得手段に入力された前記リンク識別情報を記憶するリンク識別情報記憶手段と、
デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付ける差分操作データ取得手段と、
前記差分操作データ取得手段に入力された前記差分操作データを記憶する差分操作データ記憶手段と、
前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力するデフォルトリクエスト生成手段と、
前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成するテスト用リクエスト生成手段と、
前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信するリクエスト送信手段と、
を有することを特徴とするテスト支援装置。
(付記11) ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援方法において、
リンク識別情報取得手段が、テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付け、入力された前記リンク識別情報をリンク識別情報記憶手段に格納し、
差分操作データ取得手段が、デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付け、入力された前記差分操作データを差分操作データ記憶手段に格納し、
デフォルトリクエスト生成手段が、前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力し、
テスト用リクエスト生成手段が、前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成し、
リクエスト送信手段が、前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信する、
ことを特徴とするテスト支援方法。
本実施の形態の概略を示す図である。 本実施の形態のシステム構成例を示す図である。 本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。 テスト支援装置の機能を示すブロック図である。 URLとパラメータのデータ構造を示す図である。 ページクラスとリンク識別情報との関係を示す図である。 リンク識別情報記憶部に格納されたリンク識別情報群を示す図である。 テスト定義の例を示す図である。 テスト入力部の処理手順を示すフローチャートである。 デフォルトリクエスト生成処理手順を示すフローチャートである。 ページ再現処理の手順を示すフローチャートである。 リンク選択処理の手順を示すフローチャートである。 リクエストに対するレスポンスの例を示す図である。 レスポンスに含まれるリンクのリストを示す図である。 リクエストデータの例を示す図である。 差分操作適用処理の手順を示すフローチャートである。 差分操作メイン画面を示す図である。 詳細編集画面を示す図である。 部分操作入力画面を示す図である。
符号の説明
1 リンク識別情報取得手段
2 リンク識別情報記憶手段
3 差分操作データ取得手段
4 差分操作データ記憶手段
4a,4b,4c 差分操作データ
5 リンク関係記憶手段
6 デフォルトリクエスト生成手段
6aデフォルトリクエスト
7 テスト用リクエスト生成手段
7a,7b,7c テスト用リクエスト
8 リクエスト送信手段
9 リンク元ページ再現手段
A サーバ

Claims (10)

  1. ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援プログラムにおいて、
    コンピュータを、
    テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付けるリンク識別情報取得手段、
    前記リンク識別情報取得手段に入力された前記リンク識別情報を記憶するリンク識別情報記憶手段、
    デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付ける差分操作データ取得手段、
    前記差分操作データ取得手段に入力された前記差分操作データを記憶する差分操作データ記憶手段、
    前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力するデフォルトリクエスト生成手段、
    前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成するテスト用リクエスト生成手段、
    前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信するリクエスト送信手段、
    として機能させることを特徴とするテスト支援プログラム。
  2. 前記コンピュータを、さらに、
    前記サーバで提供されるページ間のリンク関係が予め記憶されたリンク関係記憶手段、および前記リンク関係記憶手段を参照して前記リンク元ページを判断し、前記サーバにアクセスすることで前記リンク元ページを再現するリンク元ページ再現手段として機能させ、
    前記デフォルトリクエスト生成手段は、入力された前記リンク識別情報に対応するリンク識別情報を、前記リンク元ページ再現手段で再現された前記リンク元ページから抽出し、抽出した前記リンク識別情報に基づいてリクエストデータを生成する、
    ことを特徴とする請求項1記載のテスト支援プログラム。
  3. 前記デフォルトリクエスト生成手段は、前記リンク元ページ再現手段で再現された前記リンク元ページを解析し、前記リンク元ページから他のページへのリンクを示すリンク識別情報を抽出し、抽出した前記リンク識別情報の中から少なくとも含まれるパラメータの名前が共通の前記リンク識別情報を選択し、選択した前記リンク識別情報に基づいてリクエストデータを生成することを特徴とする請求項2記載のテスト支援プログラム。
  4. 前記テスト用リクエスト生成手段は、前記差分操作データにおいて変更対象のパラメータ名および変更後の値を指定したパラメータ変更指示が示されている場合、前記デフォルトリクエストから前記パラメータ名に該当するパラメータを検出し、検出したパラメータの値を指定された値に変更し、前記テスト用リクエストとすることを特徴とする請求項1記載のテスト支援プログラム。
  5. コンピュータを、さらに、
    操作対象データのデータ種別と操作対象データに設定する変更値とを含むテスト入力規則定義および前記リンク識別情報が入力されると、前記リンク識別情報から前記データ種別に該当するパラメータを抽出し、抽出したパラメータの値を前記変更値に変更することを示す前記差分操作データを生成し、生成した前記差分操作データを前記差分操作データ取得手段に対して出力するテスト入力手段として機能させることを特徴とする請求項1記載のテスト支援プログラム。
  6. コンピュータを、さらに、
    前記テスト用リクエストに対する応答が正しいか否かの判定基準が示された結果判定規則定義が予め入力されており、前記リクエスト送信手段から送信された前記テスト用リクエストに対する応答を取得し、応答内容の正否を前記結果判定規則定義に基づいて判定するテスト結果判定手段として機能させることを特徴とする請求項1記載のテスト支援プログラム。
  7. コンピュータを、さらに、
    操作対象データのデータ種別と操作対象データに設定する変更値とを含むテスト入力規則定義および前記リンク識別情報が入力されると、前記リンク識別情報から前記データ種別に該当するパラメータを抽出し、抽出したパラメータの値を前記変更値に変更することを示す前記差分操作データを生成し、生成した前記差分操作データを前記差分操作データ取得手段に対して出力するテスト入力手段、
    前記テスト用リクエストに対する応答が正しいか否かの判定基準が示された結果判定規則定義が予め入力されており、前記リクエスト送信手段から送信された前記テスト用リクエストに対する応答を取得し、応答内容の正否を前記結果判定規則定義に基づいて判定するテスト結果判定手段、
    前記テスト入力規則定義と前記結果判定規則定義とを含むテスト定義が入力されると、前記テスト定義から前記テスト入力規則定義を抽出して前記テスト入力手段に対して出力し、前記テスト定義から前記結果判定記憶定義を抽出して前記テスト結果判定手段に対して出力するテスト定義解析手段、
    として機能させることを特徴とする請求項1記載のテスト支援プログラム。
  8. 前記テスト定義解析手段は、所定の時刻になったことを確認後、前記テスト入力規則定義と前記結果判定規則定義とをそれぞれ前記テスト入力手段と前記テスト結果判定手段とに対して出力することを特徴とする請求項7記載のテスト支援プログラム。
  9. ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援装置において、
    テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付けるリンク識別情報取得手段と、
    前記リンク識別情報取得手段に入力された前記リンク識別情報を記憶するリンク識別情報記憶手段と、
    デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付ける差分操作データ取得手段と、
    前記差分操作データ取得手段に入力された前記差分操作データを記憶する差分操作データ記憶手段と、
    前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力するデフォルトリクエスト生成手段と、
    前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成するテスト用リクエスト生成手段と、
    前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信するリクエスト送信手段と、
    を有することを特徴とするテスト支援装置。
  10. ネットワーク上のサーバで提供されるページのテストを支援するためのテスト支援方法において、
    リンク識別情報取得手段が、テスト対象ページに対してリンクが張られたリンク元ページから前記テスト対象ページへのリンクを辿るために必要なリンク識別情報の入力を受け付け、入力された前記リンク識別情報をリンク識別情報記憶手段に格納し、
    差分操作データ取得手段が、デフォルトリクエスト内の変更対象データに対する操作内容を示す差分操作データの入力を受け付け、入力された前記差分操作データを差分操作データ記憶手段に格納し、
    デフォルトリクエスト生成手段が、前記リンク識別情報記憶手段に記憶された前記リンク識別情報に基づいて前記テスト対象ページにアクセスするためのリクエストデータを生成し、生成した前記リクエストデータを前記デフォルトリクエストとして出力し、
    テスト用リクエスト生成手段が、前記デフォルトリクエスト生成手段から出力された前記デフォルトリクエストに対し、前記差分操作データ記憶手段に記憶された前記差分操作データで示される前記変更対象データに関する前記操作内容に従った編集操作を行い、テスト用リクエストを生成し、
    リクエスト送信手段が、前記テスト用リクエスト生成手段で生成された前記テスト用リクエストを、前記ネットワークを介して送信する、
    ことを特徴とするテスト支援方法。
JP2006184975A 2006-07-04 2006-07-04 テスト支援プログラム、テスト支援装置、およびテスト支援方法 Expired - Fee Related JP4940791B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006184975A JP4940791B2 (ja) 2006-07-04 2006-07-04 テスト支援プログラム、テスト支援装置、およびテスト支援方法
US11/642,929 US20080008101A1 (en) 2006-07-04 2006-12-21 Computer-readable medium storing test support program, test support apparatus, and test support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006184975A JP4940791B2 (ja) 2006-07-04 2006-07-04 テスト支援プログラム、テスト支援装置、およびテスト支援方法

Publications (2)

Publication Number Publication Date
JP2008015709A true JP2008015709A (ja) 2008-01-24
JP4940791B2 JP4940791B2 (ja) 2012-05-30

Family

ID=38919032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006184975A Expired - Fee Related JP4940791B2 (ja) 2006-07-04 2006-07-04 テスト支援プログラム、テスト支援装置、およびテスト支援方法

Country Status (2)

Country Link
US (1) US20080008101A1 (ja)
JP (1) JP4940791B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250583A (ja) * 2009-04-16 2010-11-04 Fujitsu Ltd アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置
JP2010277288A (ja) * 2009-05-28 2010-12-09 Mitsubishi Electric Corp Webアプリケーション診断装置、Webアプリケーション診断プログラム及びWebアプリケーション診断方法
DE102011005056A1 (de) 2010-03-03 2011-12-01 Nec Corporation Aktives Sichthilfegerät und -verfahren für Fahrzeug
JP2012014227A (ja) * 2010-06-29 2012-01-19 Kyocera Communication Systems Co Ltd 診断サーバ装置
JP2015125472A (ja) * 2013-12-25 2015-07-06 キヤノン株式会社 管理装置、管理装置の制御方法及びプログラム
JP2016001494A (ja) * 2015-08-26 2016-01-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. アプリケーションのセキュリティ検査

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8881108B2 (en) * 2012-06-28 2014-11-04 Sap Ag Test program for HTTP-communicating service
CN108990047B (zh) * 2018-07-03 2021-06-29 中国联合网络通信集团有限公司 签约关系管理数据准备平台的测试方法、装置及介质
CN111782317A (zh) * 2020-06-12 2020-10-16 京东数字科技控股有限公司 页面的测试方法和装置、存储介质和电子装置
CN112084114B (zh) * 2020-09-16 2024-07-16 京东科技控股股份有限公司 用于测试接口的方法和装置
CN113515415B (zh) * 2021-04-12 2024-03-08 山东英信计算机技术有限公司 一种测试介质生成方法、***及介质
CN115173569B (zh) * 2022-09-08 2023-01-20 北京智芯微电子科技有限公司 基于bs架构的配电设备测试方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04358232A (ja) * 1991-06-04 1992-12-11 Hitachi Ltd 情報処理装置の機能試験方法
JP2003228493A (ja) * 2001-04-27 2003-08-15 Mitsubishi Electric Corp プログラム試験自動実行装置及びプログラム試験自動実行方法及びプログラム試験自動実行プログラム
WO2004032445A2 (en) * 2002-10-02 2004-04-15 Richard Reiner Rule creation for computer application screening;
JP2004362000A (ja) * 2003-05-30 2004-12-24 Internatl Business Mach Corp <Ibm> ウェブアプリケーション開発支援装置、コンポーネント呼び出し監視装置、データ処理方法及びプログラム
JP2005085182A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd 試験支援システム
JP2005332139A (ja) * 2004-05-19 2005-12-02 Fujitsu Ltd テストデータ作成支援プログラムおよびテストデータ作成支援方法
JP2006058966A (ja) * 2004-08-17 2006-03-02 Fujitsu Ltd ページ情報収集プログラム、ページ情報収集方法、及びページ情報収集装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073124A1 (en) * 2000-12-11 2002-06-13 Takahiro Masuda Network browser
US7069497B1 (en) * 2002-09-10 2006-06-27 Oracle International Corp. System and method for applying a partial page change
JP4093012B2 (ja) * 2002-10-17 2008-05-28 日本電気株式会社 ハイパーテキスト検査装置および方法並びにプログラム
JP3997412B2 (ja) * 2002-11-13 2007-10-24 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04358232A (ja) * 1991-06-04 1992-12-11 Hitachi Ltd 情報処理装置の機能試験方法
JP2003228493A (ja) * 2001-04-27 2003-08-15 Mitsubishi Electric Corp プログラム試験自動実行装置及びプログラム試験自動実行方法及びプログラム試験自動実行プログラム
WO2004032445A2 (en) * 2002-10-02 2004-04-15 Richard Reiner Rule creation for computer application screening;
JP2004362000A (ja) * 2003-05-30 2004-12-24 Internatl Business Mach Corp <Ibm> ウェブアプリケーション開発支援装置、コンポーネント呼び出し監視装置、データ処理方法及びプログラム
JP2005085182A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd 試験支援システム
JP2005332139A (ja) * 2004-05-19 2005-12-02 Fujitsu Ltd テストデータ作成支援プログラムおよびテストデータ作成支援方法
JP2006058966A (ja) * 2004-08-17 2006-03-02 Fujitsu Ltd ページ情報収集プログラム、ページ情報収集方法、及びページ情報収集装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250583A (ja) * 2009-04-16 2010-11-04 Fujitsu Ltd アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置
JP2010277288A (ja) * 2009-05-28 2010-12-09 Mitsubishi Electric Corp Webアプリケーション診断装置、Webアプリケーション診断プログラム及びWebアプリケーション診断方法
DE102011005056A1 (de) 2010-03-03 2011-12-01 Nec Corporation Aktives Sichthilfegerät und -verfahren für Fahrzeug
JP2012014227A (ja) * 2010-06-29 2012-01-19 Kyocera Communication Systems Co Ltd 診断サーバ装置
JP2015125472A (ja) * 2013-12-25 2015-07-06 キヤノン株式会社 管理装置、管理装置の制御方法及びプログラム
JP2016001494A (ja) * 2015-08-26 2016-01-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. アプリケーションのセキュリティ検査

Also Published As

Publication number Publication date
US20080008101A1 (en) 2008-01-10
JP4940791B2 (ja) 2012-05-30

Similar Documents

Publication Publication Date Title
JP4940791B2 (ja) テスト支援プログラム、テスト支援装置、およびテスト支援方法
US5974572A (en) Software system and methods for generating a load test using a server access log
US6237006B1 (en) Methods for graphically representing web sites and hierarchical node structures
US6470383B1 (en) System and methods for generating and displaying web site usage data
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
US5958008A (en) Software system and associated methods for scanning and mapping dynamically-generated web documents
US6785740B1 (en) Text-messaging server with automatic conversion of keywords into hyperlinks to external files on a network
US8010500B2 (en) Method and system for capturing image of web site, managing information of web site, and providing image of web site
US20020065846A1 (en) Spreadsheet Web server system and spreadsheet Web system
US7757164B2 (en) Page information collection program, page information collection method, and page information collection apparatus
US20040205570A1 (en) Test assisting program and test assisting method
JP4023803B2 (ja) ウェブアプリケーション開発支援装置、データ処理方法及びプログラム
JP5463717B2 (ja) アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置
JP2005266954A (ja) 操作情報記録・再生装置
JP2007183838A (ja) クエリーパラメーター出力ページ発見プログラム、クエリーパラメーター出力ページ発見方法およびクエリーパラメーター出力ページ発見装置
US8533587B2 (en) Web server, web server having function of Java servlet, and computer readable medium
US7685229B1 (en) System and method for displaying server side code results in an application program
JPH11167584A (ja) ページ遷移方法及びその実施装置並びにその処理プログラムとデータを記録した媒体
JP2006031722A (ja) テスト支援プログラム
JP6891837B2 (ja) カタログファイル作成支援装置、カタログファイル作成支援方法、および、カタログファイル作成支援プログラム
KR100261265B1 (ko) 웹 문서 저작을 위한 장치 및 그 운용 방법
JP4496919B2 (ja) Web閲覧操作の記録・再生装置及びプログラム及びコンピュータ読み取り可能な記憶媒体
Kumar et al. A brief investigation on web usage mining tools (WUM)
US7287036B2 (en) Method and apparatus for automatically searching hypertext structure
JP2005115684A (ja) コンテンツ検索装置及びコンテンツ検索方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees