以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるテスト支援システムの構成例を示す図である。同図のテスト支援システム1において、テスト支援装置10とWebサーバ装置20とは、LAN(Local Area Network)又はインターネット等のネットワークを介して通信可能とされている。
Webサーバ装置20は、Webサーバ機能及びWebアプリケーション等が実装されたコンピュータである。Webサーバ装置20は、ネットワークを介して受信される要求(HTTP(HyperText Transfer Protocol)リクエスト)に応じた処理をWebアプリケーションに実行させ、その実行結果を示すWebページを含む応答(HTTPレスポンス)を返信する。
テスト支援装置10は、Webサーバ装置20におけるWebアプリケーションに関するリグレッションテストの実施を支援するコンピュータである。リグレッションテストとは、プログラムを変更又は改変等(以下、「変更」で統一する。)した場合に、その変更によって予想外の影響が発生していないか否かを確認するテストをいう。したがって、テスト支援装置10は、Webアプリケーションの変更による予想外の影響の有無の確認作業を支援する。
図2は、本発明の実施の形態におけるテスト支援装置のハードウェア構成例を示す図である。図2のテスト支援装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
テスト支援装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってテスト支援装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
なお、記録媒体101の一例としては、CD−ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
図3は、本発明の実施の形態におけるテスト支援装置の機能構成例を示す図である。同図において、テスト支援装置10は、ブラウザ画面表示部11、比較データ生成部12、編集部13、検査データ生成部14、及び比較部15等を有する。これら各部は、テスト支援装置10にインストールされたプログラムが、CPU104に実行させる処理により実現される。テスト支援装置10は、また、比較データ記憶部16及び検査データ記憶部17等を有する。これら各記憶部は、例えば、補助記憶装置102、又はテスト支援装置10とネットワークを介して接続される記憶装置等を用いて実現可能である。
ブラウザ画面表示部11は、いわゆるWebブラウザプログラムがCPU104に実行させる処理により実現される。ブラウザ画面表示部11は、一以上のブラウザ画面(Webブラウザのウィンドウ)を表示装置102(のディスプレイ)に表示させる。ブラウザ画面表示部11は、ブラウザ画面ごとに指定されたURL(Uniform Resource Locator)に対応するWebページをWebサーバ装置20よりダウンロードし、ブラウザ画面に表示させる。なお、本実施の形態において、Webページとは、例えば、HTML(HyperText Markup Language)ソースやHTMLソースから参照されている各種の画像データ等に基づいて表示される画面をいう。また、Webページのページ情報とは、当該HTMLソースやHTMLソースから参照されている各種の画像データ等の集合をいう。
比較データ生成部12は、リグレッションテストにおける期待値として、Webアプリケーションの変更後の検査時に得られるデータと比較されるデータ(以下、「比較データ」という。)を生成する。生成された比較データは、比較データ記憶部16に記録される。比較データは、変更前のWebアプリケーションによって生成されるWebページに関して生成される。
同図において、比較データ生成部12は、イベント検知部121、プロキシ部122、及び比較データ記録部123等を含む。イベント検知部121は、ブラウザ画面において発生する各種のイベントを検知する。イベントの一例としては、例えば、Webページの読み込みの開始又は終了や、Webページに対する操作等が挙げられる。プロキシ部122は、各ブラウザ画面と、Webアプリケーションとの間の通信内容を監視する。プロキシ部122は、当該通信内容を監視することにより、各ブラウザ画面に表示されるWebページのページ情報を取得する。比較データ記録部123は、イベント検知部121によって検知されるイベントや、プロキシ部122によって取得されるWebページの内容を比較データ記憶部16に記録する。
編集部13は、比較データを編集させるための処理を実行する。すなわち、比較データは、変更前のWebアプリケーションに関して生成されるため、変更後のWebアプリケーションによって生成されるWebページとの比較対象としては、不適切な部分を含む。Webアプリケーションの変更によって、Webページの一部の変更が予定されている場合、編集部13は、ユーザによる指示に従って、当該一部の変更に応じた編集を比較データに対して行う。
検査データ生成部14は、変更後のWebアプリケーションによって生成されるWebページのページ情報を取得し、当該ページ情報を含むデータ(以下、「検査データ」という。)を、検査データ記憶部17に記録する。同図において、検査データ生成部14は、操作実行部141及び検査データ記録部142等を含む。操作実行部141は、比較データ記憶部16に記録されている比較データに含まれている操作履歴が示す操作をブラウザ画面表示部11が表示させているブラウザ画面に対して実行する。検査データ記録部142は、操作実行部141がブラウザ画に対して実行する操作に応じて検知されるイベントや、ブラウザ画面に表示されるWebページのページ情報等を検査データ記憶部17に記録する。
比較部15は、比較データ記憶部16に記録された比較データと、検査データ記憶部17に記録された検査データとを比較し、比較結果を出力する。比較結果を参照することで、テスト実施者は、Webアプリケーションの変更による予期せぬ影響の有無を確認することができる。
以下、テスト支援装置10が実行する処理手順について説明する。図4は、テスト支援装置が実行する処理手順の概要の一例を説明するためのフローチャートである。
ステップS101において、比較データ生成部12は、比較データ生成処理を実行する。比較データ生成処理では、比較データ生成部12によってブラウザ画面表示部11が起動される。比較データ生成部12は、ブラウザ画面表示部11が表示させるブラウザ画面に表示されるWebページのページ情報や、Webページに対するユーザによる操作の履歴等を、例えば、時系列に比較データ記憶部16に記録する。なお、Webページのページ情報は、ブラウザ画面表示部11からWebサーバ装置20に送信されるHTTPリクエストに応じてWebアプリケーションによって生成され、ブラウザ画面表示部11に返信されたものである。
続いて、編集部13は、比較データ編集処理を実行する(S102)。編集部13は、比較データ編集画面を表示装置102に表示させ、比較データ編集画面において、比較データの編集指示を受け付ける。編集部13は、編集指示の内容を比較データに反映させる。
続いて、例えば、テスト実施者によって、Webサーバ装置20におけるWebアプリケーションが、変更後のものに更新(置換)される。すなわち、ステップS101及びS102は、変更前のWebアプリケーションに関して実行され、後述されるステップS103及びS104は、変更後のWebアプリケーションに関して実行される。
ステップS103において、検査データ生成部14は、検査データ生成処理を実行する。検査データ生成処理において、検査データ生成部14は、比較データ記憶部16に記録されている操作履歴が示す各操作をブラウザ画面に対して実行する。検査データ生成部14は、当該操作の実行に応じてブラウザ画面に表示されるWebページのページ情報等を含む検査データを検査データ記憶部17に記録する。
なお、図4の各ステップは、同期的に実行されなくてもよい。すなわち、各ステップが、一連の処理として連続して実行されなくてもよい。
続いて、ステップS101の詳細について説明する。図5は、比較データ生成処理の処理手順の一例を説明するためのフローチャートである。
比較データ生成部12は、比較データの生成開始の指示入力に応じ、リグレッションテストの対象とされるWebアプリケーションに関するURLの入力をユーザより受け付ける(S201)。URLの入力は、例えば、比較データ生成部12が表示装置102に表示させるダイアログ等を介して行われる。但し、URLは、所定のファイルに予め記録されていてもよい。
続いて、比較データ生成部12は、当該URLを指定してブラウザ画面表示部11を起動させる(S202)。なお、ブラウザ画面表示部11(Webブラウザ)は、比較データ生成部12のプロセス内において起動される。その結果、比較データ生成部12は、ブラウザ画面表示部11が提供するAPI(Application Program Interface)(以下、「ブラウザAPI」という。)を介して、ブラウザ画面表示部11が表示させる各ブラウザ画面をオブジェクトとして操作することができる。比較データ生成部12のイベント検知部121は、ブラウザAPIを介して、イベントハンドラを登録しておく。イベントハンドラとは、ブラウザ画面において発生したイベントの通知を受けるための関数をいう。
続いて、比較データ生成部12の比較データ記録部123は、ブラウザ画面表示部11の起動に関する操作内容(Webブラウザの起動コマンド及び当該起動コマンドに指定されるURL等)を、ブラウザ画面に対する操作履歴として比較データ記憶部16に記録する(S203)。
一方、ブラウザ画面表示部11は、起動に応じ、一つのブラウザ画面(以下、「親画面」という。)を表示装置102に表示させ、指定されたURLに係るページ情報の読み込み(ダウンロード)を当該親画面に実行させる。親画面は、ページ情報の読み込みを開始する際、その旨を示すイベント(以下、「読み込み開始イベント」という。)を発生させる。比較データ生成部12のイベント検知部121は、イベントハンドラを介して、読み込み開始イベントを検知し、親画面が読み込みを開始したことを記憶しておく。
親画面によるページ情報の読み込みが開始されると(S204でYes)、プロキシ部122は、読み込み処理(ダウンロード処理)における親画面とWebサーバ装置20との通信内容を監視し、Webサーバ装置20より返信されるページ情報を取得する。比較データ記録部123は、プロキシ部122によって取得されたページ情報を比較データ記憶部16に記録する(S205)。
ステップS205について更に詳しく説明する。図6は、ページ情報の取得及び記録方法の一例を説明するための図である。
同図に示されるように、プロキシ部122は、ブラウザ画面とWebサーバ装置20との通信を中継(仲介)することによって、当該通信内容を監視する(S205a、S205b)。プロキシ部122による通信の中継は、一般的なプロキシサーバと同様の仕組みで行われる。したがって、ブラウザ画面表示部11に対して、プロキシサーバのIPアドレス及びポート番号として、プロキシ部122のIPアドレス及びポート番号を設定しておけばよい。プロキシ部122は、通信内容を監視することにより取得されたページ情報を、比較データ記録部123に通知する(S205c)。比較データ記録部123は、通知されたページ情報を、比較データ記憶部16に記録する(S205d)。
なお、図6において、ブラウザ画面を示す矩形は、比較データ生成部12から見た場合、ブラウザ画面に対応するオブジェクトを示す。当該オブジェクトは、ブラウザ画面ごとに生成される。
親画面は、ページ情報の読み込みを終了すると、当該ページ情報に基づいてWebページを親画面内に表示させる。また、親画面は、ページ情報の読み込みの終了に応じ、読み込みの終了を示すイベント(以下、「読み込み終了イベント」という。)を発生させる。イベント検知部121は、イベントハンドラを介して、読み込み終了イベントを検知する。イベント検知部121は、読み込み開始イベントが検知された全てのブラウザ画面に関して読み込み終了イベントが検知されると、ページ情報の読み込み処理は完了したと判定する(S206でYes)。そこで、イベント検知部121は、読み込み処理が完了したことと共に、最後に読み込みイベントが検知されたブラウザ画面(以下、「代表画面」という。)の識別子を比較データ記録部123に通知する。
すなわち、イベント検知部121は、比較データ記録部123に対する読み込み処理の完了の通知を、同一の操作に応じて読み込み開始イベントが検知された全てのブラウザ画面に関して読み込み終了イベントが検知されるまで待機する。イベント検知部121によるこのような振る舞いは、複数のブラウザ画面において並行してページ情報の読み込みが行われるケースを考慮したものである。例えば、親画面に表示されているWebページ上のリンクのクリックに応じて、新たなブラウザ画面(子画面)が表示され、当該子画面においてページ情報が読み込まれると共に、親画面においても新たなページ情報が読み込まれるようなケースである。
なお、ここでまでの説明では、一つのブラウザ画面(親画面)しか表示されていないため、親画面が代表画面となる。したがって、イベント検知部121は、親画面からの読み込み終了イベントの検知に応じて、読み込みの完了と共に親画面の識別子を比較データ記録部123に通知する。
比較データ記録部123は、当該通知に応じ、通知された識別子に係る代表画面(ここでは、親画面)のスクリーンショット(画像データ)を取得し、当該スクリーンショットを親画面の識別子に関連付けて比較データ記憶部16に記録する(S207)。
ステップS207について更に詳しく説明する。図7は、ブラウザ画面のスクリーンショットの取得方法の一例を説明するための図である。
比較データ記録部123は、イベント検知部121より通知された識別子に対応するブラウザ画面より、ブラウザAPIを介してスクリーンショットを取得する(S207a)。比較データ記録部123は、取得されたスクリーンショットを、当該ブラウザ画面の識別子に関連付けて比較データ記憶部16に記録する(S207b)。
続いて、比較データ記録部123は、比較データの区切りを比較データ記憶部16に記録する(S208)。比較データの区切りとは、表示中のブラウザ画面のページ情報に変化の無い状態が継続した期間の区切りを示す情報である。換言すれば、比較データの区切りは、表示中のいずれかのブラウザ画面のページ情報が変化した場合に記録される。
なお、本実施の形態では、区切りによって比較データの単位が規定されることとする。すなわち、区切り間の記録内容を一つの比較データとして数える。比較データの記録の開始時から最初の区切りまでの間についても、便宜上、区切り間と呼ぶ。
図8は、比較データの構成例を示す図である。同図では、最初の区切りp1までを比較データ1とし、2番目の区切りp2までを比較データ2として区別している。比較データ1は、親画面に関して記録される比較データである。すなわち、親画面のページ情報が読み込まれるまでの情報が記録された比較データである。比較データ2は、ステップS209以降において説明する処理によって記録される比較データである。
一つの比較データ(区切り間の比較データ)は、操作履歴、ページ情報、及び代表画面スクリーンショット等を含む。操作履歴は、区切りが記録されるまでにWebページに対して行われた操作の履歴である。比較データ1における操作履歴には、ステップS203にいて記録される、Webブラウザの起動コマンド及び当該起動コマンドに指定されるURL等が含まれる。
ページ情報は、上述したページ情報と同義であり、HTMLソース及び付属データ等、Webページの表示させるためのデータ一式を含む。付属データとは、画像データ等、HTMLソースより参照されているデータである。比較データ1のページ情報には、親画面に対するページ情報が含まれる。
代表画面スクリーンショットは、代表画面のスクリーンショット及び代表画面の識別子である。基本的に、代表画面のスクリーンショットは、区切りが記録される直前に取得され、記録される。したがって、一つの比較データに含まれる代表画面スクリーンショットは、一つである。比較データ1の代表画面スクリーンショットは、親画面のスクリーンショットである。
なお、比較データの区切りは、所定の情報に限定されない。例えば、一つの比較データを一つのファイルに記録する場合、比較データの区切りは、ファイルの区切りに相当する。また、一つの比較データをデータベースの一つのレコードに記録する場合、比較データの区切りは、レコードの区切りに相当する。
続いて、イベント検知部121によって、表示中のいずれかのブラウザ画面におけるWebページに対して何らかのイベントが検知されると(S209でYes)、比較データ記録部123は、区切り後の新たな比較データの操作履歴として、当該操作内容を示す情報(操作情報)を記録する(S210)。例えば、比較データ1に対して区切りが記録された後であれば、区切り後の新たな比較データ(以下、「カレント比較データ」という。)は、比較データ2である。
ステップS210について更に詳しく説明する。図9は、操作の記録方法の一例を説明するための図である。
ユーザによって、ブラウザ画面に表示されているWebページに対して操作が行われると(S209a)、ブラウザ画面は、WebブラウザAPIを介して設定されているイベントハンドラを介して、当該操作に関するイベントをイベント検知部121に通知する(S209b)。イベント検知部121は、当該イベントに含まれている操作情報を比較データ記録部123に通知する(S209c)。比較データ記録部123は、当該操作情報を比較データ記憶部16におけるカレント比較データの操作履歴に記録する(S210)。
当該操作が、新たなページ情報の読み込みを開始させるものでは無い場合(S211でNo)、イベント検知部121は、イベントの検知を待機する(S209)。当該操作が、新たなページ情報の読み込みを開始させるものである場合(S211でYes)、当該ページ情報に関して、ステップS205〜S208が実行される。なお、新たなページ情報の読み込みとは、操作対象とされたWebページを表示させているブラウザ画面における新たなページ情報の読み込みのみならず、新たなブラウザ画面(子画面)の表示及び子画面における新たなページ情報の読み込みをもいう。
例えば、図8の比較データ2は、子画面が表示された場合を示す。したがって、比較データ2には、親画面のページ情報及び子画面のページ情報が含まれる。なお、比較データ2における子画面のページ情報は、図6において説明したように、プロキシ部122によって取得される。一方、親画面においてページ情報の読み込みが行われない場合、比較データ2における親画面のページ情報は、比較データ1よりコピーされる。但し、コピーではなく、親画面のページ情報は比較データ1におけるページ情報と同じであることを示す参照情報が記録されてもよい。そうすることにより、比較データのデータ量を削減することができる。
以降、全てのブラウザ画面が閉じられるまで、ステップS209〜S208が繰り返される。
ここで、具体的なWebページの遷移例に基づいて、比較データの記録内容について説明する。図10は、比較データの記録内容を説明するためのブラウザ画面の遷移例を示す図である。
同図において、(1)は、親画面W1が表示され、親画面W1にトップページのページ情報が読みこまれた状態を示す。この場合、当該ページ情報が、比較データ1に記録される。また、親画面W1におけるページ情報の読み込みの終了に応じ、親画面W1のスクリーンショットが比較データ1に記録され、比較データ1の区切りが記録される。なお、同図における水平方向の線は、当該区切りを示したものである。
(2)は、親画面W1に表示されているWebページのボタンB1がクリックされ、その操作に応じて子画面W2が表示された状態を示す。この場合、ボタンB1のクリックが比較データ2の操作履歴に記録される。また、親画面W1及び子画面W2のページ情報が、比較データ2に記録される。親画面W1のページ情報は、比較データ1よりコピーされる。更に、子画面W2のページ情報の読み込みの終了に応じ、子画面W2のスクリーンショットが比較データ2に記録され、比較データ2の区切りが記録される。
(3)は、子画面のリストL1において、「Japanese」が選択された状態を示す。この場合、当該選択操作が、比較データ3の操作履歴に記録される。なお、当該選択操作に応じて、いずれのブラウザ画面においてもページ情報の読み込み(更新)は行われていないため、ページ情報、代表画面スクリーンショット、及び区切りの記録は、この時点ではおこなわれない。
(4)は、「Japanese」の選択に応じて、子画面W2が閉じ、親画面W1に日本語のページ情報が読み込まれた状態を示す。この場合、更新前((3)の状態)の親画面W1のページ情報及び子画面W2のページ情報と、親画面W1の新たなページ情報とが比較データ3に記録される。更新前の親画面W1のページ情報及び子画面W2のページ情報は、比較データ2よりコピーされる。また、新たなページ情報の読み込みの終了に応じ、親画面W1のスクリーンショットが比較データ3に記録され、比較データ3の区切りが記録される。
続いて、ステップS102の詳細について説明する。図11は、比較データ編集処理の処理手順の一例を説明するためのフローチャートである。
例えば、ユーザによって、比較データの編集指示が入力されると、編集部13は、比較データ記憶部16に記録されている各比較データより、代表画面スクリーンショット及び代表画面の識別子を読み込む(S301)。
続いて、編集部13は、代表画面スクリーンショットのサムネイルの一覧を含む、比較データ編集画面を表示装置102に表示させる(S302)。
図12は、比較データ編集画面の一例を示す図である。同図において、比較データ編集画面500は、編集対象選択領域510、選択画面表示領域520、及び操作履歴表示領域530等を含む。
編集対象選択領域510には、ステップS301において読み込まれた代表画面スクリーンショットのサムネイルの一覧が、代表画面スクリーンショットを含む比較データの記録順(すなわち時系列)に表示される。
選択画面表示領域520には、編集対象選択領域510において選択されたサムネイルに係る代表画面のページ情報に基づいて、Webページが表示される。すなわち、選択画面表示領域520は、ブラウザ画面と同様に、ページ情報を解釈して、Webページを表示させることができる。
操作履歴表示領域530には、選択画面表示領域520に表示されている代表画面スクリーンショットが含まれる比較データの操作履歴が表示される。
ここで、注目すべき点の一つは、編集対象選択領域510において表示されるサムネイルの一覧は、代表画面に限定されている点である。代表画面は、同時に表示されている一以上のブラウザ画面の中で、ユーザが注目している可能性の高いブラウザ画面であると考えられる。例えば、図10の(1)〜(4)の状態におけるブラウザ画面のうち、ユーザが注目するブラウザ画面は、図13に示されるように遷移すると考えられる。
図13は、ユーザの注目先の遷移例を説明するための図である。図13の画面遷移は、図10と同様である。
図13において、ユーザは、まず、(1)において、親画面W1に注目する。続いて、(2)において、子画面W2が表示されると、子画面W2に注目する。子画面W2が閉じられて、親画面W1が更新されると、ユーザは、(4)において、更新後の親画面W1に注目する。
図10において説明したように、(1)の親画面W1、(2)の子画面W2、及び(3)の親画面W4は、それぞれ、比較データ1、比較データ2、又は比較データ3に関する代表画面である。したがって、編集対象選択領域510における表示対象が、(1)〜(4)の全てのブラウザ画面ではなく、代表画面に限定され、当該代表画面が時系列に表示されることにより、ユーザの注目の遷移に合致した態様で、編集候補の一覧を示すことができる。その結果、ユーザは、編集対象とすべきブラウザ画面を容易に見つけ出すことができる。
続いて、編集対象選択領域510において、いずれかのサムネイルが選択されると、編集部13は、当該サムネイルに係る代表画面スクリーンショットを含む比較データ(以下、「対象比較データ」という。)の内容を比較データ編集画面500に表示させる(S304)。例えば、対象比較データの代表画面のページ情報に基づくWebページが、選択画面表示領域520に表示される。また、対象比較データに含まれる操作履歴が、操作履歴表示領域530に表示される。
続いて、編集部13は、ユーザによって入力される編集指示に応じて、対象比較データを編集する(S305)。例えば、比較データ編集画面500のタブt1が選択されると、編集部13は、対象比較データのページ情報を構成するデータ(HTMLソースや付属データ等)の一覧画面を表示させる。ここで、各比較データには、当該比較データが対応する区切り間において表示されていた全てのWebページのページ情報が含まれる。したがって、タブ1の選択によって表示される一覧画面を介して、ユーザは、当該全てのWebページのページ情報に関して編集指示を入力することができる。
例えば、ユーザは、任意のページ情報を選択して、当該ページ情報を、検査データとの比較対象から除外する旨の指示を入力する。当該指示に応じ、編集部13は、当該ページ情報は、比較対象から除外されることを示す情報を比較データ記憶部16に記録する。そうすることにより、Webアプリケーションの変更によって、表示されなくなるWebページに関するページ情報が、検査データと比較されてしまうのを回避することができる。
また、ユーザは、任意のページ情報に含まれるHTMLソースの内容を表示させ、その一部分を例えば範囲指定によって、検査データとの比較対象から除外する旨の指示を入力する。当該指示に応じ、編集部13は、当該一部分は、比較対象から除外されることを示す情報を比較データ記憶部16に記録する。そうすることにより、Webアプリケーションの変更によって、或るWebページの一部分が変更される場合、当該一部分が比較データと比較されてしまうのを回避することができる。
また、必要に応じて、操作履歴表示領域530において、操作履歴が編集される。例えば、選択画面表示領域520に表示されているWebページ上における任意の表示部品が選択されると、編集部13は、操作履歴表示領域530において当該表示部品に関する操作に対応する行をハイライト表示させる。ユーザは、ハイライト表示された行において、例えば、表示部品に対する入力値の変更等を行う。または、Webアプリケーションの変更により、表示されなくなった表示部品に対する操作が操作履歴から削除されてもよい。
また、編集対象選択領域510において選択されている代表画面と共に(同時に)表示されていた、他のブラウザ画面を選択画面表示領域520に表示させ、当該ブラウザ画面に関する操作の編集を行わせることもできる。具体的には、リストボックス521には、選択画面表示領域520において現在表示対象とされているページ情報に係るWebページの識別情報が表示されている。リストボックス521のボタンがクリックされると、編集部13は、現在表示対象とされている比較データに含まれている各ページ情報に係るWebページの識別情報の一覧を選択肢として表示させる。ユーザが、当該一覧の中から任意の選択肢を選択すると、編集部13は、選択された選択肢に対応するページ情報に基づくWebページを選択画面表示領域520に表示させる。ユーザは、表示されたWebページを操作して、上記したように当該Webページに関する操作の編集を行うことができる。
代表画面以外のブラウザ画面に関する操作の編集に関して、具体例を用いて、更に詳しく説明する。ここでは、次のようなブラウザ画面の遷移を例とする。
図14は、操作履歴の編集を説明するためのブラウザ画面の遷移例を説明するための図である。なお、同図におけるブラウザ画面の遷移は、図10におけるブラウザ画面の遷移とは無関係である。したがって、図14に関する比較データ1、2、及び3は、図10における比較データ1、2、及び3とは無関係である。
同図において、(1)は、親画面W3が表示された状態を示す。(2)は、親画面W3に郵便番号が入力されて、ボタンB2がクリックされることにより、郵便番号に応じた住所を示す子画面W4が表示された状態を示す。(3)は、子画面W4におけるOKボタンのクリックに応じ、子画面W4における住所が転記されたWebページが親画面W3に表示された状態を示す。
なお、同図において、水平方向の線は、比較データの区切りを示す。したがって、(1)の状態に関して比較データ1、(2)の状態に関して比較データ2、(3)の状態に関して比較データ3が記録される。なお、比較データ1における代表画面は、(1)の状態の親画面W3であり、比較データ2における代表画面は、(2)の状態の子画面W4であり、比較データ3における代表画面は、(3)の状態の子画面W3である。したがって、比較データ編集画面500の編集対象選択領域510には、これら三つの代表画面のサムネイルが表示される。
これら三つの代表画面のサムネイルのうち、比較データ2の代表画面のサムネイルが選択されると、編集部13は、比較データ2における当該代表画面に対応するページ情報に基づくWebページを選択画面表示領域520に表示させる。また、編集部13は、比較データ2に含まれている操作履歴を、操作履歴表示領域530に表示させる。
この状態で、ユーザが、リストボックス521のボタンを選択すると、編集部13は、(2)の子画面W4のページ情報に係るWebページの識別情報と、(2)の親画面W3のページ情報に係るWebページの識別情報とを選択肢として含む一覧を表示させる。ユーザが、親画面W3に対応する選択肢を選択すると、編集部13は、当該親画面W3のページ情報に基づくWebページを選択画面表示領域520に表示させる。この時点で、選択画面表示領域520の表示内容は、図14の(1)の親画面W3と同じとなる。なお、ページ情報には、入力された値等は含まれないため、ページ情報に基づく表示内容は、図14の(2)ではなく、(1)の親画面W3と同じとなる。
この状態で、ユーザが、郵便番号を入力させるためのテキストボックスをクリックすると、編集部13は、操作履歴表示領域530において、当該テキストボックスに対する値の入力操作に対応する行をハイライト表示させる。ユーザは、当該行において、当該テキストボックスに対する入力値を「105」から「211」に変更する。その結果、代表画面以外のブラウザ画面に関する操作が変更される。
このように、代表画面以外のブラウザ画面に関する操作が編集対象となる可能性が有るため、本実施の形態では、代表画面のページ情報のみならず、代表画面と共に(同時に)表示されていた他のブラウザ画面のページ情報も、比較データに記録されるのである。
なお、図14の(2)の親画面W3に対する郵便番号の入力値が変更されることにより、子画面W4のページ情報は、比較データと検査データとで一致しなくなる。検査データ生成時において、子画面W4には、郵便番号が「211」に対応する住所が表示されるからである。したがって、このような場合、例えば、比較データ2の子画面W4のページ情報と、比較データ3の親画面W3のページ情報とを比較対象から除外するようにしてもよい。
なお、ステップS303〜S305は、編集対象選択領域510においてサムネイルが選択されるたびに繰り返される。
続いて、図4のステップS104の詳細について説明する。図15は、検査データ生成処理の処理手順の一例を説明するためのフローチャートである。
例えば、ユーザによって、検査データ生成指示が入力されると、検査データ生成部14の操作実行部141は、比較データ記憶部16に記憶されている全ての比較データの操作履歴を読み込む(S401)。続いて、操作実行部141は、読み込んだ操作履歴のうちの、最初の操作を自動的に実行する(S402)。通常、最初の操作は、URLが指定されたWebブラウザの起動コマンドの実行である。続いて、検査データ生成部14の検査データ記録部142は、検査データを検査データ記憶部17に記録する(S403)。ステップS403の処理内容は、図5のステップS209〜S208と同様でよい。したがって、検査データは、比較データと同様の構成を有するように記録される。
以降、ステップS402及びS403は、比較データより読み込まれた操作履歴に含まれる全ての操作に関して、操作順に(時系列に)繰り返される(S404)。
続いて、図5のステップS105の詳細について説明する。図16は、比較処理の処理手順の一例を説明するためのフローチャートである。
例えば、ユーザによって、比較データと検査データとの比較指示が入力されると、比較部15は、比較データ記憶部16より、比較データを一つ読み込む(S501)。続いて、比較部15は、検査データ記憶部17より、検査データを一つ読み込む(S502)。なお、比較データ及び検査データの読み込み順は、それぞれが記録されている順(時系列順)である。
続いて、比較部15は、読み込まれた比較データより、ページ情報を記録順に一つ取得する(S503)。続いて、比較部15は、読み込まれた検査データより、ページ情報を記録順に一つ取得する(S504)。続いて、比較部15は、取得された二つのページ情報を比較する(S505)。比較部15は、比較結果を、例えば、メモリ装置103又は補助記憶装置102に記録する。
ステップS503〜S505は、読み込まれた比較データの全てのページ情報に関して実行される(S506)。但し、比較対象とされるページ情報は、当該比較データにおいて読み込まれたページ情報に限定されてもよい。すなわち、当該比較データより前の比較データよりコピーされたページ情報は、比較対象とされなくてもよい。斯かるページ情報は、当該前の比較データに関する検査データとの比較時において比較されているからである。なお、当該比較データより前の比較データよりコピーされたページ情報とは、例えば、図10の例によれば、比較データ2にける親画面W1のページ情報等である。
ステップS501〜S506が、比較データ記憶部16に記録されている全ての比較データに関して実行されると(S507でYes)、比較部15は、記録されている比較結果を表示装置102に表示させる(S508)。
上述したように、本実施の形態によれば、比較データの記録時において、一つの操作に応じてページ情報の更新が完了されるたびに、当該更新に係るブラウザ画面のスクリーンショットが取得され、記録される。したがって、比較データ編集画面500の表示時においては、編集対象表示領域510において、ユーザが注目していたブラウザ画面に限定して、編集候補のブラウザ画面(比較データ)を表示させることができる。したがって、比較データに含まれている全てのページ情報の中から、編集対象とするページ情報を見付けやすくすることができる。
なお、比較データの記録時において、代表画面の識別子が記録されれば、必ずしも、代表画面のスクリーンショットは記録されなくてもよい。例えば、比較データ編集画面500の表示時において、代表画面のページ情報に基づいて、代表画面のサムネイルが生成されてもよい。但し、比較データ編集画面500の表示時の性能を考慮すると、比較データの記録時において、代表画面のスクリーンショットが記録されているのが好ましい。
また、比較データ編集画面500においては、代表画面以外のブラウザ画面を表示させることができ、当該ブラウザ画面に関する操作を編集させることができる。したがって、サムネイルとしての表示対象が代表画面に限定されたとしても、編集可能な範囲が限定されることはない。
なお、本実施の形態において、ページ情報は、ブラウザ画面の表示内容を示す情報の一例である。また、代表画面の識別子は、更新に係る画面の識別情報の一例である。また、比較データ記憶部16は、第一の記憶部の一例である。検査データ記憶部17は、第二の記憶部の一例である。イベント検知部121は、検知部の一例である。比較データ記録部123は、第一の記録部の一例である。編集部13は、表示部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
ディプレイ上に表示されている一以上のブラウザ画面のいずれかの表示内容の更新を検知し、
前記更新が検知されるたびに、表示されている全ての前記ブラウザ画面の表示内容を示す情報と、当該更新に係る前記ブラウザ画面の識別情報とを含むデータを第一の記憶部に記録し、
前記データの編集指示に応じ、前記第一の記憶部を参照し、前記識別情報に係る前記ブラウザ画面の表示内容を示す画像の一覧を表示させる処理をコンピュータに実行させるリグレッションテスト支援プログラム。
(付記2)
前記第一の記憶部に記録する処理は、前記ブラウザ画面に対する操作の履歴を前記第一の記憶部に記録し、
前記操作の履歴に基づいて、前記ブラウザ画面に対する操作を実行し、
前記実行する処理における操作の実行に応じて表示される前記ブラウザ画面の表示内容の更新に応じて、前記ブラウザ画面の表示内容を示す情報を含むデータを第二の記憶部に記録し、
前記第一の記憶部に記録された前記データと前記第二の記憶部に記録された前記データとをリグレッションテストのために比較し、比較結果を出力する処理を前記コンピュータに実行させる付記1記載のリグレッションテスト支援プログラム。
(付記3)
前記第一の記憶部に記録された前記画像の一覧の中から選択された画像に係る前記ブラウザ画面の前記表示内容を示す情報と共に、前記第一の記憶部において同一の前記データについて記録されている他の前記ブラウザ画面の前記表示内容を示す情報を表示させる処理を前記コンピュータに実行させる付記又は2記載のリグレッションテスト支援プログラム。
(付記4)
ディプレイ上に表示されている一以上のブラウザ画面のいずれかの表示内容の更新を検知する検知部と、
前記更新が検知されるたびに、表示されている全ての前記ブラウザ画面の表示内容を示す情報と、当該更新に係る前記ブラウザ画面の識別情報とを含むデータを第一の記憶部に記録する第一の記録部と、
前記データの編集指示に応じ、前記第一の記憶部を参照し、前記識別情報に係る前記ブラウザ画面の表示内容を示す画像の一覧を表示させる表示部とを有するリグレッションテスト支援装置。
(付記5)
前記第一の記録部は、前記ブラウザ画面に対する操作の履歴を前記第一の記憶部に記録し、
前記操作の履歴に基づいて、前記ブラウザ画面に対する操作を実行する実行部と、
前記実行部による操作の実行に応じて表示される前記ブラウザ画面の表示内容の更新に応じて、前記ブラウザ画面の表示内容を示す情報を含むデータを第二の記憶部に記録する第二の記録部と、
前記第一の記憶部に記録された前記データと前記第二の記憶部に記録された前記データとをリグレッションテストのために比較し、比較結果を出力する比較部とを有する付記4記載のリグレッションテスト支援装置。
(付記6)
前記表示部は、前記第一の記憶部に記録された前記画像の一覧の中から選択された画像に係る前記ブラウザ画面の前記表示内容を示す情報と共に、前記第一の記憶部において同一の前記データについて記録されている他の前記ブラウザ画面の前記表示内容を示す情報を表示させる付記4又は5記載のリグレッションテスト支援装置。