以下、図面に基づいて本発明の実施の形態を説明する。図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、及び合否判定ルール適用部15等を有する。これら各部は、画面差異合否判定装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。画面差異合否判定装置10は、また、合否判定ルール記憶部16を利用する。合否判定ルール記憶部16は、例えば、補助記憶装置102、又は画面差異合否判定装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
画像入力部11は、ユーザによって指定されたフォルダから、テスト対象の画面ごとに、正解画面と、1以上の比較画面とを読み込む。画像入力部11は、また、正解画面ごとに、比較画面とのペアを含むペア情報を生成する。なお、正解画面とは、作成者の意図通りに画面が表示される環境(以下、「正解環境」という。)において当該画面が表示された結果を示す画像データ(以下、「画面画像」という。)をいう。比較画面とは、正解環境とは異なる環境(以下、「比較環境」という。)において表示された結果を示す画面画像をいう。環境は、例えば、画面を表示した端末の機種、OS(Operating System)、及びブラウザ等の組み合わせによって区別される。更に、ブラウザの表示サイズ別に環境が区別されてもよい。環境は、画面の表示条件の一例であるともいえる。なお、正解画面及び比較画面は、例えば、画面キャプチャ等によって取得されてもよい。
なお、画面とは、プログラムがコンピュータに表示させる画面をいう。画面は、アプリケーションプログラム等の画面であってもよいし、HTML(HyperText Markup Language)等によって記述された画面であってもよい。
サイズ整合部12は、正解画面と比較画面とのペアごとに、当該ペアに係る2つの画面画像に含まれる画面要素間の解像度の差異を吸収するために、正解画面の画面要素と比較画面の画面要素とのサイズ比に基づいて一方の画面画像のサイズを変更する。画面要素とは、画面の描画要素をいい、例えば、画面のレイアウトを構成する単位である。なお、画面画像のサイズは、画素数(ピクセル数)によって表現される。サイズの変更は、解像度を変更することによって実現される。
画面差異抽出部13は、ペアごとに、当該ペアに係る2つの画面画像間の差異を抽出する。具体的には、画面差異抽出部13は、ペアに係る2つの画面画像のそれぞれについて、おおよそ画面要素の粒度で矩形領域を抽出し、矩形領域単位でのマッチングを行う。画面差異抽出部13は、マッチングの結果として、矩形領域の粒度で、消失、追加、移動等の差異を検出し、差異ごとに、当該差異の内容を示す画面差異情報を生成する。画面差異抽出部13は、ペア情報に対して、生成された画面差異情報を設定する。
合否判定ルール適用部15は、ペアごとに、画面差異抽出部13によって生成された各画面差異情報に係る差異ついて、合否判定ルール記憶部16に記憶されている各合否判定ルールを適用して問題の有無を判定する。合否判定ルールとは、差異について、許容範囲を示す情報であり、例えば、予めユーザによって設定される。合否判定ルール適用部15は、全ての差異について問題が無い(許容範囲内である)ペアに係る比較画面ついては、合格であると判定し、そうでないペアに係る比較画面ついては、不合格であると判定する。判定結果は、各ペアのペア情報に設定される。
レポート出力部14は、画面差異抽出部13によって生成された画面差異情報を含み、合否判定ルール適用部15による合否の判定結果が設定された各ペア情報を結果レポートとして出力し、当該結果レポートをユーザに提示する。
以下、画面差異合否判定装置10が実行する処理手順について説明する。図3は、画面差異合否判定装置が実行する処理手順の一例を説明するためのフローチャートである。
ステップS110において、画像入力部11は、ユーザによって指定されたフォルダ配下において、テスト対象の画面ごとに記憶されている、正解画面及び比較画面群を読み込み、正解画面ごとに、同一画面に係る比較画面とのペア情報のリストを生成する。
図4は、本発明の実施の形態におけるデータ構造の定義例を示す図である。図4では、本実施の形態において利用される各種のデータのデータ構造が、BNF(Backus-Naur Form)によって定義されている。
ステップS110に関しては、「■入力データとなる画像群」における定義が関連する。ここでは、環境ルートフォルダが、1つの正解環境フォルダと、1以上の比較環境フォルダとを含むことが示されている。また、正解環境フォルダ及び各比較環境フォルダは、それぞれ画面画像(正解画面又は比較画面)を格納した画像ファイルを含むことが示されている。正解環境フォルダに含まれる画像ファイルは、正解画面を格納した画像ファイルであり、比較環境フォルダに含まれる画像ファイルは、比較画面を格納した画像ファイルである。
図5は、フォルダ構成の一例を示す図である。図5には、環境ルートフォルダの下に、1つの正解環境フォルダと、2つの比較環境フォルダ(比較環境フォルダ(a)及び(b))が含まれている例が示されている。正解環境フォルダ及び各比較環境フォルダのそれぞれには、画像ファイル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)の下の画像ファイルYに係る正解画面とのペアと、正解環境フォルダの下の画像ファイルXに係る正解画面と、比較環境フォルダ(b)の下の画像ファイルXに係る正解画面とのペアと、正解環境フォルダの下の画像ファイルYに係る正解画面と、比較環境フォルダ(b)の下の画像ファイルYに係る正解画面とのペアとの4つのペアに関してペア情報が生成される。
なお、ペア情報は、図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において抽出される画面要素矩形は、必ずしも、人間から見て意味の有る単位での画面要素矩形であるとは限らない。例えば、「タイトル」の領域が複数の画面要素矩形に分割されて抽出される可能性も有る。また、「タイトル」及び「広告」の領域に跨る画面要素矩形が抽出される可能性も有る。
続いて、合否判定ルール適用部15は、対象ペア情報に対して設定された画面差異リストに含まれている各画面差異情報に対して、合否判定ルール記憶部16に記憶されている合否判定ルールを適用して、対象ペア情報に係る比較画面の合否を判定する(ステップS150)。合否判定ルール適用部15は、判定結果を、対象ペア情報に設定する。
続いて、レポート出力部14は、結果レポートに対して、対象ペア情報を追加する(ステップS160)。
ステップS130〜S160が、全てのペアについて実行されると、レポート出力部14は、結果レポートを表示装置106に出力する(ステップS170)。
図7は、結果レポートへのリンク画面の表示例を示す図である。図7に示されるように、リンク画面は、画面の種別(画面X、画面Y)と、環境の種別(環境(a)、環境(b))との組み合わせごとに、合否判定ルール適用部15による合否の判定結果と結果レポートへのリンクとを含む。いずれかのリンクがユーザによって選択されると、図8に示されるような結果レポートが表示される。
図8は、結果レポートの表示例を示す図である。結果レポートR1は、画面Xと環境(b)との組み合わせに対する結果レポートである。
結果レポートR1には、正解画面X及び比較画面X(b)と、2つの画面画像の差異の一覧を示すテーブルとが含まれる。当該テーブルには、差異ごとに、項番、差異種別、変異値、合否判定ルールに基づく判定結果、及び適用した合否判定ルールが表示される。項番は、各差異に対して付与された番号であり、正解画面及び比較画面において差異に対応する画面要素矩形に対して、当該差異に係る項番が付されている。差異種別は、差異の種別であり、その値は、「差異なし」、「X軸方向移動」、「Y軸方向移動」、「拡縮」、「消失」、又は「追加」である。変異値は、差異種別に係る差異の変異の値である。合否判定ルールに基づく判定結果は、差異に対して合否判定ルールを適用することで得られる問題の有無を示す情報である。「問題なし」は、合否判定ルールに違反していないことを意味し、「要確認」は、合否判定ルールに違反していることを意味する。適用した合否判定ルールは、差異に対して適用した合否判定ルールの内容である。
ユーザは、このような結果レポートを参照することで、比較画面の合否を容易に確認することができる。
続いて、図3のステップS110の詳細について説明する。図9は、画面画像の入力処理の処理手順の一例を説明するためのフローチャートである。
ステップS210において、画像入力部11は、ユーザに指定された環境ルートフォルダを読み込む。続いて、画像入力部11は、環境ルートフォルダの下の正解環境フォルダを取得する(ステップS220)。例えば、正解環境フォルダのフォルダ名が予め決められており、当該フォルダ名に係るフォルダが取得されてもよい。
続いて、画像入力部11は、これから生成されるペア情報を格納するための空のリスト(以下、「ペアリスト」という。)を生成する(ステップS230)。続いて、画像入力部11は、正解環境フォルダに格納されている正解画面ごとに、ステップS240以降を実行する。ステップS240以降において処理対象とされている正解画面を、「対象正解画面」という。
ステップS240において、画像入力部11は、環境ルートフォルダの下に有る全ての比較環境フォルダ(以下、「比較環境フォルダ群」という。)を取得する。
続いて、画像入力部11は、取得された比較環境フォルダごとに、ステップS250及びS270を実行する。ステップS250及びS270において処理対象とされている比較環境フォルダを、「対象比較環境フォルダ」という。
ステップS250において、画像入力部11は、対象比較環境フォルダ内から対象正解画面に対応する比較画面を取得し、対象正解画面と当該比較画面とに対するペア情報を生成する。対象正解画面に対応する比較画面とは、対象正解画面が対応する画面と同じ画面に対応する比較画面をいう。例えば、画面が共通する画面画像は、同じファイル名のファイルに格納されていてもよい。そうすることで、正解画面に対応する比較画面を容易に特定することができる。
続いて、画像入力部11は、生成されたペア情報をペアリストに追加する(ステップS270)。
続いて、図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以上の比較画面要素矩形、及び1以上の合否判定ルールに基づく判定結果を含む情報である。正解画面要素矩形と比較画面要素矩形とは、それぞれの左上頂点及び右下頂点の座標によって表現される。合否判定ルールに基づく判定結果は、画面差異情報に係る差異に関して、合否判定ルールに基づいて自動的判定された合否を示す情報である。
画面差異抽出部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)。
続いて、ステップS150の詳細について説明する。図12は、画面差異情報への合否判定ルールの適用処理の処理手順の一例を説明するためのフローチャートである。
ステップS510において、合否判定ルール適用部15は、自身の作業用のメモリ領域に対象ペア情報を読み込む。続いて、合否判定ルール適用部15は、対象ペア情報に設定されている画面差異リストを取得する(ステップS520)。続いて、合否判定ルール適用部15は、合否判定ルール記憶部16に記憶されている合否判定ルールのリスト(合否判定ルールリスト)を読み込む(ステップS530)。
図13は、合否判定ルールの構成例を示す図である。図13において、各行は、合否判定ルールの一例である。合否判定ルールは、ルール対象、差異種別、及び許容範囲等を含む。ルール対象は、合否判定ルールの適用対象となる比較環境を示す情報である。全体は、全ての比較環境(本実施の形態では、環境(a)及び環境(b))が適用対象であることを示す。差異種別は、合否判定ルールの適用対象となる差異種別を示す。許容範囲は、差異に対する許容範囲を示す。
続いて、合否判定ルール適用部15は、画面差異リストに含まれている画面差異情報ごとに、合否判定ルールリストに含まれている各合否判定ルールについて、ステップS540〜S570を実行する。ステップS540〜S570において処理対象とされている画面差異情報を、「対象画面差異情報」という。また、ステップS540〜S570において処理対象とされている合否判定ルールを「対象ルール」という。
ステップS540において、合否判定ルール適用部15は、対象ペア情報に係る比較画面の環境と、対象画面差異情報の差異種別とが、対象ルールのルール対象、差異種別に合致するか否かを判定する。すなわち、対象画面差異情報が対象ルールの適用対象であるか否かが判定される。対象ペア情報に係る比較画面の環境と、対象画面差異情報の差異種別との少なくともいずれか一方が、対象ルールのルール対象又は差異種別に合致しない場合(ステップS540でNo)、合否判定ルールリストにおいて次の合否判定ルールが処理対象とされて、ステップS540以降が繰り替えされる。
一方、対象ペア情報に係る比較画面の環境と、対象画面差異情報の差異種別とが、対象ルールのルール対象、差異種別に合致する場合(ステップS540でYes)、合否判定ルール適用部15は、対象画面差異情報の変異値が対象ルールの許容範囲内であるか否かを判定する(ステップS550)。当該変異値が、当該許容範囲内である場合(ステップS550でYes)、合否判定ルール適用部15は、合否判定ルールに基づく判定結果として、「問題なし」を対象画面差異情報に設定する(ステップS560)。一方、当該変異値が、当該許容範囲外である場合(ステップS550でNo)、合否判定ルール適用部15は、合否判定ルールに基づく判定結果として、「要確認」を対象画面差異情報に設定する(ステップS570)。
ステップS540〜S570が、画面差異リストに含まれている全ての画面差異情報について、合否判定ルールリストに含まれている各合否判定ルールに関して実行されると、合否判定ルール適用部15は、対象ペア情報の画面差異リストに基づいて、対象ペア情報に係る比較画面の合否を判定する(ステップS580)。具体的には、対象ペア情報の画面差異リストに含まれている全ての画面差異情報の合否判定ルールに基づく判定結果が「問題なし」であれば、対象ペア情報の合否判定結果に対して「合格」が設定される。対象ペア情報の画面差異リストに含まれているいずれかの画面差異情報の合否判定ルールに基づく判定結果が「要確認」であれば、対象ペア情報の合否判定結果に対して「不合格」が設定される。
このように生成された対象ペア情報に基づいて、図7に示したリンク画面及び図8に示した結果レポートが出力される。
上述したように、本実施の形態によれば、n個のテスト環境においてテストを実行した際に、1個のテスト環境におけるテスト結果の画面画像を正解画面とし、他のn−1個の環境におけるテスト結果の画面画像(比較画面)を正解画面と比較することで、差異が自動的に抽出される。この際、差異の抽出は、画面要素矩形単位で行われる。したがって、画面レイアウト崩れを容易に検出することができ、画面間の差異の箇所を容易に特定可能とすることができる。その結果、ユーザは、比較画面の合否判定を効率的に行うことができる。
また、本実施の形態では、正解画面の画面要素と比較画面の画面要素とのサイズ比に基づいて、一方の画像サイズが変更された上で差異の抽出が行われる。その結果、正解画面と比較画面との解像度が異なることに起因する誤検出を回避することができ、より精度良く差異を検出することができる。また、単純に解像度の比ではなく、特徴点ペアを通して把握した画面要素の位置関係が考慮されたサイズ比を用いることで、より適切に画面要素矩形の比較を行うことができる。例えば、正解画面のサイズ(縦×横)が、1000×500であり、比較画面のサイズが、1500×600であるとする。但し、比較画面において、画面が描画されている範囲は、(0〜1000)×(0〜500)の範囲であり、それ以外の範囲は余白であるとする。すなわち、正解画面の画面要素矩形と、比較画面の画面要素矩形とは同じであるとする。この場合、単純に、正解画面のサイズと比較画面のサイズとの比に基づいて、一方のサイズが変更されると、当該一方に含まれている画面要素矩形のアスペクト比が崩れてしまう。一方、特徴点ペアに基づくサイズ比によれば、このような不都合の発生を回避できる可能性が高まる。
また、本実施の形態では、正解画面および比較画面それぞれから画面要素矩形を抽出したうえ、正解画面から比較画面への方向と、比較画面から正解画面への方向との2つの方向で、画面要素矩形のマッチングが行われる。したがって、画面要素矩形の移動、拡縮、消失、追加など様々な差異を判りやすい粒度で検出でき、画面レイアウト崩れの判定をし易くすることができる。
また、本実施の形態によれば、抽出された差異について、予め設定された合否判定ルールが適用されて、自動的に合否を判定することができる。したがって、合否の判定結果を均一化することができる。
また、合否判定ルールは、環境に応じて設定可能である。したがって、環境に対応した合否判定ルールを適用することで、各環境の特性に合わせた合否判定を自動で行うことができる。
なお、本実施の形態において、サイズ整合部12は、変更部の一例である。画面差異抽出部13は、抽出部一例である。合否判定ルール適用部15は、適用部の一例である。合否判定ルールは、規則の一例である。画面要素矩形は、部分領域の一例である。正解画面は、第1の表示結果を示す第1の画像の一例である。比較画面は、第2の表示結果を示す第2の画像の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。