【文献】
Shauvik Roy Choudhary, et al.,WEBDIFF: Automated Identification of Cross-browser Issues in Web Applications,2010 IEEE International Conference on Software Maintenance,2010年09月12日
(58)【調査した分野】(Int.Cl.,DB名)
検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化する第1の変動要素を特定し、かつ、当該要素が表された要素画像が時間経過に従って変化する第2の変動要素を特定し、
前記二つのブラウザ間で、前記複数の要素のうち、前記第1および第2の変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する、
ことをコンピュータに実行させるためのコンテンツ検証用コンピュータプログラム。
前記複数の要素のそれぞれについて、第1の時点において前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得し、かつ、前記第1の時点と異なる第2の時点において前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得することをさらにコンピュータに実行させ、
前記第1の変動要素を特定することは、前記複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、前記第1の時点における当該要素の前記表示に関する属性と、前記第2の時点における当該要素の前記表示に関する属性とが異なる要素を前記第1の変動要素とすることを含む、
請求項1に記載のコンテンツ検証用コンピュータプログラム。
前記複数の要素のそれぞれについて、前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得し、かつ、前記二つのブラウザのそれぞれから当該要素が表された要素画像を取得し、
前記複数の要素のそれぞれについて、前記二つのブラウザのそれぞれから取得された当該要素が表された前記要素画像を比較することで、前記複数の要素のうち、前記二つのブラウザ間で表示内容が異なる不一致要素を特定し、
前記二つのブラウザのそれぞれから、前記不一致要素の前記表示に関する属性を再取得し、かつ、前記二つのブラウザのそれぞれから前記不一致要素が表された要素画像を再取得することをさらにコンピュータに実行させ、
前記第1および第2の変動要素を特定することは、前記二つのブラウザの少なくとも何れかにおいて、前記不一致要素のうち、前記表示に関する属性と前記再取得された前記表示に関する属性が異なる不一致要素を前記第1の変動要素として特定し、かつ、前記要素画像と前記再取得された前記要素画像とが異なる不一致要素を前記第2の変動要素として特定することを含み、
前記二つのブラウザ間で表示内容が異なる領域を特定することは、前記不一致要素のうち、前記第1および第2の変動要素以外の不一致要素が表された領域を前記二つのブラウザ間で表示内容が異なる領域として特定することを含む、請求項1または2に記載のコンテンツ検証用コンピュータプログラム。
前記表示に関する属性は、前記要素が表示される領域の位置を示す情報、前記要素について表示と非表示とを切り替えるための情報、前記要素の透明度を示す情報、及び、前記要素が動画像か否かを表す情報のうちの少なくとも一つを含む、請求項1〜3の何れか一項に記載のコンテンツ検証用コンピュータプログラム。
検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化する第1の変動要素を特定し、かつ、当該要素が表された要素画像が時間経過に従って変化する第2の変動要素を特定する変動領域特定部と、
前記二つのブラウザ間で、前記複数の要素のうち、前記第1および第2の変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する比較部と、
を有するコンテンツ検証装置。
検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化する第1の変動要素を特定し、かつ、当該要素が表された要素画像が時間経過に従って変化する第2の変動要素を特定し、
前記二つのブラウザ間で、前記複数の要素のうち、前記第1および第2の変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する、
ことを含むコンテンツ検証方法。
【発明を実施するための形態】
【0012】
以下、図を参照しつつ、コンテンツ検証装置、及び、そのコンテンツ検証装置で利用されるコンテンツ検証方法及びコンテンツ検証用コンピュータプログラムについて説明する。このコンテンツ検証装置は、例えば、クロスブラウザテストを実行するために用いられる。そのために、このコンテンツ検証装置は、同一のWebコンテンツが読み込まれた二つのWebブラウザのそれぞれから、各Webブラウザに表示されるHTML要素を抽出する。そしてコンテンツ検証装置は、抽出したHTML要素ごとに、そのHTML要素が表された画像をWebブラウザ間で比較する。その際、このコンテンツ検証装置は、動的なHTML要素が表示される領域(以下、変動領域と呼ぶ)については、Webブラウザ間での比較対象から除外する。なお、以下では、説明の便宜上、検証対象となるWebコンテンツを表示するブラウザを、単にブラウザと呼ぶことがある。また、HTML要素は、ブラウザに表示される要素の一例である。
【0013】
発明者は、変動領域を正確に抽出するために、変動領域であっても、互いに異なるタイミングにおいて同じ内容が表示されることがあることに着目した。
【0014】
図1(a)〜
図1(c)は、それぞれ、互いに異なるタイミングにおいて同じ内容が表示されることがある変動領域の例を示す図である。
【0015】
図1(a)に示される例では、ブラウザ上に3個のフレーム101〜103が設けられ、各フレームを通じて、4個のHTML要素111〜114のうちの3個が表示されるようになっている。4個のHTML要素111〜114のそれぞれは、時間経過とともに、図示される矢印に従って順次移動する。ここで、ブラウザ上で着目するHTML要素が表される領域は、例えば、Webコンテンツが読み込まれたブラウザから、着目するHTML要素の識別番号を指定してそのHTML要素の実体を取得し、その実体を解析することで特定される。したがって、着目するHTML要素が表される画像は、特定された、着目するHTML要素が表示される領域をキャプチャすることで得られる。したがって、
図1(a)に示されるような例では、フレーム101〜103の表示内容自体は動的に変化するにもかかわらず、HTML要素111〜114の何れについても、識別番号を指定することでキャプチャされるそのHTML要素の画像は、常に同一となる。そのため、HTML要素の識別番号を指定して特定される領域をキャプチャして得られる画像の表示内容の時間変化を調べても、変動領域の特定は失敗する。
【0016】
図1(b)に示される例では、同一の変動領域に表示されるHTML要素121として表示される画像が所定の時間間隔(例えば、2秒間隔)で順次切り替わる。したがって、例えば、その所定間隔よりも短い間隔で変動領域を2回キャプチャすることで、変動領域の二つの画像を取得しても、その二つの画像の表示内容は同一となる。その結果として、変動領域の特定は失敗する。
【0017】
図1(c)に示される例では、一つの変動領域130に対して、階層的に4個のHTML要素131〜134が対応付けられている。各HTML要素131〜134には、hidden属性が設定されており、hidden属性がtrueであるHTML要素は表示されない。したがって、各HTML要素131〜134に設定されるhidden属性が動的に変更されることで、変動領域130に表示されるHTML要素が変化する。例えば、左端の例では、HTML要素134のhidden属性がfalseとなっており、その他のHTML要素のhidden属性がtrueとなっているので、変動領域130には、HTML要素134が表示される。また、中央の例では、HTML要素133のhidden属性がfalseとなっており、その他のHTML要素のhidden属性がtrueとなっているので、変動領域130には、HTML要素133が表示される。そして右端の例では、HTML要素132のhidden属性がfalseとなっており、その他のHTML要素のhidden属性がtrueとなっているので、変動領域130には、HTML要素132が表示される。
【0018】
このような場合、各HTML要素131〜134そのものは変化しないので、各HTML要素131〜134に設定されたhidden属性が変更されない間に複数回変動領域がキャプチャされても、キャプチャされた変動領域の画像は同一となる。その結果として変動領域の特定は失敗する。
【0019】
図1(a)〜
図1(c)の何れの場合でも、変動領域に表示されるHTML要素についての表示に関する属性(例えば、表示される領域の座標、時間経過による切り替え、hidden属性など)に着目すれば、変動領域の表示内容が時間経過とともに変化することが分かる。
【0020】
そこで、このコンテンツ検証装置は、検証対象となるWebコンテンツを読み込んだ二つのブラウザのそれぞれから、そのWebコンテンツに含まれるHTML要素ごとに、異なるタイミングで少なくとも2回、HTML要素の表示に関する属性を取得する。さらに、このコンテンツ検証装置は、HTML要素ごとに、異なるタイミングで少なくとも2回、そのHTML要素が表示された領域をキャプチャした画像を取得する。そしてこのコンテンツ検証装置は、ブラウザごとに、かつ、HTML要素ごとに、異なるタイミングで取得された表示に関する属性を比較するとともに、異なるタイミングで取得された画像を比較する。そしてコンテンツ検証装置は、その比較に基づいて、表示に関する属性が時間経過に従って変化するか、または画像の表示内容が時間経過に従って変化するHTML要素を特定し、特定したHTML要素が表される領域をブラウザ間の比較から除外する。これにより、このコンテンツ検証装置は、二つのブラウザ間でのWebコンテンツの表示内容の比較精度を向上する。
【0021】
以下に説明する実施形態では、検証対象となるコンテンツはHTMLによって記述されるものとする。しかし、検証対象となるコンテンツは、ブラウザが対応する他の言語により記述されてもよい。この場合、検証対象となるコンテンツに含まれ、ブラウザにより表示される要素は、コンテンツの記述に用いられる言語によって指定される要素であればよい。
【0022】
図2は、一つの実施形態による、コンテンツ検証装置のハードウェア構成図である。
図2に示されるように、コンテンツ検証装置1は、通信インターフェース2と、ユーザインターフェース3と、メモリ4と、記憶媒体アクセス装置5と、プロセッサ6とを有する。
【0023】
通信インターフェース2は、イーサネット(登録商標)などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有する。通信インターフェース2は、例えば、通信ネットワークを介して他の機器(図示せず)から検証対象となるWebコンテンツのソースコードを受け取り、その受け取ったWebコンテンツのソースコードをプロセッサ6にわたす。また通信インターフェース2は、プロセッサ6から受け取った、ブラウザ間でのWebコンテンツの表示内容の比較結果を、通信ネットワークを介して他の機器へ出力してもよい。
【0024】
ユーザインターフェース3は、例えば、キーボードとマウスなどの入力装置と、液晶ディスプレイといった表示装置とを有する。あるいは、ユーザインターフェース3は、タッチパネルといった、入力装置と表示装置とが一体化された装置を有していてもよい。そしてユーザインターフェース3は、例えば、プロセッサ6から受け取った、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれが表されたウインドウを表示装置に表示する。さらに、ユーザインターフェース3は、プロセッサ6から受け取った、ブラウザ間でのWebコンテンツの表示内容の比較結果を表示してもよい。また、検証対象となるWebコンテンツのソースコードが、ユーザインターフェース3を介して入力されてもよい。
【0025】
メモリ4は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリである。そしてメモリ4は、例えば、検証対象となるWebコンテンツのソースコード、プロセッサ6で実行されるコンテンツ検証処理を実行するための各種のデータ及び比較結果などを記憶する。さらに、メモリ4は、コンテンツ検証処理の実行中に得られる、HTML要素をキャプチャした画像といった、各種データを一定期間記憶してもよい。
【0026】
記憶媒体アクセス装置5は、記憶部の他の一例であり、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体7にアクセスする装置である。記憶媒体アクセス装置5は、例えば、記憶媒体7から、プロセッサ6上で実行されるコンテンツ検証処理用のコンピュータプログラム、コンテンツ検証処理で用いられる二つのブラウザのそれぞれの実行ファイル及び関連ファイルを読み込み、プロセッサ6に渡す。また、記憶媒体アクセス装置5は、検証対象となるWebコンテンツのソースコードを読み込み、プロセッサ6に渡してもよい。
【0027】
プロセッサ6は、制御部の一例であり、例えば、Central Processing Unit(CPU)と、その周辺回路とを有する。さらに、プロセッサ6は、数値演算プロセッサを有していてもよい。そしてプロセッサ6は、コンテンツ検証装置1全体を制御する。また、プロセッサ6は、通信インターフェース2を介して検証対象となるWebコンテンツのソースコードを受け取ると、そのソースコードをメモリ4に保存する。そしてプロセッサ6は、コンテンツ検証処理を実行する。
【0028】
図3は、コンテンツ検証処理に関するプロセッサ6の機能ブロック図である。
図3に示されるように、プロセッサ6は、要素抽出部11と、属性取得部12と、要素画像取得部13と、変動領域特定部14と、比較部15とを有する。
【0029】
プロセッサ6が有するこれらの各部は、例えば、プロセッサ6が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールである。あるいは、プロセッサ6が有するこれらの各部は、ファームウェアとしてコンテンツ検証装置1に実装されてもよい。
【0030】
プロセッサ6は、コンテンツ検証処理を開始する際、コンテンツ検証処理で利用される、互いに異なる二つのブラウザを起動する。そしてプロセッサ6は、二つのブラウザのそれぞれに、検証対象となるWebコンテンツのソースコードを読み込ませて、二つのブラウザのそれぞれに、検証対象となるWebコンテンツを表示させる。その際、プロセッサ6は、ブラウザ同士が重ならないように、各ブラウザをユーザインターフェース3に表示させることが好ましい。
【0031】
要素抽出部11は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、ブラウザ上に表示される各HTML要素の実体を抽出する。そのために、要素抽出部11は、例えば、Selenium WebDriverといったブラウザ解析用のソフトウェアと同様の手法を用いて各HTML要素の実体を抽出すればよい。例えば、要素抽出部11は、検証対象となるWebコンテンツのソースコードから、各HTML要素の識別番号を取得する。そして要素抽出部11は、二つのブラウザのそれぞれに対して、各HTML要素の識別番号を指定して、Selenium WebDriverの関数GetElementByID()と同様の処理を適用する。これにより、要素抽出部11は、ブラウザ上に表示される、Webコンテンツに含まれる各HTML要素の実体を抽出できる。なお、要素抽出部11は、Webコンテンツを表示中のブラウザから、表示される各HTML要素の実体を抽出する他の様々な技術の何れを用いて、HTML要素の実体を抽出してもよい。
【0032】
要素抽出部11は、二つのブラウザのそれぞれについて、互いに異なるタイミングで2回以上、上記の処理を実行することで、HTML要素ごとに、そのHTML要素の実体を2個以上抽出する。そして要素抽出部11は、二つのブラウザのそれぞれから抽出された各HTML要素の個々の実体を、属性取得部12及び要素画像取得部13へわたす。
【0033】
属性取得部12は、二つのブラウザのそれぞれについて、抽出されたHTML要素のそれぞれの表示に関する属性を表す情報を取得する。
【0034】
例えば、属性取得部12は、各ブラウザについて、要素抽出部11から受け取ったHTML要素の実体のそれぞれについて、その実体を解析することで表示に関する属性を表す情報を抽出する。表示に関する属性は、例えば、HTML要素が表示される領域の座標、hidden属性といった、HTML要素が表示されるか否かを表す情報、HTML要素に設定される透明度を表す情報、及び、HTML要素が動画像か否かを表す情報の少なくとも一つを含む。
【0035】
本実施形態では、HTML要素ごとに、異なるタイミングで2回以上、そのHTML要素の実体が抽出されているので、属性取得部12は、HTML要素ごとに、そのHTML要素の各実体からそれぞれ表示に関する属性を取得すればよい。
【0036】
属性取得部12は、各HTMLの実体ごとに、その実体が抽出されたときのそのHTML要素の表示に関する属性を表す情報を変動領域特定部14へ通知する。
【0037】
要素画像取得部13は、二つのブラウザのそれぞれにおいて、ブラウザ上に表示されるHTML要素ごとに、そのHTML要素の画像を、互いに異なるタイミングで少なくとも2回取得する。
【0038】
そのために、要素画像取得部13は、例えば、着目するブラウザから各HTML要素の実体が抽出されるときに、着目するブラウザが表示されている状態でユーザインターフェース3の表示画面のスクリーンショット画像を取得する。その際、要素画像取得部13は、例えば、SaveScreenShot()といった、スクリーンショット画像を取得する関数を利用すればよい。なお、要素画像取得部13は、Webコンテンツに含まれ、かつ、着目するブラウザに表示される全てのHTML要素の実体が取得される度に、着目するブラウザについて一つのスクリーンショット画像を取得すればよい。
【0039】
また、要素画像取得部13は、着目するブラウザについて、抽出された各HTML要素ごとに、そのHTML要素の実体に含まれる、そのHTML要素が表示される領域の座標を取得する。そして要素画像取得部13は、HTML要素ごとに、スクリーンショット画像から、そのHTML要素について取得した座標で指定される領域をトリミングすることで、そのHTML要素が表された画像を取得する。
【0040】
要素画像取得部13は、上記の処理を、ブラウザごとに、異なるタイミングで2回以上行うことで、ブラウザごとに、HTML要素のそれぞれについて、そのHTML要素が表された画像を少なくとも二つ取得する。なお、個々のHTML要素が表された画像を、以下では、要素画像と呼ぶ。
【0041】
要素画像取得部13は、要素画像のそれぞれを変動領域特定部14及び比較部15へわたす。
【0042】
変動領域特定部14は、検証対象となるWebコンテンツに含まれる各HTML要素のうち、何れかのブラウザについて、HTML要素の表示に関する属性と要素画像とに基づいて、時間経過とともに表示位置または表示内容が変わるHTML要素及びそのようなHTML要素が表される変動領域を特定する。なお、以下では、変動領域に表示されるHTML要素を変動要素と呼ぶことがある。なお、変動領域特定部14は、HTML要素ごとに、同一の処理を実行すればよいので、以下では、着目する一つのHTML要素に対する処理について説明する。
【0043】
変動領域特定部14は、着目するHTML要素について、異なるタイミングで得られた表示に関する属性同士を比較する。そして変動領域特定部14は、表示に関する属性が異なっていれば、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表示される領域を変動領域として特定する。
【0044】
例えば、
図1(a)に示されるように、時間経過とともに、着目するHTML要素が表示される位置が変動する場合、着目するHTML要素について、そのHTML要素が表示される座標が変化する。そこで、変動領域特定部14は、異なるタイミングにおいて取得された、着目するHTML要素が表示される座標が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素の実体の抽出時においてそのHTML要素が表される領域を変動領域とする。
【0045】
また、
図1(c)に示されるように、時間経過とともに、着目するHTML要素のhidden属性が変化する場合、着目するHTML要素が表示される領域において、実際に表示される内容も時間経過とともに変化する。そこで、変動領域特定部14は、着目するHTML要素について、異なるタイミングにおいて取得されたhidden属性の値が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域とする。
【0046】
さらに、着目するHTML要素に透明度が設定されている場合、時間経過とともに、その透明度が変化すると、着目するHTML要素が表示される領域において、実際に表示される内容も時間経過とともに変化する。そこで、変動領域特定部14は、着目するHTML要素について、異なるタイミングにおいて取得された透明度の値が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域とする。
【0047】
さらに、変動領域特定部14は、着目するHTML要素が動画像を含んでいることを示す場合も、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域としてもよい。例えば、変動領域特定部14は、着目するHTML要素と関連付けられているタグが動画像を指定していることを示している場合、着目するHTML要素が動画像を含んでいると判定することができる。なお、動画像を指定していることを示すタグは、着目するHTML要素が動画像か否かを表す情報の一例である。
【0048】
さらに、変動領域特定部14は、着目するHTML要素について、異なるタイミングで得られた要素画像同士を比較する。そして変動領域特定部14は、要素画像同士が一致しない場合、着目するHTML要素を変動要素とし、着目するHTML要素が表される領域を変動領域とする。例えば、変動領域特定部14は、着目するHTML要素について、異なるタイミングで得られた要素画像同士の正規化相互相関値を算出してもよい。そして変動領域特定部14は、正規化相互相関値が所定の閾値以下である場合、それら要素画像は一致しないと判定し、一方、正規化相互相関値が所定の閾値が所定の閾値よりも高い場合、それら要素画像は一致すると判定してもよい。なお、変動領域特定部14は、正規化相互相関値の代わりに、要素画像同士の対応画素間の画素値の差の絶対値和を算出し、画素値の差の絶対値和が所定の閾値以上である場合に、それら要素画像は一致しないと判定してもよい。
【0049】
なお、変動領域特定部14は、着目するHTML要素について、表示に関する属性または要素画像の何れか一方に基づいて変動要素と判定された場合、他方について変動要素か否かの判定処理を省略してもよい。これにより、演算量が削減される。
【0050】
変動領域特定部14は、各ブラウザについて、表示に関する属性または要素画像の何れかに基づいて特定された変動領域及びその変動領域に表される変動要素の識別番号を比較部15へ通知する。
【0051】
比較部15は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、二つのブラウザ間で表示内容が異なるHTML要素及びそのHTML要素が表示される領域を特定する。その際、比較部15は、変動要素が表される要素画像については、ブラウザ間の比較を行わない。その際、比較部15は、変動領域特定部14から通知された、変動要素の識別番号を参照して、その識別番号に対応する変動要素が表された要素画像を比較対象から除外すればよい。これにより、比較部15は、検証対象となるWebコンテンツについて、ブラウザ間で表示内容に相違が生じているか否かを適切に判定できる。
【0052】
比較部15は、抽出されたHTML要素のそれぞれの識別番号を参照して、二つのブラウザのそれぞれについて同じ識別番号が割り当てられたHTML要素同士を同じHTML要素と判定すればよい。そして比較部15は、同一の識別番号に対応する、二つのブラウザのそれぞれのHTML要素の要素画像同士を比較すればよい。その際、比較部15は、要素画像同士の正規化相互相関値を算出してもよい。そして比較部15は、正規化相互相関値が所定の閾値以下である場合、それら要素画像は互いに異なると判定し、要素画像に表されたHTML要素を、二つのブラウザ間で表示内容が異なるHTML要素として特定する。また比較部15は、二つのブラウザのそれぞれにおいて、特定されたHTML要素が表された要素画像に対応する領域を、表示内容が異なるHTML要素が表示される領域とする。
【0053】
一方、正規化相互相関値が所定の閾値が所定の閾値よりも高い場合、それら要素画像は一致すると判定してもよい。なお、比較部15は、正規化相互相関値の代わりに、要素画像同士の対応画素間の画素値の差の絶対値和を算出し、画素値の差の絶対値和が所定の閾値以上である場合に、それら要素画像は互いに異なると判定してもよい。
【0054】
比較部15は、比較された全てのHTML要素について、一致するか否かを表す比較結果をユーザインターフェース3に表示させる。あるいは、比較部15は、検証対象となるWebコンテンツに含まれるHTML要素のうち、ブラウザ間で表示内容が一致しないHTML要素についてのみ、そのHTML要素を表す情報をユーザインターフェース3に表示させてもよい。さらに、比較部15は、ブラウザ間で表示内容が一致しないHTML要素について、ブラウザごとの要素画像をユーザインターフェース3に表示させてもよい。
【0055】
図4は、プロセッサ6により実行される、コンテンツ検証処理の動作フローチャートである。
【0056】
要素抽出部11は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、互いに異なるタイミングで少なくとも2回、そのWebコンテンツに含まれる各HTML要素の実体を抽出する(ステップS101)。
【0057】
属性取得部12は、抽出された各HTML要素の実体のそれぞれから、各HTML要素についての表示に関する属性を表す情報を取得する(ステップS102)。これにより、各HTML要素について、互いに異なるタイミングでの表示に関する属性が求められる。
【0058】
また、要素画像取得部13は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで少なくとも2回、そのHTML要素が表された要素画像を取得する(ステップS103)。
【0059】
変動領域特定部14は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで得られた表示に関する属性を比較する。これにより、変動領域特定部14は、時間経過とともに表示内容が変動する変動領域及び変動領域に表されるHTML要素を特定する(ステップS104)。
【0060】
さらに、変動領域特定部14は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで得られた要素画像同士を比較する。これにより、変動領域特定部14は、時間経過とともに表示内容が変動する変動領域及び変動領域に表されるHTML要素を特定する(ステップS105)。
【0061】
比較部15は、二つのブラウザ間で、変動領域に表されるHTML要素を除いて、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及び各ブラウザ上でそのHTML要素が表された領域を特定する(ステップS106)。そして比較部15は、比較結果をユーザインターフェース3に表示させる(ステップS107)。
【0062】
その後、プロセッサ6は、コンテンツ検証処理を終了する。なお、プロセッサ6は、ステップS103の処理と、ステップS104の処理の順序を入れ替えてもよい。
【0063】
以上に説明してきたように、このコンテンツ検証装置は、検証対象となるWebコンテンツに含まれる各HTML要素について、そのHTML要素が表された要素画像の時間変化の有無だけでなく、表示に関する属性の時間変化の有無を調べる。そのため、このコンテンツ検証装置は、変動領域に表されるHTML要素を正確に特定できる。そして、このコンテンツ検証装置は、変動領域に表されるHTML要素を除いて、二つのブラウザ間で、同じHTML要素が表された要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及びそのHTML要素が表された領域を特定する。そのため、このコンテンツ検証装置は、互いに異なるブラウザ間でのWebコンテンツの表示内容の比較精度を向上することができる。
【0064】
なお、着目するHTML要素について、個々のブラウザから三つ以上の表示に関する属性が得られている場合、変動領域特定部14は、そのうちの二つの表示に関する属性を選択してもよい。そして変動領域特定部14は、上記のように、選択した二つの表示に関する属性が一致するか否かにより、着目するHTML要素が変動要素か否かを判定してもよい。
同様に、着目するHTML要素について、個々のブラウザから三つ以上の要素画像が得られている場合、変動領域特定部14は、そのうちの二つの要素画像を選択してもよい。そして変動領域特定部14は、上記のように、選択した二つの要素画像が一致するか否かにより、着目するHTML要素が変動要素か否かを判定してもよい。
【0065】
また、他の変形例によれば、コンテンツ検証装置は、変動領域を特定するよりも前に、検証対象となるWebコンテンツが表示された二つのブラウザ間で、同じHTML要素が表された要素画像同士を比較してもよい。そしてコンテンツ検証装置は、表示内容が一致しないHTML要素(以下、不一致要素と呼ぶことがある)及びそのHTML要素が表示される領域を特定してもよい。そしてコンテンツ検証装置は、検証対象となるWebコンテンツに含まれる各HTML要素のうち、不一致要素についてのみ、変動要素か否かを判定してもよい。
【0066】
この場合には、要素抽出部11は、二つのブラウザのそれぞれから、各HTML要素の実体を先ず1回だけ抽出する。また、属性取得部12も、各HTML要素について、そのHTML要素の実体から表示に関する属性を表す情報を取得して、メモリ4に保存する。さらに、要素画像取得部13も、二つのブラウザのそれぞれから、HTML要素ごとに、そのHTML要素が表された要素画像を取得する。そして比較部15は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素(すなわち、不一致要素)を特定する。
【0067】
その後、不一致要素のそれぞれについて、要素抽出部11は、二つのブラウザのそれぞれから、その不一致要素の実体を再抽出する。また、属性取得部12も、二つのブラウザのそれぞれから、不一致要素のそれぞれについて、特定後に抽出されたその不一致要素の実体から表示に関する属性を表す情報を再取得する。さらに、要素画像取得部13も、二つのブラウザのそれぞれから、不一致要素のそれぞれの要素画像を再取得する。そして変動領域特定部14は、不一致要素のそれぞれについて、特定前後の表示に関する属性の比較、及び、特定前後の要素画像の比較に基づいて、変動要素となる不一致要素及び変動領域を特定する。そして比較部15は、不一致要素のうち、変動要素以外のHTML要素を選択するとともに、選択したHTML要素が表される領域を、二つのブラウザ間で表示内容が異なる領域として特定する。比較部15は、選択されたHTML要素について、ブラウザ間で表示内容が異なることを表す比較結果をユーザインターフェース3に表示させる。
【0068】
図5は、この変形例による、プロセッサ6により実行される、コンテンツ検証処理の動作フローチャートである。
【0069】
要素抽出部11は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、そのWebコンテンツに含まれる各HTML要素の実体を抽出する(ステップS201)。
【0070】
属性取得部12は、抽出された各HTML要素の実体から、各HTML要素についての表示に関する属性を表す情報を取得する(ステップS202)。
【0071】
また、要素画像取得部13は、二つのブラウザのそれぞれについて、HTML要素ごとに、そのHTML要素が表された要素画像を取得する(ステップS203)。
【0072】
比較部15は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及び各ブラウザにおいてそのHTML要素が表された領域を特定する(ステップS204)。
【0073】
要素抽出部11は、二つのブラウザのそれぞれから、ブラウザ間で表示内容が異なる各HTML要素の実体を再抽出する(ステップS205)。そして属性取得部12は、再抽出された各HTML要素の実体から、各HTML要素についての表示に関する属性を表す情報を再取得する(ステップS206)。さらに、要素画像取得部13は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、そのHTML要素が表された要素画像を再取得する(ステップS207)。
【0074】
変動領域特定部14は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、互いに異なるタイミングで得られた表示に関する属性を比較する。これにより、変動領域特定部14は、時間経過とともに表示内容が変動する変動領域に表されるHTML要素を特定する(ステップS208)。
【0075】
さらに、変動領域特定部14は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、互いに異なるタイミングで得られた要素画像同士を比較することで、変動領域に表されるHTML要素を特定する(ステップS209)。
【0076】
そして比較部15は、ブラウザ間で表示内容が異なるHTML要素のうち、変動領域に表されるHTML要素以外を選択し、選択したHTML要素の比較結果をユーザインターフェース3に表示させる(ステップS210)。その後、プロセッサ6は、コンテンツ検証処理を終了する。
【0077】
この変形例によれば、ブラウザ間で表示内容が異なる各HTML要素について、表示に関する属性を取得する際の時間間隔、及び、要素画像を取得する際の時間間隔を長くすることができる。そのため、
図1(b)に示されるように、所定の時間間隔ごとに表示内容が変化するHTML要素についても、コンテンツ検証装置は、変動領域に表されるHTML要素を正確に特定できる。さらに、この変形例によれば、コンテンツ検証装置は、表示に関する属性及び要素画像の1回目の取得タイミングと2回目の取得タイミングの間に、各HTML要素についてブラウザ間で要素画像を比較する。そのため、コンテンツ検証装置は、表示に関する属性及び要素画像の1回目の取得タイミングと2回目の取得タイミング間の時間間隔を上記の実施形態よりも長くしても、コンテンツ検証処理全体に要する時間の増加を抑制できる。
【0078】
さらに、上記の実施形態または変形例によるコンテンツ検証装置のプロセッサが有する各部の機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読取り可能な記録媒体に記憶された形で提供されてもよい。なお、コンピュータによって読取り可能な記録媒体は、例えば、磁気記録媒体、光記録媒体、又は半導体メモリとすることができる。
【0079】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。