(57)【特許請求の範囲】
【請求項１】
画面の第１の表示結果を示す第１の画像と前記画面について前記第１の表示結果とは異なる表示環境における第２の表示結果を示す第２の画像とを入力する入力部と、
前記第１の画像と前記第２の画像とのいずれか一方のサイズを、前記第１の画像の画面要素と前記第２の画像の画面要素とに関するサイズの比に基づいて変更する変更部と、
前記サイズの変更後に、前記第１の画像及び前記第２の画像のそれぞれから部分領域を抽出し、前記第１の画像から抽出された部分領域と、前記第２の画像から抽出された部分領域とを、前記第１の画像から前記第２の画像への方向と、前記第２の画像から前記第１の画像への方向との２つの方向で比較して、前記第１の表示結果と前記第２の表示結果との移動、拡縮、消失又は追加を含む差異を、前記部分領域の単位で抽出する抽出部と、
を有することを特徴とする画面差異抽出装置。
【請求項２】
前記抽出部は、前記第１の画像から抽出される複数の特徴点と、前記第２の画像から抽出される複数の特徴点との対応関係に基づいて、前記第１の画像から抽出された部分領域と、前記第２の画像から抽出された部分領域との対応関係を特定し、対応関係を有する部分領域どうしを比較して、前記差異を抽出する、
ことを特徴とする請求項１記載の画面差異抽出装置。
【請求項３】
前記抽出部は、前記対応関係を有する部分領域どうしのうち、画素単位の一致率が所定値以上である部分領域どうしを比較して、前記差異を抽出する、
ことを特徴とする請求項２記載の画面差異抽出装置。
【請求項４】
前記変更部は、前記第１の画像から抽出される２つの特徴点の間の距離と、前記第２の画像から抽出される、前記２つの特徴点に対応する２つの特徴点の間の距離との比、又は前記第１の画像の横幅と前記第２の画像の横幅との比、又は前記第１の画像から抽出された部分領域間の距離と前記第２の画像から抽出された部分領域間の距離との比、に基づいて、前記第１の画像及び前記第２の画像のいずれか一方のサイズを変更する、
ことを特徴とする請求項１乃至３いずれか一項記載の画面差異抽出装置。
【請求項５】
前記抽出部によって抽出された部分領域単位の差異の一覧と、前記部分領域単位の差異の箇所が示された前記第１の画像と、前記部分領域単位の差異の箇所が示された前記第２の画像とを出力する出力部を有する、
ことを特徴とする請求項１乃至４いずれか一項記載の画面差異抽出装置。
【請求項６】
画面の第１の表示結果を示す第１の画像と前記画面について前記第１の表示結果とは異なる表示環境における第２の表示結果を示す第２の画像とを入力する入力手順と、
前記第１の画像と前記第２の画像とのいずれか一方のサイズを、前記第１の画像の画面要素と前記第２の画像の画面要素とに関するサイズの比に基づいて変更する変更手順と、
前記サイズの変更後に、前記第１の画像及び前記第２の画像のそれぞれから部分領域を抽出し、前記第１の画像から抽出された部分領域と、前記第２の画像から抽出された部分領域とを、前記第１の画像から前記第２の画像への方向と、前記第２の画像から前記第１の画像への方向との２つの方向で比較して、前記第１の表示結果と前記第２の表示結果との移動、拡縮、消失又は追加を含む差異を、前記部分領域の単位で抽出する抽出手順と、
をコンピュータが実行することを特徴とする画面差異抽出方法。
【請求項７】
画面の第１の表示結果を示す第１の画像と前記画面について前記第１の表示結果とは異なる表示環境における第２の表示結果を示す第２の画像とを入力する入力手順と、
前記第１の画像と前記第２の画像とのいずれか一方のサイズを、前記第１の画像の画面要素と前記第２の画像の画面要素とに関するサイズの比に基づいて変更する変更手順と、  前記サイズの変更後に、前記第１の画像及び前記第２の画像のそれぞれから部分領域を抽出し、前記第１の画像から抽出された部分領域と、前記第２の画像から抽出された部分領域とを、前記第１の画像から前記第２の画像への方向と、前記第２の画像から前記第１の画像への方向との２つの方向で比較して、前記第１の表示結果と前記第２の表示結果との移動、拡縮、消失又は追加を含む差異を、前記部分領域の単位で抽出する抽出手順と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面差異抽出装置、画面差異抽出方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、Ｗｅｂページ等の画面は、様々な環境（端末機種、ＯＳ（Operating System）、及びブラウザ等の組み合わせ）において閲覧されているが、各環境において、画面のレイアウトが異なる場合が有る。例えば、特定の環境において、画面の作成者が意図しないレイアウト崩れが発生する場合が有る。したがって、画面の作成者は、作成した画面が各環境において意図した通りに表示されることを確認するためにテストを行う必要が有る。
【０００３】
従来、斯かるテストは、各環境での表示結果と、意図した通りの表示結果とを、目視で確認することにより行われるのが一般的であったが、環境の種類（すなわち、端末機種、ＯＳ、及びブラウザ等の組み合わせ等の種類）が、多数存在するため、テストの実施者の作業負担が大きかった。
【０００４】
そこで、例えば、非特許文献１又は非特許文献２に記載されているような技術を利用して、テストの効率化を図ることが考えられる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Akihiro Hori, Shingo Takada, Haruto Tanno and Morihide Oinuma、「An Oracle based on Image Comparison for Regression Testing of Web Applications」、Proceedings of 27th International Conference on Software Engineering and Knowledge Engineering (SEKE 2015)、ACM(USA)、pp.639-645 (July 2015).
【非特許文献２】Sonal Mahajan and William G.J. Halfond、「Finding html presentation failures using image comparison techniques」、Proceedings of the 29th ACM/IEEE international conference on Automated software engineering (ASE 2014)、 ACM(USA)、pp.91-96 (2014).
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１に記載された技術では、入力としてＷｅｂページのソースコードであるＨＴＭＬ（HyperText Markup Language）のＤＯＭ（Document Object Model）ツリーの情報を必要とするため、テスト対象の実装技術に依存する。例えば、Ａｎｄｏｒｏｉｄ（登録商標）のネイティブアプリ等の、Ｗｅｂ標準仕様に基づかない環境では、当該技術を用いるのは困難である。
【０００７】
また、非特許文献２では、画像全体を画素の粒度で比較しているため、差異の有無は判るが、ユーザが、差異の有る箇所を特定するのが困難であった。また、比較される画像間において、予め解像度を揃えないと比較できないため、画面サイズが異なる画像同士を適切に比較できないという問題がある。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、画面間の差異の箇所を容易に特定可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、画面差異抽出装置は、画面の第１の表示結果を示す第１の画像と前記画面について前記第１の表示結果とは異なる表示環境における第２の表示結果を示す第２の画像とを入力する入力部と、前記第１の画像と前記第２の画像とのいずれか一方のサイズを、前記第１の画像の画面要素と前記第２の画像の画面要素とに関するサイズの比に基づいて変更する変更部と、前記サイズの変更後に、前記第１の画像及び前記第２の画像のそれぞれから部分領域を抽出し、前記第１の画像から抽出された部分領域と、前記第２の画像から抽出された部分領域とを比較して、前記部分領域の単位で、前記第１の表示結果と前記第２の表示結果との差異を抽出する抽出部と、を有する。
【発明の効果】
【００１０】
画面間の差異の箇所を容易に特定可能とすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における画面差異抽出装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画面差異抽出装置の機能構成例を示す図である。
【図３】画面差異抽出装置が実行する処理手順の一例を説明するためのフローチャートである。
【図４】本発明の実施の形態におけるデータ構造の定義例を示す図である。
【図５】フォルダ構成の一例を示す図である。
【図６】正解画面及び比較画面のレイアウトの一例を示す図である。
【図７】結果レポートへのリンク画面の表示例を示す図である。
【図８】結果レポートの表示例を示す図である。
【図９】画面画像の入力処理の処理手順の一例を説明するためのフローチャートである。
【図１０】サイズ合わせの処理手順の一例を説明するためのフローチャートである。
【図１１】画面差異情報の抽出処理の処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画面差異抽出装置のハードウェア構成例を示す図である。図１の画面差異抽出装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００１３】
画面差異抽出装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１４】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って画面差異抽出装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００１５】
図２は、本発明の実施の形態における画面差異抽出装置の機能構成例を示す図である。図２において、画面差異抽出装置１０は、画像入力部１１、サイズ整合部１２、画面差異抽出部１３、及びレポート出力部１４等を有する。これら各部は、画面差異抽出装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００１６】
画像入力部１１は、ユーザによって指定されたフォルダから、テスト対象の画面ごとに、正解画面と、１以上の比較画面とを読み込む。画像入力部１１は、また、正解画面ごとに、比較画面とのペアを含むペア情報を生成する。なお、正解画面とは、作成者の意図通りに画面が表示される環境（以下、「正解環境」という。）において当該画面が表示された結果を示す画像データ（以下、「画面画像」という。）をいう。比較画面とは、正解環境とは異なる環境（以下、「比較環境」という。）において表示された結果を示す画面画像をいう。環境は、例えば、画面を表示した端末の機種、ＯＳ（Operating System）、及びブラウザ等の組み合わせによって区別される。更に、ブラウザの表示サイズ別に環境が区別されてもよい。環境は、画面の表示条件の一例であるともいえる。なお、正解画面及び比較画面は、例えば、画面キャプチャ等によって取得されてもよい。
【００１７】
なお、画面とは、プログラムがコンピュータに表示させる画面をいう。画面は、アプリケーションプログラム等の画面であってもよいし、ＨＴＭＬ（HyperText Markup Language）等によって記述された画面であってもよい。
【００１８】
サイズ整合部１２は、正解画面と比較画面とのペアごとに、当該ペアに係る２つの画面画像に含まれる画面要素間の解像度の差異を吸収するために、正解画面の画面要素と比較画面の画面要素とのサイズ比に基づいて一方の画面画像のサイズを変更する。画面要素とは、画面の描画要素をいい、例えば、画面のレイアウトを構成する単位である。なお、画面画像のサイズは、画素数（ピクセル数）によって表現される。サイズの変更は、解像度を変更することによって実現される。
【００１９】
画面差異抽出部１３は、ペアごとに、当該ペアに係る２つの画面画像間の差異を抽出する。具体的には、画面差異抽出部１３は、ペアに係る２つの画面画像のそれぞれについて、おおよそ画面要素の粒度で矩形領域を抽出し、矩形領域単位でのマッチングを行う。画面差異抽出部１３は、マッチングの結果として、矩形領域の粒度で、消失、追加、移動等の差異を検出し、差異ごとに、当該差異の内容を示す画面差異情報を生成する。画面差異抽出部１３は、ペア情報に対して、生成された画面差異情報を設定する。
【００２０】
レポート出力部１４は、画面差異抽出部１３によって生成された画面差異情報を含む各ペア情報を結果レポートとして出力し、当該結果レポートをユーザに提示する。
【００２１】
以下、画面差異抽出装置１０が実行する処理手順について説明する。図３は、画面差異抽出装置が実行する処理手順の一例を説明するためのフローチャートである。
【００２２】
ステップＳ１１０において、画像入力部１１は、ユーザによって指定されたフォルダ配下において、テスト対象の画面ごとに記憶されている、正解画面及び比較画面群を読み込み、正解画面ごとに、同一画面に係る比較画面とのペア情報のリストを生成する。
【００２３】
図４は、本発明の実施の形態におけるデータ構造の定義例を示す図である。図４では、本実施の形態において利用される各種のデータのデータ構造が、ＢＮＦ（Backus-Naur Form）によって定義されている。
【００２４】
ステップＳ１１０に関しては、「■入力データとなる画像群」における定義が関連する。ここでは、環境ルートフォルダが、１つの正解環境フォルダと、１以上の比較環境フォルダとを含むことが示されている。また、正解環境フォルダ及び各比較環境フォルダは、それぞれ画面画像（正解画面又は比較画面）を格納した画像ファイルを含むことが示されている。正解環境フォルダに含まれる画像ファイルは、正解画面を格納した画像ファイルであり、比較環境フォルダに含まれる画像ファイルは、比較画面を格納した画像ファイルである。
【００２５】
図５は、フォルダ構成の一例を示す図である。図５には、環境ルートフォルダの下に、１つの正解環境フォルダと、２つの比較環境フォルダ（比較環境フォルダ（ａ）及び（ｂ））が含まれている例が示されている。正解環境フォルダ及び各比較環境フォルダのそれぞれには、画像ファイルＸ及び画像ファイルＹが格納されている。画像ファイルＸは、画面Ｘの表示結果が画面キャプチャ等されることにより生成された画面画像を格納したファイルである。画像ファイルＹは、画面Ｙの表示結果が画面キャプチャ等されることにより生成された画面画像を格納したファイルである。但し、正解環境フォルダの下の画像ファイルＸ及びＹは、画面Ｘ又は画面Ｙに関する正解画面を格納した画像ファイルである。比較環境フォルダ（ａ）の下の画像ファイルＸ及びＹは、環境（ａ）における画面Ｘ又は画面Ｙの表示結果を示す比較画面を格納した画像ファイルである。比較環境フォルダ（ｂ）の下の画像ファイルＸ及びＹは、環境（ｂ）における画面Ｘ又は画面Ｙの表示結果を示す比較画面を格納した画像ファイルである。なお、図５に示したフォルダ及びファイルは、例えば、補助記憶装置１０２に記憶されている。
【００２６】
図５の例によれば、ステップＳ１１０では、正解環境フォルダの下の画像ファイルＸに係る正解画面と、比較環境フォルダ（ａ）の下の画像ファイルＸに係る正解画面とのペアと、正解環境フォルダの下の画像ファイルＹに係る正解画面と、比較環境フォルダ（ａ）の下の画像ファイルＹに係る正解画面とのペアと、正解環境フォルダの下の画像ファイルＸに係る正解画面と、比較環境フォルダ（ｂ）の下の画像ファイルＸに係る正解画面とのペアと、正解環境フォルダの下の画像ファイルＹに係る正解画面と、比較環境フォルダ（ｂ）の下の画像ファイルＹに係る正解画面とのペアとの４つのペアに関してペア情報が生成される。
【００２７】
なお、ペア情報は、図４の「■出力データとなるレポート」の欄に記載されているように、正解画面情報、比較画面情報、及び画面差異リストを含む。正解画面情報とは、正解画面の画面情報である。比較画面情報とは、比較画面の画面情報である。画面情報は、当該画面の画像ファイルと、当該画像ファイルのパス名とを含む情報である。画面差異リストについては、後述される。
【００２８】
以下、便宜上、画面Ｘに関する正解画面を「正解画面Ｘ」という。また、画面Ｘに関する環境（ａ）における比較画面を「比較画面Ｘ（ａ）」という。また、画面Ｘに関する環境（ａ）における比較画面を「比較画面Ｘ（ｂ）」という。
【００２９】
図６は、正解画面及び比較画面のレイアウトの一例を示す図である。図６には、画面Ｘに関して、正解画面Ｘ、比較画面Ｘ（ａ）、及び比較画面Ｘ（ｂ）のそれぞれのレイアウトの一例が示されている。なお、各画面の大きさは、それぞれの画面のサイズ（解像度）の違いに基づく。このように、同一の画面Ｘ（例えば、同一のＨＴＭＬ（HyperText Markup Language）等）について、環境に応じてサイズやレイアウト等に違いが生じうる。
【００３０】
続いて、画像入力部１１は、結果レポート用の空のデータ領域を生成する（ステップＳ１２０）。
【００３１】
続くステップＳ１３０〜Ｓ１６０は、ステップＳ１１０において生成されたペア情報ごとに実行される。以下、処理対象とされているペア情報を、「対象ペア情報」という。
【００３２】
ステップＳ１３０において、サイズ整合部１２は、対象ペア情報に係る２つの画面画像のうちの一方の画面画像のサイズ（解像度）を変更することで、２つの画面画像の画面要素のサイズを合わせる。例えば、図６において、正解画面Ｘと比較画面Ｘ（ａ）とのサイズは異なる。したがって、この二つの画面画像のペアについては、いずれか一方のサイズが変更され、画面要素のレベルにおいて双方の画面画像のサイズが一致するように調整される。
【００３３】
続いて、画面差異抽出部１３は、対象ペア情報に係る２つの画面画像からの矩形領域の抽出と、矩形領域単位での差異の特定を行う（ステップＳ１４０）。その結果、対象ペア情報に対して、特定された差異を示す画面差異情報のリストである画面差異リストが設定される。例えば、図６に示される正解画面Ｘ及び比較画面Ｘ（ａ）であれば、「タイトル」、「広告」、「文章」、「写真」、「リンク」のそれぞれの矩形領域が抽出される。また、比較画面（ｂ）であれば、「タイトル」、「文章」、「写真」、「リンク」、「仕様に存在しないリンク」のそれぞれの矩形領域が抽出される。以下、抽出された矩形領域を、「画面要素矩形」という。
【００３４】
なお、後述されるように、画面要素矩形の抽出は、画像を解析することによって行われるため、ステップＳ１４０において抽出される画面要素矩形は、必ずしも、人間から見て意味の有る単位での画面要素矩形であるとは限らない。例えば、「タイトル」の領域が複数の画面要素矩形に分割されて抽出される可能性も有る。また、「タイトル」及び「広告」の領域に跨る画面要素矩形が抽出される可能性も有る。
【００３５】
続いて、レポート出力部１４は、結果レポートに対して、対象ペア情報を追加する（ステップＳ１６０）。
【００３６】
ステップＳ１３０〜Ｓ１６０が、全てのペアについて実行されると、レポート出力部１４は、結果レポートを表示装置１０６に出力する（ステップＳ１７０）。
【００３７】
図７は、結果レポートへのリンク画面の表示例を示す図である。図７に示されるように、リンク画面は、画面の種別（画面Ｘ、画面Ｙ）と、環境の種別（環境（ａ）、環境（ｂ））との組み合わせごとに、結果レポートへのリンクを含む。いずれかのリンクがユーザによって選択されると、図８に示されるような結果レポートが表示される。
【００３８】
図８は、結果レポートの表示例を示す図である。図８には、結果レポートＲ１及びＲ２の二つの結果レポートの表示例が示されている。
【００３９】
結果レポートＲ１は、画面Ｘと環境（ａ）との組み合わせ（正解画面Ｘと比較画面Ｘ（ａ）とのペア）に対する結果レポートである。結果レポートＲ２は、画面Ｘと環境（ｂ）との組み合わせ（正解画面Ｘと比較画面Ｘ（ｂ）とのペア）に対する結果レポートである。
【００４０】
各結果レポートには、正解画面及び比較画面と、２つの画面画像の差異の一覧を示すテーブルとが含まれる。当該テーブルには、差異ごとに、項番、差異種別、及び変異値が表示される。項番は、各差異に対して付与された番号であり、正解画面及び比較画面において差異に対応する画面要素矩形に対して、当該差異に係る項番が付されている。差異種別は、差異の種別であり、その値は、「差異なし」、「Ｘ軸方向移動」、「Ｙ軸方向移動」、「拡縮」、「消失」、又は「追加」である。変異値は、差異種別に係る差異の大きさを示す値である。
【００４１】
続いて、図３のステップＳ１１０の詳細について説明する。図９は、画面画像の入力処理の処理手順の一例を説明するためのフローチャートである。
【００４２】
ステップＳ２１０において、画像入力部１１は、ユーザに指定された環境ルートフォルダを読み込む。続いて、画像入力部１１は、環境ルートフォルダの下の正解環境フォルダを取得する（ステップＳ２２０）。例えば、正解環境フォルダのフォルダ名が予め決められており、当該フォルダ名に係るフォルダが取得されてもよい。
【００４３】
続いて、画像入力部１１は、これから生成されるペア情報を格納するための空のリスト（以下、「ペアリスト」という。）を生成する（ステップＳ２３０）。続いて、画像入力部１１は、正解環境フォルダに格納されている正解画面ごとに、ステップＳ２４０以降を実行する。ステップＳ２４０以降において処理対象とされている正解画面を、「対象正解画面」という。
【００４４】
ステップＳ２４０において、画像入力部１１は、環境ルートフォルダの下に有る全ての比較環境フォルダ（以下、「比較環境フォルダ群」という。）を取得する。
【００４５】
続いて、画像入力部１１は、取得された比較環境フォルダごとに、ステップＳ２５０及びＳ２７０を実行する。ステップＳ２５０及びＳ２７０において処理対象とされている比較環境フォルダを、「対象比較環境フォルダ」という。
【００４６】
ステップＳ２５０において、画像入力部１１は、対象比較環境フォルダ内から対象正解画面に対応する比較画面を取得し、対象正解画面と当該比較画面とに対するペア情報を生成する。対象正解画面に対応する比較画面とは、対象正解画面が対応する画面と同じ画面に対応する比較画面をいう。例えば、画面が共通する画面画像は、同じファイル名のファイルに格納されていてもよい。そうすることで、正解画面に対応する比較画面を容易に特定することができる。
【００４７】
続いて、画像入力部１１は、生成されたペア情報をペアリストに追加する（ステップＳ２７０）。
【００４８】
続いて、図３のステップＳ１３０の詳細について説明する。図１０は、サイズ合わせの処理手順の一例を説明するためのフローチャートである。
【００４９】
ステップＳ３１０において、サイズ整合部１２は、自身の作業用のメモリ領域に対象ペア情報を読み込む。
【００５０】
続いて、サイズ整合部１２は、対象ペア情報に係る正解画面及び比較画面のそれぞれから特徴点を抽出し、正解画面→比較画面の方向で特徴点マッチングを行い、正解画面と比較画面との間で対応する特徴点のペアの集合である特徴点ペア群を生成する（ステップＳ３２０）。特徴点マッチングは、例えば、Ｈａｒｒｉｓの方法、Ｓｈｉ−Ｔｏｍａｓｈｉの方法等の公知のアルゴリズムを用いて行うことができる。
【００５１】
なお、１つの特徴点ペアのデータ構造は、図４の「■中間データ」の欄に記載されている通りである。すなわち、特徴点ペアは、正解画面における特徴点の座標点と、比較画面において当該特徴点に対応する特徴点の座標点とから構成される。
【００５２】
続いて、サイズ整合部１２は、特徴点ペア群の中から、互いに十分離れた距離にある２つの特徴点ペアを選択する（ステップＳ３３０）。例えば、２つの特徴点ペアの全ての組み合わせの中で、正解画面における距離及び比較画面における距離の合計が最大である組み合わせに係る２つの特徴点ペアが選択されてもよい。又は、正解画面における距離及び比較画面における距離の合計が閾値以上である組み合わせに係る２つの特徴点ペアが選択されてもよい。当該閾値は、正解画面又は比較画面の横幅のサイズに基づいて求められてもよいし、他の方法によって求められてもよい。
【００５３】
続いて、サイズ整合部１２は、選択された２つの特徴点ペアに基づいて、正解画面の画面要素矩形と比較画面の画面要素矩形とのサイズ比を算出する（ステップＳ３４０）。具体的には、一方の特徴点ペア（以下、「特徴点ペア１」という。）の正解画面における座標点と、他方の特徴点ペア（以下、「特徴点ペア２」という。）の正解画面における座標点の距離を算出し、正解画面内距離とする。また、特徴点ペア１の比較画面における座標点と、特徴点ペア２の比較画面における座標点の距離を算出し、比較画面内距離とする。そして、正解画面内距離／比較画面内距離を計算し、これをサイズ比とする。すなわち、サイズ比は、正解画面全体のサイズと、比較画面全体のサイズとの比であるとは限らない。本実施の形態では、画面要素矩形の単位で比較が行われるため、正解画面と比較画面との間で、画面要素矩形のサイズを合わせるのが重要だからである。
【００５４】
なお、サイズ比は、上記以外の方法で算出されてもよい。例えば、正解画面の横幅／比較画面の横幅が、サイズ比として算出されてもよい。又は、正解画面の画面要素矩形間の距離／比較画面の画面要素矩形間の距離が、サイズ比として算出されてもよい。また、正解画面の横幅／比較環境における画面の横幅が、サイズ比として算出されてもよい。ここで、比較環境における画面の横幅とは、比較画面に対応した環境における端末のディスプレイの横幅であり、例えば、予め環境毎に補助記憶装置１０２等に記憶されていてもよい。このような算出方法は、画面がディスプレイの横幅に合わせて表示される環境に対して有効である。
【００５５】
続いて、サイズ整合部１２は、サイズ比に基づいて、比較画面のサイズを変更する（ステップＳ３５０）。具体的には、比較画面の縦及び横幅のサイズ（画素数）が、それぞれサイズ比を乗じることによって得られる値となるように、比較画面について解像度変換が行われる。なお、対象ペア情報において、サイズ変更前の比較画面は、サイズの変更後の比較画面によって置き換えられる。なお、正解画面のサイズが変更されてもよい。
【００５６】
続いて、図３のステップＳ１４０の詳細について説明する。図１１は、画面差異情報の抽出処理の処理手順の一例を説明するためのフローチャートである。
【００５７】
ステップＳ４１０において、画面差異抽出部１３は、自身の作業用のメモリ領域に対象ペア情報を読み込む。
【００５８】
続いて、画面差異抽出部１３は、画面差異リストを格納するための空のデータ領域を生成する（ステップＳ４１５）。画面差異リストは、図４の「出力データとなるレポート」の欄に記載されているように、０以上の画面差異情報によって構成される。
【００５９】
続いて、画面差異抽出部１３は、図１０のステップＳ３２０と同様の方法によって、対象ペア情報に係る正解画面及び比較画面から特徴点ペア群を抽出する（ステップＳ４２０）。
【００６０】
続いて、画面差異抽出部１３は、対象ペア情報に係る正解画面から画面要素矩形（以下、「正解画面要素矩形」という。）を抽出し、抽出された正解画面要素矩形がリスト化された画面要素矩形リストを生成する（ステップＳ４２５）。画面要素矩形は、図４の「■出力データとなるレポート」の欄に記載されているように、当該矩形の左上座標と右上座標とによって表現される。なお、画面要素矩形の抽出は、公知技術を組み合わせることで実現可能である。例えば、画像に対して、グレースケール化、Ｃａｎｎｙ処理、膨張処理、輪郭抽出、矩形変換（輪郭の外接矩形を求め、そこから矩形を抽出）といった手順を実行することで、画面要素矩形が抽出されてもよい。
【００６１】
なお、画面要素矩形は、必ずしも「矩形」でなくてもよい。画面を構成する部分領域が抽出されればよい。したがって、Ｌ字型、凸型、凹型、又はその他の多角形の形状の部分領域が画面要素矩形として抽出されてもよい。
【００６２】
続いて、画面差異抽出部１３は、生成された画面要素矩形リストに含まれている正解画面要素矩形ごとに、ステップＳ４３０〜Ｓ４７５を実行する。ステップＳ４３０〜Ｓ４７５において処理対象とされている正解画面要素矩形を、「対象正解画面要素矩形」という。
【００６３】
ステップＳ４３０において、画面差異抽出部１３は、対象正解画面要素矩形に係る特徴点群に対応する特徴点が、対象ペア情報に係る比較画面（以下、「対象比較画面」という。）に２以上存在するか否かを判定する。対象正解画面要素矩形に係る特徴点群とは、例えば、対象正解画面要素矩形の範囲に含まれる特徴点をいう。但し、対象正解画面要素矩形の周囲から外側において所定の範囲内に含まれる特徴点が、対象正解画面要素矩形に係る特徴点群に含まれてもよい。また、対象正解画面要素矩形に係る特徴点群に対応する特徴点が対象比較画面に２以上存在するか否かは、対象正解画面要素矩形に係る特徴点群を含む特徴点ペア（以下、「対象特徴点ペア」という。）が、ステップＳ４２０において生成された特徴点ペア群に２以上含まれているか否かに基づいて判定することができる。
【００６４】
対象正解画面要素矩形に係る特徴点群に対応する特徴点が対象比較画面に２以上存在する場合（ステップＳ４３０でＹｅｓ）、画面差異抽出部１３は、２以上存在する対象特徴点ペアの中から、互いに十分離れた距離にある２つの特徴点ペアを選択して、図１０のステップＳ３４０と同様の方法で、対象正解画面要素矩形と、対象比較画面において対象正解画面要素矩形に対応する画面要素矩形との拡縮比を算出する（ステップＳ４３５）。
【００６５】
続いて、画面差異抽出部１３は、対象正解画面要素矩形に対応する画面要素矩形を比較画面から探索し、該当する画面要素矩形（以下、「対象比較画面要素矩形」という。）が探索された場合には、対象正解画面要素矩形と対象比較画面要素矩形とを画面差異情報に設定する（ステップＳ４４０）。具体的には、画面差異抽出部１３は、対象正解画面要素矩形と、対象特徴点ペアにおいて正解画面に係る特徴点との位置関係（例えば、対象正解画面要素矩形の各頂点からのベクトル）を特定し、対象特徴点ペアにおいて比較画面に係る特徴点と当該位置関係とに基づいて、比較画面から対象正解画面要素矩形の候補矩形を切り出す。画面差異抽出部１３は、対象正解画面要素矩形と候補矩形との各画素値を比較し、画素値の一致率（画素単位の一致率）が所定値（例えば、１００％又は９５％等）以上であれば、当該候補矩形を対象比較画面要素矩形とする。但し、拡縮比が１でない場合は、候補矩形のサイズを拡縮比に基づいて拡大又は縮小して、候補矩形のサイズを対象正解画面要素矩形に一致させた上で、画素値の比較が行われる。
【００６６】
なお、対象比較画面要素矩形の切り出しは、対象正解画面要素矩形と対象比較画面とのパターンマッチングによって行われてもよい。例えば、拡縮比に基づいて対象比較画面のサイズを変更した後、対象正解画面要素矩形と同じサイズの矩形領域であって、対象正解画面要素矩形と全ての画素（又は、所定の割合（例えば、９５％）以上の画素）に関して画素値が一致する矩形領域が探索されることで対象比較画面要素矩形が切り出されてもよい。
【００６７】
画面差異抽出部１３は、画面差異情報を生成し、対象正解画面要素矩形を当該画面差異情報（以下、「対象画面差異情報」という。）に設定する。画面差異情報は、図４の「■出力データとなるレポート」の欄に記載されているように、項番、差異種別、０以上の変異値、０以上の正解画面要素矩形、及び０以上の比較画面要素矩形を含む情報である。正解画面要素矩形と比較画面要素矩形とは、それぞれの左上頂点及び右下頂点の座標によって表現される。
【００６８】
画面差異抽出部１３は、また、対象比較画面要素矩形が探索された場合には、対象比較画面要素矩形を対象画面差異情報に設定する。対象比較画面要素矩形が探索されなかった場合、対象画面差異情報には、対象比較画面要素矩形は設定されない。
【００６９】
なお、対象画面差異情報の差異種別には、「差異なし」が初期値として設定される。
【００７０】
続いて、対象比較画面要素矩形が存在した場合（ステップＳ４４５でＹｅｓ）、画面差異抽出部１３は、対象正解画面要素矩形と対象比較画面要素矩形との位置が異なるか否かを判定する（Ｓ４５０）。当該位置の異同は、対象正解画面要素矩形と対象比較画面要素矩形とのそれぞれの左上頂点の座標が同じであるか否かに基づいて判定されてもよい。
【００７１】
対象正解画面要素矩形と対象比較画面要素矩形との位置が異なる場合（ステップＳ４５０でＹｅｓ）、画面差異抽出部１３は、対象画面差異情報の差異種別に「Ｘ軸方向移動」又は「Ｙ軸方向移動」を設定し、対象画面差異情報の変異値に当該位置の差分（移動量）を設定する（ステップＳ４５５）。当該位置の差分は、例えば、対象正解画面要素矩形と対象比較画面要素矩形との左上頂点のＸ座標又はＹ座標の差分の絶対値として算出される。具体的には、Ｘ軸方向の差分が０でない場合、対象画面差異情報の差異種別に「Ｘ軸方向移動」が設定され、対象画面差異情報の変異値に、Ｘ軸方向の移動量が設定される。Ｙ軸方向の差分が０でない場合、対象画面差異情報の差異種別に「Ｙ軸方向移動」が設定され、対象画面差異情報の変異値に、Ｙ軸方向の移動量が設定される。Ｘ軸方向の差分及びＹ軸方向の差分の双方が０でない場合、対象画面差異情報の複製が生成され、一方の対象画面差異情報の差異種別、変異値に、「Ｘ軸方向移動」、Ｘ軸方向の移動量が設定され、他方の対象画面差異情報の差異種別、変異値に、「Ｙ軸方向移動」、Ｙ軸方向の移動量が設定される。
【００７２】
続いて、画面差異抽出部１３は、ステップＳ４３５において算出した拡縮比が１であるか否かを判定する（ステップＳ４６０）。拡縮比が１でない場合（ステップＳ４６０でＮｏ）、画面差異抽出部１３は、対象画面差異情報の差異種別に「拡縮」を設定し、対象画面差異情報の変異値に拡縮比を設定する（ステップＳ４６５）。なお、対象画面差異情報に対してステップＳ４５５において値が設定されている場合、画面差異抽出部１３は、対象画面差異情報の複製を生成し、当該複製の差異種別、変異値に対して、「拡縮」、拡縮比を設定する。
【００７３】
一方、対象正解画面要素矩形に係る特徴点群に対応する特徴点が対象比較画面に２以上存在しない場合（ステップＳ４３０でＮｏ）、又は対象比較画面要素矩形が存在しない場合（ステップＳ４４５でＮｏ）、画面差異抽出部１３は、対象画面差異情報の差異種別に「消失」を設定する（ステップＳ４７０）。
【００７４】
ステップＳ４６０、Ｓ４６５、又はＳ４７０に続いて、画面差異抽出部１３は、生成された対象画面差異情報を、画面差異リストに追加する（ステップＳ４７５）。なお、複数の対象画面差異情報が生成された場合には、複数の対象画面差異情報が画面差異リストに追加される。また、画面差異抽出部１３は、画面差異リストに対して対象画面差異情報を追加する際に、画面差異リストにおける対象画面差異情報の順番に対応した数値を、対象画面差異情報の項番に設定する。
【００７５】
ステップＳ４３０〜Ｓ４７５が、画面要素矩形リストに含まれている全ての正解画面要素矩形について実行されると、画面差異抽出部１３は、ステップＳ４２０〜Ｓ４７５を、正解画面と比較画面とを入れ替えて実行する（ステップＳ４８０）。なお、この場合、ステップＳ４７０では、対象画面差異情報の差異種別に対して「追加」が設定される。比較画面→正解画面の方向でマッチングしている場合において、ステップＳ４７０が実行されるときには、比較画面に存在する画面要素矩形が正解画面に存在しないことになるからである。
【００７６】
続いて、画面差異抽出部１３は、画面差異リストを対象ペア情報に設定する（ステップＳ４８５）。
【００７７】
このように生成された対象ペア情報に基づいて、図７に示したリンク画面及び図８に示した結果レポートが出力される。
【００７８】
上述したように、本実施の形態によれば、ｎ個のテスト環境においてテストを実行した際に、１個のテスト環境におけるテスト結果の画面画像を正解画面とし、他のｎ−１個の環境におけるテスト結果の画面画像（比較画面）を正解画面と比較することで、差異が自動的に抽出される。この際、差異の抽出は、画面要素矩形単位で行われる。したがって、画面レイアウト崩れを容易に検出することができ、画面間の差異の箇所を容易に特定可能とすることができる。その結果、ユーザは、比較画面の合否判定を効率的に行うことができる。
【００７９】
また、本実施の形態では、正解画面の画面要素と比較画面の画面要素とのサイズ比に基づいて、一方の画像サイズが変更された上で差異の抽出が行われる。その結果、正解画面と比較画面との解像度が異なることに起因する誤検出を回避することができ、より精度良く差異を検出することができる。また、単純に解像度の比ではなく、特徴点ペアを通して把握した画面要素の位置関係が考慮されたサイズ比を用いることで、より適切に画面要素矩形の比較を行うことができる。例えば、正解画面のサイズ（縦×横）が、１０００×５００であり、比較画面のサイズが、１５００×６００であるとする。但し、比較画面において、画面が描画されている範囲は、（０〜１０００）×（０〜５００）の範囲であり、それ以外の範囲は余白であるとする。すなわち、正解画面の画面要素矩形と、比較画面の画面要素矩形とは同じであるとする。この場合、単純に、正解画面のサイズと比較画面のサイズとの比に基づいて、一方のサイズが変更されると、当該一方に含まれている画面要素矩形のアスペクト比が崩れてしまう。一方、特徴点ペアに基づくサイズ比によれば、このような不都合の発生を回避できる可能性が高まる。
【００８０】
また、本実施の形態では、正解画面および比較画面それぞれから画面要素矩形を抽出したうえ、正解画面から比較画面への方向と、比較画面から正解画面への方向との２つの方向で、画面要素矩形のマッチングが行われる。したがって、画面要素矩形の移動、拡縮、消失、追加など様々な差異を判りやすい粒度で検出でき、画面レイアウト崩れの判定をし易くすることができる。
【００８１】
なお、本実施の形態において、サイズ整合部１２は、変更部の一例である。画面差異抽出部１３は、抽出部一例である。レポート出力部１４は、出力部の一例である。画面要素矩形は、部分領域の一例である。正解画面は、第１の表示結果を示す第１の画像の一例である。比較画面は、第２の表示結果を示す第２の画像の一例である。
【００８２】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８３】
１０          画面差異抽出装置
１１          画像入力部
１２          サイズ整合部
１３          画面差異抽出部
１４          レポート出力部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
Ｂ            バス
【図１】
0006608719.tif 000002
【図２】
0006608719.tif 000003
【図３】
0006608719.tif 000004
【図４】
0006608719.tif 000005
【図５】
0006608719.tif 000006
【図６】
0006608719.tif 000007
【図７】
0006608719.tif 000008
【図８】
0006608719.tif 000009
【図９】
0006608719.tif 000010
【図１０】
0006608719.tif 000011
【図１１】
0006608719.tif 000012