(57)【要約】【課題】ＤＨＴＭＬを利用するＷｅｂページの挙動の確認、あるいはブラウザ間での当該Ｗｅｂページの挙動の相違の確認、あるいは当該Ｗｅｂページにおけるアクセシビリティに係る情報の付与または妥当性確認を、テスト実施者が効果的に実施できる方法を提供すること。【解決手段】ＤＨＴＭＬを利用するＷｅｂページ内で外部からのイベントによって動的に発生し得る状態を、ＤＯＭ、ブラウザ上でのレンダリング時のスタイル情報、ユーザからの入力データ、ＪＡＶＡＳＣＲＩＰＴ内のグローバル変数の値、のうち少なくとも一つを解析することによって求め、それぞれの当該状態を特定できるデータを記憶し、記憶した当該状態の間の状態遷移を特定し、記憶した当該状態を再現することにより、当該Ｗｅｂページの変化を解析する方法を提供する。【選択図】図３
2007172377.tif 000002
【特許請求の範囲】
【請求項１】
ＤＨＴＭＬを利用したＷｅｂページの変化を解析する方法であって、
前記Ｗｅｂページ内で状態の遷移を動的に発生させるイベントを求めるステップと、
前記遷移をした後の状態を取得するため、前記イベントを仮想的に実行するステップと、
前記Ｗｅｂページ内の状態を、ＤＯＭ、ブラウザ上でのレンダリング時のスタイル情報、ユーザ入力装置からのデータ、及びＪＡＶＡＳＣＲＩＰＴ内のグローバル変数の値、のうち少なくとも一つからなるデータとして取得し、既出の状態であるか否かを判定して記憶するステップと、
記憶した前記Ｗｅｂページ内の状態を再現するステップと、
を含む方法。
【請求項２】
前記イベントを仮想的に実行するステップにおいて、前記Ｗｅｂページ中から発生し得るＨＴＴＰリクエストを収集、解析するステップを含む、請求項１に記載の方法。
【請求項３】
前記Ｗｅｂページを生成するＷｅｂサーバの変数の値からなるデータとして、Ｗｅｂサーバ内状態を取得し記憶するステップと、
前記Ｗｅｂサーバ内状態を再現するステップと、
を含む、請求項２に記載の方法。
【請求項４】
前記Ｗｅｂページ内の状態の遷移をユーザに提示するステップを含む、請求項１または２のいずれかに記載の方法。
【請求項５】
前記Ｗｅｂページ内の状態、及び前記Ｗｅｂサーバ内状態、の遷移をユーザに提示するステップを含む、請求項３に記載の方法。
【請求項６】
前記Ｗｅｂページ内で発生した状態の遷移、及び前記Ｗｅｂページの構造を解析し、前記Ｗｅｂページ内の状態の遷移を引き起こす操作を検出し、当該操作によって発生する事象及び当該操作の対象となる要素の役割・状態を推定するステップを含む、請求項１から５のいずれかに記載の方法。
【請求項７】
前記Ｗｅｂページ内の状態を複数のブラウザにて取得し、当該ブラウザ間の違いを検出するステップを含む、請求項１から６のいずれかに記載の方法。
【請求項８】
ＤＨＴＭＬを利用したＷｅｂページの変化を解析するクライアント装置であって、
前記Ｗｅｂページ内で状態の遷移を動的に発生させるイベントを求める状態遷移解析部と、
前記遷移をした後の状態を取得するため、前記イベントを仮想的に実行するイベント実行部と、
前記Ｗｅｂページ内の状態を、ＤＯＭ、ブラウザ上でのレンダリング時のスタイル情報、ユーザ入力装置からのデータ、及びＪＡＶＡＳＣＲＩＰＴ内のグローバル変数の値、のうち少なくとも一つからなるデータとして取得し、既出の状態であるか否かを判定して記憶する状態記憶部と、
記憶した前記Ｗｅｂページ内の状態を再現する状態再現部と、
を備えるクライアント装置。
【請求項９】
ＤＨＴＭＬを利用したＷｅｂページの変化を解析する、クライアント装置及びサーバ装置を備えるデータ処理システムであって、
前記Ｗｅｂページ内、及び前記Ｗｅｂページを生成するＷｅｂサーバ内、の状態の遷移を動的に発生させるイベントを求める状態遷移解析部と、
前記遷移をした後の状態を取得するため、前記イベントを仮想的に実行するイベント実行部と、
前記Ｗｅｂページ内、及びＷｅｂサーバ内の状態を、ＤＯＭ、ブラウザ上でのレンダリング時のスタイル情報、ユーザ入力装置からのデータ、ＪＡＶＡＳＣＲＩＰＴ内のグローバル変数の値、及び前記Ｗｅｂサーバの変数の値、のうち少なくとも一つからなるデータとして取得し、既出の状態であるか否かを判定して記憶する状態記憶部と、
前記Ｗｅｂページ中から発生し得るＨＴＴＰリクエストを収集、解析するＨＴＴＰリクエスト解析部と、
記憶した前記Ｗｅｂページ内の状態を再現するクライアント状態再現部と、
記憶した前記Ｗｅｂサーバ内の状態を再現するサーバ状態再現部と、
を備えるデータ処理システム。
【請求項１０】
ＤＨＴＭＬを利用したＷｅｂページの変化を解析するコンピュータ・プログラムであって、コンピュータに、
前記Ｗｅｂページ内で状態の遷移を動的に発生させるイベントを求めるステップと、
前記遷移をした後の状態を取得するため、前記イベントを仮想的に実行するステップと、
前記Ｗｅｂページ内の状態を、ＤＯＭ、ブラウザ上でのレンダリング時のスタイル情報、ユーザ入力装置からのデータ、及びＪＡＶＡＳＣＲＩＰＴ内のグローバル変数の値、のうち少なくとも一つからなるデータとして取得し、既出の状態であるか否かを判定して記憶するステップと、
記憶した前記Ｗｅｂページ内の状態を再現するステップと、
を実行させるコンピュータ・プログラム。
【請求項１１】
請求項１０に記載のコンピュータ・プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂページにおける状態遷移解析手法に関する。さらに詳しくは、ＤＨＴＭＬを利用したＷｅｂページにおける状態遷移を動的に解析する方法、装置、システム、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＪＡＶＡＳＣＲＩＰＴ（登録商標）等を用いてＷｅｂページ内に対話性を持たせるＤＨＴＭＬ（Ｄｙｎａｍｉｃ  ＨＴＭＬ（登録商標））技術が広く用いられつつある。ＤＨＴＭＬを用いることにより、Ｗｅｂページ内でプルダウンメニューを提供することや、Ｗｅｂページ内のフォームへの入力項目の妥当性検証を行うこと等が可能になる。このことにより、通常のアプリケーションと同等の機能をＷｅｂページに持たせることが可能となる。
【０００３】
なお、前述の「ＨＴＭＬ」、「ＪＡＶＡＳＣＲＩＰＴ」は登録商標であるが、以下、登録商標である旨の標記を省略する。
【０００４】
このような状況において、Ｗｅｂページの挙動を確認するための技術が提供されてきている。
【０００５】
例えば、特許文献１には、ユーザのＷｅｂブラウザ上での操作を記録・再生したり、フォームへの入力値を様々に変化させながら実行したりすることを可能とする技術が提案されている。この技術を用いることにより、例えば、特定のフォームに様々な数値を入力したときの結果を効率よく収集することが可能となる。
【０００６】
また、特許文献２には、外部仕様書や事前に準備した画面遷移情報に基づき、ユーザインタフェースの確認を行う手法が提案されている。
【特許文献１】特開２０００−７６２６６号公報
【特許文献２】特開２００４−２８０２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術では、必ず一度は当該フォームへの入力操作を行う必要があることや、収集した当該結果の確認作業に大変な労力が必要となること等の問題がある。また、Ｗｅｂページ内に複数の対話性を持つ要素が存在したり、ある操作を行うことによって新たに出現する要素内に、対話性を持つ要素が存在したりする場合等、全ての操作を網羅的に実行し、その結果全てを確認することは困難を伴う。
【０００８】
また、特許文献２の手法は、仕様書等の情報が用意されており、かつそれらの情報を人手で入力することが前提となっているという問題点がある。また、あらかじめ与えられた情報から外れた（あらかじめ与えられていない）操作系列を確認することが困難であるという問題もある。
【０００９】
この様に、ＤＨＴＭＬを用いたＷｅｂページにおいては、その機能及びユーザの行動に対する挙動を確認（テスト）することは困難である。
【００１０】
また、ＤＨＴＭＬの動作はブラウザの実装によって異なるため、ブラウザを判別してその動作を切り替えている場合も多い。このようなプラットフォーム間での動作の相違を確認する手法は知られていない。
【００１１】
その他、ＤＨＴＭＬを用いたＷｅｂページにおいてはアクセシビリティの確認が難しいことが知られている。例えば、ＪＡＶＡＳＣＲＩＰＴにより何らかの処理が発生する部分を、マウス等のデバイスに依存せずに操作できるか否かを確認することはできるが、操作の結果発生する事象に対するアクセシビリティの確認は困難である。
【００１２】
また、ＤＨＴＭＬを用いたＷｅｂページのアクセシビリティ向上を目指し、スクリーンリーダ等のＡＴ（Ａｓｓｉｓｔｉｖｅ  Ｔｅｃｈｎｏｌｏｇｙ）ソフトウェア等と連携するためには、ＤＨＴＭＬを利用するそれぞれの要素に役割や状態といった情報が設定されている必要がある。
【００１３】
しかしながら、当該情報が付与されていない既存コンテンツへの情報付与等を効率良く実施する方法、あるいは、Ｗｅｂページ製作者が提供する当該情報の妥当性確認の方法は提供されていない。
【００１４】
このような状況において、本発明は、ＤＨＴＭＬを利用するＷｅｂページの挙動の確認、あるいはブラウザ間での当該Ｗｅｂページの挙動の相違の確認、あるいは当該Ｗｅｂページにおけるアクセシビリティに係る情報の付与または妥当性確認を、テスト実施者が効果的に実施できる可能性のある方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の形態によると、ＤＨＴＭＬを利用したＷｅｂページの変化を解析する方法を提供する。当該方法は、前記Ｗｅｂページ内で状態の遷移を動的に発生させるイベント（ユーザ入力、タイマー割り込み、別アプリケーションからの入力等）を求めるステップと、前記遷移をした後の状態を取得するため、前記イベントを仮想的に実行するステップと、前記Ｗｅｂページ内の状態をデータとして取得し、既出の状態であるか否かを判定して記憶するステップと、記憶した前記Ｗｅｂページ内の状態を再現するステップと、を含む。
【００１６】
そして当該方法は、前記Ｗｅｂページ内の状態が、前記Ｗｅｂページの内容（文章、画像、音声等）及びそれらの配置やスタイルをオブジェクトとして扱うＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）、ブラウザ上での画面表示時のスタイル情報（フォント、背景色等）、ユーザ等からの入力データ、及びＪＡＶＡＳＣＲＩＰＴ内のグローバル変数（プログラム全体に対して定義される変数）の値、のうち少なくとも一つからなるデータとして取得することを特徴とする。
【００１７】
本発明の第２の形態によると、ＤＨＴＭＬを利用したＷｅｂページの変化を解析するクライアント装置を提供する。当該クライアント装置は、前記Ｗｅｂページ内で状態の遷移を動的に発生させるイベントを求める状態遷移解析部（図３のコンテンツ解析モジュール１２０）と、前記遷移をした後の状態を取得するため、前記イベントを仮想的に実行するイベント実行部（図３のイベント生成モジュール１７０）と、前記Ｗｅｂページ内の状態をデータとして取得し、既出の状態であるか否かを判定して記憶する状態記憶部（図３の状態判定モジュール１４０）と、記憶した前記Ｗｅｂページ内の状態を再現する状態再現部（図３の状態遷移管理モジュール１６０、ＪＡＶＡＳＣＲＩＰＴのステート管理モジュール１３０、ＤＯＭ操作モジュール１８０）と、を備える。
【００１８】
本発明の第３の形態によると、ＤＨＴＭＬを利用したＷｅｂページの変化を解析する、クライアント装置及びサーバ装置を備えるデータ処理システムを提供する。当該データ処理システムは、前記Ｗｅｂページ内、及び前記Ｗｅｂページを生成するＷｅｂサーバ内、の状態の遷移を動的に発生させるイベントを求める状態遷移解析部（図３のコンテンツ解析モジュール１２０、図１３のデバッグ用モジュール２１４）と、前記遷移をした後の状態を取得するため、前記イベントを仮想的に実行するイベント実行部（図３のイベント生成モジュール１７０）と、前記Ｗｅｂページ内と前記Ｗｅｂサーバ内との双方の状態をデータとして取得し、既出の状態であるか否かを判定して記憶する状態記憶部（図３の状態判定モジュール１４０、図１３のサーバ側状態遷移管理モジュール２２０）と、前記Ｗｅｂページ中から発生し得るＨＴＴＰリクエストを収集、解析するＨＴＴＰリクエスト解析部（図３のＨＴＴＰリクエスト管理モジュール１５０）と、記憶した前記Ｗｅｂページ内の状態を再現するクライアント状態再現部（図３の状態遷移管理モジュール１６０、ＪＡＶＡＳＣＲＩＰＴのステート管理モジュール１３０、ＤＯＭ操作モジュール１８０）と、記憶した前記Ｗｅｂサーバ内の状態を再現するサーバ状態再現部（図１３のサーバ側状態遷移管理モジュール２２０、デバッグ用モジュール２１４）と、を備える。
【００１９】
そして当該方法は、前記Ｗｅｂページ内と前記Ｗｅｂサーバ内との双方の状態が、ＤＯＭ、ブラウザ上での画面表示時のスタイル情報、ユーザ等からの入力データ、ＪＡＶＡＳＣＲＩＰＴ内のグローバル変数の値、及び前記Ｗｅｂサーバの変数の値のうち少なくとも一つからなるデータとして取得することを特徴とする。
【００２０】
本発明の第４の形態によると、前記第１の形態の方法をコンピュータに実行させるコンピュータ・プログラムを提供する。
【００２１】
上記本発明の形態により、コンピュータは、ＤＨＴＭＬを利用するＷｅｂページ内で発生し得る状態を、自動的に効率良く記録・再現できる。
【発明の効果】
【００２２】
本発明によれば、従来は困難であったＤＨＴＭＬを利用したＷｅｂページにおけるアクセシビリティの確認や、要件定義の確認等を効率良く実施できる可能性がある。
【発明を実施するための最良の形態】
【００２３】
本発明に係る好適な実施形態の一例について、図面に基づいて以下に説明する。
【００２４】
［実施形態概念図］
図１は、本発明に係る好適な実施形態の一例を示す全体概念図である。
【００２５】
クライアント装置１０は、サーバ装置２０と通信ネットワーク４０を介して接続されており、クライアント装置１０は、サーバ装置２０に対してＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）リクエストを送信し、当該サーバ装置２０よりＨＴＴＰレスポンスを受信することにより、当該サーバ装置２０にて管理されるＷｅｂページを表示し、ユーザからの閲覧に供している。
【００２６】
ここで、当該クライアント装置１０は、本発明のテスト手段を備え、当該テスト手段を運用することにより、当該Ｗｅｂページの挙動をテストする。
【００２７】
その際、当該クライアント装置１０は、テスト実施者から予め定められた操作設定情報の入力を受け付け、あるいは、当該テスト実施者への問い合わせに対する返答を適宜受け付け、テストを実施する。
【００２８】
そして、当該クライアント装置１０は、当該テストの実施結果として、例えば、詳しくは後述するＷｅｂページの状態遷移図やＷｅｂページ要素の役割推定情報等を出力する。
【００２９】
［データ処理システムの構成］
本発明は、コンピュータ、データ処理システム、コンピュータ・プログラムとして実現することができる。前記コンピュータ・プログラムは、コンピュータにより読み取り可能な記録媒体に記録してもよい。コンピュータにより読み取り可能な記録媒体とは、命令実行システム、装置または機器に使用されあるいはこれらに関連するプログラムを含み、記憶し、通信し、伝搬し、あるいは搬送することができる任意の装置であることができる。
【００３０】
前記記録媒体は、電子的、磁気的、光学的、電磁的、赤外線または半導体システム（または、装置または機器）あるいは伝搬媒体であることができる。コンピュータ可読の媒体の例には、半導体またはソリッド・ステート記憶装置、磁気テープ、取り外し可能なコンピュータ・ディスケット、ＲＡＭ、ＲＯＭ、リジッド磁気ディスク及び光ディスクが含まれる。現時点における光ディスクの例には、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ及びＤＶＤが含まれる。
【００３１】
図２は、本発明の好適な実施形態の一例に係るコンピュータ（クライアント装置１０、サーバ装置２０）の構成を示すブロック図である。
【００３２】
制御部１１、記憶部１２、入力部１３、表示部１４、通信制御部１５は、バス１６を介して接続されている。
【００３３】
制御部１１は、情報の演算、処理を行う情報演算処理装置（ＣＰＵ）であり、当該コンピュータ全体の制御を行う。制御部１１は、記憶部１２に記憶された各種プログラムを適宜読み出して実行することにより、上述のハードウェアと協働し、本発明に係る各種機能を実現している。
【００３４】
記憶部１２は、制御部１１と組み合わせてプログラムの実行に使用するローカル・メモリ、大容量のバルク・ストレージ、及び当該バルク・ストレージの検索を効率的に行うために使用するキャッシュ・メモリ等を含む。
【００３５】
入力部１３は、ユーザによる入力の受付を行うものであり、キーボード、ポインティング・デバイス等を含む。入力部１３は、直接または介在Ｉ／Ｏコントローラを介して当該コンピュータと接続することができる。
【００３６】
表示部１４は、ユーザにデータの入力を受け付ける画面を表示したり、当該コンピュータによる処理結果を表示したりするものであり、ブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置等を含む。表示部１４は、直接または介在Ｉ／Ｏコントローラを介して当該コンピュータと接続することができる。
【００３７】
通信制御部１５は、当該コンピュータを専用ネットワークまたは公共ネットワークを介して別の演算処理システム、遠隔プリンタまたは記憶装置と接続できるようにするためのネットワーク・アダプタである。通信制御部１５は、モデム、ケーブル・モデム及びイーサネット（登録商標）・カード等を含む。
【００３８】
［テスト手段の全体構成］
図３は、本発明の好適な実施形態の一例に係る、クライアント装置１０が備えるテスト手段の実装構成を示すブロック図である。
【００３９】
ＤＨＴＭＬを実現するためのＪＡＶＡＳＣＲＩＰＴエンジン１１２を含むブラウザ１１０は、ステート管理モジュール１３０と、ＨＴＴＰリクエスト管理モジュール１５０と、イベント生成モジュール１７０と、ＤＯＭ操作モジュール１８０からの信号を受け付け、表示しているＷｅｂページの状態を変化させる。
【００４０】
コンテンツ解析モジュール１２０は、ブラウザ１１０から、ＷｅｂページのＤＯＭ、スタイル情報データ、ＤＯＭ  Ｍｕｔａｔｉｏｎイベント、あるいはＪＡＶＡＳＣＲＩＰＴのステート管理モジュール１３０からグローバル変数データを受け取り、ＤＯＭ解析、ＪＡＶＡＳＣＲＩＰＴ解析、スタイル解析、ＪＡＶＡＳＣＲＩＰＴのステート解析を行う（詳細は後述する）。ここで、ＤＯＭ  Ｍｕｔａｔｉｏｎイベントとは、ＤＯＭの構成要素の追加、削除、変更等の変化を識別するイベントのことである（詳しくは、Ｗ３Ｃ、“Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ  Ｅｖｅｎｔｓ”、［ｏｎｌｉｎｅ］、２０００年１１月１３日、［２００５年１０月１８日検索］、インターネット＜ＵＲＬ：http://www.w3.org/TR/DOM-Level-2-Events/events.html＞参照）。
【００４１】
ＪＡＶＡＳＣＲＩＰＴのステート管理モジュール１３０は、前記Ｗｅｂページに含まれるＪＡＶＡＳＣＲＩＰＴで用いられているグローバル変数の値の取得あるいは変更を行う。そして、ＪＡＶＡＳＣＲＩＰＴのステート管理モジュール１３０は、当該グローバル変数の値の取得により得られたデータを、コンテンツ解析モジュール１２０に送信する。
【００４２】
状態判定モジュール１４０は、コンテンツ解析モジュール１２０を介し、ＤＯＭ、スタイル情報、マウス・キーボード等の入力部１３の状態、ＪＡＶＡＳＣＲＩＰＴが持つグローバル変数の値等のデータを、データベース３０に記憶する（詳細は後述する）。
【００４３】
ブラウザ１１０は、Ｗｅｂページに含まれるリンクのクリック等のイベントにより、別のページへ移動したりサブウィンドウを生成したりする場合に、ＨＴＴＰリクエストを生成する。ＨＴＴＰリクエスト管理モジュール１５０は、当該ＨＴＴＰリクエストを受け取ると、一時的に当該ＨＴＴＰリクエストを取り消し、ブラウザ１１０で処理されるＷｅｂページを基のページのままに据え置く。更に、当該ＨＴＴＰリクエストをデータベース３０に保存する。これにより、ＨＴＴＰリクエスト管理モジュール１５０は、状態遷移管理モジュール１６０からの指示信号に応じて、当該ＨＴＴＰリクエストを再現、あるいは、当該ＨＴＴＰリクエストに変更を加えたものを当該Ｗｅｂページに発行することができる。
【００４４】
状態遷移管理モジュール１６０は、ユーザ入力モジュール１９０を介して適宜テスト実施者からの入力を受け付け、コンテンツ解析モジュール１２０から得られた情報に基づき、Ｗｅｂページで発生しうる状態遷移を、ＪＡＶＡＳＣＲＩＰＴのステート管理モジュール１３０、ＨＴＴＰリクエスト管理モジュール１５０、イベント生成モジュール１７０、ＤＯＭ操作モジュール１８０、を介して仮想的に実行する（処理の詳細は後述する）。
【００４５】
イベント生成モジュール１７０は、状態遷移管理モジュール１６０からの指示信号に応じて、ブラウザ１１０の上でのマウス移動やクリックやキーボード操作等の入力イベントを、ユーザからの当該入力を受けることなく仮想的に実行する。
【００４６】
ＤＯＭ操作モジュール１８０は、状態遷移管理モジュール１６０からの指示信号に応じて、ブラウザ１１０上で処理されているＤＯＭへの要素の追加・削除や値の変更等の操作を行う。
【００４７】
ユーザ入力モジュール１９０は、当該テスト手段における、各種値（例えば日付、ランダム値、Ｗｅｂページ内のフォームへの入力値等）の変更範囲や試行回数の設定等の入力を促し、テスト実施者からの入力を受け付ける（詳細は後述する）。
【００４８】
［コンテンツ解析フロー］
図４は、本発明の好適な実施形態の一例に係るテスト手段の内、コンテンツ解析モジュール１２０にて実施されるコンテンツ解析処理の手順を示すフロー図である。
【００４９】
ステップＳ１００では、コンテンツ解析モジュール１２０は、ブラウザ１１０からＷｅｂページのＤＯＭを取得し、当該ＤＯＭを解析することにより、当該Ｗｅｂページ内に存在するフォーム要素、及びイベントを取得する。
【００５０】
ステップＳ１０５では、コンテンツ解析モジュール１２０は、ステップＳ１００にて取得したフォーム要素及びイベントそれぞれについて、ＩＤを付与し、データベース３０に記憶する（図示せず）。
【００５１】
ステップＳ１１０では、コンテンツ解析モジュール１２０は、ＪＡＶＡＳＣＲＩＰＴのステート管理モジュール１３０から前記グローバル変数の値を受信する。
【００５２】
ステップＳ１１５では、コンテンツ解析モジュール１２０は、ステップＳ１００にて取得したＤＯＭ内に存在するＪＡＶＡＳＣＲＩＰＴ要素、及びインクルードされているＪＡＶＡＳＣＲＩＰＴを静的解析することにより、グローバル変数、あるいはランダム値や日付等による条件分岐を特定する。また、フォーム内の値等、ＤＯＭ中の値に基づく条件分岐が存在する場合には、その対象となる要素を特定する。
【００５３】
ステップＳ１２０では、コンテンツ解析モジュール１２０は、ブラウザ１１０から、当該Ｗｅｂページのフォントサイズ、背景色等のスタイル情報データを取得する。このことにより、例えば、詳細は後述する状態遷移管理処理においてイベントを発行する際に、必要となるマウスの座標等を取得できる。
【００５４】
ステップＳ１２５では、コンテンツ解析モジュール１２０は、ブラウザ１１０から受け取るＤＯＭ  Ｍｕｔａｔｉｏｎイベント、あるいは、ＤＯＭ及びスタイル情報の差分演算に基づき、ＤＯＭ及びスタイルの変化部分を特定する。
【００５５】
ステップＳ１３０では、コンテンツ解析モジュール１２０は、当該変化部分に対して、前述のＨＴＭＬ内の要素の役割を推定する技術（特開２００４−３５５５２８号公報）等を用いることにより、イベントによって発生する事象（プルダウンメニューのポップアップ、画面のハイライト等）や、イベントの対象となる要素の役割（メニュー、ボタン、ラジオボタン、スライドバー等）や、当該要素の状態（展開、省略、表示、非表示、書き込み可、書き込み不可等）を推定する。
【００５６】
ステップＳ１３５では、コンテンツ解析モジュール１２０は、ステップＳ１１５のＪＡＶＡＳＣＲＩＰＴ解析により特定した条件分岐について、その対象となっているＤＯＭ中の要素あるいはグローバル変数の値を監視し、例えば、ある状態に遷移するためのグローバル変数の値等、状態遷移の分岐条件を特定する。なお、当該グローバル変数の値はステップＳ１１０にて取得している。
【００５７】
なお、一連の処理ステップの順序はこれに限られない。
【００５８】
［状態判定フロー］
図５は、本発明の好適な実施形態の一例に係るテスト手段の内、状態判定モジュール１４０にて実施される状態判定処理の手順を示すフロー図である。
【００５９】
ステップＳ２００では、状態判定モジュール１４０は、コンテンツ解析モジュールよりＤＯＭ、スタイル情報、入力部１３の状態、グローバル変数の値等のデータを受け取り、それらの組み合わせとしての状態を特定する。
【００６０】
このとき、例えば、フォームの入力値、ＪＡＶＡＳＣＲＩＰＴにより出力される文字列等を「数値」、「文字」、「日時」等に抽象化したり、変数の値を「１０以下の整数」等に分類したり、イベントの発生する要素の座標データを基にブラウザ１１０上の表示領域を区画に区切り、同一区画内は全て同じ状態としたり、特定のパターンに当てはまるものは同一の状態として、状態数を圧縮してもよい。
【００６１】
ステップＳ２０５では、状態判定モジュール１４０は、ステップＳ２００にて特定した状態と、既にデータベース３０に記憶してある状態とを比較する。同じであればステップＳ２１５に処理を移し、異なっていればステップＳ２１０に処理を移す。
【００６２】
ステップＳ２１０では、状態判定モジュール１４０は、ステップＳ２００にて特定した状態をデータベース３０に記憶する。具体的には、例えば図６の状態テーブル５０を使用する。状態ＩＤフィールドには、当該状態を識別する状態ＩＤを新規に付与して記憶する。ページフィールドには、当該状態が表れるＷｅｂページ名を記憶する。種別フィールド、項目フィールド、及び内容フィールドには、ＤＯＭ、フォントや背景色等のスタイル、グローバル変数等のＪＡＶＡＳＣＲＩＰＴのステート、マウスやキーボード等の入力部１３の状態、といった種別及びその内容を記憶する。
【００６３】
ステップＳ２１５では、状態判定モジュール１４０は、前記特定した状態への遷移データをデータベース３０に記憶する。具体的には、例えば図７の状態遷移テーブル６０を使用し、イベントの発生した要素ＩＤ、イベントＩＤ、イベント発生前の状態ＩＤ、イベント発生後の状態ＩＤを記憶する。
【００６４】
また、ステップＳ１３０（図４）にてコンテンツ解析モジュールが推定した結果を、データベース３０に記憶する。具体的には、例えば、前記イベントによって発生する事象を、状態遷移テーブル６０（図７）に記憶し、前記イベントの対象となる要素の役割を、当該要素のＩＤと共に要素役割推定テーブル７０（図８）に記憶し、当該要素の状態を、状態テーブル５０（図６）に記憶する。
【００６５】
［状態遷移管理フロー］
図９は、本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理モジュール１６０及びその指令信号にて実施される状態遷移管理処理の手順を示すフロー図である。
【００６６】
ステップＳ３００では、状態判定モジュール１４０が、Ｗｅｂページの初期における状態をデータベース３０に記憶する（前述の状態判定処理）。状態遷移管理モジュール１６０は、この初期状態を基点状態として記憶した後、ステップＳ３０５に処理を移す。
【００６７】
ステップＳ３０５では、コンテンツ解析モジュール１２０が、前記基点状態における前述のコンテンツ解析処理を行う。
【００６８】
ステップＳ３１０では、状態遷移管理モジュール１６０は、ステップＳ１０５（図４）にて記憶したイベントを読み出し、イベント生成モジュール１７０を介して、当該イベントを発生させる。このことにより前記Ｗｅｂページの状態が変化する。
【００６９】
ステップＳ３１５では、ＨＴＴＰリクエスト管理モジュール１５０が、ステップＳ３１０にて発生した当該イベントの結果ＨＴＴＰリクエストを受け取った場合、一時的に当該ＨＴＴＰリクエストを取り消し、ブラウザ１１０で処理されるＷｅｂページを基のページのままに据え置く。
【００７０】
ステップＳ３２０では、ステップＳ３１０において変化した後の状態を、状態判定モジュール１４０がデータベース３０に記憶する（前述の状態判定処理）。
【００７１】
ステップＳ３２５では、状態遷移管理モジュール１６０は、前記基点状態における全てのイベントを発行したか否かの判定を行う。具体的には、前記基点状態におけるコンテンツ解析処理（ステップＳ３０５）において取得したイベントについて、全て実行（ステップＳ３１０）した場合にはステップＳ３３５に処理を移し、まだ生成していないイベントが存在する場合にはステップＳ３３０に処理を移す。
【００７２】
ステップＳ３３０では、状態遷移管理モジュール１６０は、基点状態への戻し処理（詳細は後述）を行い、次のイベントの発生に備える。
【００７３】
ステップＳ３３５では、状態遷移管理モジュール１６０は、当該Ｗｅｂページにおける全ての状態について、コンテンツ解析処理と状態判定処理を行ったか否かの判定を行う。具体的には、ステップＳ３２０にて記憶する状態全てについて、コンテンツ解析処理を行い、未処理の状態がなくなった場合、ステップＳ３４５に処理を移す。未処理の状態が存在する場合には、ステップＳ３４０に処理を移す。
【００７４】
ステップＳ３４０では、状態遷移管理モジュール１６０は、次状態への変更処理（詳細は後述）を行い、次の状態の解析に備える。
【００７５】
ステップＳ３４５では、状態遷移管理モジュール１６０は、データベース３０に記憶したＷｅｂページの状態、状態遷移、及び要素の役割推定結果を整形し、表示部１４に表示する。表示例については後述する（図１４、図１５）。
【００７６】
一連の状態遷移管理処理では、状態遷移管理モジュール１６０は、ある基点状態において全てのイベントの発行が終了した後、まだイベント発行が終了していない状態に基点状態を変更・記憶し、新たな状態が発生しなくなるまで同様の処理を繰り返す。
【００７７】
ここで、ＪＡＶＡＳＣＲＩＰＴ等におけるイベント処理において、日付・時刻や、ランダム値や、フォーム内の入力値等による条件分岐が存在する場合がある。状態遷移管理モジュール１６０は、当該条件分岐を全て実行するため、ＪＡＶＡＳＣＲＩＰＴの静的解析やデバッグ技術により変化させる値を特定し、操作用のＪＡＶＡＳＣＲＩＰＴの実行等によりその値を変化させる。
【００７８】
なお、変化させる値の範囲は、ユーザ入力受付処理（詳細は後述する）によりユーザに問い合わせてもよいし、既定の操作設定情報に基づいてもよい。また、記録・再現のために条件分岐の記述を上書きし、分岐先を全て実行した後に、それぞれの分岐先へ遷移する条件を記憶し、あるいはクライアント装置１０の表示部１４（ディスプレイ、プリンタ等）を介してテスト実施者に提示してもよい。
【００７９】
また、ＪＡＶＡＳＣＲＩＰＴ中でランダム値や日付等が用いられ、無限あるいは非常に多くの状態が生成されてしまうような場合には、関連するイベント発行を一定回数で終了したり、後述のユーザ入力受付処理により、ユーザ入力や操作設定情報に基づいてイベント発行を行ったりしてもよい。
【００８０】
［基点状態への戻し処理フロー］
図１０は、本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理（図９）における基点状態への戻し処理の手順を示すフロー図である。
【００８１】
ステップＳ４００では、状態遷移管理モジュール１６０は、データベース３０から、ステップＳ３００（図９）にて記憶、あるいはステップＳ３４０（図９）にて再設定する基点状態の読み出しを行う。
【００８２】
ステップＳ４０５では、状態遷移管理モジュール１６０は、ＤＯＭ操作モジュール１８０を介して、ブラウザ１１０のＷｅｂページのＤＯＭを、ステップＳ４００にて読み込んだ当該基点状態から抽出したＤＯＭに変更する。
【００８３】
ステップＳ４１０では、状態遷移管理モジュール１６０は、ステート管理モジュール１３０を介して、ブラウザ１１０におけるＪＡＶＡＳＣＲＩＰＴのステートを、ステップＳ４００にて読み込んだ当該基点状態から抽出したＪＡＶＡＳＣＲＩＰＴのステートに変更する。
【００８４】
なお、ステップＳ４０５及びステップＳ４１０の処理順序は、これに限られない。
【００８５】
［次状態への変更処理フロー］
図１１は、本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理（図９）における次状態への変更処理の手順を示すフロー図である。
【００８６】
ステップＳ５００では、状態遷移管理モジュール１６０は、データベース３０から、ステップＳ３２０（図９）にて記憶し、まだイベント発行を行っていない状態の読み出しを行う。
【００８７】
ステップＳ５０５では、状態遷移管理モジュール１６０は、ＤＯＭ操作モジュール１８０を介して、ブラウザ１１０のＷｅｂページのＤＯＭを、ステップＳ５００にて読み込んだ状態から抽出するＤＯＭに変更する。
【００８８】
ステップＳ５１０では、状態遷移管理モジュール１６０は、ステート管理モジュール１３０を介して、ブラウザ１１０におけるＪＡＶＡＳＣＲＩＰＴのステートを、ステップＳ５００にて読み込んだ状態から抽出するＪＡＶＡＳＣＲＩＰＴのステートに変更する。
【００８９】
ステップＳ５１５では、状態遷移管理モジュール１６０は、ステップＳ５００にて読み込んだ当該状態を基点状態として再設定・記憶する。
【００９０】
［ユーザ入力受付処理フロー］
図１２は、本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理（図９）におけるユーザ入力受付処理の手順を示すフロー図である。
【００９１】
ステップＳ６００では、ユーザ入力モジュール１９０は、クライアント装置１０に備える表示部１４にユーザからの入力を受け付けるための表示を行う（図示しない）。
【００９２】
ステップＳ６０５では、ユーザ入力モジュール１９０は、クライアント装置１０に備える入力部１３（キーボード、マウス等）より、ユーザからの入力を受け付ける。
【００９３】
なお、当該ユーザ入力受付処理は、上述のように適宜ユーザへの問い合わせを行い、その返答を待つ処理としてもよいし、予め入力を受け付けるか、または既定のデータとしてシステムに記憶している操作設定情報データを読み出し、自動で実行することとしてもよい。
【００９４】
［サーバ装置を含めたテスト環境の構成］
図１３は、本発明の好適な実施形態の一例に係るテスト環境を、サーバ装置２０へ拡張した場合の実装構成を示すブロック図である。
【００９５】
Ｗｅｂサーバにおいて、ＪＡＶＡＳＣＲＩＰＴ内にブレークポイントを設定したり、ステップ実行を可能にしたりして、デバッグを支援するモジュールを実装した環境を、統合開発環境と呼ぶ（例えば、Ｐａｒｋｉｎ，Ｓ．“Ｒａｐｉｄ  Ｊａｖａ  ａｎｄ  Ｊ２ＥＥ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｗｉｔｈ  ＩＢＭ  ＷｅｂＳｐｈｅｒｅ  Ｓｔｕｄｉｏ  ａｎｄ  ＩＢＭ  Ｒａｔｉｏｎａｌ  Ｄｅｖｅｌｏｐｅｒ”、［ｏｎｌｉｎｅ］、２００４年１０月、ＩＢＭ  Ｒａｔｉｏｎａｌ  ｗｈｉｔｅ  ｐａｐｅｒ、［２００５年１０月１８日検索］、インターネット＜ＵＲＬ：http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/wp-radrwd-medres.pdf＞参照）。
【００９６】
統合開発環境２１０において、デバッグ用モジュール２１４は、Ｗｅｂサーバ２１２上の変数の値等の取得あるいは変更を行う。
【００９７】
ここで、サーバ側状態遷移管理モジュール２２０は、デバッグ用モジュール２１４を介し、Ｗｅｂサーバ２１２上の変数の値等を監視し、これをＷｅｂページの状態として含め、例えばデータベース３０の状態テーブル５０に記憶する。
【００９８】
このことにより、当該テスト手順は、単一Ｗｅｂページのみならず、Ｗｅｂサーバ２１２にて管理されるＷｅｂアプリケーション全体を通しての状態遷移を記憶することができる。
【００９９】
なお、データベース３０は、クライアント装置１０の内部、あるいはサーバ装置２０の内部、あるいはクライアント装置１０及びサーバ装置２０の外部にあるとしてもよい。
【０１００】
［遷移情報の提示例］
図１４から１６は、本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理における状態遷移情報提示（ステップＳ３４５）に関する、ユーザへの提示例を示す図である。
【０１０１】
状態遷移管理モジュール１６０は、単一のＷｅｂページあるいは複数のＷｅｂページにおける各状態と、当該状態の間の遷移情報を表示する。
【０１０２】
図１４の例では、状態遷移管理モジュール１６０は、状態１から４におけるＷｅｂページ表示結果と、それぞれの状態間を遷移するイベントを表示する。例えば、状態１（初期状態）において、マウスがメニューの「製品」の上に移動すると、サブメニュー１が出現（状態２）する。続いてマウスがサブメニューの「パソコン」の上に移動すると、サブサブメニュー１が出現（状態３）する。
【０１０３】
図１５の例では、状態１から状態２への状態遷移について、Ｗｅｂページ表示結果と、その時点におけるスタイル、ＪＡＶＡＳＣＲＩＰＴのステート、ＤＯＭ等のデータを関連付け、イベント発行によりどの様な変化が起こるかを表示する。例えば、状態２の画面例中では、イベントの発行元となった要素（製品）と、イベントにより変化の生じた要素（製品のプルダウンメニュー）を強調表示している。また、イベントによって発生する事象（プルダウンメニューのポップアップ）を画面上に表示することにより、テスト実施者の理解を助けている。また、スタイル、ＪＡＶＡＳＣＲＩＰＴのステート、ＤＯＭ中で変化のあった部分の強調表示も行う。
【０１０４】
図１５の例ではツリー表示を用いてＤＯＭを表現しているが、例えば図１６のようなテキスト形式で表現してもよい。図１６の例では、状態遷移によってＨＴＭＬ内で変化のあった部分（ｈｉｄｄｅｎからｖｉｓｉｂｌｅ）を強調表示することにより、テスト実施者の理解を助けている。
【０１０５】
他にも、画面全体の表示ではなく、変動のあった部分だけを表示したり、特定の操作系列をアニメーションのようにコマ送りで再現したりする等、テスト実施者の要求に応じて様々な表示形式を提供することができる。
【０１０６】
また、特定のイベントを発行した際の挙動一覧や、特定の役割を持つ要素に関連するイベント一覧や、特定のＪＡＶＡＳＣＲＩＰＴのステートでの状態遷移一覧等、条件による絞り込みも可能である。
【０１０７】
以上のような実施形態によれば、従来は困難であったＤＨＴＭＬを利用したＷｅｂページにおけるアクセシビリティの確認や、要件定義の確認等を効率良く実施できる。
【０１０８】
例えば、既存のアクセシビリティチェッカでは、ＤＨＴＭＬを用いたページにおいては、初期状態以外の状態をチェックすることは困難であった。本発明を用いることにより、ＤＨＴＭＬを利用したページにおいて発生する可能性のある状態、すなわちＤＯＭやスタイル等の情報を自動的に収集・再現することが可能となるため、テスト実施者は、当該それぞれの状態に対してアクセシビリティ・チェックを実施することが可能となる。
【０１０９】
また、テスト実施者は、本発明により得られた状態遷移情報を用いることで、特定の入力部１３に依存した遷移（マウスによる操作とキーボードによる操作とで挙動が異なる等）の有無を判定することが可能となる。
【０１１０】
さらに、Ｗｅｂページをスクリーンリーダ等の前述したＡＴソフトウェアと連携させるためには、ＤＨＴＭＬを利用するそれぞれの要素に正しい役割が付与されている必要がある。本発明と、前記ＨＴＭＬ内の要素の役割を推定する技術等を組み合わせて利用することにより、テスト実施者は、イベントによって発生する事象や、イベントの対象となる要素の役割・状態の推定結果と、実際に付与されている役割等を比較する事で、当該Ｗｅｂページ製作者の誤りの発見が可能となる。また、テスト実施者は、当該誤りの修正や、各要素への役割・状態の付与がなされていない既存コンテンツへの情報付与等の際、推定された結果を候補として提示することで効率良く作業を実施できる。
【０１１１】
また、ＤＨＴＭＬの動作はブラウザの実装によって異なるため、Ｗｅｂページは、当該ブラウザの種類を判定して当該動作を切り替えている場合も多い。テスト実施者は、このようなブラウザ間での動作の相違を、本発明を用いて得た状態遷移情報を比較することで容易に把握できる。
【０１１２】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【０１１３】
【図１】本発明に係る好適な実施形態の一例を示す全体概念図である。
【図２】本発明の好適な実施形態の一例に係るコンピュータの構成を示すブロック図である。
【図３】本発明の好適な実施形態の一例に係る、クライアント装置１０が備えるテスト手段の実装構成を示すブロック図である。
【図４】本発明の好適な実施形態の一例に係るテスト手段の内、コンテンツ解析モジュール１２０にて実施されるコンテンツ解析処理の手順を示すフロー図である。
【図５】本発明の好適な実施形態の一例に係るテスト手段の内、状態判定モジュール１４０にて実施される状態判定処理の手順を示すフロー図である。
【図６】本発明の好適な実施形態の一例に係る状態テーブル５０を示す図である。
【図７】本発明の好適な実施形態の一例に係る状態遷移テーブル６０を示す図である。
【図８】本発明の好適な実施形態の一例に係る要素役割推定テーブル７０を示す図である。
【図９】本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理モジュール１６０及びその指令信号にて実施される状態遷移管理処理の手順を示すフロー図である。
【図１０】本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理における基点状態への戻し処理の手順を示すフロー図である。
【図１１】本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理における次状態への変更処理の手順を示すフロー図である。
【図１２】本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理におけるユーザ入力受付処理の手順を示すフロー図である。
【図１３】本発明の好適な実施形態の一例に係るテスト環境を、サーバ装置２０へ拡張した場合の実装構成を示すブロック図である。
【図１４】本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理における状態遷移情報提示に関する、ユーザへの提示例を示す図である。
【図１５】本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理における状態遷移情報提示に関する、ユーザへの提示例を示す図である。
【図１６】本発明の好適な実施形態の一例に係るテスト手段の内、状態遷移管理処理における状態遷移情報提示に関する、ユーザへの提示例を示す図である。
【符号の説明】
【０１１４】
１０    クライアント装置
１１    制御部
１２    記憶部
１３    入力部
１４    表示部
１５    通信制御部
１６    バス
１１０  ブラウザ
１１２  ＪＡＶＡＳＣＲＩＰＴエンジン
１２０  コンテンツ解析モジュール
１３０  ＪＡＶＡＳＣＲＩＰＴのステート管理モジュール
１４０  状態判定モジュール
１５０  ＨＴＴＰリクエスト管理モジュール
１６０  状態遷移管理モジュール
１７０  イベント生成モジュール
１８０  ＤＯＭ操作モジュール
１９０  ユーザ入力モジュール
２０    サーバ装置
２１０  統合開発環境
２１２  Ｗｅｂサーバ
２１４  デバッグ用モジュール
２２０  サーバ側状態遷移管理モジュール
３０    データベース
４０    通信ネットワーク
５０    状態テーブル
６０    状態遷移テーブル
７０    要素役割推定テーブル
【図１】
2007172377.tif 000003
【図２】
2007172377.tif 000004
【図３】
2007172377.tif 000005
【図４】
2007172377.tif 000006
【図５】
2007172377.tif 000007
【図６】
2007172377.tif 000008
【図７】
2007172377.tif 000009
【図８】
2007172377.tif 000010
【図９】
2007172377.tif 000011
【図１０】
2007172377.tif 000012
【図１１】
2007172377.tif 000013
【図１２】
2007172377.tif 000014
【図１３】
2007172377.tif 000015
【図１４】
2007172377.tif 000016
【図１５】
2007172377.tif 000017
【図１６】
2007172377.tif 000018