(57)【特許請求の範囲】
【請求項１】
アプリケーションの画面内に表示されるオブジェクトの種類ごとに、オブジェクトが正常に表示されていると判定するためのルールを定義した定義データをメモリから取得する定義取得部と、
前記アプリケーションの実行時における前記アプリケーションの画面を記録した画像データを前記メモリから取得する画像取得部と、
前記画像取得部により取得された画像データから少なくとも１種類のオブジェクトの存在の目印となる要素を画像認識により抽出してから、その要素の近傍の領域を切り出すことで前記画像データから前記少なくとも１種類のオブジェクトを抽出し、前記定義取得部により取得された定義データを参照して、抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定することで、前記画像データに記録されている前記アプリケーションの画面の異常を検出する異常検出部と
を備える画面試験装置。
【請求項２】
前記画像取得部は、画面サイズおよび画面解像度の少なくともいずれかが異なる端末で前記アプリケーションを実行した場合における各端末の前記アプリケーションの画面を記録したデータを前記画像データとして取得し、
前記異常検出部は、前記画像データに記録されている各端末の前記アプリケーションの画面の異常を検出する請求項１に記載の画面試験装置。
【請求項３】
前記画像取得部は、異なる種類の前記アプリケーションの実行時における各種類の前記アプリケーションの画面を記録したデータを前記画像データとして取得し、
前記異常検出部は、前記画像データに記録されている各種類の前記アプリケーションの画面の異常を検出する請求項１または２に記載の画面試験装置。
【請求項４】
前記異常検出部は、前記アプリケーションの画面内に表示されるオブジェクトの種類ごとに、オブジェクトの隣または周囲に表示される文字および図形の少なくともいずれかの要素を定義した要素データを参照して、前記画像データにおける、抽出した要素の隣または内側から前記少なくとも１種類のオブジェクトを抽出する請求項１から３のいずれか１項に記載の画面試験装置。
【請求項５】
前記定義取得部は、少なくとも一部の種類のオブジェクトについて、対応するルールを定義するとともに、対応するルールが守られていると判定するための基準になるモデル、または、対応するルールが守られていると判定するために利用される認識方法を定義したデータを前記定義データとして取得し、
前記異常検出部は、前記定義データに、抽出したオブジェクトの種類に対応するモデルまたは認識方法が定義されていれば、当該モデルまたは当該認識方法を用いて、抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定する請求項１から４のいずれか１項に記載の画面試験装置。
【請求項６】
前記定義取得部は、少なくとも一部の種類のオブジェクトについて、対応するルールを定義するとともに、オブジェクトをモデル化したテンプレート画像を記録したデータを前記定義データとして取得し、
前記異常検出部は、前記定義データに、抽出したオブジェクトの種類に対応するテンプレート画像が記録されていれば、当該テンプレート画像を用いたテンプレートマッチングを行って、抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定する請求項１から５のいずれか１項に記載の画面試験装置。
【請求項７】
前記異常検出部は、抽出したオブジェクトの種類に対応するルールが守られていないと判定した場合、判定結果を出力し、出力した判定結果が正しいかどうかの判断結果の入力をユーザから受け付ける請求項１から６のいずれか１項に記載の画面試験装置。
【請求項８】
前記異常検出部は、出力した判定結果が誤りであるという判断結果が前記ユーザから入力された場合、前記定義データに定義されているルールの修正を前記ユーザから受け付け、前記修正を前記定義データに反映する請求項７に記載の画面試験装置。
【請求項９】
コンピュータに、
アプリケーションの画面内に表示されるオブジェクトの種類ごとに、オブジェクトが正常に表示されていると判定するためのルールを定義した定義データをメモリから取得する定義取得処理と、
前記アプリケーションの実行時における前記アプリケーションの画面を記録した画像データを前記メモリから取得する画像取得処理と、
前記画像取得処理により取得された画像データから少なくとも１種類のオブジェクトの存在の目印となる要素を画像認識により抽出してから、その要素の近傍の領域を切り出すことで前記画像データから前記少なくとも１種類のオブジェクトを抽出し、前記定義取得処理により取得された定義データを参照して、抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定することで、前記画像データに記録されている前記アプリケーションの画面の異常を検出する異常検出処理と
を実行させる画面試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面試験装置および画面試験プログラムに関するものである。
【背景技術】
【０００２】
特許文献１に記載の技術では、ＧＵＩ制御プログラムの表示項目の位置等を示すテスト項目テーブルが画面設計仕様書から作成され、テスト項目テーブルと同一フォーマットの画面項目テーブルが画面の解析結果から作成され、テスト項目テーブルと画面項目テーブルとの比較により各項目の位置等が正しいか判定される。「ＧＵＩ」は、Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅの略語である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１７５３７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術では、画面を試験する際に、同じ座標同士の比較を実施しているため、画面サイズまたは画面解像度が異なる端末で試験を実施したり、異なる種類のウェブブラウザで試験を実施したりした場合に試験結果を正しく評価することができない。端末ごと、あるいは、ウェブブラウザの種類ごとにテスト項目テーブルを作成することが考えられるが、その場合、試験の効率が大幅に低下してしまう。【０００５】
本発明は、画面の試験の効率化を目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る画面試験装置は、
アプリケーションの画面内に表示されるオブジェクトの種類ごとに、オブジェクトが正常に表示されていると判定するためのルールを定義した定義データをメモリから取得する定義取得部と、
前記アプリケーションの実行時における前記アプリケーションの画面を記録した画像データを前記メモリから取得する画像取得部と、
前記画像取得部により取得された画像データから少なくとも１種類のオブジェクトを抽出し、前記定義取得部により取得された定義データを参照して、抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定することで、前記画像データに記録されている前記アプリケーションの画面の異常を検出する異常検出部とを備える。【０００７】
前記画像取得部は、画面サイズおよび画面解像度の少なくともいずれかが異なる端末で前記アプリケーションを実行した場合における各端末の前記アプリケーションの画面を記録したデータを前記画像データとして取得し、
前記異常検出部は、前記画像データに記録されている各端末の前記アプリケーションの画面の異常を検出する。【０００８】
前記画像取得部は、異なる種類の前記アプリケーションの実行時における各種類の前記アプリケーションの画面を記録したデータを前記画像データとして取得し、
前記異常検出部は、前記画像データに記録されている各種類の前記アプリケーションの画面の異常を検出する。【０００９】
前記画面試験装置は、
マークアップ言語で記述されたファイルと、スタイルシート言語で記述されたファイルとの少なくともいずれかを含み、前記画像データに記録されている前記アプリケーションの画面に対応するソースファイルを前記メモリから取得するソース取得部をさらに備え、
前記異常検出部は、前記ソース取得部により取得されたソースファイルを参照して、前記アプリケーションの画面内で前記少なくとも１種類のオブジェクトが表示される位置を算出し、前記画像データにおける、算出した位置から前記少なくとも１種類のオブジェクトを抽出する。【００１０】
前記異常検出部は、画像認識を行って、前記画像データから前記少なくとも１種類のオブジェクトを抽出する。【００１１】
前記定義取得部は、少なくとも一部の種類のオブジェクトについて、対応するルールを定義するとともに、オブジェクトをモデル化したテンプレート画像を記録したデータを前記定義データとして取得し、
前記異常検出部は、前記定義データに、抽出したオブジェクトの種類に対応するテンプレート画像が記録されていれば、当該テンプレート画像を用いたテンプレートマッチングを行って、抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定する。【００１２】
前記異常検出部は、抽出したオブジェクトの種類に対応するルールが守られていないと判定した場合、判定結果を出力し、出力した判定結果が正しいかどうかの判断結果の入力をユーザから受け付ける。【００１３】
前記異常検出部は、出力した判定結果が誤りであるという判断結果が前記ユーザから入力された場合、前記定義データに定義されているルールの修正を前記ユーザから受け付け、前記修正を前記定義データに反映する。【００１４】
本発明の一態様に係る画面試験プログラムは、
コンピュータに、
アプリケーションの画面内に表示されるオブジェクトの種類ごとに、オブジェクトが正常に表示されていると判定するためのルールを定義した定義データをメモリから取得する定義取得処理と、
前記アプリケーションの実行時における前記アプリケーションの画面を記録した画像データを前記メモリから取得する画像取得処理と、
前記画像取得処理により取得された画像データから少なくとも１種類のオブジェクトを抽出し、前記定義取得処理により取得された定義データを参照して、抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定することで、前記画像データに記録されている前記アプリケーションの画面の異常を検出する異常検出処理とを実行させる。
【発明の効果】
【００１５】
本発明では、個別のオブジェクトの位置等を事前に定義していなくても画面の試験が可能であるため、画面の試験の効率が向上する。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１に係る画面試験装置の構成を示すブロック図。
【図２】実施の形態１に係る画面試験装置の定義データの例を示す表。
【図３】実施の形態１に係る画面試験装置の画像データの例を示す図。
【図４】実施の形態１に係る画面試験装置のソースファイルの例を示す図。
【図５】実施の形態１に係る画面試験装置のソースファイルの例を示す図。
【図６】実施の形態１に係る画面試験装置の動作を示すフローチャート。
【図７】実施の形態１に係る画面試験装置の異常検出部の動作を示すフローチャート。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態が部分的に実施されても構わない。
【００１８】
実施の形態１．
本実施の形態について、図１から図７を用いて説明する。
【００１９】
＊＊＊構成の説明＊＊＊
図１を参照して、本実施の形態に係る画面試験装置１０の構成を説明する。
【００２０】
画面試験装置１０は、コンピュータである。画面試験装置１０は、プロセッサ１１を備えるとともに、メモリ１２、入力機器１３、ディスプレイ１４および通信装置１５といった他のハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２１】
画面試験装置１０は、機能要素として、定義取得部２１と、画像取得部２２と、ソース取得部２３と、異常検出部２４とを備える。定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の機能は、ソフトウェアにより実現される。
【００２２】
プロセッサ１１は、画面試験プログラムを実行する装置である。画面試験プログラムは、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の機能を実現するプログラムである。プロセッサ１１は、例えば、ＣＰＵである。「ＣＰＵ」は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語である。
【００２３】
メモリ１２は、画面試験プログラムを記憶する装置である。メモリ１２は、例えば、フラッシュメモリまたはＲＡＭである。「ＲＡＭ」は、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略語である。
【００２４】
入力機器１３は、画面試験プログラムへのデータの入力のためにユーザにより操作される機器である。入力機器１３は、例えば、マウス、キーボードまたはタッチパネルである。
【００２５】
ディスプレイ１４は、画面試験プログラムから出力されるデータを画面に表示する機器である。ディスプレイ１４は、例えば、ＬＣＤである。「ＬＣＤ」は、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略語である。
【００２６】
通信装置１５は、画面試験プログラムに入力されるデータを受信するレシーバと、画面試験プログラムから出力されるデータを送信するトランスミッタとを含む。通信装置１５は、例えば、通信チップまたはＮＩＣである。「ＮＩＣ」は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略語である。
【００２７】
画面試験プログラムは、プロセッサ１１に読み込まれ、プロセッサ１１によって実行される。メモリ１２には、画面試験プログラムだけでなく、ＯＳも記憶されている。「ＯＳ」は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略語である。プロセッサ１１は、ＯＳを実行しながら、画面試験プログラムを実行する。
【００２８】
画面試験プログラムおよびＯＳは、補助記憶装置に記憶されていてもよい。補助記憶装置は、例えば、フラッシュメモリまたはＨＤＤである。「ＨＤＤ」は、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。補助記憶装置に記憶されている画面試験プログラムおよびＯＳは、メモリ１２にロードされ、プロセッサ１１によって実行される。
【００２９】
なお、画面試験プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００３０】
画面試験装置１０は、プロセッサ１１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、画面試験プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ１１と同じように、画面試験プログラムを実行する装置である。
【００３１】
画面試験プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ１２、補助記憶装置、または、プロセッサ１１内のレジスタまたはキャッシュメモリに記憶される。
【００３２】
画面試験プログラムは、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の「部」を「処理」に読み替えた各処理、または、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の「部」を「手順」に読み替えた各手順をコンピュータに実行させるプログラムである。画面試験プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
【００３３】
メモリ１２には、定義データ３１が記憶される。
【００３４】
定義データ３１は、アプリケーションの画面内に表示されるオブジェクトの種類ごとに、オブジェクトが正常に表示されていると判定するためのルールを定義したデータである。アプリケーションは、例えば、ウェブブラウザである。定義データ３１は、本実施の形態では、少なくとも一部の種類のオブジェクトについて、対応するルールを定義するとともに、オブジェクトをモデル化したテンプレート画像を記録したデータである。定義データ３１は、任意の形式のデータでよいが、本実施の形態ではデータベースのテーブルである。
【００３５】
定義データ３１は、画面を試験するユーザにより入力機器１３を介して入力される。あるいは、定義データ３１は、画面試験装置１０の外部のサーバまたはストレージ等から通信装置１５を介して取得される。
【００３６】
図２に示す定義データ３１では、以下のように、１０種類のオブジェクトについて、オブジェクトが正常に表示されていると判定するためのルールとともに、ルールが守られていると判定するための基準になるモデル、または、ルールが守られていると判定するために利用される認識方法が定義されている。
（１）表については、「枠崩れがない」というルールとともに、モデルとして「輪郭」の特徴量が定義されている。
（２）ラジオボタンについては、「丸い形状が存在する」というルールとともに、モデルとして「輪郭」の特徴量が定義されている。
（３）チェックボックスについては、「四角い形状が存在する」というルールとともに、モデルとして「輪郭」の特徴量が定義されている。
（４）コンボボックスについては、「開いたときに文字切れがない」および「正しい要素が存在する」という２つのルールとともに、認識方法として「文字認識」を利用することが定義されている。
（５）ボタンについては、「文字切れがない」というルールとともに、認識方法として「文字認識」を利用することが定義されている。また、「ボタンの相対的な位置関係が同じ」というルールとともに、モデルとして「輪郭」の特徴量が定義され、認識方法として「文字認識」および「文字領域抽出」を利用することが定義されている。
（６）タブについては、「文字切れがない」というルールとともに、認識方法として「文字認識」を利用することが定義されている。
（７）テキストフォームについては、「文字切れがない」というルールとともに、認識方法として「文字認識」を利用することが定義されている。
（８）文字については、「改行位置が同じ」というルールとともに、認識方法として「文字認識」および「文字領域抽出」を利用することが定義されている。また、「アイコン等の画像と文字の相対的な位置関係が同じ」というルールとともに、認識方法として「文字領域抽出」および「テンプレートマッチング」を利用することが定義されている。図示していないが、「テンプレートマッチング」に用いるテンプレート画像も記録されている。（９）スクロールバーについては、「スクロールバーが出ている」というルールとともに、認識方法として「テンプレートマッチング」を利用することが定義されている。図示していないが、「テンプレートマッチング」に用いるテンプレート画像も記録されている。（１０）アイコンについては、「アイコンが表示されている」というルールとともに、モデルとして「局所特徴量」が定義されている。
【００３７】
メモリ１２には、画像データ３２がさらに記憶される。
【００３８】
画像データ３２は、アプリケーションの実行時におけるアプリケーションの画面を記録したデータである。すなわち、画像データ３２は、アプリケーションの画面のスクリーンショットである。画像データ３２は、本実施の形態では、アプリケーションの画面全体を１つの画像として記録したデータであるが、アプリケーションの画面を、オブジェクトを含む領域ごとに別々の画像として記録したデータであってもよい。
【００３９】
画像データ３２は、アプリケーションを実行する端末４０から通信装置１５を介して取得される。あるいは、画像データ３２は、画面試験装置１０の内部で端末４０がアプリケーションを実行する動作を模擬することにより生成される。画像データ３２は、端末４０から取得されるか、画面試験装置１０の内部で生成されるかに関わらず、一般的なオートメーションツールを用いて自動でアプリケーションを操作しながらスクリーンショットを撮ることで、効率的に生成することができる。
【００４０】
図３に示す画像データ３２では、ウェブブラウザの画面として、日本語で表示された申し込み画面５０が記録されている。申し込み画面５０には、以下のように、少なくとも４種類のオブジェクトが表示されている。
（１）表５１が表示されているが、罫線に不具合がある。
（２）３つのチェックボックス５２が正常に表示されている。
（３）２つのテキストフォーム５３が正常に表示されている。
（４）「表示設定内容を指定してください」、「印刷対象」、「契約者氏名」および「契約者住所（本籍地）」といった文字５４が表示されているが、「契約者住所（本籍地）」の改行位置に不具合がある。
【００４１】
メモリ１２には、ソースファイル３３がさらに記憶される。
【００４２】
ソースファイル３３は、画像データ３２に記録されているアプリケーションの画面に対応するファイルである。ソースファイル３３には、マークアップ言語で記述されたファイルと、スタイルシート言語で記述されたファイルとの少なくともいずれかが含まれる。マークアップ言語で記述されたファイルは、例えば、ＨＴＭＬファイルである。「ＨＴＭＬ」は、ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅの略語である。スタイルシート言語で記述されたファイルは、例えば、ＣＳＳファイルである。「ＣＳＳ」は、Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓの略語である。
【００４３】
ソースファイル３３は、アプリケーションを実行する端末４０から通信装置１５を介して画像データ３２とともに取得される。あるいは、ソースファイル３３は、画面試験装置１０の外部のサーバまたはストレージ等から通信装置１５を介して取得され、画面試験装置１０の内部で端末４０がアプリケーションを実行する動作を模擬する際に利用される。
【００４４】
図４および図５に示すソースファイル３３は、それぞれＨＴＭＬファイル６１およびＣＳＳファイル６２であり、いずれも図３に示した画像データ３２に記録されている申し込み画面５０に対応している。
【００４５】
＊＊＊動作の説明＊＊＊
図６を参照して、本実施の形態に係る画面試験装置１０の動作を説明する。画面試験装置１０の動作は、本実施の形態に係る画面試験方法に相当する。
【００４６】
ステップＳ１０１において、定義取得部２１は、定義データ３１をメモリ１２から取得する。
【００４７】
ステップＳ１０２において、画像取得部２２は、画像データ３２をメモリ１２から取得する。
【００４８】
ステップＳ１０３において、ソース取得部２３は、ソースファイル３３をメモリ１２から取得する。
【００４９】
なお、ステップＳ１０１からステップＳ１０３の処理の順序は適宜変更することができる。ステップＳ１０１からステップＳ１０３の処理が並行して行われてもよい。
【００５０】
ステップＳ１０４において、異常検出部２４は、画像取得部２２により取得された画像データ３２から少なくとも１種類のオブジェクトを抽出する。
【００５１】
具体的には、異常検出部２４は、ソース取得部２３により取得されたソースファイル３３を参照して、アプリケーションの画面内で少なくとも１種類のオブジェクトが表示される位置を算出する。異常検出部２４は、画像取得部２２により取得された画像データ３２における、算出した位置から当該少なくとも１種類のオブジェクトの画像を取得することで、当該少なくとも１種類のオブジェクトを抽出する。異常検出部２４は、取得した画像をメモリ１２に一旦格納する。
【００５２】
例えば、異常検出部２４は、図４に示したＨＴＭＬファイル６１と、図５に示したＣＳＳファイル６２とを参照して、図３の申し込み画面５０内で表５１が表示される位置を算出する。位置の算出方法としては、任意の方法を用いることができるが、ここでは、従来の方法を用いて、表５１の左上隅のＸ座標およびＹ座標と、表５１の幅および高さとが計算され、計算結果から特定される矩形領域が位置の算出結果として扱われるものとする。異常検出部２４は、図３に示した画像データ３２から、算出した矩形領域を切り出すことで、表５１の画像を取得する。
【００５３】
また、例えば、異常検出部２４は、図４に示したＨＴＭＬファイル６１と、図５に示したＣＳＳファイル６２とを参照して、図３の申し込み画面５０内で各チェックボックス５２が表示される位置を算出する。位置の算出方法としては、任意の方法を用いることができるが、ここでは、従来の方法を用いて、各チェックボックス５２の左上隅のＸ座標およびＹ座標と、各チェックボックス５２の幅および高さとが計算され、計算結果から特定される矩形領域が位置の算出結果として扱われるものとする。異常検出部２４は、図３に示した画像データ３２から、算出した矩形領域を切り出すことで、各チェックボックス５２の画像を取得する。
【００５４】
また、例えば、異常検出部２４は、図４に示したＨＴＭＬファイル６１と、図５に示したＣＳＳファイル６２とを参照して、図３の申し込み画面５０内で「契約者住所（本籍地）」という文字５４が表示される位置を算出する。位置の算出方法としては、任意の方法を用いることができるが、ここでは、従来の方法を用いて、「契約者住所（本籍地）」という文字５４の左上隅のＸ座標およびＹ座標と、その文字５４の幅および高さとが計算され、計算結果から特定される矩形領域が位置の算出結果として扱われるものとする。異常検出部２４は、図３に示した画像データ３２から、算出した矩形領域を切り出すことで、「契約者住所（本籍地）」という文字５４の画像を取得する。
【００５５】
なお、異常検出部２４は、ソースファイル３３を参照する代わりに、または、ソースファイル３３を参照するとともに、アプリケーションの画面の設計書等のドキュメントを参照して、アプリケーションの画面内で少なくとも１種類のオブジェクトが表示される位置を算出してもよい。その場合も、異常検出部２４は、画像取得部２２により取得された画像データ３２における、算出した位置から当該少なくとも１種類のオブジェクトの画像を取得することで、当該少なくとも１種類のオブジェクトを抽出する。
【００５６】
あるいは、異常検出部２４は、画像認識を行って、画像データ３２から少なくとも１種類のオブジェクトを抽出してもよい。その場合、オブジェクトを画像認識により直接抽出してもよいが、正常に表示されていないオブジェクトの抽出が困難になる可能性がある。そのため、まずはオブジェクトの存在の目印となる要素を画像認識により抽出してから、その要素の近傍の領域を切り出すことでオブジェクトを抽出することが望ましい。
【００５７】
具体的な変形例として、アプリケーションの画面内に表示されるオブジェクトの種類ごとに、オブジェクトの隣または周囲に表示される文字および図形の少なくともいずれかの要素を定義した要素データがメモリ１２に記憶されているとする。異常検出部２４は、画像認識を行って、画像データ３２から１つ以上の要素を抽出する。異常検出部２４は、メモリ１２に記憶された要素データを参照して、画像データ３２における、抽出した要素の隣または内側からオブジェクトを抽出する。例えば、図３に示した画像データ３２から、「契約者氏名」および「契約者住所（本籍地）」といった文字５４を要素として抽出し、これらの要素の右隣からテキストフォーム５３を抽出する、といったことが可能である。
【００５８】
ステップＳ１０５において、異常検出部２４は、定義取得部２１により取得された定義データ３１を参照して、ステップＳ１０３で抽出したオブジェクトの種類に対応するルールが守られているかどうかを判定することで、画像取得部２２により取得された画像データ３２に記録されているアプリケーションの画面の異常を検出する。
【００５９】
ステップＳ１０５の処理により、異常検出部２４は、アプリケーションを実行する端末４０の画面解像度、画面サイズおよびＯＳに関わらず、またアプリケーションの種類に関わらず、アプリケーションの画面に異常が発生するかどうかを、共通の定義データ３１を用いて確認することができる。
【００６０】
例えば、ステップＳ１０２で、画像取得部２２が、画面サイズおよび画面解像度の少なくともいずれかが異なる端末４０でアプリケーションを実行した場合における各端末４０のアプリケーションの画面を記録したデータを画像データ３２として取得したとする。その場合、ステップＳ１０５において、異常検出部２４は、共通の定義データ３１を参照して、画像データ３２に記録されている各端末４０のアプリケーションの画面の異常を検出することができる。
【００６１】
よって、異常検出部２４は、ソースファイル３３が共通するウェブ画面をＰＣ、タブレットおよびスマートフォンといった種類の異なる端末４０で表示した場合に、どの端末４０で異常が発生するかを、共通の定義データ３１を用いて確認することができる。あるいは、異常検出部２４は、ソースファイル３３が共通するウェブ画面をＯＳの異なる端末４０で表示した場合に、どの端末４０で異常が発生するかを、共通の定義データ３１を用いて確認することができる。「ＰＣ」は、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒの略語である。
【００６２】
また、例えば、ステップＳ１０２で、画像取得部２２が、異なる種類のアプリケーションの実行時における各種類のアプリケーションの画面を記録したデータを画像データ３２として取得したとする。その場合、ステップＳ１０５において、異常検出部２４は、共通の定義データ３１を参照して、画像データ３２に記録されている各種類のアプリケーションの画面の異常を検出することができる。
【００６３】
よって、異常検出部２４は、ソースファイル３３が共通するウェブ画面を種類の異なるウェブブラウザによって表示した場合に、どのウェブブラウザで異常が発生するかを、共通の定義データ３１を用いて確認することができる。あるいは、異常検出部２４は、ソースファイル３３が共通するウェブ画面をバージョンの異なるウェブブラウザによって表示した場合に、どのウェブブラウザで異常が発生するかを、共通の定義データ３１を用いて確認することができる。
【００６４】
図７を参照して、ステップＳ１０５の処理の詳細を説明する。
【００６５】
ステップＳ２０１において、異常検出部２４は、オブジェクトの種類に対応するカウンタｉと、オブジェクトｉの画像に対応するカウンタｊとをそれぞれ「１」に初期化する。
【００６６】
ステップＳ２０２において、異常検出部２４は、ステップＳ１０４でメモリ１２に格納したオブジェクトｉの画像ｊを読み込む。
【００６７】
ステップＳ２０３において、異常検出部２４は、ステップＳ１０１で取得された定義データ３１を参照して、ステップＳ２０２で読み込んだオブジェクトｉの画像ｊが、オブジェクトｉに対応するルールに適合しているかどうかを判定する。このとき、異常検出部２４は、定義データ３１に、オブジェクトｉに対応するテンプレート画像が記録されていれば、当該テンプレート画像を用いたテンプレートマッチングを行って、オブジェクトｉの画像ｊがルールに適合しているかどうかを判定する。オブジェクトｉの画像ｊがルールに適合していれば、ステップＳ２０４の処理が行われる。オブジェクトｉの画像ｊがルールに適合していなければ、ステップＳ２０８の処理が行われる。
【００６８】
例えば、異常検出部２４は、図２に示した定義データ３１を参照して、図３に示した画像データ３２から取得した表５１の画像の「輪郭」の特徴量を計算し、計算結果と表のモデルとを比較する。異常検出部２４は、比較結果から、表５１の画像が「枠崩れがない」というルールに適合しているかどうかを判定する。図３に示した画像データ３２では、罫線に不具合があるため、表５１の画像がルールに適合していないと判定される。
【００６９】
また、例えば、異常検出部２４は、図２に示した定義データ３１を参照して、図３に示した画像データ３２から取得した各チェックボックス５２の画像の「輪郭」の特徴量を計算し、計算結果とチェックボックスのモデルとを比較する。異常検出部２４は、比較結果から、各チェックボックス５２の画像が「四角い形状が存在する」というルールに適合しているかどうかを判定する。図３に示した画像データ３２では、各チェックボックス５２が正常に表示されているため、各チェックボックス５２の画像がルールに適合していると判定される。
【００７０】
また、例えば、異常検出部２４は、図２に示した定義データ３１を参照して、図３に示した画像データ３２から取得した「契約者住所（本籍地）」という文字５４の画像の「文字認識」および「文字領域抽出」を実行する。異常検出部２４は、実行結果から、「契約者住所（本籍地）」という文字５４の画像が「改行位置が同じ」というルールに適合しているかどうかを判定する。図３に示した画像データ３２では、「契約者住所（本籍地）」の改行位置に不具合があり、これを「改行位置が同じ」でないこととみなしたとすると、「契約者住所（本籍地）」という文字５４の画像がルールに適合していないと判定される。
【００７１】
なお、異常検出部２４は、図４に示したＨＴＭＬファイル６１から「契約者住所（本籍地）」の文字数を計算し、計算した文字数に１文字の幅の閾値を掛けた数値と、ステップＳ１０４で計算した文字５４の幅とを比較して、「契約者住所（本籍地）」という文字５４の画像が「改行位置が同じ」というルールに適合しているかどうかを判定してもよい。仮に、改行がないことを「改行位置が同じ」であることとみなし、また、１文字の幅の閾値が２０ピクセル、ステップＳ１０４で計算されたＤＯＭ幅が１６０ピクセルであったとすると、「契約者住所（本籍地）」の文字数は１０文字であるから、ＤＯＭ幅が必要な２００ピクセルに達していないことになる。よって、「契約者住所（本籍地）」という文字５４の画像がルールに適合していないと判定されることになる。「ＤＯＭ」は、Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌの略語である。
【００７２】
ステップＳ２０４において、異常検出部２４は、オブジェクトｉの全画像の照合が完了したかどうかを判定する。オブジェクトｉの全画像の照合が完了していなければ、ステップＳ２０５の処理が行われる。オブジェクトｉの全画像の照合が完了していれば、ステップＳ２０６の処理が行われる。
【００７３】
ステップＳ２０５において、異常検出部２４は、カウンタｊを「１」インクリメントする。そして、ステップＳ２０２の処理が再び行われる。
【００７４】
ステップＳ２０６において、異常検出部２４は、定義データ３１に定義済のオブジェクト全種類の照合が完了したかどうかを判定する。オブジェクト全種類の照合が完了していなければ、ステップＳ２０７の処理が行われる。オブジェクト全種類の照合が完了していれば、ステップＳ１０５の処理が終了する。
【００７５】
ステップＳ２０７において、異常検出部２４は、カウンタｉを「１」インクリメントする。そして、ステップＳ２０２の処理が再び行われる。
【００７６】
ステップＳ２０８において、異常検出部２４は、ステップＳ２０３の判定結果をディスプレイ１４に出力する。すなわち、異常検出部２４は、ステップＳ１０３で抽出したオブジェクトの種類に対応するルールが守られていないと判定した場合、その判定結果を出力する。判定結果としては、ステップＳ１０２で取得された画像データ３２に記録されている画面の異常をユーザに通知するメッセージが出力される。なお、画面内のどの箇所が正常に表示されていないかを通知するメッセージまたはイメージが出力されてもよい。
【００７７】
ステップＳ２０９において、異常検出部２４は、ステップＳ２０８で出力した判定結果が正しいかどうかをユーザに判断させ、判断結果の入力を、入力機器１３を介してユーザから受け付ける。すなわち、異常検出部２４は、ステップＳ２０８で出力した判定結果が正しいかどうかの判断結果の入力をユーザから受け付ける。判定結果が正しければ、ステップＳ１０５の処理が終了する。判定結果が正しくなければ、ステップＳ２１０の処理が行われる。
【００７８】
ステップＳ２１０において、異常検出部２４は、メモリ１２に記憶された定義データ３１に定義されているルールの拡大等の修正を、入力機器１３を介してユーザから受け付ける。異常検出部２４は、メモリ１２に記憶された定義データ３１を、修正されたルールを定義したデータに更新する。すなわち、異常検出部２４は、異常検出部２４が出力した判定結果が誤りであるという判断結果がステップＳ２０９でユーザから入力された場合、メモリ１２に記憶された定義データ３１に定義されているルールの修正をユーザから受け付け、その修正をメモリ１２に記憶された定義データ３１に反映する。ステップＳ２１０でのルールの修正としては、例えば、文字認識ルールの追加または削除、あるいは、テンプレートマッチングの閾値の変更が可能である。ステップＳ２１０の処理が行われると、ステップＳ１０５の処理が終了する。なお、ステップＳ２１０の処理が行われた後、引き続きステップＳ２０４またはステップＳ２０６の処理が行われてもよい。
【００７９】
ステップＳ２０９およびステップＳ２１０の処理により、異常と判定されたオブジェクトについて、ユーザが、本当にオブジェクトが異常であったかを目視で判断し、定義データ３１にフィードバックすることができる。
【００８０】
なお、異常検出部２４は、ステップＳ２０３でルールに適合していない画像を検出しても、すぐにステップＳ２０８以降の処理を行う代わりに、ステップＳ２０４以降の処理を行い、オブジェクトｉの全画像の照合、または、オブジェクト全種類の照合が完了してから、ステップＳ２０８以降の処理をまとめて行ってもよい。あるいは、異常検出部２４は、ステップＳ２０３でルールに適合していない画像を検出しても、ステップＳ２０８の処理を行うだけで、引き続きステップＳ２０４以降の処理を行い、オブジェクトｉの全画像の照合、または、オブジェクト全種類の照合が完了してから、ステップＳ２０９以降の処理をまとめて行ってもよい。ルールに適合していないと判定した複数の画像についてステップＳ２０９以降の処理をまとめて行うことにより、ステップＳ２０９およびステップＳ２１０におけるユーザの判断および修正の作業を効率化できる。
【００８１】
本実施の形態では、オブジェクト全種類についてステップＳ１０４の処理が完了してからステップＳ１０５の処理が開始されるが、変形例として、オブジェクトの種類ごとにステップＳ１０４およびステップＳ１０５の処理が行われてもよい。すなわち、ステップＳ１０４と図７を用いて説明したステップＳ１０５との処理は、オブジェクトの種類ごとに連続して実行することができる。その場合、定義データ３１に定義されたオブジェクトごとに、ステップＳ１０４で画像データ３２に含まれるオブジェクトが抽出され、ステップＳ１０５でオブジェクトの異常判定が行われる。具体的には、ステップＳ１０４で表のオブジェクトが抽出され、ステップＳ１０５で表のルールとの照合が、抽出されたすべての表について行われる。順次、ラジオボタンおよびチェックボックス等についても、オブジェクトの抽出、および、ルールとの照合が行われていく。このような手順により、画像データ３２に含まれるアプリケーション画面全体の中で、オブジェクトごとの異常を検出することができる。
【００８２】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、個別のオブジェクトの位置等を事前に定義していなくても画面の試験が可能であるため、画面の試験の効率が向上する。
【００８３】
本実施の形態では、複数の端末４０の画面が試験される前に、あらかじめウェブ画面のオブジェクトごとに正常モデルが作成される。正常モデルには、ラジオボタンなら丸い形状である、といったオブジェクトの特徴を表すルールが設定される。画面の試験が実施される際は、試験を実施するウェブ画面がオブジェクトごとに分解され、あらかじめ登録されている正常モデルとオブジェクトとが比較される。比較の結果、正常モデルとの乖離が小さいオブジェクトについては試験結果が正常、乖離が大きいオブジェクトについては試験結果が異常として処理される。このように、オブジェクトごとに正常モデルを作成して評価を行うことで、試験を実施する端末４０の画面解像度、画面サイズ、ＯＳ、および、ウェブブラウザの種類を問わず、様々な端末４０、ＯＳおよびアプリケーションでの試験の自動化が可能になる。
【００８４】
また、正常であるにも関わらず異常として処理したオブジェクトについてモデルにフィードバックする機能を設けることで、正常モデルの精度を上げることができ、より精度の高い試験が実施可能となる。
【００８５】
＊＊＊他の構成＊＊＊
本実施の形態では、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の機能がソフトウェアにより実現されるが、変形例として、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
【００８６】
専用のハードウェアは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＦＰＧＡまたはＡＳＩＣである。「ＩＣ」は、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。「ＧＡ」は、Ｇａｔｅ  Ａｒｒａｙの略語である。「ＦＰＧＡ」は、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。「ＡＳＩＣ」は、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。
【００８７】
プロセッサ１１および専用のハードウェアは、いずれも処理回路である。すなわち、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の機能がソフトウェアにより実現されるか、ソフトウェアとハードウェアとの組み合わせにより実現されるかに関わらず、定義取得部２１、画像取得部２２、ソース取得部２３および異常検出部２４の機能は、処理回路により実現される。
【符号の説明】
【００８８】
１０  画面試験装置、１１  プロセッサ、１２  メモリ、１３  入力機器、１４  ディスプレイ、１５  通信装置、２１  定義取得部、２２  画像取得部、２３  ソース取得部、２４  異常検出部、３１  定義データ、３２  画像データ、３３  ソースファイル、４０  端末、５０  申し込み画面、５１  表、５２  チェックボックス、５３  テキストフォーム、５４  文字、６１  ＨＴＭＬファイル、６２  ＣＳＳファイル。
【図１】
0006619891.tif 000002
【図２】
0006619891.tif 000003
【図３】
0006619891.tif 000004
【図４】
0006619891.tif 000005
【図５】
0006619891.tif 000006
【図６】
0006619891.tif 000007
【図７】
0006619891.tif 000008