以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における画面差異抽出装置のハードウェア構成例を示す図である。図1の画面差異抽出装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
画面差異抽出装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って画面差異抽出装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
図2は、本発明の実施の形態における画面差異抽出装置の機能構成例を示す図である。図2において、画面差異抽出装置10は、画像入力部11、サイズ整合部12、画面差異抽出部13、及びレポート出力部14等を有する。これら各部は、画面差異抽出装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
画像入力部11は、ユーザによって指定されたフォルダから、テスト対象の画面ごとに、正解画面と、1以上の比較画面とを読み込む。画像入力部11は、また、正解画面ごとに、比較画面とのペアを含むペア情報を生成する。なお、正解画面とは、作成者の意図通りに画面が表示される環境(以下、「正解環境」という。)において当該画面が表示された結果を示す画像データ(以下、「画面画像」という。)をいう。比較画面とは、正解環境とは異なる環境(以下、「比較環境」という。)において表示された結果を示す画面画像をいう。環境は、例えば、画面を表示した端末の機種、OS(Operating System)、及びブラウザ等の組み合わせによって区別される。更に、ブラウザの表示サイズ別に環境が区別されてもよい。環境は、画面の表示条件の一例であるともいえる。なお、正解画面及び比較画面は、例えば、画面キャプチャ等によって取得されてもよい。
なお、画面とは、プログラムがコンピュータに表示させる画面をいう。画面は、アプリケーションプログラム等の画面であってもよいし、HTML(HyperText Markup Language)等によって記述された画面であってもよい。
サイズ整合部12は、正解画面と比較画面とのペアごとに、当該ペアに係る2つの画面画像に含まれる画面要素間の解像度の差異を吸収するために、正解画面の画面要素と比較画面の画面要素とのサイズ比に基づいて一方の画面画像のサイズを変更する。画面要素とは、画面の描画要素をいい、例えば、画面のレイアウトを構成する単位である。なお、画面画像のサイズは、画素数(ピクセル数)によって表現される。サイズの変更は、解像度を変更することによって実現される。
画面差異抽出部13は、ペアごとに、当該ペアに係る2つの画面画像間の差異を抽出する。具体的には、画面差異抽出部13は、ペアに係る2つの画面画像のそれぞれについて、おおよそ画面要素の粒度で矩形領域を抽出し、矩形領域単位でのマッチングを行う。画面差異抽出部13は、マッチングの結果として、矩形領域の粒度で、消失、追加、移動等の差異を検出し、差異ごとに、当該差異の内容を示す画面差異情報を生成する。画面差異抽出部13は、ペア情報に対して、生成された画面差異情報を設定する。
レポート出力部14は、画面差異抽出部13によって生成された画面差異情報を含む各ペア情報を結果レポートとして出力し、当該結果レポートをユーザに提示する。
以下、画面差異抽出装置10が実行する処理手順について説明する。図3は、画面差異抽出装置が実行する処理手順の一例を説明するためのフローチャートである。
ステップS110において、画像入力部11は、ユーザによって指定されたフォルダ配下において、テスト対象の画面ごとに記憶されている、正解画面及び比較画面群を読み込み、正解画面ごとに、同一画面に係る比較画面とのペア情報のリストを生成する。
図4は、本発明の実施の形態におけるデータ構造の定義例を示す図である。図4では、本実施の形態において利用される各種のデータのデータ構造が、BNF(Backus-Naur Form)によって定義されている。
ステップS110に関しては、「■入力データとなる画像群」における定義が関連する。ここでは、回帰ルートフォルダが、1以上の過去バージョンフォルダと1つの最新バージョンフォルダとを含むことが示されている。また、過去バージョンフォルダ及び最新バージョンフォルダのそれぞれは、1つの正解環境フォルダと、1以上の比較環境フォルダとを含むことが示されている。また、正解環境フォルダ及び各比較環境フォルダは、それぞれ画面画像(正解画面又は比較画面)を格納した画像ファイルを含むことが示されている。正解環境フォルダに含まれる画像ファイルは、正解画面を格納した画像ファイルであり、比較環境フォルダに含まれる画像ファイルは、比較画面を格納した画像ファイルである。
また、最新バージョンフォルダに含まれる画像ファイルは、当該画像ファイルに係る画面の表示をコンピュータに実行させるプログラムの最新バージョンによって表示された画面の画像を格納した画像ファイルであり、過去バージョンフォルダに含まれる画像ファイルは、当該画像ファイルに係る画面の表示をコンピュータに実行させるプログラムの前回バージョンによって表示された画面の画像を格納した画像ファイルである。過去バージョンフォルダが複数有る場合、各過去バージョンフォルダに対応するプログラムのバージョンは、1世代(1バージョン)ずつ異なる。また、プログラムのバージョンは、プログラムの改変又は変更によって変化する。相対的に古いバージョンは、改変前のバージョンであり、相対的に新しいバージョンは、改変後のバージョンである。また、最新バージョンは、最後の改変後のバージョンである。
図5は、フォルダ構成の一例を示す図である。図5には、回帰ルートフォルダの下に、1つの最新バージョンフォルダと、1つの過去バージョンフォルダとが含まれている例が示されている。また、最新バージョンフォルダの下には、1つの正解環境フォルダと、2つの比較環境フォルダ(比較環境フォルダ(a)及び(b))が含まれており、過去バージョンフォルダの下には、1つの正解環境フォルダと1つの比較環境フォルダ(a)とが含まれている。正解環境フォルダ及び各比較環境フォルダのそれぞれには、画像ファイルX及び画像ファイルYが格納されている。画像ファイルXは、画面Xの表示結果が画面キャプチャ等されることにより生成された画面画像を格納したファイルである。画像ファイルYは、画面Yの表示結果が画面キャプチャ等されることにより生成された画面画像を格納したファイルである。但し、正解環境フォルダの下の画像ファイルX及びYは、画面X又は画面Yに関する正解画面を格納した画像ファイルである。比較環境フォルダ(a)の下の画像ファイルX及びYは、環境(a)における画面X又は画面Yの表示結果を示す比較画面を格納した画像ファイルである。比較環境フォルダ(b)の下の画像ファイルX及びYは、環境(b)における画面X又は画面Yの表示結果を示す比較画面を格納した画像ファイルである。なお、図5に示したフォルダ及びファイルは、例えば、補助記憶装置102に記憶されている。
図5の例によれば、ステップS110では、最新バージョンフォルダの下の各比較環境フォルダの下の画像ファイルXに係る比較画面ごとに、最新バージョンフォルダの下の正解環境フォルダの下の正解画面のうち、同一画面に係る正解画面とのペアが生成される。但し、最新バージョンフォルダの下の比較画面のうち、過去バージョンフォルダの下に環境及び画面が共通する比較画面が有るものについては、正解画面とのペアではなく、環境及び画面が共通する過去バージョンの比較画面とのペアが生成される。
具体的には、最新バージョンフォルダの下の比較環境フォルダ(a)の下の画像ファイルXの比較画面と画像ファイルYの比較画面とについては、過去バージョンフォルダの下の比較環境フォルダ(a)の下の画像ファイルXの比較画面又は画像ファイルYの比較画面とのペアが生成される。一方、最新バージョンフォルダの下の比較環境フォルダ(b)の下の画像ファイルXの比較画面と画像ファイルYの比較画面とについては、最新バージョンフォルダの下の比較環境フォルダ(b)の下の画像ファイルXの比較画面又は画像ファイルYの比較画面とのペアが生成される。したがって、4つのペアが生成され、各ペアについてペア情報が生成される。
なお、過去バージョンフォルダの下の比較環境フォルダの下には、過去バージョンに関して表示結果が合格であった(画面の制作者の意図に対して許容範囲内であった)比較画面が保存されていることとする。すなわち、過去バージョンフォルダの下の比較環境フォルダの下に保存されている比較画面は、当該前回バージョンのフォルダの下の正解環境フォルダの下に保存されている正解画面との比較において、差異が無いと判定された比較画面であるとする。
以下、便宜上、最新バージョンフォルダの下の画面画像であるか過去バージョンフォルダの下の画面画像であるかを問わず、画面Xに関する正解画面を「正解画面X」という。また、画面Xに関する環境(a)における比較画面を「比較画面X(a)」という。また、画面Xに関する環境(a)における比較画面を「比較画面X(b)」という。
図6は、正解画面及び比較画面のレイアウトの一例を示す図である。図6には、画面Xに関して、正解画面X、比較画面X(a)、及び比較画面X(b)のそれぞれのレイアウトの一例が示されている。なお、各画面の大きさは、それぞれの画面のサイズ(解像度)の違いに基づく。このように、同一の画面X(例えば、同一のHTML(HyperText Markup Language)等)について、環境に応じてサイズやレイアウト等に違いが生じうる。
続いて、画像入力部11は、結果レポート用の空のデータ領域を生成する(ステップS120)。
続くステップS130〜S160は、ステップS110において生成されたペア情報ごとに実行される。以下、処理対象とされているペア情報を、「対象ペア情報」という。
ステップS130において、サイズ整合部12は、対象ペア情報に係る2つの画面画像のうちの一方の画面画像のサイズ(解像度)を変更することで、2つの画面画像の画面要素のサイズを合わせる。例えば、図6において、正解画面Xと比較画面X(a)とのサイズは異なる。したがって、この二つの画面画像のペアについては、いずれか一方のサイズが変更され、画面要素のレベルにおいて双方の画面画像のサイズが一致するように調整される。
続いて、画面差異抽出部13は、対象ペア情報に係る2つの画面画像からの矩形領域の抽出と、矩形領域単位での差異の特定を行う(ステップS140)。その結果、対象ペア情報に対して、特定された差異を示す画面差異情報のリストである画面差異リストが設定される。例えば、図6に示される正解画面X及び比較画面X(a)であれば、「タイトル」、「広告」、「文章」、「写真」、「リンク」のそれぞれの矩形領域が抽出される。また、比較画面(b)であれば、「タイトル」、「文章」、「写真」、「リンク」、「仕様に存在しないリンク」のそれぞれの矩形領域が抽出される。以下、抽出された矩形領域を、「画面要素矩形」という。
なお、後述されるように、画面要素矩形の抽出は、画像を解析することによって行われるため、ステップS140において抽出される画面要素矩形は、必ずしも、人間から見て意味の有る単位での画面要素矩形であるとは限らない。例えば、「タイトル」の領域が複数の画面要素矩形に分割されて抽出される可能性も有る。また、「タイトル」及び「広告」の領域に跨る画面要素矩形が抽出される可能性も有る。
続いて、レポート出力部14は、結果レポートに対して、対象ペア情報を追加する(ステップS160)。
ステップS130〜S160が、全てのペアについて実行されると、レポート出力部14は、結果レポートを表示装置106に出力する(ステップS170)。
図7は、結果レポートへのリンク画面の表示例を示す図である。図7に示されるように、リンク画面は、画面の種別(画面X、画面Y)と、環境の種別(環境(a)、環境(b)との組み合わせごとに、回帰テストであるか否かと、結果レポートへのリンクを含む。回帰テストであるか否かとは、正解として比較された画像が、過去バージョンの比較画面であるか否かを意味する。いずれかのリンクがユーザによって選択されると、図8に示されるような結果レポートが表示される。
図8は、結果レポートの表示例を示す図である。図8には、結果レポートR1及びR2の二つの結果レポートの表示例が示されている。
結果レポートR1は、画面Xと環境(a)との組み合わせ(正解画面Xと比較画面X(a)とのペア)に対する結果レポートである。結果レポートR2は、画面Xと環境(b)との組み合わせ(正解画面Xと比較画面X(b)とのペア)に対する結果レポートである。
各結果レポートには、正解画面及び比較画面と、2つの画面画像の差異の一覧を示すテーブルとが含まれる。当該テーブルには、差異ごとに、項番、差異種別、及び変異値が表示される。項番は、各差異に対して付与された番号であり、正解画面及び比較画面において差異に対応する画面要素矩形に対して、当該差異に係る項番が付されている。差異種別は、差異の種別であり、その値は、「差異なし」、「X軸方向移動」、「Y軸方向移動」、「拡縮」、「消失」、又は「追加」である。変異値は、差異種別に係る差異の大きさを示す値である。
続いて、図3のステップS110の詳細について説明する。図9は、画面画像の入力処理の処理手順の一例を説明するためのフローチャートである。
ステップS210において、画像入力部11は、ユーザに指定された回帰ルートフォルダを読み込む。続いて、画像入力部11は、回帰ルートフォルダの下の最新バージョンフォルダを取得する(ステップS215)。続いて、画像入力部11は、最新バージョンフォルダの下の正解環境フォルダを取得する(ステップS220)。例えば、正解環境フォルダのフォルダ名が予め決められており、当該フォルダ名に係るフォルダが取得されてもよい。
続いて、画像入力部11は、これから生成されるペア情報を格納するための空のリスト(以下、「ペアリスト」という。)を生成する(ステップS230)。続いて、画像入力部11は、続いて、正解環境フォルダに格納されている正解画面ごとに、ステップS240以降を実行する。ステップS240以降において処理対象とされている正解画面を、「対象正解画面」という。
ステップS240において、画像入力部11は、最新バージョンフォルダの下に有る全ての比較環境フォルダ(以下、「比較環境フォルダ群」という。)を取得する。
続いて、取得された比較環境フォルダごとに、ステップS250〜S275を実行する。ステップS250〜S275において処理対象とされている比較環境フォルダを、「対象比較環境フォルダ」という。
ステップS250において、画像入力部11は、対象比較環境フォルダ内から対象正解画面に対応する比較画面(以下、「対象比較画面」という。)を取得する。対象正解画面に対応する比較画面とは、対象正解画面が対応する画面と同じ画面に対応する比較画面をいい、対象正解画面と同じファイル名のファイルに格納されている比較画面である。続いて、画像入力部11は、対象比較画面に対応する画面画像(比較画面)が、いずれかの過去バージョンフォルダ(前回バージョンのフォルダ、前々回バージョンフォルダ、前々前回のバージョンフォルダ、・・・)の下に存在するか否かを確認する(ステップS255)。具体的には、最新バージョンフォルダからの対象比較画面の相対パス名をPとした場合に、いずれかの過去バージョンフォルダの下にパス名Pに該当する比較画面が存在するか否かが確認される。
該当する比較画面が存在しない場合(ステップS260でNo)、画像入力部11は、対象正解画面と対象比較画面とのペア情報(新規テスト用のペア情報)を生成する(ステップS265)。ペア情報とは、図4の「■出力データとなるレポート」の欄に記載されているように、正解画面情報、比較画面情報、画面差異リスト、及びテスト種別を含む。正解画面情報とは、正解となる画面画像の画面情報である。比較画面情報とは、正解となる画面画像と比較される画面画像の画面情報である。画面情報は、当該画面の画像ファイルと、当該画像ファイルのパス名とを含む情報である。テスト種別とは、当該ペア情報において正解となる画面画像が、最新バージョンの正解画面であるのか、前回バージョンの比較画面であるのかを示す情報である。当該ペア情報において正解となる画面画像が、最新バージョンの正解画面である場合、テスト種別の値は「新規テスト」となる。当該ペア情報において正解となる画面画像が、前回バージョンの比較画面である場合、テスト種別の値は「回帰テスト」となる。画面差異リストについては、後述される。ステップS265では、対象正解画面の画面情報を正解画面情報とし、対象比較画面の画面情報を比較画面情報とし、テスト種別の値を「新規テスト」とするペア情報が生成される。
一方、ステップS255において、該当する比較画面が存在する場合(ステップS260でYes)、画像入力部11は、当該比較画面の画面情報を正解画面情報とし、対象比較画面の画面情報を比較画面情報とし、テスト種別の値を「回帰テスト」とするペア情報を生成する(ステップS270)。図5の例によれば、最新バージョンフォルダの下の比較画面X(a)が対象比較画面である場合、過去バージョンフォルダの下の比較画面X(a)に関する画面情報を正解画面情報とし、最新バージョンフォルダの下の比較画面X(a)を比較画面情報とするペア情報が生成される。なお、ステップS255において、該当する比較画面が複数存在する場合には、該当する比較画面の中で、最も新しいバージョンの比較画面が選択される。例えば、前回バージョンに係る過去バージョンフォルダの下の比較画面と、前々回バージョンに係る過去バージョンフォルダの下の比較画面とが該当する場合、前者が選択される。
続いて、画像入力部11は、ステップS265又はS270において生成されたペア情報をペアリストに追加する(ステップS275)。
続いて、図3のステップS130の詳細について説明する。図10は、サイズ合わせの処理手順の一例を説明するためのフローチャートである。
ステップS310において、サイズ整合部12は、自身の作業用のメモリ領域に対象ペア情報を読み込む。
続いて、サイズ整合部12は、対象ペア情報に係る正解画面及び比較画面のそれぞれから特徴点を抽出し、正解画面→比較画面の方向で特徴点マッチングを行い、正解画面と比較画面との間で対応する特徴点のペアの集合である特徴点ペア群を生成する(ステップS320)。特徴点マッチングは、例えば、Harrisの方法、Shi−Tomashiの方法等の公知のアルゴリズムを用いて行うことができる。
なお、1つの特徴点ペアのデータ構造は、図4の「■中間データ」の欄に記載されている通りである。すなわち、特徴点ペアは、正解画面における特徴点の座標点と、比較画面において当該特徴点に対応する特徴点の座標点とから構成される。
続いて、サイズ整合部12は、特徴点ペア群の中から、互いに十分離れた距離にある2つの特徴点ペアを選択する(ステップS330)。例えば、2つの特徴点ペアの全ての組み合わせの中で、正解画面における距離及び比較画面における距離の合計が最大である組み合わせに係る2つの特徴点ペアが選択されてもよい。又は、正解画面における距離及び比較画面における距離の合計が閾値以上である組み合わせに係る2つの特徴点ペアが選択されてもよい。当該閾値は、正解画面又は比較画面の横幅のサイズに基づいて求められてもよいし、他の方法によって求められてもよい。
続いて、サイズ整合部12は、選択された2つの特徴点ペアに基づいて、正解画面の画面要素矩形と比較画面の画面要素矩形とのサイズ比を算出する(ステップS340)。具体的には、一方の特徴点ペア(以下、「特徴点ペア1」という。)の正解画面における座標点と、他方の特徴点ペア(以下、「特徴点ペア2」という。)の正解画面における座標点の距離を算出し、正解画面内距離とする。また、特徴点ペア1の比較画面における座標点と、特徴点ペア2の比較画面における座標点の距離を算出し、比較画面内距離とする。そして、正解画面内距離/比較画面内距離を計算し、これをサイズ比とする。すなわち、サイズ比は、正解画面全体のサイズと、比較画面全体のサイズとの比であるとは限らない。本実施の形態では、画面要素矩形の単位で比較が行われるため、正解画面と比較画面との間で、画面要素矩形のサイズを合わせるのが重要だからである。
なお、サイズ比は、上記以外の方法で算出されてもよい。例えば、正解画面の横幅/比較画面の横幅が、サイズ比として算出されてもよい。又は、正解画面の画面要素矩形間の距離/比較画面の画面要素矩形間の距離が、サイズ比として算出されてもよい。また、正解画面の横幅/比較環境における画面の横幅が、サイズ比として算出されてもよい。ここで、比較環境における画面の横幅とは、比較画面に対応した環境における端末のディスプレイの横幅であり、例えば、予め環境毎に補助記憶装置102等に記憶されていてもよい。このような算出方法は、画面がディスプレイの横幅に合わせて表示される環境に対して有効である。
続いて、サイズ整合部12は、サイズ比に基づいて、比較画面のサイズを変更する(ステップS350)。具体的には、比較画面の縦及び横幅のサイズ(画素数)が、それぞれサイズ比を乗じることによって得られる値となるように、比較画面について解像度変換が行われる。なお、対象ペア情報において、サイズ変更前の比較画面は、サイズの変更後の比較画面によって置き換えられる。なお、正解画面のサイズが変更されてもよい。
続いて、図3のステップS140の詳細について説明する。図11は、画面差異情報の抽出処理の処理手順の一例を説明するためのフローチャートである。
ステップS410において、画面差異抽出部13は、自身の作業用のメモリ領域に対象ペア情報を読み込む。
続いて、画面差異抽出部13は、画面差異リストを格納するための空のデータ領域を生成する(ステップS415)。画面差異リストは、図4の「出力データとなるレポート」の欄に記載されているように、0以上の画面差異情報によって構成される。
続いて、画面差異抽出部13は、図10のステップS320と同様の方法によって、対象ペア情報に係る正解画面及び比較画面から特徴点ペア群を抽出する(ステップS420)。
続いて、画面差異抽出部13は、対象ペア情報に係る正解画面から画面要素矩形(以下、「正解画面要素矩形」という。)を抽出し、抽出された正解画面要素矩形がリスト化された画面要素矩形リストを生成する(ステップS425)。画面要素矩形は、図4の「■出力データとなるレポート」の欄に記載されているように、当該矩形の左上座標と右上座標とによって表現される。なお、画面要素矩形の抽出は、公知技術を組み合わせることで実現可能である。例えば、画像に対して、グレースケール化、Canny処理、膨張処理、輪郭抽出、矩形変換(輪郭の外接矩形を求め、そこから矩形を抽出)といった手順を実行することで、画面要素矩形が抽出されてもよい。
なお、画面要素矩形は、必ずしも「矩形」でなくてもよい。画面を構成する部分領域が抽出されればよい。したがって、L字型、凸型、凹型、又はその他の多角形の形状の部分領域が画面要素矩形として抽出されてもよい。
続いて、画面差異抽出部13は、生成された画面要素矩形リストに含まれている正解画面要素矩形ごとに、ステップS430〜S475を実行する。ステップS430〜S475において処理対象とされている正解画面要素矩形を、「対象正解画面要素矩形」という。
ステップS430において、画面差異抽出部13は、対象正解画面要素矩形に係る特徴点群に対応する特徴点が、対象ペア情報に係る比較画面(以下、「対象比較画面」という。)に2以上存在するか否かを判定する。対象正解画面要素矩形に係る特徴点群とは、例えば、対象正解画面要素矩形の範囲に含まれる特徴点をいう。但し、対象正解画面要素矩形の周囲から外側において所定の範囲内に含まれる特徴点が、対象正解画面要素矩形に係る特徴点群に含まれてもよい。また、対象正解画面要素矩形に係る特徴点群に対応する特徴点が対象比較画面に2以上存在するか否かは、対象正解画面要素矩形に係る特徴点群を含む特徴点ペア(以下、「対象特徴点ペア」という。)が、ステップS420において生成された特徴点ペア群に2以上含まれているか否かに基づいて判定することができる。
対象正解画面要素矩形に係る特徴点群に対応する特徴点が対象比較画面に2以上存在する場合(ステップS430でYes)、画面差異抽出部13は、2以上存在する対象特徴点ペアの中から、互いに十分離れた距離にある2つの特徴点ペアを選択して、図10のステップS340と同様の方法で、対象正解画面要素矩形と、対象比較画面において対象正解画面要素矩形に対応する画面要素矩形との拡縮比を算出する(ステップS435)。
続いて、画面差異抽出部13は、対象正解画面要素矩形に対応する画面要素矩形を比較画面から探索し、該当する画面要素矩形(以下、「対象比較画面要素矩形」という。)が探索された場合には、対象正解画面要素矩形と対象比較画面要素矩形とを画面差異情報に設定する(ステップS440)。具体的には、画面差異抽出部13は、対象正解画面要素矩形と、対象特徴点ペアにおいて正解画面に係る特徴点との位置関係(例えば、対象正解画面要素矩形の各頂点からのベクトル)を特定し、対象特徴点ペアにおいて比較画面に係る特徴点と当該位置関係とに基づいて、比較画面から対象正解画面要素矩形の候補矩形を切り出す。画面差異抽出部13は、対象正解画面要素矩形と候補矩形との各画素値を比較し、画素値の一致率(画素単位の一致率)が所定値(例えば、100%又は95%等)以上であれば、当該候補矩形を対象比較画面要素矩形とする。但し、拡縮比が1でない場合は、候補矩形のサイズを拡縮比に基づいて拡大又は縮小して、候補矩形のサイズを対象正解画面要素矩形に一致させた上で、画素値の比較が行われる。
なお、対象比較画面要素矩形の切り出しは、対象正解画面要素矩形と対象比較画面とのパターンマッチングによって行われてもよい。例えば、拡縮比に基づいて対象比較画面のサイズを変更した後、対象正解画面要素矩形と同じサイズの矩形領域であって、対象正解画面要素矩形と全ての画素(又は、所定の割合(例えば、95%)以上の画素)に関して画素値が一致する矩形領域が探索されることで対象比較画面要素矩形が切り出されてもよい。
画面差異抽出部13は、画面差異情報を生成し、対象正解画面要素矩形を当該画面差異情報(以下、「対象画面差異情報」という。)に設定する。画面差異情報は、図4の「■出力データとなるレポート」の欄に記載されているように、項番、差異種別、0以上の変異値、0以上の正解画面要素矩形、及び0以上の比較画面要素矩形を含む情報である。正解画面要素矩形と比較画面要素矩形とは、それぞれの左上頂点及び右下頂点の座標によって表現される。
画面差異抽出部13は、また、対象比較画面要素矩形が探索された場合には、対象比較画面要素矩形を対象画面差異情報に設定する。対象比較画面要素矩形が探索されなかった場合、対象画面差異情報には、対象比較画面要素矩形は設定されない。
なお、対象画面差異情報の差異種別には、「差異なし」が初期値として設定される。
続いて、対象比較画面要素矩形が存在した場合(ステップS445でYes)、画面差異抽出部13は、対象正解画面要素矩形と対象比較画面要素矩形との位置が異なるか否かを判定する(S450)。当該位置の異同は、対象正解画面要素矩形と対象比較画面要素矩形とのそれぞれの左上頂点の座標が同じであるか否かに基づいて判定されてもよい。
対象正解画面要素矩形と対象比較画面要素矩形との位置が異なる場合(ステップS450でYes)、画面差異抽出部13は、対象画面差異情報の差異種別に「X軸方向移動」又は「Y軸方向移動」を設定し、対象画面差異情報の変異値に当該位置の差分(移動量)を設定する(ステップS455)。当該位置の差分は、例えば、対象正解画面要素矩形と対象比較画面要素矩形との左上頂点のX座標又はY座標の差分の絶対値として算出される。具体的には、X軸方向の差分が0でない場合、対象画面差異情報の差異種別に「X軸方向移動」が設定され、対象画面差異情報の変異値に、X軸方向の移動量が設定される。Y軸方向の差分が0でない場合、対象画面差異情報の差異種別に「Y軸方向移動」が設定され、対象画面差異情報の変異値に、Y軸方向の移動量が設定される。X軸方向の差分及びY軸方向の差分の双方が0でない場合、対象画面差異情報の複製が生成され、一方の対象画面差異情報の差異種別、変異値に、「X軸方向移動」、X軸方向の移動量が設定され、他方の対象画面差異情報の差異種別、変異値に、「Y軸方向移動」、Y軸方向の移動量が設定される。
続いて、画面差異抽出部13は、ステップS435において算出した拡縮比が1であるか否かを判定する(ステップS460)。拡縮比が1でない場合(ステップS460でNo)、画面差異抽出部13は、対象画面差異情報の差異種別に「拡縮」を設定し、対象画面差異情報の変異値に拡縮比を設定する(ステップS465)。なお、対象画面差異情報に対してステップS455において値が設定されている場合、画面差異抽出部13は、対象画面差異情報の複製を生成し、当該複製の差異種別、変異値に対して、「拡縮」、拡縮比を設定する。
一方、対象正解画面要素矩形に係る特徴点群に対応する特徴点が対象比較画面に2以上存在しない場合(ステップS430でNo)、又は対象比較画面要素矩形が存在しない場合(ステップS445でNo)、画面差異抽出部13は、対象画面差異情報の差異種別に「消失」を設定する(ステップS470)。
ステップS460、S465、又はS470に続いて、画面差異抽出部13は、生成された対象画面差異情報を、画面差異リストに追加する(ステップS475)。なお、複数の対象画面差異情報が生成された場合には、複数の対象画面差異情報が画面差異リストに追加される。また、画面差異抽出部13は、画面差異リストに対して対象画面差異情報を追加する際に、画面差異リストにおける対象画面差異情報の順番に対応した数値を、対象画面差異情報の項番に設定する。
ステップS430〜S475が、画面要素矩形リストに含まれている全ての正解画面要素矩形について実行されると、画面差異抽出部13は、ステップS420〜S475を、正解画面と比較画面とを入れ替えて実行する(ステップS480)。なお、この場合、ステップS470では、対象画面差異情報の差異種別に対して「追加」が設定される。比較画面→正解画面の方向でマッチングしている場合において、ステップS470が実行されるときには、比較画面に存在する画面要素矩形が正解画面に存在しないことになるからである。
続いて、画面差異抽出部13は、画面差異リストを対象ペア情報に設定する(ステップS485)。
このように生成された対象ペア情報に基づいて、図7に示したリンク画面及び図8に示した結果レポートが出力される。
上述したように、本実施の形態によれば、n個のテスト環境においてテストを実行した際に、1個のテスト環境におけるテスト結果の画面画像を正解画面とし、他のn−1個の環境におけるテスト結果の画面画像(比較画面)を正解画面と比較することで、差異が自動的に抽出される。この際、差異の抽出は、画面要素矩形単位で行われる。したがって、画面レイアウト崩れを容易に検出することができ、画面間の差異の箇所を容易に特定可能とすることができる。その結果、ユーザは、比較画面の合否判定を効率的に行うことができる。
また、本実施の形態では、正解画面の画面要素と比較画面の画面要素とのサイズ比に基づいて、一方の画像サイズが変更された上で差異の抽出が行われる。その結果、正解画面と比較画面との解像度が異なることに起因する誤検出を回避することができ、より精度良く差異を検出することができる。また、単純に解像度の比ではなく、特徴点ペアを通して把握した画面要素の位置関係が考慮されたサイズ比を用いることで、より適切に画面要素矩形の比較を行うことができる。例えば、正解画面のサイズ(縦×横)が、1000×500であり、比較画面のサイズが、1500×600であるとする。但し、比較画面において、画面が描画されている範囲は、(0〜1000)×(0〜500)の範囲であり、それ以外の範囲は余白であるとする。すなわち、正解画面の画面要素矩形と、比較画面の画面要素矩形とは同じであるとする。この場合、単純に、正解画面のサイズと比較画面のサイズとの比に基づいて、一方のサイズが変更されると、当該一方に含まれている画面要素矩形のアスペクト比が崩れてしまう。一方、特徴点ペアに基づくサイズ比によれば、このような不都合の発生を回避できる可能性が高まる。
また、本実施の形態では、正解画面および比較画面それぞれから画面要素矩形を抽出したうえ、正解画面から比較画面への方向と、比較画面から正解画面への方向との2つの方向で、画面要素矩形のマッチングが行われる。したがって、画面要素矩形の移動、拡縮、消失、追加など様々な差異を判りやすい粒度で検出でき、画面レイアウト崩れの判定をし易くすることができる。
また、本実施の形態によれば、複数回繰り返し実行される回帰テストにおいて、例えば、前回(m−1回目)のテスト実行した際のテスト結果を正解(合格)とし、今回(m回目)テスト実行のテスト結果を、正解画面と比較し差異を自動的に抽出してレポートことで、回帰テストにおけるテスト結果の合否判定を効率的に行える。すなわち、何度も繰り返される回帰テストにおける合否判定に関する膨大な作業を省力化することができる。
また、同一環境に関する過去の回帰テストごとの画面画像の中で、最新の画面画像が正解画面として選択されるため、適切な比較対象との比較において、差異を抽出することができる。
なお、本実施の形態において、サイズ整合部12は、変更部の一例である。画面差異抽出部13は、抽出部一例である。画像入力部11は、入力部の一例である。画面要素矩形は、部分領域の一例である。正解画面は、第1の表示結果を示す第1の画像の一例である。比較画面は、第2の表示結果を示す第2の画像の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。