【文献】
丹野 治門,画像処理を活用したUIレイアウト崩れ検出支援手法の提案,情報処理学会研究報告,日本,一般社団法人情報処理学会,2016年11月10日,Vol.2016-SE-194 No.9,1-8
(58)【調査した分野】(Int.Cl.,DB名)
前記表示要素と前記対象要素との相対的な位置関係に応じて、前記差により示される基準点間の第1距離と、前記第1距離よりも短い第2距離と、を選択的に用いることを特徴とする請求項2に記載の表示差異検出プログラム。
前記対象要素を検索する際に、前記表示要素との類似度が所定値以上となる部分領域を対象要素として検索することを特徴とする請求項1〜4のいずれか1項に記載の表示差異検出プログラム。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明に係る実施形態の一例を詳細に説明する。
【0013】
[第1の実施形態]
図1は、本実施形態に係る表示差異検出システム90の構成の一例を示す図である。
図1に示すように、本実施形態に係る表示差異検出システム90は、Webサーバ10、Personal Computer(PC)20A、PC20B、及び表示差異検出装置30を含んで構成される。
【0014】
Webサーバ10は、HTML文書12を提供可能なコンピュータであり、インターネットや、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワークNを介してPC20A及びPC20Bの各々と接続される。Webサーバ10は、PC20A及びPC20Bの各々からHyper Text Transfer Protocol(HTTP)リクエストを受信すると、HTTPリクエストのUniform Resource Locater(URL)に対応するHTML文書12を送信する。なお、本実施形態に係るWebサーバ10は、複数のWebブラウザによるブラウザ表示テストの対象とされる共通のHTML文書12をPC20A及びPC20Bの各々に送信する。
【0015】
PC20Aには、第1Webブラウザ22Aがインストールされており、第1Webブラウザ22AによりWebサーバ10から取得したHTML文書12で定義される画像を表示させる。同様に、PC20Bには、第2Webブラウザ22Bがインストールされており、第2Webブラウザ22BによりWebサーバ10から取得したHTML文書12で定義される画像を表示させる。これらのPC20A及び20Bは、2台に限定されるものではなく、3台以上でもよい。また、本実施形態では、第1Webブラウザ22Aのバージョンと第2Webブラウザ22Bのバージョンとが異なる。つまり、本実施形態に係る第1Webブラウザ22Aは、第2Webブラウザ22Bと同種でバージョンの異なるブラウザである。なお、第1Webブラウザ22Aは、第2Webブラウザ22Bと種類が異なっていてもよく、第2Webブラウザ22Bと同種でOSが異なっていてもよい。
【0016】
以下、本実施形態では、第1Webブラウザ22A及び第2Webブラウザ22Bの各々により共通のHTML文書12を表示させ、ブラウザ表示テストを実施する場合について説明する。
【0017】
本実施形態に係る表示差異検出装置30は、PC20A及びPC20Bの各々と有線又は無線を介して接続される。表示差異検出装置30は、例えば、汎用的なパーソナルコンピュータ等の情報処理装置により実現される。
【0018】
本実施形態に係る表示差異検出装置30は、PC20Aを遠隔操作して第1Webブラウザ22Aを実行させ、HTML文書12で定義される画像をPC20Aの画面に表示させる機能を備える。同様に、表示差異検出装置30は、PC20Bを遠隔操作して第2Webブラウザ22Bを実行させ、HTML文書12で定義される画像をPC20Bの画面に表示させる。そして、表示差異検出装置30は、PC20Aに表示させた第1Webブラウザ22Aの表示画面をキャプチャし、PC20Aから第1画像44Aを取得する。同様に、表示差異検出装置30は、PC20Bに表示させた第2Webブラウザ22Bの表示画面をキャプチャし、PC20Bから第2画像44Bを取得する。つまり、これらの第1画像44A及び第2画像44Bの各々は、共通のHTML文書12で定義される画像をキャプチャして得られた画像であり、ソース情報を持たない画像の一例である。
【0019】
図2は、本実施形態に係る表示差異検出装置30の機能的な構成の一例を示すブロック図である。
図2に示すように、本実施形態に係る表示差異検出装置30は、機能的には、取得部32と、抽出部34と、検索部36と、対応付け部38と、選択部40と、検出部42と、を含む。また、表示差異検出装置30は、PC20Aから取得した第1画像44A及びPC20Bから取得した第2画像44Bを表示する表示部44を備える。表示部44には、液晶ディスプレイや有機Electro Luminescence(EL)ディスプレイ等が適用される。表示部44は、第1画像44A及び第2画像44Bを、一例として水平方向に並べて配置した状態で表示する。
【0020】
図3は、本実施形態に係る第1画像44A及び第2画像44Bの一例を示す図である。
図3に示すように、本実施形態に係る第1画像44Aには、表示要素群10Aが含まれている。この表示要素群10Aには、一例として、複数の表示要素1A、2A,3A、4Aが含まれる。一方、本実施形態に係る第2画像44Bには、表示要素群10Aの対応付けの対象となる他の対象要素群10Bが含まれている。この対象要素群10Bには、一例として、複数の対象要素1B、2B、3B、4Bが含まれる。なお、画像に含まれる要素の配置や個数は、
図3に示す例に限定されるものではなく、ブラウザ表示テストの対象とされる画像に応じて様々である。なお、
図3の例では、表示要素及び対象要素の各々は、矩形領域として示される。
【0021】
取得部32は、表示部44に表示されている第1画像44A及び第2画像44Bを取得し、第1画像44Aを抽出部34に出力し、第2画像44Bを検索部36に出力する。なお、本実施形態では、第1画像44Aを基準画像としているが、第2画像44Bを基準画像とする場合、第2画像44Bを抽出部34に出力し、第1画像44Aを検索部36に出力すればよい。
【0022】
抽出部34は、第1画像44Aを解析して表示要素群10Aとして、表示要素1A〜4Aを抽出する。一例として、第1画像44Aを部分領域に分割して切り出す処理が適用される。一般的に、HTML文書に基づく画像は、矩形状の部分領域が比較的多いため、例えば、所定幅の黒画素が所定長さ以上にわたって連続的又は断続的に直線状に連なる部分を追跡することによって、矩形状の部分領域を切り出すことができる。
【0023】
検索部36は、第2画像44Bから、各表示要素1A〜4Aに類似する対象要素を検索する。一例として、各表示要素1A〜4Aを検索キーとして、表示要素との類似度が所定値以上となる部分領域を対象要素として検索する。本実施形態の場合、第1画像44A及び第2画像44Bは、共通のHTML文書12に基づく画像であるため、2つの画像間で大きな変化はないと考えられる。このため、一例として、比較的単純なテンプレートマッチング法が適用される。この場合、類似度を示す指標としては、一例として、Sum of Squared Difference(SSD)や、Zero-means Normalized Cross-Correlation(ZNCC)、Sum of Absolute Difference(SAD)、Normalized Cross-Correlation(NCC)等が用いられる。なお、上記の所定値としては、実験等に基づいて適切な値が設定される。
【0024】
図3に示す例の場合、表示要素1Aに対しては、類似度が所定値以上の対象要素1Bが検索され、表示要素2Aに対しては、類似度が所定値以上の対象要素2B及び対象要素3Bが検索される。また、表示要素3Aに対しては、類似度が所定値以上の対象要素4Bが検索され、表示要素4Aに対しては、類似度が所定値以上の対象要素2B及び対象要素3Bが検索される。
【0025】
対応付け部38は、各表示要素1A〜4Aに対して、検索部36で検索した少なくとも1つの対象要素を対応付ける。ここで、ある表示要素に対して、複数の対象要素が存在する場合には、当該表示要素に対して複数の対象要素を対応付ける処理を行う。
【0026】
図4は、本実施形態に係る表示要素と対象要素とが一対多で対応付けされた状態の一例を示す模式図である。
図4に示す例の場合、表示要素1Aには対象要素1Bが一対一で対応付けられている。表示要素2Aには対象要素2B及び対象要素3Bが一対多で対応付けられている。表示要素3Aには対象要素4Bが一対一で対応付けられている。表示要素4Aには対象要素2B及び対象要素3Bが一対多で対応付けられている。
【0027】
このとき、対応付け部38は、例えば、表示要素を表す外接矩形の4つの角点の座標、及び、対象要素を表す外接矩形の4つの角点の座標を、図示しない記憶部に記憶する。そして、対応付け部38は、表示要素を個別に特定可能なID(Identification)情報の配列と、表示要素の対応付け候補となる対象要素を個別に特定可能なID情報の配列と、を記憶部に記憶する。
【0028】
選択部40は、対応付け部38により複数の対象要素が対応付けられた表示要素が存在する場合に、複数の対象要素の中から、表示要素に一対一で対応付ける対象要素を選択する。ここで、一対多の対応付けから、一対一の最適な対応付けを求める手法として、一例として、Gale-Shapley(GS)アルゴリズムが適用される。このGSアルゴリズムでは、例えば、「安定な結婚問題」として定式化が可能であるが、第1画像44A及び第2画像44Bの間では1つの表示要素に2つ以上の対象要素が対応付けされ、対応付けの競合が生じている。この対応付けの競合を解消するために、以下のような評価基準を設ける。
【0029】
評価基準としては、第1画像44Aの表示要素群10Aの位置及び第2画像44Bの対象要素群10Bの位置を同一座標系で表した場合に、各画像における要素の表示位置が近い要素同士を優先的に対応付ける。一例として、表示要素の基準点の座標値と、対象要素の基準点の座標値との差を求め、求めた差が最も小さい対象要素を選択する。なお、基準点の座標とは、例えば、表示要素及び対象要素の各々を示す矩形領域の左上角点の座標とされる。
【0030】
図5は、本実施形態に係る選択部40による処理の一例を説明するための模式図である。
図5に示す例は、第1画像44Aの表示要素群10Aの位置及び第2画像44Bの対象要素群10Bの各々の位置を同一の座標系に示したものである。この座標系は、表示部44に画像を表示させた場合に、当該画像の左角点を原点P0(0、0)とし、原点P0から右向きにx座標、下向きにy座標を取る座標系である。
【0031】
上述したように、表示要素2Aには対象要素2B及び対象要素3Bが対応付けられ、表示要素4Aには対象要素2B及び対象要素3Bが対応付けられている。この場合、選択部40は、表示要素2Aの基準点P2Aの座標値と対象要素2Bの基準点P2Bの座標値との差と、表示要素2Aの基準点P2Aの座標値と対象要素3Bの基準点P3Bの座標値との差と、を求める。そして、これらの差を比較し、差が小さい方の対象要素を選択する。
図5に示す例の場合、対象要素3Bが選択される。なお、上記の差としては、一例として、x座標の差分の絶対値と、y座標の差分の絶対値との合計が用いられる。
【0032】
同様に、選択部40は、表示要素4Aの基準点P4Aの座標値と対象要素2Bの基準点P2Bの座標値との差と、表示要素4Aの基準点P4Aの座標値と対象要素3Bの基準点P3Bの座標値との差と、を求める。そして、これらの差を比較し、差が小さい方の対象要素を選択する。
図5に示す例の場合、対象要素2Bが選択される。これにより、表示要素2Aと対象要素3Bとが一対一で対応付けられ、表示要素4Aと対象要素2Bとが一対一で対応付けられる。なお、仮に対象要素3Bが選択された場合、表示要素2A及び対象要素3Bの組と、表示要素4A及び対象要素3Bの組と、が生じ、競合が起こる。この場合、更に、これら各組の間で差を比較し、差がより小さい組を優先的に対応付けすればよい。
【0033】
また、上記の差は、基準点間の距離(以下、第1距離という。)として示すことができる。ここでいう第1距離とは、基準点間の直線距離であり、一例として、以下の式1に示すユークリッド距離D1が用いられる。但し、dxは、表示要素の基準点と対象要素の基準点との水平方向における水平距離を示し、dyは、表示要素の基準点と対象要素の基準点との垂直方向における垂直距離を示す。
【0035】
本実施形態によれば、第1画像44Aの各表示要素1A〜4Aと、第2画像44Bの各対象要素1B〜4Bとの間において、位置ずれは小さな範囲で局所的に起こると考えられる。このため、各画像における要素の表示位置が近い要素同士を優先的に対応付けることで、適切な対応付けを行うことができる。
【0036】
図6は、本実施形態に係る表示要素と対象要素とが一対一で対応付けされた状態の一例を示す模式図である。
図6に示す例の場合、表示要素1Aには対象要素1Bが一対一で対応付けられている。表示要素2Aには対象要素3Bが一対一で対応付けられている。表示要素3Aには対象要素4Bが一対一で対応付けられている。表示要素4Aには対象要素2Bが一対一で対応付けられている。
【0037】
検出部42は、各表示要素1A〜4Aの第1画像44Aにおける相対的な位置関係と、各表示要素1A〜4Aに一対一で対応付けられた各対象要素1B〜4Bの第2画像44Bにおける相対的な位置関係との差異を検出する。この検出部42による処理については後述する。
【0038】
図7は、本実施形態に係る表示差異検出装置30として機能するコンピュータ50の構成の一例を示すブロック図である。
【0039】
表示差異検出装置30は、例えば、
図7に示すコンピュータ50で実現することができる。コンピュータ50は、Central Processing Unit(CPU)51と、一時記憶領域としてのメモリ52と、不揮発性の記憶部53とを備える。また、コンピュータ50は、入出力装置54と、記憶媒体58に対するデータの読み込み及び書き込みを制御するRead/Write(R/W)部55と、インターネット等のネットワークに接続される通信インターフェース(I/F)56とを備える。CPU51、メモリ52、記憶部53、入出力装置54、R/W部55、及び通信I/F56は、バス57を介して互いに接続される。
【0040】
記憶部53は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を表示差異検出装置30として機能させるための表示差異検出プログラム70が記憶される。
【0041】
表示差異検出プログラム70は、取得プロセス72と、抽出プロセス74と、検索プロセス76と、対応付けプロセス78と、選択プロセス80と、検出プロセス82と、を有する。
【0042】
CPU51は、表示差異検出プログラム70を記憶部53から読み出してメモリ52に展開し、表示差異検出プログラム70が有するプロセスを順次実行する。CPU51は、取得プロセス72を実行することで、
図2に示す取得部32として動作する。また、CPU51は、抽出プロセス74を実行することで、
図2に示す抽出部34として動作する。また、CPU51は、検索プロセス76を実行することで、
図2に示す検索部36として動作する。また、CPU51は、対応付けプロセス78を実行することで、
図2に示す対応付け部38として動作する。また、CPU51は、選択プロセス80を実行することで、
図2に示す選択部40として動作する。また、CPU51は、検出プロセス82を実行することで、
図2に示す検出部42として動作する。これにより、表示差異検出プログラム70を実行したコンピュータ50が、表示差異検出装置30として機能することになる。なお、コンピュータ50が表示差異検出プログラム70を実行することにより機能する部分は、表示差異検出装置30に相当する。この例の場合、表示差異検出プログラム70を実行するCPU51は、ハードウェアである。
【0043】
なお、表示差異検出プログラム70により実現される機能は、例えば、半導体集積回路、より詳しくは、Application Specific Integrated Circuit(ASIC)等で実現することも可能である。
【0044】
次に、
図8を参照して、本実施形態に係る表示差異検出装置30の作用を説明する。なお、
図8は、本実施形態に係る表示差異検出プログラム70の処理の流れの一例を示すフローチャートである。
【0045】
なお、本実施形態では、表示差異検出装置30の表示部44に第1画像44A及び第2画像44Bが表示されており、ブラウザ表示テストの担当者による操作指示に応じて、表示差異検出プログラム70が実行される。
【0046】
まず、
図8のステップ100では、取得部32が、表示部44に表示されている第1画像44A及び第2画像44Bを取得し、第1画像44Aを抽出部34に出力し、第2画像44Bを検索部36に出力する。
【0047】
ステップ102では、抽出部34が、第1画像44Aを解析して表示要素群10Aとして、表示要素1A〜4Aを抽出する。
【0048】
ステップ104では、検索部36が、第2画像44Bから、各表示要素1A〜4Aに類似する対象要素を検索する。
【0049】
ステップ106では、対応付け部38が、各表示要素1A〜4Aに対して、検索部36で検索した少なくとも1つの対象要素を対応付ける。
【0050】
ステップ108では、選択部40が、対応付け部38により複数の対象要素が対応付けられた表示要素が存在するか否かを判定する。複数の対象要素が対応付けられた表示要素が存在すると判定した場合(肯定判定の場合)、ステップ110に移行し、複数の対象要素が対応付けられた表示要素が存在しないと判定した場合(否定判定の場合)、ステップ114に移行する。
【0051】
ステップ110では、選択部40が、複数の対象要素の中から、表示要素に一対一で対応付ける対象要素を選択する。
【0052】
ステップ112では、選択部40が、複数の対象要素が対応付けられた表示要素が他にも存在するか否かを判定する。複数の対象要素が対応付けられた表示要素が他にも存在すると判定した場合(肯定判定の場合)、ステップ110に戻り処理を繰り返す。一方、複数の対象要素が対応付けられた表示要素が他に存在しないと判定した場合(否定判定の場合)、ステップ114に移行する。
【0053】
ステップ114では、検出部42が、各表示要素1A〜4Aの第1画像44Aにおける相対的な位置関係と、各表示要素1A〜4Aに一対一で対応付けられた各対象要素1B〜4Bの第2画像44Bにおける相対的な位置関係との差異を検出する。そして、位置関係の差異を検出した後、一連の表示差異検出プログラム70の処理を終了する。
【0054】
次に、
図9を参照して、
図8に示すステップ114の具体的な処理について説明する。なお、
図9は、本実施形態に係る表示差異検出プログラム70におけるサブルーチンプログラムの処理の流れの一例を示すフローチャートである。
【0055】
まず、
図9のステップ200では、検出部42が、第1画像44Aの表示要素群10A及び第2画像44Bの対象要素群10Bの各々における2つずつの要素の組み合わせを処理対象として選択する。なお、本実施形態の説明では、表示要素及び対象要素の各々を共に「要素」として説明する。
【0056】
ステップ202では、検出部42が、選択された組み合わせに含まれる2つの要素について、第1画像44A及び第2画像44Bの各々の表示結果における相対的な位置関係を求める。
【0057】
ところで、バージョンの異なる2つのWebブラウザに基づく2つの画像は、デフォルトの行間や文字間隔等が異なる場合がある。従って、要素間の絶対的な距離によって、2つの画像における当該要素間の位置関係を比較した場合、人の目には同様に見えても位置関係が異なると判定される場合が有る。すなわち、人から見ればほぼ同じと見える位置関係でも、コンピュータによって異なると判定され、その結果、相違点が過剰に検出されてしまう。
【0058】
本実施形態では、2つの要素の上下左右方向(水平・垂直方向)の整列関係(ずれの方向)が一致していれば、当該2つの要素の相対的な位置関係は一致すると判定する。例えば、2つの要素について、
図10の左図に示される位置関係と、
図10の右図に示される位置関係とは異なると判定する。これは、
図10の左図では2つの要素の左端及び右端が揃っているのに対し、
図10の右図では2つの要素の左端及び右端が揃っていないからである。すなわち、
図10の左図と右図とでは、左右方向(水平方向)におけるずれの方向が異なる。
【0059】
一方、
図11の左図に示される位置関係と、
図11の右図に示される位置関係とは一致すると判定する。これは、一方の要素に対する他方の要素の上下方向及び左右方向におけるずれの方向が、一致するからである。なお、例えば、2つの要素間の間隔、すなわち、ずれの量が、
図11の左図に示す要素間と
図11の右図に示す要素間とで異なっても、判定結果には影響しないものとする。
【0060】
上記のような判定結果を得るための検出部42による判定方法の一例を説明する。ここでは、少なくとも一方の画像の表示結果における、2つの要素の相対的な位置関係が、
図15に示される通りであるとする。
【0061】
図12は、本実施形態に係る画像における2つの要素の相対的な位置関係の一例を示す図である。
図12に示すように、要素e1は、ステップ200において選択された2つの要素のうちの一方の要素であり、要素e2は、他方の要素である。
【0062】
要素e1の左上頂点の座標値は、(left1,top1)として表記され、右下頂点の座標値は、(right1,bottom1)として表記されている。また、要素e2の左上頂点の座標値は、(left2,top2)として表記され、右下頂点の座標値は、(right2,bottom2)として表記されている。left1、top1、right1、bottom1、left2、top2、right2、及びbottom2の値は、表示差異検出装置30にて取得済みである。
【0063】
検出部42は、上記座標値を、以下の関数f(x)に当てはめて、f0〜f7の値を求める。
【0064】
f0=f(left1−left2)
f1=f(left1−right2)
f2=f(right1−left2)
f3=f(right1−right2)
f4=f(top1−top2)
f5=f(top1−bottom2)
f6=f(bottom1−top2)
f7=f(bottom1−bottom2)
ここで、f(x)の値は、以下の通りである。
【0065】
x>αの場合、f(x)=1
−α≦x≦αの場合、f(x)=0
x<−αの場合、f(x)=−1
【0066】
なお、閾値αは、関数f(x)において比較される2つの値が同じであると判定する範囲を示す0(ゼロ)以上の定数であり、予め決定される。すなわち、関数f(x)によって求められるf0〜f7は、比較された2つの要素の左上頂点及び左下頂点に関して、上下左右方向の相対的なずれの方向を示すものである。換言すれば、f0〜f7は、
図15に示されるベクトルv1〜v4に関して、上下左右方向の向きを示すものである。
【0067】
図12の例によれば、f0〜f7の値は、以下の通りである。なお、
図12において、原点は、左上であるとする。また、ここでは、便宜上、α=0とする。
【0068】
f0=f(left1−left2)=−1
f1=f(left1−right2)=−1
f2=f(right1−left2)=1
f3=f(right1−right2)=−1
f4=f(top1−top2)=−1
f5=f(top1−bottom2)=−1
f6=f(bottom1−top2)=−1
f7=f(bottom1−bottom2)=−1
【0069】
ステップS202において、検出部42は、ステップ200にて選択された2つの要素に関するf0〜f7の値を、2つの画像のそれぞれの表示結果に関して求める。
【0070】
次に、ステップ204では、検出部42が、2つの画像のそれぞれの表示結果に関して求められたf0〜f7が一致するか否かを判定する。ここで、fに対する添え字(0〜7)が同じもの同士が比較される。比較された全ての値が一致すると判定した場合(肯定判定の場合)、ステップ206に移行し、比較された値の全ては一致しないと判定した場合(否定判定の場合)、ステップ210に移行する。
【0071】
ステップ206では、検出部42が、表示要素群10A及び対象要素群10Bの各々における2つずつの要素の組み合わせの全てに関して実行されたか否かを判定する。全ての組み合わせについて判定していない場合(否定判定の場合)、ステップ200に戻り処理を繰り返す。一方、全ての組み合わせについて判定した場合(肯定判定の場合)、ステップ208に移行する。
【0072】
ステップ208では、検出部42が、要素間の相対的な位置関係が2つの画像間において一致すると判定し、一連の処理を終了する。
【0073】
一方、ステップ210では、検出部42が、要素間の相対的な位置関係が2つの画像間において異なると判定し、一連の処理を終了する。
【0074】
図13は、本実施形態に係る第1画像44A及び第2画像44Bの各々における要素群の位置関係の一例を示す図である。
【0075】
図13の左図は、第1Webブラウザ22A及び第2Webブラウザ22Bに表示される共通のWebページ14を示す。また、
図13の中図は、第1Webブラウザ22Aにより表示されたWebページ14の画面をキャプチャして得られた第1画像44Aについて、各要素1C〜9Cの外接矩形の位置関係を示している。また、
図13の右図は、第2Webブラウザ22Bにより表示されたWebページ14の画面をキャプチャして得られた第2画像44Bについて、各要素1D〜9Dの外接矩形の位置関係を示している。なお、
図13に示される各要素は、便宜上、
図3に示される各要素とは無関係とする。
【0076】
要素1〜9のうちの2つずつの要素の組み合わせに関して、相対的な位置関係の一致又は不一致が判定されることにより、例えば、
図14に示されるような情報が得られる。
【0077】
図14は、本実施形態に係る2つの要素の組み合わせごとの位置関係の判定結果の一例を示す図である。
【0078】
図14の左図は、各組み合わせに属する2つの要素の位置関係の判定結果を行列によって表現したものである。すなわち、白丸が配置されている行及び列に係る要素の組み合わせは、相対的な位置関係が一致すると判定された組み合わせである。白丸が配置されていない行及び列に係る要素の組み合わせは、相対的な位置関係が一致しないと判定された組み合わせである。また、
図14の右図は、
図14の左図に示される情報をグラフによって表現したものである。
【0079】
なお、
図9に示すサブルーチンプログラムによる処理では、相対的な位置関係が一致しない組み合わせが検出された時点で処理が終了する。このため、位置関係が一致しない組み合わせが存在する場合は、全ての組み合わせに関して相対的な位置関係の判定は行われないが、
図14に示す例では、便宜上、全ての組み合わせの判定結果が示されている。
【0080】
本実施形態によれば、
図13に示される要素1〜9に関して、第1画像44Aの表示結果における相対的な位置関係と、第2画像44Bの表示結果における相対的な位置関係とは相違すると判定される。仮に、
図14に示す行列の全ての成分が白丸であれば、要素1〜9に関して、第1画像44Aの表示結果における相対的な位置関係と、第2画像44Bの表示結果における相対的な位置関係とは一致すると判定される。
【0081】
本実施形態によれば、一方の画像の要素を検索キーとして、他方の画像から類似する要素を検索するため、2つの画像を解析して2つの画像の各々から要素を抽出する場合と比べて、より精度の高い対応付けを行うことができる。
また、一対多の対応付けから、最適な一対一の対応付けを選択するため、ソース情報を用いなくても、画像間の差異を適切に検出することができる。
また、従来、ブラウザ表示テストの担当者が目視等で行っていた作業が自動化されるため、作業負荷が軽減され、見落とし等の発生を抑制することができる。
【0082】
[第2の実施形態]
上記の第1の実施形態では、表示要素の座標値と対象要素の座標値との差を用いて、一対多から、一対一の対応付けを行った。第2の実施形態では、表示要素と対象要素との相対的な位置関係を考慮し、評価基準となる距離を選択的に用いて、一対一の対応付け処理を行う。
【0083】
図15は、本実施形態に係るWebページにおけるページ要素の配置の一例を説明するための模式図である。
【0084】
図15に示すように、Webページにおける各ページ要素(A、B、C、A-1、A-2、B-1)は、階層的に配置されている。ページ要素間での表示の位置ずれは、各階層内での配置が変化するために生じる。通常の場合、この変化は小さな変化である。また、各階層でのページ要素の配置はシンプルで、互いの位置関係(上下左右)は維持されることが多い。このことを踏まえ、ページ要素間での表示の位置ずれは、次のいずれかに分類することができる。
【0085】
図16は、本実施形態に係るページ要素間での表示の位置ずれの分類の一例を示す模式図である。
【0086】
図16の上図に示す例では、ページ要素A5の表示の位置が上下に局所的に小さくずれてページ要素B5の位置に変化している(上下局所ずれ)。また、
図16の中図に示す例では、ページ要素A5の表示の位置が左右に局所的に小さくずれてページ要素B5の位置に変化している(左右局所ずれ)。また、
図16の下図に示す例では、ページ要素A5の表示の位置が左斜め下に大きくずれてページ要素B5の位置に変化している(折り返しずれ)。
図16の下図に示す例は、例えば、左寄せが設定されたページ要素A5が他のページ要素の右側に配置されるべきところ、ページ要素A5が他のページ要素を超えて下方向にずれたことにより、表示領域の先頭まで折り返して移動した状態である。
【0087】
上記より、ページ要素間で表示の位置が大きくずれるのは、
図16の下図に示す折り返しずれの場合である。従って、Webページにおけるページ要素間の位置ずれの傾向を反映した対応付けを行えば、より適切な対応付けを行うことができる。
【0088】
本実施形態に係る選択部40は、表示要素と対象要素との相対的な位置関係に応じて、基準点間の第1距離と、第1距離よりも短い第2距離と、を選択的に用いて、一対一の対応付けを行う。この第2距離は、例えば、後述の式2に示すように、第1距離の一例であるユークリッド距離D1と、基準点間の水平方向における水平距離dx及び基準点間の垂直方向における垂直距離dyのいずれか短い方と、の平均値として示される。つまり、第2距離は、水平距離dx及び垂直距離dyのいずれか短い方を優先させるものである。本実施形態では、対象要素が表示要素の上下方向又は左右方向に位置する場合、第1距離を用い、対象要素が表示要素の斜め下方向に位置する場合、第2距離を用いる。
【0089】
図17は、本実施形態に係る折り返しずれの場合に適用される要素間の距離の一例を説明するための図である。
図17に示すように、第1画像44Aの表示要素4Aと第2画像44Bの対象要素2Bとの間で、折り返しずれが生じている。なお、
図17では、説明の便宜上、第1画像44Aの表示要素4Aを第2画像44Bに重畳した状態で示している。
【0090】
図17に示す例では、対象要素2Bが表示要素4Aの斜め下方向(本例では左斜め下)に位置しているため、対象要素2Bと表示要素4A間の距離には第2距離が用いられる。なお、この例では、左右方向の水平距離を示すdxより、上下方向の垂直距離を示すdyの方が小さいため、第2距離には、上下方向の垂直距離を示すdyが用いられる。第2距離の一例として、以下の式2に示す距離D2が用いられる。但し、D1は、式1に示すユークリッド距離である。
【0092】
なお、表示要素と対象要素との相対的な位置関係は、一例として、表示要素の基準点と対象要素の基準点との間でベクトルを求め、2つの基準点間のベクトルを用いて特定される。これら2つの基準点間のベクトルの大きさ及び向きを判定することで、対象要素と表示要素との相対的な位置関係を特定する。一例として、ベクトルの大きさに閾値を設け、ベクトルの向きが斜め下向きで、大きさが閾値以上の場合に、対象要素が表示要素の斜め下方向に位置すると特定される。
図17に示す例の場合、対象要素2Bは、表示要素4Aの斜め下方向に位置しているため、対象要素2Bと表示要素4Aとの距離には第2距離が用いられる。
【0093】
一方、表示要素4Aには対象要素3Bも対応付けられている。この場合も、上記と同様に、表示要素4Aの基準点と対象要素3Bの基準点との間でベクトルを求め、これら2つの基準点間のベクトルを用いて、対象要素3Bの表示要素4Aに対する相対的な位置関係を特定する。
図17に示す例の場合、対象要素3Bは、表示要素4Aの上方向に位置しているため、対象要素3Bと表示要素4Aとの距離には第1距離が用いられる。
【0094】
例えば、表示要素4Aと対象要素2Bの組、及び、表示要素4Aと対象要素3Bの組の各々に対して、一例として式1で表される第1距離を適用した場合、配置によっては、表示要素4Aと対象要素3Bの組が選択される可能性がある。これに対して、表示要素4Aと対象要素2Bの組に対して、一例として式2で表される第2距離を適用し、表示要素4Aと対象要素3Bの組に対して、第1距離を適用すれば、本来対応付けされるべき表示要素4Aと対象要素2Bの組が選択される可能性が高くなる。
【0095】
本実施形態によれば、Webページにおけるページ要素間の位置ずれの傾向を反映させることで、的確に対象要素を選択することができ、間違いの少ない対応付けを行うことができる。これにより、画像間の差異の検出を適切に行うことができる。
【0096】
なお、上記の実施形態においては、Webブラウザのブラウザ表示テストを示して説明したが、本実施形態は、各種のアプリケーションプログラムのアプリ表示テストについても適用することができる。アプリケーションプログラムの場合、OSの違い等で表示の位置ずれが起こる場合があるが、本実施形態を適用することで、Webブラウザの場合と同様に表示の差異を検出することが可能となる。
【0097】
また、上記各実施形態においては、表示差異検出プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD−ROM、DVD−ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【0098】
また、上記各実施形態として表示差異検出装置及び方法を例示して説明した。各実施形態は、表示差異検出装置が備える各部の機能をコンピュータに実行させるためのプログラムの形態としてもよい。各実施形態は、このプログラムを記憶したコンピュータが読み取り可能な記憶媒体の形態としてもよい。
【0099】
その他、上記各実施形態で説明した表示差異検出装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0100】
また、上記各実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0101】
また、上記各実施形態では、プログラムを実行することにより、各実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。各実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【0102】
以上の実施形態に関し、更に以下の付記を開示する。
【0103】
(付記1)
第1画像を解析して表示要素群を抽出し、
前記表示要素群の対応付けの対象となる他の対象要素群を含む第2画像から、前記表示要素群の各表示要素に類似する対象要素を検索し、
前記各表示要素に対して、前記検索した少なくとも1つの対象要素を対応付け、
複数の対象要素が対応付けられた表示要素が存在する場合に、前記複数の対象要素の中から、前記表示要素に対応付ける対象要素を選択し、
前記各表示要素の前記第1画像における相対的な位置関係と、前記各表示要素に対応付けられた各対象要素の前記第2画像における相対的な位置関係との差異を検出する、
処理をコンピュータに実行させることを特徴とする表示差異検出プログラム。
【0104】
(付記2)
前記表示要素を選択する際に、前記表示要素群の位置及び前記対象要素群の位置を同一座標系で表した場合、前記表示要素の基準点の座標値と前記対象要素の基準点の座標値との差が最も小さい対象要素を選択することを特徴とする付記1に記載の表示差異検出プログラム。
【0105】
(付記3)
前記表示要素と前記対象要素との相対的な位置関係に応じて、前記差により示される基準点間の第1距離と、前記第1距離よりも短い第2距離と、を選択的に用いることを特徴とする付記2に記載の表示差異検出プログラム。
【0106】
(付記4)
前記第2距離は、前記第1距離と、前記基準点間の水平方向における水平距離及び前記基準点間の垂直方向における垂直距離のいずれか短い方との平均値であり、
前記対象要素が前記表示要素の上下方向又は左右方向に位置する場合、前記第1距離を用い、
前記対象要素が前記表示要素の斜め下方向に位置する場合、前記第2距離を用いることを特徴とする付記3に記載の表示差異検出プログラム。
【0107】
(付記5)
前記対象要素を検索する際に、前記表示要素との類似度が所定値以上となる部分領域を対象要素として検索することを特徴とする付記1〜4のいずれか1項に記載の表示差異検出プログラム。
【0108】
(付記6)
第1画像を解析して表示要素群を抽出する抽出部と、
前記表示要素群の対応付けの対象となる他の対象要素群を含む第2画像から、前記表示要素群の各表示要素に類似する対象要素を検索する検索部と、
前記各表示要素に対して、前記検索部により検索した少なくとも1つの対象要素を対応付ける対応付け部と、
複数の対象要素が対応付けられた表示要素が存在する場合に、前記複数の対象要素の中から、前記表示要素に対応付ける対象要素を選択する選択部と、
前記各表示要素の前記第1画像における相対的な位置関係と、前記各表示要素に対応付けられた各対象要素の前記第2画像における相対的な位置関係との差異を検出する検出部と、
を備えたことを特徴とする表示差異検出装置。
【0109】
(付記7)
前記選択部は、前記表示要素群の位置及び前記対象要素群の位置を同一座標系で表した場合に、前記表示要素の基準点の座標値と前記対象要素の基準点の座標値との差が最も小さい対象要素を選択することを特徴とする付記6に記載の表示差異検出装置。
【0110】
(付記8)
前記選択部は、前記表示要素と前記対象要素との相対的な位置関係に応じて、前記差により示される基準点間の第1距離と、前記第1距離よりも短い第2距離と、を選択的に用いることを特徴とする付記7に記載の表示差異検出装置。
【0111】
(付記9)
前記第2距離は、前記第1距離と、前記基準点間の水平方向における水平距離及び前記基準点間の垂直方向における垂直距離のいずれか短い方との平均値であり、
前記選択部は、前記対象要素が前記表示要素の上下方向又は左右方向に位置する場合、前記第1距離を用い、
前記対象要素が前記表示要素の斜め下方向に位置する場合、前記第2距離を用いることを特徴とする付記8に記載の表示差異検出装置。
【0112】
(付記10)
前記検索部は、前記表示要素との類似度が所定値以上となる部分領域を対象要素として検索することを特徴とする付記6〜9のいずれか1項に記載の表示差異検出装置。
【0113】
(付記11)
第1画像を解析して表示要素群を抽出し、
前記表示要素群の対応付けの対象となる他の対象要素群を含む第2画像から、前記表示要素群の各表示要素に類似する対象要素を検索し、
前記各表示要素に対して、前記検索した少なくとも1つの対象要素を対応付け、
複数の対象要素が対応付けられた表示要素が存在する場合に、前記複数の対象要素の中から、前記表示要素に一対一で対応付ける対象要素を選択し、
前記各表示要素の前記第1画像における相対的な位置関係と、前記各表示要素に対応付けられた各対象要素の前記第2画像における相対的な位置関係との差異を検出する、
処理をコンピュータが実行することを特徴とする表示差異検出方法。
【0114】
(付記12)
前記表示要素を選択する際に、前記表示要素群の位置及び前記対象要素群の位置を同一座標系で表した場合、前記表示要素の基準点の座標値と前記対象要素の基準点の座標値との差が最も小さい対象要素を選択することを特徴とする付記11に記載の表示差異検出方法。
【0115】
(付記13)
前記表示要素と前記対象要素との相対的な位置関係に応じて、前記差により示される基準点間の第1距離と、前記第1距離よりも短い第2距離と、を選択的に用いることを特徴とする付記12に記載の表示差異検出方法。
【0116】
(付記14)
前記第2距離は、前記第1距離と、前記基準点間の水平方向における水平距離及び前記基準点間の垂直方向における垂直距離のいずれか短い方との平均値であり、
前記対象要素が前記表示要素の上下方向又は左右方向に位置する場合、前記第1距離を用い、
前記対象要素が前記表示要素の斜め下方向に位置する場合、前記第2距離を用いることを特徴とする付記13に記載の表示差異検出方法。
【0117】
(付記15)
前記対象要素を検索する際に、前記表示要素との類似度が所定値以上となる部分領域を対象要素として検索することを特徴とする付記11〜14のいずれか1項に記載の表示差異検出方法。
【0118】
(付記16)
第1画像を解析して表示要素群を抽出し、
前記表示要素群の対応付けの対象となる他の対象要素群を含む第2画像から、前記表示要素群の各表示要素に類似する対象要素を検索し、
前記各表示要素に対して、前記検索した少なくとも1つの対象要素を対応付け、
複数の対象要素が対応付けられた表示要素が存在する場合に、前記複数の対象要素の中から、前記表示要素に対応付ける対象要素を選択し、
前記各表示要素の前記第1画像における相対的な位置関係と、前記各表示要素に対応付けられた各対象要素の前記第2画像における相対的な位置関係との差異を検出する、
処理をコンピュータに実行させる表示差異検出プログラムを記憶したことを特徴とする記憶媒体。