JP6965620B2 - コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法 - Google Patents

コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法 Download PDF

Info

Publication number
JP6965620B2
JP6965620B2 JP2017149353A JP2017149353A JP6965620B2 JP 6965620 B2 JP6965620 B2 JP 6965620B2 JP 2017149353 A JP2017149353 A JP 2017149353A JP 2017149353 A JP2017149353 A JP 2017149353A JP 6965620 B2 JP6965620 B2 JP 6965620B2
Authority
JP
Japan
Prior art keywords
browsers
display
elements
content
html
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.)
Active
Application number
JP2017149353A
Other languages
English (en)
Other versions
JP2019028844A (ja
Inventor
宏 田中
英吾 瀬川
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 JP2017149353A priority Critical patent/JP6965620B2/ja
Priority to US16/049,758 priority patent/US10706279B2/en
Publication of JP2019028844A publication Critical patent/JP2019028844A/ja
Application granted granted Critical
Publication of JP6965620B2 publication Critical patent/JP6965620B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/418Document matching, e.g. of document images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、例えば、ブラウザで表示されるコンテンツを検証するコンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法に関する。
様々な情報が、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ページが読み込まれる度に表示内容が変動する領域を比較対象から除外する技術が提案されている(例えば、非特許文献1を参照)。
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要素が表示される領域の検出に失敗することがある。
一つの側面では、本発明は、互いに異なるブラウザ間でのコンテンツの表示内容の比較精度を向上できるコンテンツ検証用コンピュータプログラムを提供することを目的とする。
一つの実施形態によれば、コンテンツ検証用コンピュータプログラムが提供される。このコンテンツ検証用コンピュータプログラムは、検証対象となるコンテンツに含まれ、かつ、コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、二つのブラウザの少なくとも何れかにおいて、その要素の表示に関する属性が時間経過に従って変化するか、または、その要素が表された要素画像が時間経過に従って変化する変動要素を特定し、二つのブラウザ間で、複数の要素のうち、変動要素以外の要素が表された要素画像を比較することで、二つのブラウザ間で表示内容が異なる領域を特定する、ことをコンピュータに実行させるための命令を含む。
一つの側面によれば、互いに異なるブラウザ間でのコンテンツの表示内容の比較精度を向上することができる。
(a)〜(c)は、それぞれ、互いに異なるタイミングにおいて同じ内容が表示されることがある変動領域の例を示す図である。 一つの実施形態による、コンテンツ検証装置のハードウェア構成図である。 コンテンツ検証処理に関するプロセッサの機能ブロック図である。 コンテンツ検証処理の動作フローチャートである。 変形例による、コンテンツ検証処理の動作フローチャートである。
以下、図を参照しつつ、コンテンツ検証装置、及び、そのコンテンツ検証装置で利用されるコンテンツ検証方法及びコンテンツ検証用コンピュータプログラムについて説明する。このコンテンツ検証装置は、例えば、クロスブラウザテストを実行するために用いられる。そのために、このコンテンツ検証装置は、同一のWebコンテンツが読み込まれた二つのWebブラウザのそれぞれから、各Webブラウザに表示されるHTML要素を抽出する。そしてコンテンツ検証装置は、抽出したHTML要素ごとに、そのHTML要素が表された画像をWebブラウザ間で比較する。その際、このコンテンツ検証装置は、動的なHTML要素が表示される領域(以下、変動領域と呼ぶ)については、Webブラウザ間での比較対象から除外する。なお、以下では、説明の便宜上、検証対象となるWebコンテンツを表示するブラウザを、単にブラウザと呼ぶことがある。また、HTML要素は、ブラウザに表示される要素の一例である。
発明者は、変動領域を正確に抽出するために、変動領域であっても、互いに異なるタイミングにおいて同じ内容が表示されることがあることに着目した。
図1(a)〜図1(c)は、それぞれ、互いに異なるタイミングにおいて同じ内容が表示されることがある変動領域の例を示す図である。
図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要素の識別番号を指定して特定される領域をキャプチャして得られる画像の表示内容の時間変化を調べても、変動領域の特定は失敗する。
図1(b)に示される例では、同一の変動領域に表示されるHTML要素121として表示される画像が所定の時間間隔(例えば、2秒間隔)で順次切り替わる。したがって、例えば、その所定間隔よりも短い間隔で変動領域を2回キャプチャすることで、変動領域の二つの画像を取得しても、その二つの画像の表示内容は同一となる。その結果として、変動領域の特定は失敗する。
図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が表示される。
このような場合、各HTML要素131〜134そのものは変化しないので、各HTML要素131〜134に設定されたhidden属性が変更されない間に複数回変動領域がキャプチャされても、キャプチャされた変動領域の画像は同一となる。その結果として変動領域の特定は失敗する。
図1(a)〜図1(c)の何れの場合でも、変動領域に表示されるHTML要素についての表示に関する属性(例えば、表示される領域の座標、時間経過による切り替え、hidden属性など)に着目すれば、変動領域の表示内容が時間経過とともに変化することが分かる。
そこで、このコンテンツ検証装置は、検証対象となるWebコンテンツを読み込んだ二つのブラウザのそれぞれから、そのWebコンテンツに含まれるHTML要素ごとに、異なるタイミングで少なくとも2回、HTML要素の表示に関する属性を取得する。さらに、このコンテンツ検証装置は、HTML要素ごとに、異なるタイミングで少なくとも2回、そのHTML要素が表示された領域をキャプチャした画像を取得する。そしてこのコンテンツ検証装置は、ブラウザごとに、かつ、HTML要素ごとに、異なるタイミングで取得された表示に関する属性を比較するとともに、異なるタイミングで取得された画像を比較する。そしてコンテンツ検証装置は、その比較に基づいて、表示に関する属性が時間経過に従って変化するか、または画像の表示内容が時間経過に従って変化するHTML要素を特定し、特定したHTML要素が表される領域をブラウザ間の比較から除外する。これにより、このコンテンツ検証装置は、二つのブラウザ間でのWebコンテンツの表示内容の比較精度を向上する。
以下に説明する実施形態では、検証対象となるコンテンツはHTMLによって記述されるものとする。しかし、検証対象となるコンテンツは、ブラウザが対応する他の言語により記述されてもよい。この場合、検証対象となるコンテンツに含まれ、ブラウザにより表示される要素は、コンテンツの記述に用いられる言語によって指定される要素であればよい。
図2は、一つの実施形態による、コンテンツ検証装置のハードウェア構成図である。図2に示されるように、コンテンツ検証装置1は、通信インターフェース2と、ユーザインターフェース3と、メモリ4と、記憶媒体アクセス装置5と、プロセッサ6とを有する。
通信インターフェース2は、イーサネット(登録商標)などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有する。通信インターフェース2は、例えば、通信ネットワークを介して他の機器(図示せず)から検証対象となるWebコンテンツのソースコードを受け取り、その受け取ったWebコンテンツのソースコードをプロセッサ6にわたす。また通信インターフェース2は、プロセッサ6から受け取った、ブラウザ間でのWebコンテンツの表示内容の比較結果を、通信ネットワークを介して他の機器へ出力してもよい。
ユーザインターフェース3は、例えば、キーボードとマウスなどの入力装置と、液晶ディスプレイといった表示装置とを有する。あるいは、ユーザインターフェース3は、タッチパネルといった、入力装置と表示装置とが一体化された装置を有していてもよい。そしてユーザインターフェース3は、例えば、プロセッサ6から受け取った、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれが表されたウインドウを表示装置に表示する。さらに、ユーザインターフェース3は、プロセッサ6から受け取った、ブラウザ間でのWebコンテンツの表示内容の比較結果を表示してもよい。また、検証対象となるWebコンテンツのソースコードが、ユーザインターフェース3を介して入力されてもよい。
メモリ4は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリである。そしてメモリ4は、例えば、検証対象となるWebコンテンツのソースコード、プロセッサ6で実行されるコンテンツ検証処理を実行するための各種のデータ及び比較結果などを記憶する。さらに、メモリ4は、コンテンツ検証処理の実行中に得られる、HTML要素をキャプチャした画像といった、各種データを一定期間記憶してもよい。
記憶媒体アクセス装置5は、記憶部の他の一例であり、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体7にアクセスする装置である。記憶媒体アクセス装置5は、例えば、記憶媒体7から、プロセッサ6上で実行されるコンテンツ検証処理用のコンピュータプログラム、コンテンツ検証処理で用いられる二つのブラウザのそれぞれの実行ファイル及び関連ファイルを読み込み、プロセッサ6に渡す。また、記憶媒体アクセス装置5は、検証対象となるWebコンテンツのソースコードを読み込み、プロセッサ6に渡してもよい。
プロセッサ6は、制御部の一例であり、例えば、Central Processing Unit(CPU)と、その周辺回路とを有する。さらに、プロセッサ6は、数値演算プロセッサを有していてもよい。そしてプロセッサ6は、コンテンツ検証装置1全体を制御する。また、プロセッサ6は、通信インターフェース2を介して検証対象となるWebコンテンツのソースコードを受け取ると、そのソースコードをメモリ4に保存する。そしてプロセッサ6は、コンテンツ検証処理を実行する。
図3は、コンテンツ検証処理に関するプロセッサ6の機能ブロック図である。図3に示されるように、プロセッサ6は、要素抽出部11と、属性取得部12と、要素画像取得部13と、変動領域特定部14と、比較部15とを有する。
プロセッサ6が有するこれらの各部は、例えば、プロセッサ6が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールである。あるいは、プロセッサ6が有するこれらの各部は、ファームウェアとしてコンテンツ検証装置1に実装されてもよい。
プロセッサ6は、コンテンツ検証処理を開始する際、コンテンツ検証処理で利用される、互いに異なる二つのブラウザを起動する。そしてプロセッサ6は、二つのブラウザのそれぞれに、検証対象となるWebコンテンツのソースコードを読み込ませて、二つのブラウザのそれぞれに、検証対象となるWebコンテンツを表示させる。その際、プロセッサ6は、ブラウザ同士が重ならないように、各ブラウザをユーザインターフェース3に表示させることが好ましい。
要素抽出部11は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、ブラウザ上に表示される各HTML要素の実体を抽出する。そのために、要素抽出部11は、例えば、Selenium WebDriverといったブラウザ解析用のソフトウェアと同様の手法を用いて各HTML要素の実体を抽出すればよい。例えば、要素抽出部11は、検証対象となるWebコンテンツのソースコードから、各HTML要素の識別番号を取得する。そして要素抽出部11は、二つのブラウザのそれぞれに対して、各HTML要素の識別番号を指定して、Selenium WebDriverの関数GetElementByID()と同様の処理を適用する。これにより、要素抽出部11は、ブラウザ上に表示される、Webコンテンツに含まれる各HTML要素の実体を抽出できる。なお、要素抽出部11は、Webコンテンツを表示中のブラウザから、表示される各HTML要素の実体を抽出する他の様々な技術の何れを用いて、HTML要素の実体を抽出してもよい。
要素抽出部11は、二つのブラウザのそれぞれについて、互いに異なるタイミングで2回以上、上記の処理を実行することで、HTML要素ごとに、そのHTML要素の実体を2個以上抽出する。そして要素抽出部11は、二つのブラウザのそれぞれから抽出された各HTML要素の個々の実体を、属性取得部12及び要素画像取得部13へわたす。
属性取得部12は、二つのブラウザのそれぞれについて、抽出されたHTML要素のそれぞれの表示に関する属性を表す情報を取得する。
例えば、属性取得部12は、各ブラウザについて、要素抽出部11から受け取ったHTML要素の実体のそれぞれについて、その実体を解析することで表示に関する属性を表す情報を抽出する。表示に関する属性は、例えば、HTML要素が表示される領域の座標、hidden属性といった、HTML要素が表示されるか否かを表す情報、HTML要素に設定される透明度を表す情報、及び、HTML要素が動画像か否かを表す情報の少なくとも一つを含む。
本実施形態では、HTML要素ごとに、異なるタイミングで2回以上、そのHTML要素の実体が抽出されているので、属性取得部12は、HTML要素ごとに、そのHTML要素の各実体からそれぞれ表示に関する属性を取得すればよい。
属性取得部12は、各HTMLの実体ごとに、その実体が抽出されたときのそのHTML要素の表示に関する属性を表す情報を変動領域特定部14へ通知する。
要素画像取得部13は、二つのブラウザのそれぞれにおいて、ブラウザ上に表示されるHTML要素ごとに、そのHTML要素の画像を、互いに異なるタイミングで少なくとも2回取得する。
そのために、要素画像取得部13は、例えば、着目するブラウザから各HTML要素の実体が抽出されるときに、着目するブラウザが表示されている状態でユーザインターフェース3の表示画面のスクリーンショット画像を取得する。その際、要素画像取得部13は、例えば、SaveScreenShot()といった、スクリーンショット画像を取得する関数を利用すればよい。なお、要素画像取得部13は、Webコンテンツに含まれ、かつ、着目するブラウザに表示される全てのHTML要素の実体が取得される度に、着目するブラウザについて一つのスクリーンショット画像を取得すればよい。
また、要素画像取得部13は、着目するブラウザについて、抽出された各HTML要素ごとに、そのHTML要素の実体に含まれる、そのHTML要素が表示される領域の座標を取得する。そして要素画像取得部13は、HTML要素ごとに、スクリーンショット画像から、そのHTML要素について取得した座標で指定される領域をトリミングすることで、そのHTML要素が表された画像を取得する。
要素画像取得部13は、上記の処理を、ブラウザごとに、異なるタイミングで2回以上行うことで、ブラウザごとに、HTML要素のそれぞれについて、そのHTML要素が表された画像を少なくとも二つ取得する。なお、個々のHTML要素が表された画像を、以下では、要素画像と呼ぶ。
要素画像取得部13は、要素画像のそれぞれを変動領域特定部14及び比較部15へわたす。
変動領域特定部14は、検証対象となるWebコンテンツに含まれる各HTML要素のうち、何れかのブラウザについて、HTML要素の表示に関する属性と要素画像とに基づいて、時間経過とともに表示位置または表示内容が変わるHTML要素及びそのようなHTML要素が表される変動領域を特定する。なお、以下では、変動領域に表示されるHTML要素を変動要素と呼ぶことがある。なお、変動領域特定部14は、HTML要素ごとに、同一の処理を実行すればよいので、以下では、着目する一つのHTML要素に対する処理について説明する。
変動領域特定部14は、着目するHTML要素について、異なるタイミングで得られた表示に関する属性同士を比較する。そして変動領域特定部14は、表示に関する属性が異なっていれば、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表示される領域を変動領域として特定する。
例えば、図1(a)に示されるように、時間経過とともに、着目するHTML要素が表示される位置が変動する場合、着目するHTML要素について、そのHTML要素が表示される座標が変化する。そこで、変動領域特定部14は、異なるタイミングにおいて取得された、着目するHTML要素が表示される座標が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素の実体の抽出時においてそのHTML要素が表される領域を変動領域とする。
また、図1(c)に示されるように、時間経過とともに、着目するHTML要素のhidden属性が変化する場合、着目するHTML要素が表示される領域において、実際に表示される内容も時間経過とともに変化する。そこで、変動領域特定部14は、着目するHTML要素について、異なるタイミングにおいて取得されたhidden属性の値が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域とする。
さらに、着目するHTML要素に透明度が設定されている場合、時間経過とともに、その透明度が変化すると、着目するHTML要素が表示される領域において、実際に表示される内容も時間経過とともに変化する。そこで、変動領域特定部14は、着目するHTML要素について、異なるタイミングにおいて取得された透明度の値が一致しない場合、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域とする。
さらに、変動領域特定部14は、着目するHTML要素が動画像を含んでいることを示す場合も、着目するHTML要素を変動要素とし、かつ、着目するHTML要素が表される領域を変動領域としてもよい。例えば、変動領域特定部14は、着目するHTML要素と関連付けられているタグが動画像を指定していることを示している場合、着目するHTML要素が動画像を含んでいると判定することができる。なお、動画像を指定していることを示すタグは、着目するHTML要素が動画像か否かを表す情報の一例である。
さらに、変動領域特定部14は、着目するHTML要素について、異なるタイミングで得られた要素画像同士を比較する。そして変動領域特定部14は、要素画像同士が一致しない場合、着目するHTML要素を変動要素とし、着目するHTML要素が表される領域を変動領域とする。例えば、変動領域特定部14は、着目するHTML要素について、異なるタイミングで得られた要素画像同士の正規化相互相関値を算出してもよい。そして変動領域特定部14は、正規化相互相関値が所定の閾値以下である場合、それら要素画像は一致しないと判定し、一方、正規化相互相関値が所定の閾値が所定の閾値よりも高い場合、それら要素画像は一致すると判定してもよい。なお、変動領域特定部14は、正規化相互相関値の代わりに、要素画像同士の対応画素間の画素値の差の絶対値和を算出し、画素値の差の絶対値和が所定の閾値以上である場合に、それら要素画像は一致しないと判定してもよい。
なお、変動領域特定部14は、着目するHTML要素について、表示に関する属性または要素画像の何れか一方に基づいて変動要素と判定された場合、他方について変動要素か否かの判定処理を省略してもよい。これにより、演算量が削減される。
変動領域特定部14は、各ブラウザについて、表示に関する属性または要素画像の何れかに基づいて特定された変動領域及びその変動領域に表される変動要素の識別番号を比較部15へ通知する。
比較部15は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、二つのブラウザ間で表示内容が異なるHTML要素及びそのHTML要素が表示される領域を特定する。その際、比較部15は、変動要素が表される要素画像については、ブラウザ間の比較を行わない。その際、比較部15は、変動領域特定部14から通知された、変動要素の識別番号を参照して、その識別番号に対応する変動要素が表された要素画像を比較対象から除外すればよい。これにより、比較部15は、検証対象となるWebコンテンツについて、ブラウザ間で表示内容に相違が生じているか否かを適切に判定できる。
比較部15は、抽出されたHTML要素のそれぞれの識別番号を参照して、二つのブラウザのそれぞれについて同じ識別番号が割り当てられたHTML要素同士を同じHTML要素と判定すればよい。そして比較部15は、同一の識別番号に対応する、二つのブラウザのそれぞれのHTML要素の要素画像同士を比較すればよい。その際、比較部15は、要素画像同士の正規化相互相関値を算出してもよい。そして比較部15は、正規化相互相関値が所定の閾値以下である場合、それら要素画像は互いに異なると判定し、要素画像に表されたHTML要素を、二つのブラウザ間で表示内容が異なるHTML要素として特定する。また比較部15は、二つのブラウザのそれぞれにおいて、特定されたHTML要素が表された要素画像に対応する領域を、表示内容が異なるHTML要素が表示される領域とする。
一方、正規化相互相関値が所定の閾値が所定の閾値よりも高い場合、それら要素画像は一致すると判定してもよい。なお、比較部15は、正規化相互相関値の代わりに、要素画像同士の対応画素間の画素値の差の絶対値和を算出し、画素値の差の絶対値和が所定の閾値以上である場合に、それら要素画像は互いに異なると判定してもよい。
比較部15は、比較された全てのHTML要素について、一致するか否かを表す比較結果をユーザインターフェース3に表示させる。あるいは、比較部15は、検証対象となるWebコンテンツに含まれるHTML要素のうち、ブラウザ間で表示内容が一致しないHTML要素についてのみ、そのHTML要素を表す情報をユーザインターフェース3に表示させてもよい。さらに、比較部15は、ブラウザ間で表示内容が一致しないHTML要素について、ブラウザごとの要素画像をユーザインターフェース3に表示させてもよい。
図4は、プロセッサ6により実行される、コンテンツ検証処理の動作フローチャートである。
要素抽出部11は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、互いに異なるタイミングで少なくとも2回、そのWebコンテンツに含まれる各HTML要素の実体を抽出する(ステップS101)。
属性取得部12は、抽出された各HTML要素の実体のそれぞれから、各HTML要素についての表示に関する属性を表す情報を取得する(ステップS102)。これにより、各HTML要素について、互いに異なるタイミングでの表示に関する属性が求められる。
また、要素画像取得部13は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで少なくとも2回、そのHTML要素が表された要素画像を取得する(ステップS103)。
変動領域特定部14は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで得られた表示に関する属性を比較する。これにより、変動領域特定部14は、時間経過とともに表示内容が変動する変動領域及び変動領域に表されるHTML要素を特定する(ステップS104)。
さらに、変動領域特定部14は、二つのブラウザのそれぞれについて、HTML要素ごとに、互いに異なるタイミングで得られた要素画像同士を比較する。これにより、変動領域特定部14は、時間経過とともに表示内容が変動する変動領域及び変動領域に表されるHTML要素を特定する(ステップS105)。
比較部15は、二つのブラウザ間で、変動領域に表されるHTML要素を除いて、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及び各ブラウザ上でそのHTML要素が表された領域を特定する(ステップS106)。そして比較部15は、比較結果をユーザインターフェース3に表示させる(ステップS107)。
その後、プロセッサ6は、コンテンツ検証処理を終了する。なお、プロセッサ6は、ステップS103の処理と、ステップS104の処理の順序を入れ替えてもよい。
以上に説明してきたように、このコンテンツ検証装置は、検証対象となるWebコンテンツに含まれる各HTML要素について、そのHTML要素が表された要素画像の時間変化の有無だけでなく、表示に関する属性の時間変化の有無を調べる。そのため、このコンテンツ検証装置は、変動領域に表されるHTML要素を正確に特定できる。そして、このコンテンツ検証装置は、変動領域に表されるHTML要素を除いて、二つのブラウザ間で、同じHTML要素が表された要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及びそのHTML要素が表された領域を特定する。そのため、このコンテンツ検証装置は、互いに異なるブラウザ間でのWebコンテンツの表示内容の比較精度を向上することができる。
なお、着目するHTML要素について、個々のブラウザから三つ以上の表示に関する属性が得られている場合、変動領域特定部14は、そのうちの二つの表示に関する属性を選択してもよい。そして変動領域特定部14は、上記のように、選択した二つの表示に関する属性が一致するか否かにより、着目するHTML要素が変動要素か否かを判定してもよい。
同様に、着目するHTML要素について、個々のブラウザから三つ以上の要素画像が得られている場合、変動領域特定部14は、そのうちの二つの要素画像を選択してもよい。そして変動領域特定部14は、上記のように、選択した二つの要素画像が一致するか否かにより、着目するHTML要素が変動要素か否かを判定してもよい。
また、他の変形例によれば、コンテンツ検証装置は、変動領域を特定するよりも前に、検証対象となるWebコンテンツが表示された二つのブラウザ間で、同じHTML要素が表された要素画像同士を比較してもよい。そしてコンテンツ検証装置は、表示内容が一致しないHTML要素(以下、不一致要素と呼ぶことがある)及びそのHTML要素が表示される領域を特定してもよい。そしてコンテンツ検証装置は、検証対象となるWebコンテンツに含まれる各HTML要素のうち、不一致要素についてのみ、変動要素か否かを判定してもよい。
この場合には、要素抽出部11は、二つのブラウザのそれぞれから、各HTML要素の実体を先ず1回だけ抽出する。また、属性取得部12も、各HTML要素について、そのHTML要素の実体から表示に関する属性を表す情報を取得して、メモリ4に保存する。さらに、要素画像取得部13も、二つのブラウザのそれぞれから、HTML要素ごとに、そのHTML要素が表された要素画像を取得する。そして比較部15は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素(すなわち、不一致要素)を特定する。
その後、不一致要素のそれぞれについて、要素抽出部11は、二つのブラウザのそれぞれから、その不一致要素の実体を再抽出する。また、属性取得部12も、二つのブラウザのそれぞれから、不一致要素のそれぞれについて、特定後に抽出されたその不一致要素の実体から表示に関する属性を表す情報を再取得する。さらに、要素画像取得部13も、二つのブラウザのそれぞれから、不一致要素のそれぞれの要素画像を再取得する。そして変動領域特定部14は、不一致要素のそれぞれについて、特定前後の表示に関する属性の比較、及び、特定前後の要素画像の比較に基づいて、変動要素となる不一致要素及び変動領域を特定する。そして比較部15は、不一致要素のうち、変動要素以外のHTML要素を選択するとともに、選択したHTML要素が表される領域を、二つのブラウザ間で表示内容が異なる領域として特定する。比較部15は、選択されたHTML要素について、ブラウザ間で表示内容が異なることを表す比較結果をユーザインターフェース3に表示させる。
図5は、この変形例による、プロセッサ6により実行される、コンテンツ検証処理の動作フローチャートである。
要素抽出部11は、検証対象となるWebコンテンツを表示する二つのブラウザのそれぞれから、そのWebコンテンツに含まれる各HTML要素の実体を抽出する(ステップS201)。
属性取得部12は、抽出された各HTML要素の実体から、各HTML要素についての表示に関する属性を表す情報を取得する(ステップS202)。
また、要素画像取得部13は、二つのブラウザのそれぞれについて、HTML要素ごとに、そのHTML要素が表された要素画像を取得する(ステップS203)。
比較部15は、二つのブラウザ間で、同じHTML要素の要素画像同士を比較することで、ブラウザ間で表示内容が異なるHTML要素及び各ブラウザにおいてそのHTML要素が表された領域を特定する(ステップS204)。
要素抽出部11は、二つのブラウザのそれぞれから、ブラウザ間で表示内容が異なる各HTML要素の実体を再抽出する(ステップS205)。そして属性取得部12は、再抽出された各HTML要素の実体から、各HTML要素についての表示に関する属性を表す情報を再取得する(ステップS206)。さらに、要素画像取得部13は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、そのHTML要素が表された要素画像を再取得する(ステップS207)。
変動領域特定部14は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、互いに異なるタイミングで得られた表示に関する属性を比較する。これにより、変動領域特定部14は、時間経過とともに表示内容が変動する変動領域に表されるHTML要素を特定する(ステップS208)。
さらに、変動領域特定部14は、二つのブラウザのそれぞれについて、ブラウザ間で表示内容が異なるHTML要素ごとに、互いに異なるタイミングで得られた要素画像同士を比較することで、変動領域に表されるHTML要素を特定する(ステップS209)。
そして比較部15は、ブラウザ間で表示内容が異なるHTML要素のうち、変動領域に表されるHTML要素以外を選択し、選択したHTML要素の比較結果をユーザインターフェース3に表示させる(ステップS210)。その後、プロセッサ6は、コンテンツ検証処理を終了する。
この変形例によれば、ブラウザ間で表示内容が異なる各HTML要素について、表示に関する属性を取得する際の時間間隔、及び、要素画像を取得する際の時間間隔を長くすることができる。そのため、図1(b)に示されるように、所定の時間間隔ごとに表示内容が変化するHTML要素についても、コンテンツ検証装置は、変動領域に表されるHTML要素を正確に特定できる。さらに、この変形例によれば、コンテンツ検証装置は、表示に関する属性及び要素画像の1回目の取得タイミングと2回目の取得タイミングの間に、各HTML要素についてブラウザ間で要素画像を比較する。そのため、コンテンツ検証装置は、表示に関する属性及び要素画像の1回目の取得タイミングと2回目の取得タイミング間の時間間隔を上記の実施形態よりも長くしても、コンテンツ検証処理全体に要する時間の増加を抑制できる。
さらに、上記の実施形態または変形例によるコンテンツ検証装置のプロセッサが有する各部の機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読取り可能な記録媒体に記憶された形で提供されてもよい。なお、コンピュータによって読取り可能な記録媒体は、例えば、磁気記録媒体、光記録媒体、又は半導体メモリとすることができる。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
1 コンテンツ検証装置
2 通信インターフェース
3 ユーザインターフェース
4 メモリ
5 記憶媒体アクセス装置
6 プロセッサ
7 記憶媒体
11 要素抽出部
12 属性取得部
13 要素画像取得部
14 変動領域特定部
15 比較部

Claims (6)

  1. 検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化する第1の変動要素を特定しかつ、当該要素が表された要素画像が時間経過に従って変化する第2の変動要素を特定し、
    前記二つのブラウザ間で、前記複数の要素のうち、前記第1および第2の変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する、
    ことをコンピュータに実行させるためのコンテンツ検証用コンピュータプログラム。
  2. 前記複数の要素のそれぞれについて、第1の時点において前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得し、かつ、前記第1の時点と異なる第2の時点において前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得することをさらにコンピュータに実行させ、
    前記第1の変動要素を特定することは、前記複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、前記第1の時点における当該要素の前記表示に関する属性と、前記第2の時点における当該要素の前記表示に関する属性とが異なる要素を前記第1の変動要素とすることを含む、
    請求項1に記載のコンテンツ検証用コンピュータプログラム。
  3. 前記複数の要素のそれぞれについて、前記二つのブラウザのそれぞれから、当該要素の前記表示に関する属性を取得し、かつ、前記二つのブラウザのそれぞれから当該要素が表された要素画像を取得し、
    前記複数の要素のそれぞれについて、前記二つのブラウザのそれぞれから取得された当該要素が表された前記要素画像を比較することで、前記複数の要素のうち、前記二つのブラウザ間で表示内容が異なる不一致要素を特定し、
    前記二つのブラウザのそれぞれから、前記不一致要素の前記表示に関する属性を再取得し、かつ、前記二つのブラウザのそれぞれから前記不一致要素が表された要素画像を再取得することをさらにコンピュータに実行させ、
    前記第1および第2の変動要素を特定することは、前記二つのブラウザの少なくとも何れかにおいて、前記不一致要素のうち、前記表示に関する属性と前記再取得された前記表示に関する属性が異なる不一致要素を前記第1の変動要素として特定しかつ、前記要素画像と前記再取得された前記要素画像とが異なる不一致要素を前記第2の変動要素として特定することを含み、
    前記二つのブラウザ間で表示内容が異なる領域を特定することは、前記不一致要素のうち、前記第1および第2の変動要素以外の不一致要素が表された領域を前記二つのブラウザ間で表示内容が異なる領域として特定することを含む、請求項1または2に記載のコンテンツ検証用コンピュータプログラム。
  4. 前記表示に関する属性は、前記要素が表示される領域の位置を示す情報、前記要素について表示と非表示とを切り替えるための情報、前記要素の透明度を示す情報、及び、前記要素が動画像か否かを表す情報のうちの少なくとも一つを含む、請求項1〜3の何れか一項に記載のコンテンツ検証用コンピュータプログラム。
  5. 検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化する第1の変動要素を特定しかつ、当該要素が表された要素画像が時間経過に従って変化する第2の変動要素を特定する変動領域特定部と、
    前記二つのブラウザ間で、前記複数の要素のうち、前記第1および第2の変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する比較部と、
    を有するコンテンツ検証装置。
  6. 検証対象となるコンテンツに含まれ、かつ、前記コンテンツを表示する二つのブラウザのそれぞれに表示される複数の要素のうち、前記二つのブラウザの少なくとも何れかにおいて、当該要素の表示に関する属性が時間経過に従って変化する第1の変動要素を特定しかつ、当該要素が表された要素画像が時間経過に従って変化する第2の変動要素を特定し、
    前記二つのブラウザ間で、前記複数の要素のうち、前記第1および第2の変動要素以外の要素が表された前記要素画像を比較することで、前記二つのブラウザ間で表示内容が異なる領域を特定する、
    ことを含むコンテンツ検証方法。
JP2017149353A 2017-08-01 2017-08-01 コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法 Active JP6965620B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017149353A JP6965620B2 (ja) 2017-08-01 2017-08-01 コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法
US16/049,758 US10706279B2 (en) 2017-08-01 2018-07-30 Content verification apparatus, method for verifying content, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017149353A JP6965620B2 (ja) 2017-08-01 2017-08-01 コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法

Publications (2)

Publication Number Publication Date
JP2019028844A JP2019028844A (ja) 2019-02-21
JP6965620B2 true JP6965620B2 (ja) 2021-11-10

Family

ID=65230132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017149353A Active JP6965620B2 (ja) 2017-08-01 2017-08-01 コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法

Country Status (2)

Country Link
US (1) US10706279B2 (ja)
JP (1) JP6965620B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11748271B2 (en) * 2020-04-15 2023-09-05 Micron Technology, Inc. Data security for memory and computing systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051178B2 (en) * 2003-11-05 2011-11-01 Benefits Technologies, L.L.C. Apparatus and method for remotely sharing information and providing remote interactive assistance via a communications network
JP4846029B2 (ja) 2010-02-05 2011-12-28 株式会社野村総合研究所 動作検証装置、動作検証方法および動作検証プログラム
CN102227716B (zh) 2009-03-30 2014-01-01 株式会社野村综合研究所 动作验证装置、动作验证方法、以及动作验证系统
US8996988B2 (en) * 2009-10-19 2015-03-31 Browsera, LLC Automated application compatibility testing
US9262396B1 (en) * 2010-03-26 2016-02-16 Amazon Technologies, Inc. Browser compatibility checker tool
US8805094B2 (en) 2011-09-29 2014-08-12 Fujitsu Limited Using machine learning to improve detection of visual pairwise differences between browsers
JP2016045545A (ja) 2014-08-20 2016-04-04 株式会社日立製作所 影響調査システム、影響調査方法、および影響調査プログラム

Also Published As

Publication number Publication date
US10706279B2 (en) 2020-07-07
JP2019028844A (ja) 2019-02-21
US20190042841A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
US10146753B2 (en) Visual regression testing tool
US10073766B2 (en) Building signatures of application flows
US9158432B2 (en) Region recommendation device, region recommendation method and recording medium
US9946637B2 (en) Automatic updating of graphical user interface element locators based on dimension comparison
US10169853B2 (en) Score weights for user interface (UI) elements
US9760475B2 (en) Automatic updating of graphical user interface element locators based on image comparison
US20150378876A1 (en) Visual graphical user interface verification
Mahajan et al. WebSee: A tool for debugging HTML presentation failures
WO2017141893A1 (ja) ソフトウェア分析装置及びソフトウェア分析方法
JP6965620B2 (ja) コンテンツ検証用コンピュータプログラム、コンテンツ検証装置及びコンテンツ検証方法
JP2019219848A (ja) ソースコード解析方法およびソースコード解析装置
CN111247517B (zh) 一种图像处理方法、装置及系统
AU2015402757A1 (en) Web application adjustment for different browsers
WO2015120787A1 (en) Webpage detection method and apparatus
JP2015075783A (ja) 設計支援プログラム、設計支援方法および設計支援装置
US20210286709A1 (en) Screen test apparatus and computer readable medium
CN113642642B (zh) 控件识别方法及装置
CN115481025A (zh) 自动化测试的脚本录制方法、装置、计算机设备及介质
KR20160009900A (ko) 단말의 영상인식장치를 통한 어플리케이션 추천 방법 및 장치
JP6446945B2 (ja) 非互換検出装置、非互換検出方法、及びプログラム
JP7127601B2 (ja) 類似遷移特定装置、類似遷移特定方法及びプログラム
CN113641933A (zh) 异常网页识别方法、异常站点识别方法及装置
JP6702036B2 (ja) 検索プログラム、検索方法および検索装置
JP6805903B2 (ja) 表示差異検出プログラム、装置、及び方法
CN107451047B (zh) 浏览器功能测试方法、系统及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210423

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: 20210921

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211004

R150 Certificate of patent or registration of utility model

Ref document number: 6965620

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150