(57)【要約】【課題】互いに異なるブラウザ間でのコンテンツの表示内容の比較精度を向上できるコンテンツ検証用コンピュータプログラムを提供する。【解決手段】コンテンツ検証用コンピュータプログラムは、検証対象となるコンテンツに含まれ、かつ、コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、二つのブラウザの少なくとも何れかにおいて、その要素の表示に関する属性が時間経過に従って変化するか、または、その要素が表された要素画像が時間経過に従って変化する変動要素を特定し、二つのブラウザ間で、複数の要素のうち、変動要素以外の要素が表された要素画像を比較することで、二つのブラウザ間で表示内容が異なる領域を特定する、ことをコンピュータに実行させるための命令を含む。【選択図】図４
2019028844.tif 000002
【特許請求の範囲】
【請求項１】
検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化するか、または、当該要素が表された要素画像が時間経過に従って変化する変動要素を特定し、
前記二つのブラウザ間で、前記複数の要素のうち、前記変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する、
ことをコンピュータに実行させるためのコンテンツ検証用コンピュータプログラム。
【請求項２】
前記複数の要素のそれぞれについて、第１の時点において前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得し、かつ、前記第１の時点と異なる第２の時点において前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得することをさらにコンピュータに実行させ、
前記変動要素を特定することは、前記複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、前記第１の時点における当該要素の前記表示に関する属性と、前記第２の時点における当該要素の前記表示に関する属性とが異なる要素を前記変動要素とすることを含む、
請求項１に記載のコンテンツ検証用コンピュータプログラム。
【請求項３】
前記複数の要素のそれぞれについて、前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得し、かつ、前記二つのブラウザのそれぞれから当該要素が表された要素画像を取得し、
前記複数の要素のそれぞれについて、前記二つのブラウザのそれぞれから取得された当該要素が表された前記要素画像を比較することで、前記複数の要素のうち、前記二つのブラウザ間で表示内容が異なる不一致要素を特定し、
前記二つのブラウザのそれぞれから、前記不一致要素の前記表示に関する属性を再取得し、かつ、前記二つのブラウザのそれぞれから前記不一致要素が表された要素画像を再取得することをさらにコンピュータに実行させ、
前記変動要素を特定することは、前記二つのブラウザの少なくとも何れかにおいて、前記不一致要素のうち、前記表示に関する属性と前記再取得された前記表示に関する属性が異なるか、または、前記要素画像と前記再取得された前記要素画像とが異なる不一致要素を前記変動要素として特定することを含み、
前記二つのブラウザ間で表示内容が異なる領域を特定することは、前記不一致要素のうち、前記変動要素以外の不一致要素が表された領域を前記二つのブラウザ間で表示内容が異なる領域として特定することを含む、請求項１または２に記載のコンテンツ検証用コンピュータプログラム。
【請求項４】
前記表示に関する属性は、前記要素が表示される領域の位置を示す情報、前記要素について表示と非表示とを切り替えるための情報、前記要素の透明度を示す情報、及び、前記要素が動画像か否かを表す情報のうちの少なくとも一つを含む、請求項１〜３の何れか一項に記載のコンテンツ検証用コンピュータプログラム。
【請求項５】
検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化するか、または、当該要素が表された要素画像が時間経過に従って変化する変動要素を特定する変動領域特定部と、
前記二つのブラウザ間で、前記複数の要素のうち、前記変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する比較部と、
を有するコンテンツ検証装置。
【請求項６】
検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化するか、または、当該要素が表された要素画像が時間経過に従って変化する変動要素を特定し、
前記二つのブラウザ間で、前記複数の要素のうち、前記変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する、
ことを含むコンテンツ検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ブラウザで表示されるコンテンツを検証するコンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法に関する。
【背景技術】
【０００２】
様々な情報が、Webブラウザにより閲覧可能なWebページとして通信ネットワークを介して提供されている。また、Webブラウザで動作する様々なアプリケーションプログラム（以下、Webアプリケーションと呼ぶ）も提供されている。このようなWebページ及びWebアプリケーション（以下、まとめてWebコンテンツと呼ぶ）について、WebコンテンツがWebブラウザ上で正常に表示されるか、あるいは、正常に動作するかを確認する検証作業が、そのWebコンテンツが提供されるよりも前に行われる。
【０００３】
また、互いに異なる複数のWebブラウザが一般に利用されている。そのため、Webコンテンツは、何れのWebブラウザに読み込まれても、同じように表示され、かつ、同じように動作することが好ましい。そこで、Webコンテンツを検証する際に、互いに異なる二つのWebブラウザのそれぞれに、検証対象となるWebコンテンツを表示させ、各Webブラウザの表示画面を互いに比較するクロスブラウザテストが用いられることがある。クロスブラウザテストでは、各Webブラウザにおいて、検証対象となるWebコンテンツに含まれる個々のHyperText Markup Language(HTML)要素が表された画像が取得される。そして、各HTML要素について、Webブラウザ間でそのHTML要素が表された画像が比較されることで、二つのWebブラウザ間の表示内容が同一か否かが判定される。
【０００４】
しかし、Webコンテンツによっては、動画像のように、時間経過とともに表示される内容が変化する動的なHTML要素が含まれることもある。クロスブラウザテストにおいて、そのような動的なHTML要素がWebブラウザ間での比較の対象になると、比較に用いられる画像が取得されるタイミングによって画像の表示内容が異なるために、正確な検証が行えないことがある。そこで、クロスブラウザテストにおいて、Webページが読み込まれる度に表示内容が変動する領域を比較対象から除外する技術が提案されている（例えば、非特許文献１を参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Shauvik Roy Choudhary他、「WEBDIFF: Automated Identification of Cross-browser Issues in Web Applications」、Proc. of Intl. Conf. on Software Maintenance (ICSM)、2010年9月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術では、個々のWebブラウザにおいてWebページが読み込まれる度に生成されるスクリーンショット同士を比較することで、表示内容が変動する領域が検出され、検出された領域がWebブラウザ間で比較される領域から除外される。
【０００７】
しかしながら、動的なHTML要素の記述の仕方によっては、互いに異なるタイミングにおいて得られた、その動的なHTML要素についての二つの画像に、同じ内容が表示されることがある。このような場合、従来技術では、動的なHTML要素が表示される領域の検出に失敗することがある。
【０００８】
一つの側面では、本発明は、互いに異なるブラウザ間でのコンテンツの表示内容の比較精度を向上できるコンテンツ検証用コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの実施形態によれば、コンテンツ検証用コンピュータプログラムが提供される。このコンテンツ検証用コンピュータプログラムは、検証対象となるコンテンツに含まれ、かつ、コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、二つのブラウザの少なくとも何れかにおいて、その要素の表示に関する属性が時間経過に従って変化するか、または、その要素が表された要素画像が時間経過に従って変化する変動要素を特定し、二つのブラウザ間で、複数の要素のうち、変動要素以外の要素が表された要素画像を比較することで、二つのブラウザ間で表示内容が異なる領域を特定する、ことをコンピュータに実行させるための命令を含む。
【発明の効果】
【００１０】
一つの側面によれば、互いに異なるブラウザ間でのコンテンツの表示内容の比較精度を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】（ａ）〜（ｃ）は、それぞれ、互いに異なるタイミングにおいて同じ内容が表示されることがある変動領域の例を示す図である。
【図２】一つの実施形態による、コンテンツ検証装置のハードウェア構成図である。
【図３】コンテンツ検証処理に関するプロセッサの機能ブロック図である。
【図４】コンテンツ検証処理の動作フローチャートである。
【図５】変形例による、コンテンツ検証処理の動作フローチャートである。
【発明を実施するための形態】
【００１２】
以下、図を参照しつつ、コンテンツ検証装置、及び、そのコンテンツ検証装置で利用されるコンテンツ検証方法及びコンテンツ検証用コンピュータプログラムについて説明する。このコンテンツ検証装置は、例えば、クロスブラウザテストを実行するために用いられる。そのために、このコンテンツ検証装置は、同一のWebコンテンツが読み込まれた二つのWebブラウザのそれぞれから、各Webブラウザに表示されるHTML要素を抽出する。そしてコンテンツ検証装置は、抽出したHTML要素ごとに、そのHTML要素が表された画像をWebブラウザ間で比較する。その際、このコンテンツ検証装置は、動的なHTML要素が表示される領域（以下、変動領域と呼ぶ）については、Webブラウザ間での比較対象から除外する。なお、以下では、説明の便宜上、検証対象となるWebコンテンツを表示するブラウザを、単にブラウザと呼ぶことがある。また、HTML要素は、ブラウザに表示される要素の一例である。
【００１３】
発明者は、変動領域を正確に抽出するために、変動領域であっても、互いに異なるタイミングにおいて同じ内容が表示されることがあることに着目した。
【００１４】
図１（ａ）〜図１（ｃ）は、それぞれ、互いに異なるタイミングにおいて同じ内容が表示されることがある変動領域の例を示す図である。
【００１５】
図１（ａ）に示される例では、ブラウザ上に３個のフレーム１０１〜１０３が設けられ、各フレームを通じて、４個のHTML要素１１１〜１１４のうちの３個が表示されるようになっている。４個のHTML要素１１１〜１１４のそれぞれは、時間経過とともに、図示される矢印に従って順次移動する。ここで、ブラウザ上で着目するHTML要素が表される領域は、例えば、Webコンテンツが読み込まれたブラウザから、着目するHTML要素の識別番号を指定してそのHTML要素の実体を取得し、その実体を解析することで特定される。したがって、着目するHTML要素が表される画像は、特定された、着目するHTML要素が表示される領域をキャプチャすることで得られる。したがって、図１（ａ）に示されるような例では、フレーム１０１〜１０３の表示内容自体は動的に変化するにもかかわらず、HTML要素１１１〜１１４の何れについても、識別番号を指定することでキャプチャされるそのHTML要素の画像は、常に同一となる。そのため、HTML要素の識別番号を指定して特定される領域をキャプチャして得られる画像の表示内容の時間変化を調べても、変動領域の特定は失敗する。
【００１６】
図１（ｂ）に示される例では、同一の変動領域に表示されるHTML要素１２１として表示される画像が所定の時間間隔（例えば、2秒間隔）で順次切り替わる。したがって、例えば、その所定間隔よりも短い間隔で変動領域を２回キャプチャすることで、変動領域の二つの画像を取得しても、その二つの画像の表示内容は同一となる。その結果として、変動領域の特定は失敗する。
【００１７】
図１（ｃ）に示される例では、一つの変動領域１３０に対して、階層的に４個のHTML要素１３１〜１３４が対応付けられている。各HTML要素１３１〜１３４には、hidden属性が設定されており、hidden属性がtrueであるHTML要素は表示されない。したがって、各HTML要素１３１〜１３４に設定されるhidden属性が動的に変更されることで、変動領域１３０に表示されるHTML要素が変化する。例えば、左端の例では、HTML要素１３４のhidden属性がfalseとなっており、その他のHTML要素のhidden属性がtrueとなっているので、変動領域１３０には、HTML要素１３４が表示される。また、中央の例では、HTML要素１３３のhidden属性がfalseとなっており、その他のHTML要素のhidden属性がtrueとなっているので、変動領域１３０には、HTML要素１３３が表示される。そして右端の例では、HTML要素１３２のhidden属性がfalseとなっており、その他のHTML要素のhidden属性がtrueとなっているので、変動領域１３０には、HTML要素１３２が表示される。
【００１８】
このような場合、各HTML要素１３１〜１３４そのものは変化しないので、各HTML要素１３１〜１３４に設定されたhidden属性が変更されない間に複数回変動領域がキャプチャされても、キャプチャされた変動領域の画像は同一となる。その結果として変動領域の特定は失敗する。
【００１９】
図１（ａ）〜図１（ｃ）の何れの場合でも、変動領域に表示されるHTML要素についての表示に関する属性（例えば、表示される領域の座標、時間経過による切り替え、hidden属性など）に着目すれば、変動領域の表示内容が時間経過とともに変化することが分かる。
【００２０】
そこで、このコンテンツ検証装置は、検証対象となるWebコンテンツを読み込んだ二つのブラウザのそれぞれから、そのWebコンテンツに含まれるHTML要素ごとに、異なるタイミングで少なくとも２回、HTML要素の表示に関する属性を取得する。さらに、このコンテンツ検証装置は、HTML要素ごとに、異なるタイミングで少なくとも２回、そのHTML要素が表示された領域をキャプチャした画像を取得する。そしてこのコンテンツ検証装置は、ブラウザごとに、かつ、HTML要素ごとに、異なるタイミングで取得された表示に関する属性を比較するとともに、異なるタイミングで取得された画像を比較する。そしてコンテンツ検証装置は、その比較に基づいて、表示に関する属性が時間経過に従って変化するか、または画像の表示内容が時間経過に従って変化するHTML要素を特定し、特定したHTML要素が表される領域をブラウザ間の比較から除外する。これにより、このコンテンツ検証装置は、二つのブラウザ間でのWebコンテンツの表示内容の比較精度を向上する。
【００２１】
以下に説明する実施形態では、検証対象となるコンテンツはHTMLによって記述されるものとする。しかし、検証対象となるコンテンツは、ブラウザが対応する他の言語により記述されてもよい。この場合、検証対象となるコンテンツに含まれ、ブラウザにより表示される要素は、コンテンツの記述に用いられる言語によって指定される要素であればよい。
【００２２】
図２は、一つの実施形態による、コンテンツ検証装置のハードウェア構成図である。図２に示されるように、コンテンツ検証装置１は、通信インターフェース２と、ユーザインターフェース３と、メモリ４と、記憶媒体アクセス装置５と、プロセッサ６とを有する。
【００２３】
通信インターフェース２は、イーサネット（登録商標）などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有する。通信インターフェース２は、例えば、通信ネットワークを介して他の機器（図示せず）から検証対象となるWebコンテンツのソースコードを受け取り、その受け取ったWebコンテンツのソースコードをプロセッサ６にわたす。また通信インターフェース２は、プロセッサ６から受け取った、ブラウザ間でのWebコンテンツの表示内容の比較結果を、通信ネットワークを介して他の機器へ出力してもよい。
【００２４】
ユーザインターフェース３は、例えば、キーボードとマウスなどの入力装置と、液晶ディスプレイといった表示装置とを有する。あるいは、ユーザインターフェース３は、タッチパネルといった、入力装置と表示装置とが一体化された装置を有していてもよい。そしてユーザインターフェース３は、例えば、プロセッサ６から受け取った、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれが表されたウインドウを表示装置に表示する。さらに、ユーザインターフェース３は、プロセッサ６から受け取った、ブラウザ間でのWebコンテンツの表示内容の比較結果を表示してもよい。また、検証対象となるWebコンテンツのソースコードが、ユーザインターフェース３を介して入力されてもよい。
【００２５】
メモリ４は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリである。そしてメモリ４は、例えば、検証対象となるWebコンテンツのソースコード、プロセッサ６で実行されるコンテンツ検証処理を実行するための各種のデータ及び比較結果などを記憶する。さらに、メモリ４は、コンテンツ検証処理の実行中に得られる、HTML要素をキャプチャした画像といった、各種データを一定期間記憶してもよい。
【００２６】
記憶媒体アクセス装置５は、記憶部の他の一例であり、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体７にアクセスする装置である。記憶媒体アクセス装置５は、例えば、記憶媒体７から、プロセッサ６上で実行されるコンテンツ検証処理用のコンピュータプログラム、コンテンツ検証処理で用いられる二つのブラウザのそれぞれの実行ファイル及び関連ファイルを読み込み、プロセッサ６に渡す。また、記憶媒体アクセス装置５は、検証対象となるWebコンテンツのソースコードを読み込み、プロセッサ６に渡してもよい。
【００２７】
プロセッサ６は、制御部の一例であり、例えば、Central Processing Unit(CPU)と、その周辺回路とを有する。さらに、プロセッサ６は、数値演算プロセッサを有していてもよい。そしてプロセッサ６は、コンテンツ検証装置１全体を制御する。また、プロセッサ６は、通信インターフェース２を介して検証対象となるWebコンテンツのソースコードを受け取ると、そのソースコードをメモリ４に保存する。そしてプロセッサ６は、コンテンツ検証処理を実行する。
【００２８】
図３は、コンテンツ検証処理に関するプロセッサ６の機能ブロック図である。図３に示されるように、プロセッサ６は、要素抽出部１１と、属性取得部１２と、要素画像取得部１３と、変動領域特定部１４と、比較部１５とを有する。
【００２９】
プロセッサ６が有するこれらの各部は、例えば、プロセッサ６が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールである。あるいは、プロセッサ６が有するこれらの各部は、ファームウェアとしてコンテンツ検証装置１に実装されてもよい。
【００３０】
プロセッサ６は、コンテンツ検証処理を開始する際、コンテンツ検証処理で利用される、互いに異なる二つのブラウザを起動する。そしてプロセッサ６は、二つのブラウザのそれぞれに、検証対象となるWebコンテンツのソースコードを読み込ませて、二つのブラウザのそれぞれに、検証対象となるWebコンテンツを表示させる。その際、プロセッサ６は、ブラウザ同士が重ならないように、各ブラウザをユーザインターフェース３に表示させることが好ましい。
【００３１】
要素抽出部１１は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、ブラウザ上に表示される各HTML要素の実体を抽出する。そのために、要素抽出部１１は、例えば、Selenium WebDriverといったブラウザ解析用のソフトウェアと同様の手法を用いて各HTML要素の実体を抽出すればよい。例えば、要素抽出部１１は、検証対象となるWebコンテンツのソースコードから、各HTML要素の識別番号を取得する。そして要素抽出部１１は、二つのブラウザのそれぞれに対して、各HTML要素の識別番号を指定して、Selenium WebDriverの関数GetElementByID()と同様の処理を適用する。これにより、要素抽出部１１は、ブラウザ上に表示される、Webコンテンツに含まれる各HTML要素の実体を抽出できる。なお、要素抽出部１１は、Webコンテンツを表示中のブラウザから、表示される各HTML要素の実体を抽出する他の様々な技術の何れを用いて、HTML要素の実体を抽出してもよい。
【００３２】
要素抽出部１１は、二つのブラウザのそれぞれについて、互いに異なるタイミングで２回以上、上記の処理を実行することで、HTML要素ごとに、そのHTML要素の実体を２個以上抽出する。そして要素抽出部１１は、二つのブラウザのそれぞれから抽出された各HTML要素の個々の実体を、属性取得部１２及び要素画像取得部１３へわたす。
【００３３】
属性取得部１２は、二つのブラウザのそれぞれについて、抽出されたHTML要素のそれぞれの表示に関する属性を表す情報を取得する。
【００３４】
例えば、属性取得部１２は、各ブラウザについて、要素抽出部１１から受け取ったHTML要素の実体のそれぞれについて、その実体を解析することで表示に関する属性を表す情報を抽出する。表示に関する属性は、例えば、HTML要素が表示される領域の座標、hidden属性といった、HTML要素が表示されるか否かを表す情報、HTML要素に設定される透明度を表す情報、及び、HTML要素が動画像か否かを表す情報の少なくとも一つを含む。
【００３５】
本実施形態では、HTML要素ごとに、異なるタイミングで２回以上、そのHTML要素の実体が抽出されているので、属性取得部１２は、HTML要素ごとに、そのHTML要素の各実体からそれぞれ表示に関する属性を取得すればよい。
【００３６】
属性取得部１２は、各HTMLの実体ごとに、その実体が抽出されたときのそのHTML要素の表示に関する属性を表す情報を変動領域特定部１４へ通知する。
【００３７】
要素画像取得部１３は、二つのブラウザのそれぞれにおいて、ブラウザ上に表示されるHTML要素ごとに、そのHTML要素の画像を、互いに異なるタイミングで少なくとも２回取得する。
【００３８】
そのために、要素画像取得部１３は、例えば、着目するブラウザから各HTML要素の実体が抽出されるときに、着目するブラウザが表示されている状態でユーザインターフェース３の表示画面のスクリーンショット画像を取得する。その際、要素画像取得部１３は、例えば、SaveScreenShot()といった、スクリーンショット画像を取得する関数を利用すればよい。なお、要素画像取得部１３は、Webコンテンツに含まれ、かつ、着目するブラウザに表示される全てのHTML要素の実体が取得される度に、着目するブラウザについて一つのスクリーンショット画像を取得すればよい。
【００３９】
また、要素画像取得部１３は、着目するブラウザについて、抽出された各HTML要素ごとに、そのHTML要素の実体に含まれる、そのHTML要素が表示される領域の座標を取得する。そして要素画像取得部１３は、HTML要素ごとに、スクリーンショット画像から、そのHTML要素について取得した座標で指定される領域をトリミングすることで、そのHTML要素が表された画像を取得する。
【００４０】
要素画像取得部１３は、上記の処理を、ブラウザごとに、異なるタイミングで２回以上行うことで、ブラウザごとに、HTML要素のそれぞれについて、そのHTML要素が表された画像を少なくとも二つ取得する。なお、個々のHTML要素が表された画像を、以下では、要素画像と呼ぶ。
【００４１】
要素画像取得部１３は、要素画像のそれぞれを変動領域特定部１４及び比較部１５へわたす。
【００４２】
変動領域特定部１４は、検証対象となるWebコンテンツに含まれる各HTML要素のうち、何れかのブラウザについて、HTML要素の表示に関する属性と要素画像とに基づいて、時間経過とともに表示位置または表示内容が変わるHTML要素及びそのようなHTML要素が表される変動領域を特定する。なお、以下では、変動領域に表示されるHTML要素を変動要素と呼ぶことがある。なお、変動領域特定部１４は、HTML要素ごとに、同一の処理を実行すればよいので、以下では、着目する一つのHTML要素に対する処理について説明する。
【００４３】
変動領域特定部１４は、着目するHTML要素について、異なるタイミングで得られた表示に関する属性同士を比較する。そして変動領域特定部１４は、表示に関する属性が異なっていれば、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表示される領域を変動領域として特定する。
【００４４】
例えば、図１（ａ）に示されるように、時間経過とともに、着目するHTML要素が表示される位置が変動する場合、着目するHTML要素について、そのHTML要素が表示される座標が変化する。そこで、変動領域特定部１４は、異なるタイミングにおいて取得された、着目するHTML要素が表示される座標が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素の実体の抽出時においてそのHTML要素が表される領域を変動領域とする。
【００４５】
また、図１（ｃ）に示されるように、時間経過とともに、着目するHTML要素のhidden属性が変化する場合、着目するHTML要素が表示される領域において、実際に表示される内容も時間経過とともに変化する。そこで、変動領域特定部１４は、着目するHTML要素について、異なるタイミングにおいて取得されたhidden属性の値が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域とする。
【００４６】
さらに、着目するHTML要素に透明度が設定されている場合、時間経過とともに、その透明度が変化すると、着目するHTML要素が表示される領域において、実際に表示される内容も時間経過とともに変化する。そこで、変動領域特定部１４は、着目するHTML要素について、異なるタイミングにおいて取得された透明度の値が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域とする。
【００４７】
さらに、変動領域特定部１４は、着目するHTML要素が動画像を含んでいることを示す場合も、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域としてもよい。例えば、変動領域特定部１４は、着目するHTML要素と関連付けられているタグが動画像を指定していることを示している場合、着目するHTML要素が動画像を含んでいると判定することができる。なお、動画像を指定していることを示すタグは、着目するHTML要素が動画像か否かを表す情報の一例である。
【００４８】
さらに、変動領域特定部１４は、着目するHTML要素について、異なるタイミングで得られた要素画像同士を比較する。そして変動領域特定部１４は、要素画像同士が一致しない場合、着目するHTML要素を変動要素とし、着目するHTML要素が表される領域を変動領域とする。例えば、変動領域特定部１４は、着目するHTML要素について、異なるタイミングで得られた要素画像同士の正規化相互相関値を算出してもよい。そして変動領域特定部１４は、正規化相互相関値が所定の閾値以下である場合、それら要素画像は一致しないと判定し、一方、正規化相互相関値が所定の閾値が所定の閾値よりも高い場合、それら要素画像は一致すると判定してもよい。なお、変動領域特定部１４は、正規化相互相関値の代わりに、要素画像同士の対応画素間の画素値の差の絶対値和を算出し、画素値の差の絶対値和が所定の閾値以上である場合に、それら要素画像は一致しないと判定してもよい。
【００４９】
なお、変動領域特定部１４は、着目するHTML要素について、表示に関する属性または要素画像の何れか一方に基づいて変動要素と判定された場合、他方について変動要素か否かの判定処理を省略してもよい。これにより、演算量が削減される。
【００５０】
変動領域特定部１４は、各ブラウザについて、表示に関する属性または要素画像の何れかに基づいて特定された変動領域及びその変動領域に表される変動要素の識別番号を比較部１５へ通知する。
【００５１】
比較部１５は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、二つのブラウザ間で表示内容が異なるHTML要素及びそのHTML要素が表示される領域を特定する。その際、比較部１５は、変動要素が表される要素画像については、ブラウザ間の比較を行わない。その際、比較部１５は、変動領域特定部１４から通知された、変動要素の識別番号を参照して、その識別番号に対応する変動要素が表された要素画像を比較対象から除外すればよい。これにより、比較部１５は、検証対象となるWebコンテンツについて、ブラウザ間で表示内容に相違が生じているか否かを適切に判定できる。
【００５２】
比較部１５は、抽出されたHTML要素のそれぞれの識別番号を参照して、二つのブラウザのそれぞれについて同じ識別番号が割り当てられたHTML要素同士を同じHTML要素と判定すればよい。そして比較部１５は、同一の識別番号に対応する、二つのブラウザのそれぞれのHTML要素の要素画像同士を比較すればよい。その際、比較部１５は、要素画像同士の正規化相互相関値を算出してもよい。そして比較部１５は、正規化相互相関値が所定の閾値以下である場合、それら要素画像は互いに異なると判定し、要素画像に表されたHTML要素を、二つのブラウザ間で表示内容が異なるHTML要素として特定する。また比較部１５は、二つのブラウザのそれぞれにおいて、特定されたHTML要素が表された要素画像に対応する領域を、表示内容が異なるHTML要素が表示される領域とする。
【００５３】
一方、正規化相互相関値が所定の閾値が所定の閾値よりも高い場合、それら要素画像は一致すると判定してもよい。なお、比較部１５は、正規化相互相関値の代わりに、要素画像同士の対応画素間の画素値の差の絶対値和を算出し、画素値の差の絶対値和が所定の閾値以上である場合に、それら要素画像は互いに異なると判定してもよい。
【００５４】
比較部１５は、比較された全てのHTML要素について、一致するか否かを表す比較結果をユーザインターフェース３に表示させる。あるいは、比較部１５は、検証対象となるWebコンテンツに含まれるHTML要素のうち、ブラウザ間で表示内容が一致しないHTML要素についてのみ、そのHTML要素を表す情報をユーザインターフェース３に表示させてもよい。さらに、比較部１５は、ブラウザ間で表示内容が一致しないHTML要素について、ブラウザごとの要素画像をユーザインターフェース３に表示させてもよい。
【００５５】
図４は、プロセッサ６により実行される、コンテンツ検証処理の動作フローチャートである。
【００５６】
要素抽出部１１は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、互いに異なるタイミングで少なくとも２回、そのWebコンテンツに含まれる各HTML要素の実体を抽出する（ステップＳ１０１）。
【００５７】
属性取得部１２は、抽出された各HTML要素の実体のそれぞれから、各HTML要素についての表示に関する属性を表す情報を取得する（ステップＳ１０２）。これにより、各HTML要素について、互いに異なるタイミングでの表示に関する属性が求められる。
【００５８】
また、要素画像取得部１３は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで少なくとも２回、そのHTML要素が表された要素画像を取得する（ステップＳ１０３）。
【００５９】
変動領域特定部１４は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで得られた表示に関する属性を比較する。これにより、変動領域特定部１４は、時間経過とともに表示内容が変動する変動領域及び変動領域に表されるHTML要素を特定する（ステップＳ１０４）。
【００６０】
さらに、変動領域特定部１４は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで得られた要素画像同士を比較する。これにより、変動領域特定部１４は、時間経過とともに表示内容が変動する変動領域及び変動領域に表されるHTML要素を特定する（ステップＳ１０５）。
【００６１】
比較部１５は、二つのブラウザ間で、変動領域に表されるHTML要素を除いて、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及び各ブラウザ上でそのHTML要素が表された領域を特定する（ステップＳ１０６）。そして比較部１５は、比較結果をユーザインターフェース３に表示させる（ステップＳ１０７）。
【００６２】
その後、プロセッサ６は、コンテンツ検証処理を終了する。なお、プロセッサ６は、ステップＳ１０３の処理と、ステップＳ１０４の処理の順序を入れ替えてもよい。
【００６３】
以上に説明してきたように、このコンテンツ検証装置は、検証対象となるWebコンテンツに含まれる各HTML要素について、そのHTML要素が表された要素画像の時間変化の有無だけでなく、表示に関する属性の時間変化の有無を調べる。そのため、このコンテンツ検証装置は、変動領域に表されるHTML要素を正確に特定できる。そして、このコンテンツ検証装置は、変動領域に表されるHTML要素を除いて、二つのブラウザ間で、同じHTML要素が表された要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及びそのHTML要素が表された領域を特定する。そのため、このコンテンツ検証装置は、互いに異なるブラウザ間でのWebコンテンツの表示内容の比較精度を向上することができる。
【００６４】
なお、着目するHTML要素について、個々のブラウザから三つ以上の表示に関する属性が得られている場合、変動領域特定部１４は、そのうちの二つの表示に関する属性を選択してもよい。そして変動領域特定部１４は、上記のように、選択した二つの表示に関する属性が一致するか否かにより、着目するHTML要素が変動要素か否かを判定してもよい。
同様に、着目するHTML要素について、個々のブラウザから三つ以上の要素画像が得られている場合、変動領域特定部１４は、そのうちの二つの要素画像を選択してもよい。そして変動領域特定部１４は、上記のように、選択した二つの要素画像が一致するか否かにより、着目するHTML要素が変動要素か否かを判定してもよい。
【００６５】
また、他の変形例によれば、コンテンツ検証装置は、変動領域を特定するよりも前に、検証対象となるWebコンテンツが表示された二つのブラウザ間で、同じHTML要素が表された要素画像同士を比較してもよい。そしてコンテンツ検証装置は、表示内容が一致しないHTML要素（以下、不一致要素と呼ぶことがある）及びそのHTML要素が表示される領域を特定してもよい。そしてコンテンツ検証装置は、検証対象となるWebコンテンツに含まれる各HTML要素のうち、不一致要素についてのみ、変動要素か否かを判定してもよい。
【００６６】
この場合には、要素抽出部１１は、二つのブラウザのそれぞれから、各HTML要素の実体を先ず１回だけ抽出する。また、属性取得部１２も、各HTML要素について、そのHTML要素の実体から表示に関する属性を表す情報を取得して、メモリ４に保存する。さらに、要素画像取得部１３も、二つのブラウザのそれぞれから、HTML要素ごとに、そのHTML要素が表された要素画像を取得する。そして比較部１５は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素（すなわち、不一致要素）を特定する。
【００６７】
その後、不一致要素のそれぞれについて、要素抽出部１１は、二つのブラウザのそれぞれから、その不一致要素の実体を再抽出する。また、属性取得部１２も、二つのブラウザのそれぞれから、不一致要素のそれぞれについて、特定後に抽出されたその不一致要素の実体から表示に関する属性を表す情報を再取得する。さらに、要素画像取得部１３も、二つのブラウザのそれぞれから、不一致要素のそれぞれの要素画像を再取得する。そして変動領域特定部１４は、不一致要素のそれぞれについて、特定前後の表示に関する属性の比較、及び、特定前後の要素画像の比較に基づいて、変動要素となる不一致要素及び変動領域を特定する。そして比較部１５は、不一致要素のうち、変動要素以外のHTML要素を選択するとともに、選択したHTML要素が表される領域を、二つのブラウザ間で表示内容が異なる領域として特定する。比較部１５は、選択されたHTML要素について、ブラウザ間で表示内容が異なることを表す比較結果をユーザインターフェース３に表示させる。
【００６８】
図５は、この変形例による、プロセッサ６により実行される、コンテンツ検証処理の動作フローチャートである。
【００６９】
要素抽出部１１は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、そのWebコンテンツに含まれる各HTML要素の実体を抽出する（ステップＳ２０１）。
【００７０】
属性取得部１２は、抽出された各HTML要素の実体から、各HTML要素についての表示に関する属性を表す情報を取得する（ステップＳ２０２）。
【００７１】
また、要素画像取得部１３は、二つのブラウザのそれぞれについて、HTML要素ごとに、そのHTML要素が表された要素画像を取得する（ステップＳ２０３）。
【００７２】
比較部１５は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及び各ブラウザにおいてそのHTML要素が表された領域を特定する（ステップＳ２０４）。
【００７３】
要素抽出部１１は、二つのブラウザのそれぞれから、ブラウザ間で表示内容が異なる各HTML要素の実体を再抽出する（ステップＳ２０５）。そして属性取得部１２は、再抽出された各HTML要素の実体から、各HTML要素についての表示に関する属性を表す情報を再取得する（ステップＳ２０６）。さらに、要素画像取得部１３は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、そのHTML要素が表された要素画像を再取得する（ステップＳ２０７）。
【００７４】
変動領域特定部１４は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、互いに異なるタイミングで得られた表示に関する属性を比較する。これにより、変動領域特定部１４は、時間経過とともに表示内容が変動する変動領域に表されるHTML要素を特定する（ステップＳ２０８）。
【００７５】
さらに、変動領域特定部１４は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、互いに異なるタイミングで得られた要素画像同士を比較することで、変動領域に表されるHTML要素を特定する（ステップＳ２０９）。
【００７６】
そして比較部１５は、ブラウザ間で表示内容が異なるHTML要素のうち、変動領域に表されるHTML要素以外を選択し、選択したHTML要素の比較結果をユーザインターフェース３に表示させる（ステップＳ２１０）。その後、プロセッサ６は、コンテンツ検証処理を終了する。
【００７７】
この変形例によれば、ブラウザ間で表示内容が異なる各HTML要素について、表示に関する属性を取得する際の時間間隔、及び、要素画像を取得する際の時間間隔を長くすることができる。そのため、図１（ｂ）に示されるように、所定の時間間隔ごとに表示内容が変化するHTML要素についても、コンテンツ検証装置は、変動領域に表されるHTML要素を正確に特定できる。さらに、この変形例によれば、コンテンツ検証装置は、表示に関する属性及び要素画像の１回目の取得タイミングと２回目の取得タイミングの間に、各HTML要素についてブラウザ間で要素画像を比較する。そのため、コンテンツ検証装置は、表示に関する属性及び要素画像の１回目の取得タイミングと２回目の取得タイミング間の時間間隔を上記の実施形態よりも長くしても、コンテンツ検証処理全体に要する時間の増加を抑制できる。
【００７８】
さらに、上記の実施形態または変形例によるコンテンツ検証装置のプロセッサが有する各部の機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読取り可能な記録媒体に記憶された形で提供されてもよい。なお、コンピュータによって読取り可能な記録媒体は、例えば、磁気記録媒体、光記録媒体、又は半導体メモリとすることができる。
【００７９】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００８０】
１    コンテンツ検証装置
２    通信インターフェース
３    ユーザインターフェース
４    メモリ
５    記憶媒体アクセス装置
６    プロセッサ
７    記憶媒体
１１    要素抽出部
１２    属性取得部
１３    要素画像取得部
１４    変動領域特定部
１５    比較部
【図１】
2019028844.tif 000003
【図２】
2019028844.tif 000004
【図３】
2019028844.tif 000005
【図４】
2019028844.tif 000006
【図５】
2019028844.tif 000007