(57)【要約】【課題】正解画像を用いることなく表示崩れの検証を可能とし、正解画像を作成する工数を削減することを目的とする。【解決手段】設計情報抽出部１２０が、表示画面２０の設計情報２１から、表示画面２０に表示される文字列を表す設計文字列情報１２１を抽出する。表示部品抽出部１４０が、表示画面２０のキャプチャ画像２２から、表示画面２０に表示されている表示部品を表す表示部品情報１４１を抽出する。表示文字抽出部１５０が、キャプチャ画像２２から、設計文字列情報１２１を用いて表示画面２０に表示されている表示文字列を表す表示文字列情報１５１を抽出する。領域判定部１６０は、表示部品情報１４１と表示文字列情報１５１とを用いて、表示部品と表示文字列が重なっているかを判定し、判定結果に基づいて表示文字列のはみ出しを検出する。【選択図】図１
2019105910.tif 000002
【特許請求の範囲】
【請求項１】
表示画面の画面設計を表す設計情報から、前記表示画面に表示される文字列を表す設計文字列情報を抽出する設計情報抽出部と、
前記表示画面をキャプチャして得られたキャプチャ画像から、前記表示画面に表示されている表示部品を表す表示部品情報を抽出する表示部品抽出部と、
前記キャプチャ画像から、前記設計文字列情報を用いて前記表示画面に表示されている表示文字列を表す表示文字列情報を抽出する表示文字抽出部と、
前記表示部品情報と前記表示文字列情報とを用いて、前記表示部品と前記表示文字列が重なっているかを判定し、判定結果に基づいて前記表示文字列のはみ出しを検出する領域判定部と
を備えた表示検証装置。
【請求項２】
前記表示検証装置は、
前記設計文字列情報と前記表示文字列情報とに基づいて、前記表示文字列を前記設計文字列情報に含まれる文字列と比較し、前記表示文字列が前記設計文字列情報に含まれる文字列とマッチングしない場合に前記表示文字列が文字切れしていると判定する文字判定部を備えた請求項１に記載の表示検証装置。
【請求項３】
前記表示検証装置は、
前記表示画面が前記表示画面を表示する領域よりも大きい場合、前記表示画面の全領域を複数に分割してキャプチャすることにより得られた複数のキャプチャ画像を取得し、前記複数のキャプチャ画像のうち隣接するキャプチャ画像同士の重複部分を結合することにより前記表示画面の全領域を表す前記キャプチャ画像を生成するキャプチャ読込部を備えた請求項１または２に記載の表示検証装置。
【請求項４】
前記表示部品情報は、前記表示部品の表示範囲を表す座標を含み、
前記表示文字列情報は、前記表示文字列の表示範囲を表す座標を含み、
前記領域判定部は、
前記表示部品の表示範囲と前記表示文字列の表示範囲とが重なる場合に、前記表示部品と前記表示文字列が重なっていると判定する請求項１から３のいずれか１項に記載の表示検証装置。
【請求項５】
前記領域判定部は、
前記表示部品の表示範囲と前記表示文字列の表示範囲とが重なると判定された場合、前記表示部品のエッジと前記表示文字列が交差するか否かを判定し、前記表示部品のエッジと前記表示文字列が交差すると判定されると、前記表示文字列のはみ出しとして検出する請求項４に記載の表示検証装置。
【請求項６】
前記表示部品抽出部は、
前記キャプチャ画像に対してエッジ検出処理を行い、検出されたエッジが閉回路を形成していると判定された場合に、前記エッジを含む矩形領域を前記表示部品の表示範囲として前記表示部品情報を抽出する請求項１から５のいずれか１項に記載の表示検証装置。
【請求項７】
前記設計情報抽出部は、
前記設計情報から、前記表示画面に表示される部品を表す設計部品情報を抽出し、
前記表示部品抽出部は、
前記設計部品情報を用いて、前記キャプチャ画像から前記表示部品情報を抽出する請求項１から６のいずれか１項に記載の表示検証装置。
【請求項８】
設計情報抽出部が、表示画面の画面設計を表す設計情報から、前記表示画面に表示される文字列を表す設計文字列情報を抽出し、
表示部品抽出部が、前記表示画面をキャプチャして得られたキャプチャ画像から、前記表示画面に表示されている表示部品を表す表示部品情報を抽出し、
表示文字抽出部が、前記キャプチャ画像から、前記設計文字列情報を用いて前記表示画面に表示されている表示文字列を表す表示文字列情報を抽出し、
領域判定部が、前記表示部品情報と前記表示文字列情報とを用いて、前記表示部品と前記表示文字列が重なっているかを判定し、判定結果に基づいて前記表示文字列のはみ出しを検出する表示検証方法。
【請求項９】
表示画面の画面設計を表す設計情報から、前記表示画面に表示される文字列を表す設計文字列情報を抽出する設計情報抽出処理と、
前記表示画面をキャプチャして得られたキャプチャ画像から、前記表示画面に表示されている表示部品を表す表示部品情報を抽出する表示部品抽出処理と、
前記キャプチャ画像から、前記設計文字列情報を用いて前記表示画面に表示されている表示文字列を表す表示文字列情報を抽出する表示文字抽出処理と、
前記表示部品情報と前記表示文字列情報とを用いて、前記表示部品と前記表示文字列が重なっているかを判定し、判定結果に基づいて前記表示文字列のはみ出しを検出する領域判定処理と
をコンピュータに実行させる表示検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示検証装置、表示検証方法および表示検証プログラムに関する。特に、画面に表示される文字列の表示崩れを自動で検証する表示検証装置、表示検証方法および表示検証プログラムに関する。
【背景技術】
【０００２】
ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を検証するＵＩ検証装置は、正解画像と検証対象のＵＩキャプチャ画像とを比較することで、文字のはみ出しあるいは文字切れといった表示崩れの検証を行う。正解画像とは、検証対象の文字列が正常に表示されている状態の画像である。従来のＵＩ検証装置では、正解画像を事前に用意する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０６−０３５６４１号公報
【特許文献２】特開平０８−１５３１６１号公報
【特許文献３】特開２０１１−２２７７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のＵＩ検証装置では、文字のはみ出しあるいは文字切れといった表示崩れの検証のために、上述した正解画像を作成する必要がある。正解画像は、検証対象の文字列の全てについて作成する必要がある。また、検証対象の文字列に変更が生じた場合、正解画像を更新する必要がある。また、複数言語に対応するＵＩ検証装置では、検証対象の文字列の全てについて、対応する言語分の正解画像を作成する必要がある。よって、従来のＵＩ検証装置では、正解画像の準備および更新に多くの時間が必要であるという課題があった。
【０００５】
本発明の目的は、正解画像を用いることなく文字のはみ出しあるいは文字切れといった表示崩れの検証を可能とし、正解画像を作成する工数を削減することである。
【課題を解決するための手段】
【０００６】
本発明に係る表示検証装置は、
表示画面の画面設計を表す設計情報から、前記表示画面に表示される文字列を表す設計文字列情報を抽出する設計情報抽出部と、
前記表示画面をキャプチャして得られたキャプチャ画像から、前記表示画面に表示されている表示部品を表す表示部品情報を抽出する表示部品抽出部と、
前記キャプチャ画像から、前記設計文字列情報を用いて前記表示画面に表示されている表示文字列を表す表示文字列情報を抽出する表示文字抽出部と、
前記表示部品情報と前記表示文字列情報とを用いて、前記表示部品と前記表示文字列が重なっているかを判定し、判定結果に基づいて前記表示文字列のはみ出しを検出する領域判定部とを備えた。
【発明の効果】
【０００７】
本発明に係る表示検証装置によれば、正解画像を用いることなく文字のはみ出しを検出することができるので、正解画像を作成する工数を削減することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る表示検証装置１００の構成図。
【図２】実施の形態１に係る表示検証装置１００による表示検証処理Ｓ１００のフロー図。
【図３】実施の形態１に係る表示画面２０における表示崩れを表す図。
【図４】実施の形態１に係るキャプチャ読込部１３０の処理の例を示す図。
【図５】実施の形態１に係る表示部品情報１４１の例を示す図。
【図６】実施の形態１に係る表示部品抽出部１４０によるエッジ検出処理を用いた表示部検出例。
【図７】実施の形態１に係る表示文字列情報１５１の例を示す図。
【図８】文字列誤検出の例とその対策を説明するための図。
【図９】文字列はみ出し検出漏れの例を示す図。
【図１０】誤検出した文字列に対する対策の例を説明する図。
【図１１】文字列の見た目が異なることによる表示崩れを検出する例を説明する図。
【図１２】実施の形態１の変形例に係る表示検証装置１００の構成図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係る表示検証装置１００の構成を説明する。
本実施の形態に係る表示検証装置１００は、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）に用いられる表示画面２０について、文字のはみ出しあるいは文字切れといった表示崩れを検証する。表示画面２０とは、具体的には、ＵＩアプリケーションにより表示されるＵＩ画面である。
【００１１】
表示検証装置１００は、コンピュータである。表示検証装置１００は、プロセッサ９１０を備えるとともに、メモリ９２１、補助記憶装置９２２、入力インタフェース９３０、および出力インタフェース９４０といった他のハードウェアを備える。プロセッサ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１２】
表示検証装置１００は、機能要素として、設計情報読込部１１０と、設計情報抽出部１２０と、キャプチャ読込部１３０と、表示部品抽出部１４０と、表示文字抽出部１５０と、領域判定部１６０と、文字判定部１７０と、記憶部１８０を備える。記憶部１８０には、はみ出し判定結果３１と文字切れ判定結果３２とが記憶されている。
【００１３】
設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の機能は、ソフトウェアにより実現される。
記憶部１８０は、メモリ９２１に備えられる。
【００１４】
プロセッサ９１０は、表示検証プログラムを実行する装置である。表示検証プログラムは、設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の機能を実現するプログラムである。
プロセッサ９１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９１０の具体例は、ＣＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１５】
メモリ９２１は、データを一時的に記憶する記憶装置である。メモリ９２１の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、あるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１６】
補助記憶装置９２２は、データを保管する記憶装置である。補助記憶装置９２２の具体例は、ＨＤＤである。また、補助記憶装置９２２は、ＳＤ（登録商標）メモリカード、ＣＦ、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体であってもよい。なお、ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。ＳＤ（登録商標）は、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌの略語である。ＣＦは、ＣｏｍｐａｃｔＦｌａｓｈ（登録商標）の略語である。ＤＶＤは、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略語である。
【００１７】
入力インタフェース９３０は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース９３０は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。なお、入力インタフェース９３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。表示検証装置１００は、入力インタフェース９３０を介して、設計情報２１およびキャプチャ画像２２を取得する。
【００１８】
出力インタフェース９４０は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース９４０は、具体的には、ＵＳＢ端子またはＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。表示検証装置１００は、出力インタフェース９４０を介して、記憶部１８０に記憶されているはみ出し判定結果３１および文字切れ判定結果３２をディスプレイといった出力装置に出力する。
【００１９】
表示検証プログラムは、プロセッサ９１０に読み込まれ、プロセッサ９１０によって実行される。メモリ９２１には、表示検証プログラムだけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。プロセッサ９１０は、ＯＳを実行しながら、表示検証プログラムを実行する。表示検証プログラムおよびＯＳは、補助記憶装置９２２に記憶されていてもよい。補助記憶装置９２２に記憶されている表示検証プログラムおよびＯＳは、メモリ９２１にロードされ、プロセッサ９１０によって実行される。なお、表示検証プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２０】
表示検証装置１００は、プロセッサ９１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、表示検証プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ９１０と同じように、表示検証プログラムを実行する装置である。
【００２１】
表示検証プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ９２１、補助記憶装置９２２、または、プロセッサ９１０内のレジスタあるいはキャッシュメモリに記憶される。
【００２２】
設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。
表示検証プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、表示検証方法は、表示検証装置１００が表示検証プログラムを実行することにより行われる方法である。
表示検証プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、表示検証プログラムは、プログラムプロダクトとして提供されてもよい。
【００２３】
＊＊＊動作の説明＊＊＊
図２を用いて、本実施の形態に係る表示検証装置１００による表示検証処理Ｓ１００について説明する。
図３は、本実施の形態に係る表示画面２０における表示崩れを表す図である。
多言語に対応したＵＩアプリケーションのように、ＵＩ画面に表示する文字列を動的に変更できるアプリケーションがある。このようなアプリケーションでは、文字列の表示領域が、その文字列を表示するためのＵＩ部品の表示領域を超えてしまい、表示が崩れることがある。ＵＩ部品とは、文字列を表示する表示画面２０上の部品であり、たとえば、ウィンドウ、ボタン、テキストボックス、あるいはラベルである。
表示崩れのパターンとしては、文字列がＵＩ部品からはみ出す「文字のはみ出し」、および、文字列の一部が表示されない「文字切れ」の２パターンがある。図３では、表示画面２０に表示されているＵＩ部品であるボタンに、「キャンセル」という文字列が表示されている例を示している。図３の（ａ）では、「キャンセル」という文字列がボタンの領域からはみ出している。また、図３の（ｂ）では、「キャンセル」のルの文字が切れている。表示検証装置１００は、このような文字のはみ出しあるいは文字切れといった表示崩れを検証する。
【００２４】
＜設計情報読込処理＞
ステップＳ１１０において、設計情報読込部１１０は、設計情報２１を読み込む。設計情報２１は、表示画面２０の画面設計を表す情報である。設計情報２１は、表示画面２０のＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイル、あるいは、表示画面２０の画面設計書である。設計情報２１は、ＵＩ設計情報ともいう。
設計情報２１には、少なくともＵＩ画面である表示画面２０に表示される全ての文字列が含まれている必要がある。しかし、設計情報２１には、ＵＩ部品のサイズといった文字列以外の情報は必ずしも必要ではない。設計情報読込部１１０には、入力インタフェース９３０を介して設計情報２１が入力される。あるいは、設計情報２１は予めメモリ９２１に記憶されており、設計情報読込部１１０はメモリ９２１から設計情報２１を読み込んでもよい。
なお、本実施の形態において表示画面に表示される文字には、通常の文字コードにより表される文字および記号の他に、特殊記号あるいは外字も含まれる。例えば、ＵｎｉｃｏｄｅあるいはＥＵＣなど、表示画面に表示されるものであれば文字の種類は問わない。
【００２５】
＜設計情報抽出処理＞
ステップＳ１１１において、設計情報抽出部１２０は、設計情報２１から、表示画面２０に表示される文字列を表す設計文字列情報１２１を抽出する。また、設計情報抽出部１２０は、設計情報２１から、表示画面２０に表示される部品を表す設計部品情報１２２を抽出する。なお、設計情報２１にＵＩ部品に関する情報が含まれていない場合は、設計情報抽出部１２０は、設計部品情報１２２を抽出しない。
ここで、設計文字列情報１２１には、表示画面２０に表示される可能性がある全ての文字例が含まれる。また、設計部品情報１２２には、ウィンドウ、ボタン、テキストボックス、あるいはラベルといったＵＩ部品の種別、ＵＩ部品の表示座標、ＵＩ部品のサイズ、およびＵＩ部品の色といった情報が含まれる。
また、設計情報抽出部１２０が設計部品情報１２２を抽出した場合には、表示部品抽出部１４０に対して設計部品情報１２２を出力する。
【００２６】
＜キャプチャ読込処理＞
ステップＳ１２０において、キャプチャ読込部１３０は、入力インタフェース９３０を介して、キャプチャ画像２２を読み込む。キャプチャ画像２２は、表示検証装置１００の検証対象となる表示画面２０をキャプチャして得られる情報である。あるいは、キャプチャ画像２２は、表示画面２０をカメラで撮影した写真データでもよい。表示検証装置１００で検証することができれば、キャプチャ画像２２の情報形態は問わない。キャプチャ画像２２は、ＵＩキャプチャともいう。
【００２７】
図４は、本実施の形態に係るキャプチャ読込部１３０の処理の例を示す図である。
キャプチャ画像２２は、複数のキャプチャ画像から構成されていてもよい。キャプチャ読込部１３０は、表示画面２０が自表示画面を表示する領域よりも大きい場合、表示画面２０の全領域を複数に分割してキャプチャすることにより得られた複数のキャプチャ画像を取得する。キャプチャ読込部１３０は、複数のキャプチャ画像のうち隣接するキャプチャ画像同士の重複部分を結合することにより表示画面２０の全領域を表すキャプチャ画像２２を生成する。
具体的には、図４のように、スクロールバーが表示される表示画面は、自表示画面を表示する領域に、ＵＩ部品の全てを表示することはできない。このような表示画面に関しては、キャプチャ読込部１３０は、表示画面のうち表示する範囲を分割してキャプチャしたキャプチャ画像を複数読み込むことができる。
図４では、キャプチャ読込部１３０には、キャプチャ画像１とキャプチャ画像２とが入力される。キャプチャ読込部１３０は、複数のキャプチャ画像を入力した場合、各キャプチャ画像で重複している箇所を結合し、１つのキャプチャ画像２２として再構築する。そして、キャプチャ読込部１３０は、このように結合したキャプチャ画像２２に対して表示崩れの検証を実施する。複数のキャプチャ画像のキャプチャ画像ごとに表示崩れの検証を実施した場合は、各キャプチャ画像に存在する重複箇所に対して表示崩れの検証を複数回実施することになる。しかし、再構築した１つのキャプチャ画像２２に対して表示崩れの検証を実施すれば、各キャプチャ画像に存在する重複箇所に対して表示崩れの検証を複数回実施する必要が無くなる。
【００２８】
＜表示部品抽出処理＞
ステップＳ１２１において、表示部品抽出部１４０は、表示画面２０をキャプチャして得られたキャプチャ画像２２から、表示画面２０に表示されているＵＩ部品である表示部品を表す表示部品情報１４１を抽出する。表示部品情報１４１は、表示部品の表示範囲を表す座標を含む。以下では、表示画面２０に表示されているＵＩ部品を表示部品として説明する。
図５は、本実施の形態に係る表示部品情報１４１を示す図である。図５に示すように、表示部品抽出部１４０は、表示画像に表示されている表示部品の表示範囲を（ｘ１，ｙ１）、（ｘ２，ｙ２）の形式で取得する。表示部品抽出部１４０は、キャプチャ読込部１３０からキャプチャ画像２２を取得する。表示部品抽出部１４０は、キャプチャ画像２２から、ウィンドウ、ボタン、テキストボックス、あるいはラベルといった表示部品の抽出を行う。表示部品抽出部１４０は、表示部品の表示範囲を（ｘ１，ｙ１）、（ｘ２，ｙ２）の形式で取得し、表示部品情報１４１に含める。表示部品の表示範囲は、（ｘ１，ｙ１）、（ｘ２，ｙ２）の形式で表される矩形領域である。
このとき、表示部品抽出部１４０は、設計情報抽出部１２０から設計部品情報１２２を取得できるかどうかで表示部品の表示範囲の検出処理を切り替える。
【００２９】
図６は、本実施の形態に係る表示部品抽出部１４０によるエッジ検出処理を用いた表示部検出例である。
表示部品抽出部１４０は、キャプチャ画像２２に対してエッジ検出処理を行い、検出されたエッジが閉回路を形成していると判定された場合に、エッジを含む矩形領域を表示部品の表示範囲として表示部品情報１４１を抽出する。
具体的には、表示部品抽出部１４０は、設計情報抽出部１２０から設計部品情報１２２が取得できなかった場合に、エッジ検出処理を用いた表示部品の表示範囲の検出処理を行う。表示部品抽出部１４０では、キャプチャ画像２２に対してエッジ検出処理を行い、エッジが閉回路となっているものを表示部品として検出する。破線で囲われた表示部品のようにエッジが完全に閉じていない表示部品に対しては、キャプチャ画像２２の中の最少文字サイズより破線の間隔が小さい場合は閉回路とみなし、その破線で囲われた閉回路を表示部品とみなす。
【００３０】
また、上述したように、設計情報抽出部１２０にて設計部品情報１２２が抽出された場合は、この設計部品情報１２２を用いて表示部品の検出を行う。設計部品情報１２２には、ＵＩ部品の種別、ＵＩ部品の表示座標、ＵＩ部品のサイズ、あるいはＵＩ部品の色といった情報が含まれる。表示部品抽出部１４０は、このような設計部品情報１２２を用いて、キャプチャ画像２２から表示部品を表す表示部品情報１４１を抽出する。表示部品抽出部１４０は、設計部品情報１２２を利用できる場合、エッジ検出による表示部品の検出処理では抽出できなかった表示部品の抽出が可能となる。
このように、本実施の形態に係る表示部品抽出処理では、表示された結果からＵＩ部品の表示範囲を特定することができ、ＵＩアプリケーションの内部データを見ることができない状態でもＵＩ部品の表示範囲を特定することが可能である。
【００３１】
＜表示文字抽出処理＞
ステップＳ１２２において、表示文字抽出部１５０は、キャプチャ画像２２から、設計文字列情報１２１を用いて表示画面２０に表示されている表示文字列を表す表示文字列情報１５１を抽出する。表示文字列情報１５１には、表示文字列の表示範囲を表す座標が含まれる。
図７は、本実施の形態に係る表示文字列情報１５１を示す図である。
表示文字列は、キャプチャ画像２２により表される表示画面２０に表示されている文字列である。表示文字抽出部１５０は、文字認識手法を用いて、キャプチャ画像２２から表示文字列を抽出する。
図７では、キャプチャ画像２２により表される表示画面２０に表示されている表示文字列「ボタン」を抽出し、表示文字列の表示範囲を（ｘ１’、ｙ１’）、（ｘ２’、ｙ２’）の形式で取得している。表示文字抽出部１５０は、表示文字列の表示範囲（ｘ１’、ｙ１’）、（ｘ２’、ｙ２’）を表示文字列情報１５１に含める。表示文字列の表示範囲は、（ｘ１’、ｙ１’）、（ｘ２’、ｙ２’）の形式で表される矩形領域である。
【００３２】
表示文字抽出部１５０では、キャプチャ読込部１３０からキャプチャ画像２２を取得するとともに、設計情報抽出部１２０から設計文字列情報１２１を取得する。表示文字抽出部１５０は、キャプチャ画像２２から抽出した表示文字列が設計文字列情報１２１に含まれる文字列と一致するかを確認してもよい。
【００３３】
図８は、文字列誤検出の例とその対策を説明するための図である。
表示文字列の表示範囲を検出する際、表示文字列が隣り合って表示されていると、本来は２つの表示文字列とすべきところを１つの表示文字列と認識してしまう可能性がある。このような誤検出に対する対策として、表示文字抽出部１５０は、キャプチャ画像２２から文字列認識で抽出された文字列に対して、設計情報抽出部１２０から取得した設計文字列情報１２１に含まれる文字列とのマッチングをとる。そして、表示文字抽出部１５０は、設計文字列情報１２１に含まれる文字列と完全一致している範囲を表示文字列の表示範囲として特定する。
【００３４】
また、キャプチャ画像２２から表示文字列として検出できたが、設計文字列情報１２１に含まれる文字列とマッチングが取れなかった表示文字列に関しては、文字列の誤検出もしくは文字切れのどちらかであると考えられる。文字列の誤検出とは、具体的には、記号の＋（プラス）と漢字の十（じゅう）を誤って判定してしまうといった検出である。文字列の誤検出が発生した場合、以降の処理において文字のはみ出し検出あるいは文字切れ検出が正しく行われない可能性がある。このような誤検出の対策として、マッチングが取れなかった表示文字列に対して、表示文字抽出部１５０は、この処理対象の表示文字列のビットマップデータと、設計文字列情報１２１に含まれる文字列をビットマップ化したものとを比較する。このような処理を行うことにより、認識精度の向上が可能となる。それぞれのビットマップが一致した場合、表示文字抽出部１５０は、処理対象の表示文字列のデータを、設計文字列情報１２１に含まれる文字列のデータで上書きし、誤検出した表示文字列のデータを補正する。このような処理を実施してもなお、処理対象の表示文字列と設計文字列情報１２１に含まれる文字列が一致しない場合は、この表示文字列を文字切れの可能性が高い表示文字列として領域判定部１６０および文字判定部１７０の入力として与える。
【００３５】
＜領域判定処理＞
ステップＳ１３０において、領域判定部１６０は、表示部品情報１４１と表示文字列情報１５１とを用いて、表示部品と表示文字列が重なっているかを判定し、判定結果に基づいて表示文字列のはみ出しを検出する。領域判定部１６０は、表示部品の表示範囲と表示文字列の表示範囲とが重なる場合に、表示部品と表示文字列が重なっていると判定する。
【００３６】
領域判定部１６０は、表示部品抽出部１４０から表示部品情報１４１を取得する。また、領域判定部１６０は、表示文字抽出部１５０から表示文字列情報１５１を取得する。具体的には、領域判定部１６０は、表示部品の表示範囲（ｘ１，ｙ１）、（ｘ２，ｙ２）と、表示文字列の表示範囲（ｘ１’，ｙ１’）、（ｘ２’，ｙ２’）を取得する。領域判定部１６０は、それぞれの表示範囲が重なっているか判定を行う。
【００３７】
領域判定部１６０は、表示範囲が重なっていると判定された表示部品と表示文字列の組み合わせに対して、さらに文字列はみ出しの検証処理を行う。
文字列はみ出しの検証処理は、表示部品のエッジ部分と表示文字列との交差の有無を検証することによって実現する。このとき、領域判定部１６０は、表示部品の表示範囲（ｘ１，ｙ１）、（ｘ２，ｙ２）と、表示文字列の表示範囲（ｘ１’，ｙ１’）、（ｘ２’，ｙ２’）から交差判定を行うのではない。領域判定部１６０は、表示部品のエッジ部分と表示文字列のビットマップが重なっているかを検証することで交差判定を行う。
【００３８】
図９は、文字列はみ出し検出漏れの例を示す図である。
図９では、一点鎖線が表示部品の表示範囲として抽出された矩形領域、点線が表示文字列の表示範囲として抽出された矩形領域である。また、実線が実際のＵＩ部品のエッジである。
図９では、実際の表示部品から表示文字列がはみ出している。しかし、単に表示部品の表示範囲と表示文字列の表示範囲との重なりを判定するだけでは、表示部品の表示範囲の内部に表示文字列の表示範囲が重なっているので、文字のはみ出しを検出することはできない。すなわち、文字列はみ出し検出漏れが生じる。
しかしながら、領域判定部１６０は、表示部品のエッジ部分と表示文字列のビットマップが重なっているかを判定条件として交差判定を行うことで、図９の表示文字列のはみ出しを検出することができる。
【００３９】
以上のように、領域判定部１６０は、表示部品の表示範囲と表示文字列の表示範囲とが重なると判定された場合、表示部品のエッジと表示文字列が交差するか否かを判定する。そして、領域判定部１６０は、表示部品のエッジと表示文字列が交差すると判定されると、表示文字列のはみ出しとして検出する。
【００４０】
領域判定部１６０は、交差判定の判定結果をはみ出し判定結果３１として記憶部１８０に記憶する。具体的には、図９の場合、表示部品と表示文字列について「はみ出し有」とのはみ出し判定結果３１を生成し、記憶部１８０に記憶する。
【００４１】
＜文字判定処理＞
ステップＳ１４０において、文字判定部１７０は、設計文字列情報１２１と表示文字列情報１５１とに基づいて、表示文字列を設計文字列情報１２１に含まれる文字列と比較する。文字判定部１７０は、表示文字列が設計文字列情報１２１に含まれる文字列とマッチングしない場合に表示文字列が文字切れしていると判定する。
【００４２】
文字判定部１７０は、表示文字抽出部１５０から表示文字列情報１５１を取得するとともに、設計情報抽出部１２０から設計文字列情報１２１を取得する。文字判定部１７０は、表示文字列と設計文字列情報１２１に含まれる文字列とを比較する。文字判定部１７０は、設計文字列情報１２１に含まれる文字列と完全一致すれば、その表示文字列を「文字切れ無」と判定する。文字判定部１７０は、設計文字列情報１２１に含まれる文字列と完全一致しなければ、その表示文字列を「文字切れ有」と判定する。文字判定部１７０は、表示文字列について「文字切れ無」または「文字切れ有」の判定結果を、文字切れ判定結果３２として記憶部１８０に記憶する。
【００４３】
図１０は、表示文字抽出部１５０が誤検出した文字列に対する対策の例を説明する図である。
上述したように、文字判定部１７０には、文字切れが起きていない文字列、文字切れが起きている文字列、あるいは表示文字抽出部１５０が誤検出した文字列の３種類が入力される。表示文字抽出部１５０が誤検出した文字列に関しては、完全一致しない場合でも文字切れではない。よって、表示文字抽出部１５０が誤検出した文字列に関しては、文字切れ判定結果から除外する必要がある。図１０に示すように、文字判定部１７０は、表示文字列と、設計文字列情報１２１に含まれる文字列とを比較する際に、以下のように判定する。表示文字列と設計文字列情報１２１に含まれる文字列が部分一致している場合は、文字切れ有と判定する。表示文字列と設計文字列情報１２１に含まれる文字列が全く一致しなかった場合、文字切れ判定の対象外とする。このように処理することにより、文字切れ判定の誤検出を防止することができる。
【００４４】
図１１は、文字列の見た目が異なることによる表示崩れを検出する例を説明する図である。
図１１において、表示例１および表示例２は、表示部品の表示範囲内であるが、表示文字列に改行が入り、見た目が仕様例とは異なる例である。表示例１は文字のサイズが大きくなっている例であり、表示例２は文字が全角になっている例である。
このとき、本実施の形態によれば、表示例１において表示文字列の表示範囲としてＲ１とＲ２が検出される。Ｒ１およびＲ２は、表示部品の表示範囲内であるため文字のはみ出しとしては検出されない。しかし、Ｒ１の表示文字列は設計文字列情報１２１とマッチングしない。また、Ｒ２の表示文字列も設計文字列情報１２１とマッチングしない。よって、表示例１は表示崩れとして検出される。表示例２において表示文字列の表示範囲としてＲ３とＲ４が検出されるが、表示例１と同様に、表示例２も表示崩れとして検出される。
【００４５】
本実施の形態では、図１１の例は文字切れとして検出される。しかし、例えば、同一表示部品内に複数の表示文字列が検出され、かつ、設計文字列情報１２１とマッチングしない場合は、その他の表示崩れとして検出してもよい。
なお、上述した図１１の例は一例であり、マッチング方式により、サイズ違い、フォント違い、あるいは全角半角の違いを検出してもよい。
【００４６】
＊＊＊他の構成＊＊＊
＜変形例１＞
表示検証装置１００がネットワークを介して他の装置と通信する通信装置を備えていてもよい。通信装置は、レシーバとトランスミッタを有する。通信装置は、有線または無線で、ＬＡＮ、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。表示検証装置１００は、通信装置を介して、外部の装置から設計情報２１あるいはキャプチャ画像２２を受信してもよい。あるいは、表示検証装置１００は、通信装置を介して、はみ出し判定結果３１あるいは文字切れ判定結果３２を外部の装置に送信してもよい。
【００４７】
＜変形例２＞
本実施の形態では、設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の機能がソフトウェアで実現される。変形例として、設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の機能がハードウェアで実現されてもよい。
【００４８】
図１２は、本実施の形態の変形例に係る表示検証装置１００の構成を示す図である。
表示検証装置１００は、電子回路９０９、メモリ９２１、補助記憶装置９２２、入力インタフェース９３０、および出力インタフェース９４０を備える。
【００４９】
電子回路９０９は、設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の機能を実現する専用の電子回路である。
電子回路９０９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、または、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の機能は、１つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
【００５０】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、表示検証装置１００において、設計情報読込部１１０と設計情報抽出部１２０とキャプチャ読込部１３０と表示部品抽出部１４０と表示文字抽出部１５０と領域判定部１６０と文字判定部１７０の機能は、プロセッシングサーキットリにより実現される。
【００５１】
表示検証装置１００において、設計情報読込部、設計情報抽出部、キャプチャ読込部、表示部品抽出部、表示文字抽出部、領域判定部、および文字判定部の「部」を「工程」あるいは「処理」に読み替えてもよい。また、設計情報読込処理、設計情報抽出処理、キャプチャ読込処理、表示部品抽出処理、表示文字抽出処理、領域判定処理、および文字判定処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
【００５２】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る表示検証装置１００は、検証対象のキャプチャ画像から表示されている表示部品の配置情報および範囲情報を抽出する表示部品抽出部と、設計情報を用いて表示文字列を抽出する表示文字抽出部とを備える。そして、表示検証装置１００は、抽出されたＵＩ部品と文字列が重なっていないかを確認することで文字のはみ出しを検出する領域判定部を備える。よって、本実施の形態に係る表示検証装置１００によれば、正解画像を用いることなく文字はみ出しを検出することができる。よって、本実施の形態に係る表示検証装置１００によれば、正解画像の準備が不要となるので、検証開始に必要となる工数が削減可能となる。
【００５３】
また、本実施の形態に係る表示検証装置１００は、表示文字列と、設計文字列情報の文字列とを比較することで文字切れを検出する文字判定部を備える。よって、本実施の形態に係る表示検証装置１００によれば、正解画像を用いることなく文字切れを検出することができる。よって、本実施の形態に係る表示検証装置１００によれば、正解画像の準備が不要となるので、検証開始に必要となる工数が削減可能となる。
【００５４】
また、本実施の形態に係る表示検証装置１００は、複数のキャプチャ画像が入力され、重複部分を結合するキャプチャ読込部を備える。このようなキャプチャ読込部を備えているので、１つのキャプチャ画像では、画面表示領域からはみ出してしまい表示されていないＵＩ部品についても検証対象とすることが可能となる。さらに、重複部分を結合することで、複数のキャプチャ画像の各キャプチャ画像に存在する重複箇所に対して文字のはみ出しおよび文字切れの検証を複数回実行する必要がなくなり、検証時間を短縮することが可能となる。
【００５５】
また、本実施の形態に係る表示検証装置１００は、画面表示時のＵＩアプリケーションの内部データからＵＩ部品の表示範囲の特定を行うのではなく、表示された結果からＵＩ部品および表示文字列の表示範囲を特定することができる。よって、ＵＩアプリケーションの内部データを見ることができない状態であっても、表示された結果からＵＩ部品および表示文字列の表示範囲を特定することができる。
【００５６】
以上のように、本実施の形態に係る表示検証装置１００によれば、正解画像を用いることなく文字のはみ出しあるいは文字切れといった表示崩れの検証を可能とし、正解画像を作成する工数を削減することができる。また、表示検証装置１００によれば、表示仕様の変更時における正解画像の更新に要する工数も削減することができる。
【００５７】
本実施の形態では、表示検証装置の各部を独立した機能ブロックとして説明した。しかし、表示検証装置の構成は、上述した実施の形態のような構成でなくてもよい。表示検証装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。
【００５８】
本実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、１つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
【符号の説明】
【００５９】
２０  表示画面、２１  設計情報、２２  キャプチャ画像、３１  はみ出し判定結果、３２  文字切れ判定結果、１００  表示検証装置、１１０  設計情報読込部、１２０  設計情報抽出部、１２１  設計文字列情報、１２２  設計部品情報、１３０  キャプチャ読込部、１４０  表示部品抽出部、１４１  表示部品情報、１５０  表示文字抽出部、１５１  表示文字列情報、１６０  領域判定部、１７０  文字判定部、１８０  記憶部、９０９  電子回路、９１０  プロセッサ、９２１  メモリ、９２２  補助記憶装置、９３０  入力インタフェース、９４０  出力インタフェース、Ｓ１００  表示検証処理。
【図１】
2019105910.tif 000003
【図２】
2019105910.tif 000004
【図３】
2019105910.tif 000005
【図４】
2019105910.tif 000006
【図５】
2019105910.tif 000007
【図６】
2019105910.tif 000008
【図７】
2019105910.tif 000009
【図８】
2019105910.tif 000010
【図９】
2019105910.tif 000011
【図１０】
2019105910.tif 000012
【図１１】
2019105910.tif 000013
【図１２】
2019105910.tif 000014