(57)【要約】  試験対象装置２００の入力機器の操作を行う操作部１０３と、試験対象装置２００の出力画面表示内容を取得する取得部１０４と、操作部１０３に対する予め設定された１以上の操作と操作に対応する出力画面表示内容を取得部１０４から取得するか否かの指示を含む試験手順群を繰り返し実行させ、各操作に対応する複数の出力画面表示内容のばらつきの範囲およびばらつきの傾向を学習し、試験対象装置２００に対する試験の合否判定のための学習データを生成する学習部１０６と、学習データを表示する表示部１１０と、操作部１０３に対し、予め試験手順に設定された操作を実行し、取得部１０４で取得した出力画面表示内容と、学習データとの比較を行い、試験対象装置２００に対する試験の合否判定を行う判定部１０８とを有することを特徴とする自動試験装置１００。
2016170618.tif 000002
【特許請求の範囲】
【請求項１】
試験対象装置の入力機器の操作を行う操作部と、
前記試験対象装置の出力画面表示内容を取得する取得部と、
前記操作部に対する予め設定された１以上の操作と前記操作に対応する出力画面表示内容を前記取得部から取得するか否かの指示を含む試験手順群を繰り返し実行させ、各操作に対応する複数の出力画面表示内容のばらつきの範囲およびばらつきの傾向を学習し、前記試験対象装置に対する試験の合否判定のための学習データを生成する学習部と、
前記学習データを表示する表示部と、
前記操作部に対し、予め試験手順に設定された操作を実行し、前記取得部で取得した出力画面表示内容と、前記学習データとの比較を行い、前記試験対象装置に対する試験の合否判定を行う判定部と
を有することを特徴とする自動試験装置。
【請求項２】
前記学習データに対する妥当性が入力される入力部と、
前記学習データに対し、前記妥当性を反映した再学習を行い、再学習データを生成する反映部とを有し、
前記判定部は、前記操作部に対し、予め試験手順に設定された操作を実行し、前記取得部で取得した出力画面表示内容と、前記再学習データとの比較を行い、前記試験対象装置に対する試験の合否判定を行うことを特徴とする請求項１に記載の自動試験装置。
【請求項３】
前記学習部が生成した学習データに対し、取得した出力画面表示内容のばらつきの範囲およびばらつきの傾向がエラーであると推定する推定部を有することを特徴とする請求項１または２に記載の自動試験装置。
【請求項４】
前記判定部が異常と判断した場合、前記試験対象装置に対して異常検出によるログ出力またはメモリダンプの動作情報の記録を出力する出力部を有することを特徴とする請求項１から３のいずれか一項に記載の自動試験装置。
【請求項５】
前記試験手順群に設定された各操作の待ち時間を補正する補正部を有することを特徴とする請求項１から４のいずれか一項に記載の自動試験装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面を表示するソフトウェアの試験を行う自動試験装置に関する。
【背景技術】
【０００２】
近年、携帯電話機、タブレット端末、車載機器、また、これらの機器で使用するウェブアプリケーションなどでＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が用いられている。製品の品質を保つため、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面に対しても十分な試験を行う必要があるが、ＵＩ画面は複雑かつ多量となり、ＵＩ画面の表示パターンは増加傾向にある。
従来、ＵＩ画面の試験は人による操作と人による判断に基づき判定が行われていたが、ＵＩ画面の表示パターン増加に伴い、ＵＩ画面の試験に必要な時間とコストが増加しており、メーカーや開発者から効率化が求められている。【０００３】
また、近年では、パーソナルコンピュータ上での自動試験ソフトウェアや自動試験ロボットなどの技術を用いて試験を効率化する方法が提案、実現されている。一般的には、ＵＩ画面の試験を行う場合は予めＵＩ画面に表示されることが期待される内容を画像データとした正解画面画像を用意し、試験対象の実動作時のＵＩ画面表示を対象画面画像として取得し、正解画面画像と対象画面画像を比較して差分の有無や類似度を判定することでＵＩ画面の表示を試験する方法が行われている。
しかし、試験対象によっては、試験対象の実行環境や実行タイミングの違いにより、アニメーションなどのＵＩ画面の特定の表示領域が変化してしまうものがあり、準備した正解画面画像と試験対象のＵＩ画面の表示に差異が発生する場合がある。
このような場合、全ての画面に対する正解画面画像が必要となるが、ＵＩ画面の複雑化により、全ての画面に対する正解画面画像の準備が困難な場合がある。【０００４】
この問題に対して、例えば特許文献１では、予め変化領域をマスク領域として準備し、対象画面画像と正解画面画像を比較する際にマスク領域を除く領域を比較する方法が提示されている。
また、変化領域を正解画面画像と対象画面画像から削除して比較する方法がある。しかし、この方法では変化領域が複雑な形状の場合、除外する変化領域の輪郭を準備する工数が増加し、また、削除時に未削除領域が残り比較時に差分が発生する恐れがあった。
この問題に対して、例えば特許文献２では、ＵＩ画面内のオブジェクト毎にオブジェクト本体と形状を保持し、比較対象外である背景領域を透過処理したオブジェクト正解画像を準備し、比較前にサイズなどを調整した上で対象画面に合成し、合成結果画像と正解画像を比較する方法が提示されている。
さらに、例えば特許文献３では、ウェブアプリケーションに対して実行するウェブブラウザ環境による差分を学習し、試験実施時に環境に依存して発生する画面表示差分を試験の不合格判定から除外するものが提示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１３４４０６号公報
【特許文献２】特開２０１２−０４３０６２号公報
【特許文献３】特開２０１３−０７７３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のＵＩ画面の試験方法では、正解画面画像やマスクデータの準備が必要であった。しかし、近年ではＧＵＩにアニメーションを用いることが多く、試験実施の条件やタイミングによりＵＩ画面の表示が変化する場合がある。
このため、従来の試験方法では、正解画面画像やマスクデータを準備していたが、動的に変化するＵＩ画面に対応した正解画面画像やマスクデータを準備することは、試験実施の条件やタイミングに対応して準備する必要があり、また、ＵＩ画面が複雑化しているため、多数準備する必要があり、さらに、形状が複雑になった場合には、試験に十分なデータを準備することが極めて困難となる。【０００７】
また、試験実施時の試験対象の環境への負荷状況や試験条件、タイミングによって、ＵＩ画面が変化する場合がある。例えば、試験環境の負荷状況によって処理速度が変化し、処理状況を示すプログレスバーの表示が若干ずれる、試験実施時刻によって時計部分の表示文字列が変化するなどである。しかし、これらの変化に対して、処理速度による若干の表示ずれや変化して当然である時刻表示やアニメーションの変化などは試験での不合格判定が不要な場合がある。
しかし、従来のＵＩ画面の試験方法では、ＵＩ画面画像の微細な差分を検出して不合格判定となっていた。また、マスク処理により変化領域を完全に除外することで試験対象からその領域を完全に除外してしまい、後で人による判断が必要となる問題がある。【０００８】
この発明は上記のような問題点を解決するためになされたもので、正解画面画像やマスクデータを自動生成することで試験準備に必要な時間やコストを削減することを目的とする。また、試験実施の環境やタイミングによって発生する差分の傾向を学習して試験時に用いることで、通常発生し得るＵＩ画面表示のばらつきを許容することが可能となる。さらに、従来のマスク処理や単純な画面画像の比較と比べて、変化領域を画面比較から除外せず、また、微細な変化も含めた比較を行うことができるため後で人による判断が必要となる状態を削減できる。
【課題を解決するための手段】
【０００９】
この発明は、上記のような問題点を解決するためになされたもので、試験対象装置の入力機器の操作を行う操作部と、前記試験対象装置の出力画面表示内容を取得する取得部と、前記操作部に対する予め設定された１以上の操作と前記操作に対応する出力画面表示内容を前記取得部から取得するか否かの指示を含む試験手順群を繰り返し実行させ、各操作に対応する複数の出力画面表示内容のばらつきの範囲およびばらつきの傾向を学習し、前記試験対象装置に対する試験の合否判定のための学習データを生成する学習部と、前記学習データを表示する表示部と、前記操作部に対し、予め試験手順に設定された操作を実行し、前記取得部で取得した出力画面表示内容と、前記学習データとの比較を行い、前記試験対象装置に対する試験の合否判定を行う判定部とを有することを特徴とする自動試験装置を提供する。
【発明の効果】
【００１０】
本発明によれば、試験用データを自動生成するのに必要な時間やコストを削減することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の本実施の形態１に係る自動試験装置のハードウェア構成の一例を示すブロック図である。
【図２】本実施の形態１に係る自動試験装置の機能構成の一例を示すブロック図である。
【図３】本実施の形態１に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図４】本実施の形態１に係る自動試験装置の学習モード時の処理を示すフローチャートである。
【図５】本実施の形態１に係る自動試験装置の学習モードの動作イメージである。
【図６】本実施の形態１に係る自動試験装置の合否判定基準学習の動作イメージである。
【図７】本実施の形態１に係る自動試験装置の合否判定基準再学習の動作イメージである。
【図８】本実施の形態１に係る自動試験装置の試験モード時の処理を示すフローチャートである。
【図９】本実施の形態１に係る自動時化装置の合否判定方法の一例を示す動作イメージである。
【図１０】基準画面画像が複数あった場合に、学習モードで取得した画面画像群の一例である。
【図１１】差分パターンが冗長となってしまった合否判定基準学習データ３０２の一例である。
【図１２】基準画面画像と差分パターンを複数持つ場合の合否判定基準学習データ２０３の一例である。
【図１３】本実施の形態２に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図１４】本実施の形態２に係る自動試験装置の学習モード時の処理を示すフローチャートである。
【図１５】本実施の形態３に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図１６】本実施の形態３に係る自動試験装置を製品に組込んで使用する場合の動作について説明するフローチャートである。
【図１７】本実施の形態３に係る自動試験装置を用いたエラー検出設定とＵＩ画面画像比較の動作イメージである。
【図１８】本実施の形態４に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図１９】本実施の形態４に係る自動試験装置を用いたパラメータ補正の処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、本発明の実施の形態１に係る自動試験装置１００のハードウェア構成の具体例を概略的に示すブロック図である。図１に示されるように、実施の形態１に係る自動試験装置１００は、当該装置全体の制御を行うプロセッサ１と、記憶装置２と、試験操作インタフェース３と、画像取得インタフェース４と、入力装置５と、出力装置６とを有する。
記憶装置２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリや、ハードディスクなどの外部記憶装置の総称であり、プロセッサ１によってプログラムやデータの読み書きが行われ、また、一時データの格納先としても使用される。
試験対象操作インタフェース３は、試験対象装置の入力機器の操作を行う装置であり、ＵＳＢケーブル、ＬＡＮケーブル、赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの有線や無線の通信機器、ロボット、音声制御装置などである。試験対象操作インタフェース３には、試験対象装置の入力機器を操作するためのプログラムやデータ、通信経路を含んでもよいし、必要な情報を記録装置２から読み出しプロセッサ１による指示を受けて動作するものであってもよい。
画像取得インタフェース４は、試験対象装置の出力画面表示内容（ＵＩ画面画像）を取得するための装置であり、カメラなどのキャプチャ装置である。画像取得インタフェース４は、試験対象装置のＵＩ画面画像を取得するためのプログラムやデータ、通信経路を含んでもよいし、必要な情報を記録装置２から読み出しプロセッサ１による指示を受けて動作するものであってもよい。
入力装置５は、キーボードやマウス、タッチパッド、有線や無線の通信インタフェース、音声認識、各種センサなどの入力機器とそれらの制御プログラムや通信経路などである。
表示装置６は、自動試験装置１００で使用する設定データや出力データなどをユーザへ通知するための装置であり、外部の表示機器（図示せず）へデータ出力を行う通信経路とそれらの制御プログラムや通信経路である。
【００１３】
図２は本実施の形態１に係る自動試験装置１００の機能ブロック図である。図２において、制御部１０２は、自動試験装置１００の製品としての機能を特徴づけるプログラムであり、普段はこの制御部１０２が、自動試験装置１００の制御を行っている。
記録部１０１は、自動試験装置１００を動作させるためのプログラムやデータ、一時データなどを記憶装置２に保持する。なお、記憶装置２を記録部１０１とし、記録部１０１に対する読み出しおよび書き込み処理を制御部１０２で行うようにしても良い。
制御部１０２は、自動試験装置１００の各機能の制御や各機能間のデータのやり取りを行う。
【００１４】
試験対象操作部（操作部）１０３は、試験対象操作インタフェース３を介して試験対象装置２００に対する操作やデータの入力を行うための通信経路や赤外線などの送信モジュール、音声出力デバイス、ロボット駆動用のコマンド送信ケーブルやモータなどの駆動装置への信号線などである。また、試験対象操作部１０３には、試験対象操作部１０３を構成する機器の制御または制御を行うための信号変換などを行うプログラムやデータを含んでもよい。
試験対象操作部１０３から試験対象操作インタフェース３を介した試験対象装置２００の操作やデータ入力は、入力機器操作用のコマンド文字列データの送信や赤外線などの波形出力、操作ロボットの制御コマンド送信、音声出力デバイスへの音声出力パターン設定、予め製品に用意された操作用コマンド送信などを行い、試験対象装置２００に対して本来は人が行う操作やデータ入力を代替して行うものである。なお、試験対象操作インタフェース３を試験対象操作部１０３とし、試験対象操作部１０３に対する制御を制御部１０２で行うようにしても良い。
【００１５】
画面画像取得部（取得部）１０４は、画像取得インタフェース４を介して試験対象装置２００からＵＩ画面の表示内容をビットマップ画像やＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式などの静止画像データとして取得する。画像取得インタフェース４を介した画面画像取得部１０４による試験対象装置２００からのＵＩ画面表示内容取得では、試験対象装置２００が生成部２０４から表示部２０５へ送信した静止画像データを通信経路上から取得する、または、生成部２０４から表示部２０５へ送信した映像データから任意のタイミングで取り込み、画像取得インタフェース４または画面画像取得部１０４において静止画像データに変換してもよい。さらに、試験対象装置２００の表示部２０５に表示された内容を画像取得インタフェース４においてカメラなどから静止画像データとして取得してもよい。画像取得インタフェース４を画面画像取得部１０４とし、画面画像取得部１０４に対する制御を制御部１０２で行うようにしても良い。
【００１６】
画像比較部（比較部）１０５は、任意の２つの画像データを比較し、一致や差分を検出する。画像データの比較では、任意の２つの画像データの各画素のＲＧＢ成分などの色情報または配色パターンなどを比較し、色情報や配色パターンが異なる画素の位置や範囲とＲＧＢ成分などの値の違いなどを差分として検出する。
合否判定基準学習部（学習部）１０６は、試験対象装置２００に対し、試験手順３０１に含まれる操作を繰り返し実施し、各ＵＩ画面の表示のばらつきの範囲や傾向を学習し、試験時に合否判定の基準として使用するための合否判定基準学習データ（学習データ）３０２を生成する。なお、この合否判定基準学習部（学習部）１０６の動作を、学習モードと呼ぶ。
【００１７】
ユーザフィードバック部（反映部）１０７は、合否判定基準学習部１０６で学習した合否判定基準学習データ３０２に対し、ユーザによる妥当性の確認結果の反映を行い、学習モードを再度行うことによる合否判定基準の再学習や、試験結果３０３の修正を行う。
妥当性の確認では、例えば、ユーザに対して合否判定基準学習データ３０２の内容を操作毎に基準画面画像、差分パターン、学習時に取得したＵＩ画面画像群、ＵＩ画面画像群の中で合否判定において合格となるものと不合格となるもの、つまり、基準画面画像に対し差分パターンを適用したばらつき範囲に含まれるものと含まれないものの分類とそれぞれの発生割合などを表示する。
ユーザフィードバック部１０７はＵＩ画面画像群の各ＵＩ画面画像に対してユーザが合否の状態を変更できる表示部１１０を経由したインタフェースを提供する。ユーザは、各ＵＩ画面画像に対して合否の状態を確認することで合否判定基準の妥当性を判断し、誤りがあると判断した場合にはユーザフィードバック部１０７が提供するインタフェースに対し入力部１０９を経由してＵＩ画面画像の合否の状態の変更を指示する。合否の状態の変更指示を受けたユーザフィードバック部１０７は、合否判定基準学習部１０６に対し合否の状態の変更を含んだ合否判定基準学習データ３０２を渡し、再学習の指示を行う。
【００１８】
合否判定部（判定部）１０８は、試験実施時に試験対象装置２００のＵＩ画面画像に対して合否判定基準学習データ３０２との比較を行い、試験の合否判定を行う。
入力部１０９は、自動試験装置１００に対するユーザの操作やデータ入力などの要求を受け付ける。
表示部１１０は、ユーザの要求に応じて変更された自動試験装置１００の設定データ（設定情報）や実行した試験の結果を表示装置６に表示する。
なお、記録部１０１、制御部１０２、試験対象操作部１０３、画面画像取得部１０４、画像比較部１０５、合否判定基準学習部１０６、ユーザフィードバック部１０７、合否判定部１０８、入力部１０９、表示部１１０は、プロセッサ１が記憶装置２に記憶されたプログラムを実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実行してもよい。
【００１９】
図３は本実施の形態１に係る自動試験装置を用いたシステム構成の一例である。
試験対象装置２００は、試験対象となるソフトウェア、または、ソフトウェアを含む携帯電話機、タブレット端末、車載機器、パーソナルコンピュータなどの情報機器などである。試験対象装置２００は、記録部２０１、制御部２０２、生成部２０３、入力部２０４、表示部２０５を有する。
記録部２０１は、試験対象装置２００を動作させるためのプログラムやデータをメモリやハードディスクなどの記録媒体である。
制御部２０２は、試験対象装置２００の記録部２０１からプログラムやデータを読み出し、読み出した内容と入力部２０４からの入力内容に応じて、試験対象装置２００の各機能を制御するプロセッサや通信経路である。また、制御部２０２は、記録部２０１から読み出したプログラムやデータと、入力部２０４からの入力内容に応じて、ＵＩ画面の表示内容をＵＩ画面生成部２０３にて生成し、表示部２０５への出力を指示する。また、各機能や機器の間のデータのやり取りを行う。
ＵＩ画面生成部（生成部）２０３は、制御部２０２の指示により、記録部２０１から読み出したプログラムやデータに従い、入力部２０４からの入力内容に応じて、ＵＩ画面への表示内容を生成するプログラムやプロセッサ、通信経路などである。
入力部２０４は、試験対象装置２００に対しての操作やデータ入力を受け付ける、キーボードやマウス、タッチパッド、有線や無線の通信インタフェース、音声認識、各種センサなどの入力機器とそれらの制御プログラムや通信経路などである。
表示部２０５は、試験対象装置２００からＵＩ画面表示を行うためのディスプレイなどの表示機器や、外部の表示機器へデータ出力を行う通信経路と、それらの制御プログラムや通信経路である。
【００２０】
データベース部３００は、自動試験装置１００を動作させる際に使用するデータを保持するハードディスクやメモリなどの記憶媒体である。なお、データベース部３００は、ネットワークを経由したサーバ上のハードディスクやメモリなどの記憶装置であってもよい。また、データベース部３００は、自動試験装置１００の記憶装置２に内蔵してもよい。
試験手順３０１は、自動試験装置１００が試験対象装置２００に対して行う操作の内容や手順、待ち時間、入力データ、ＵＩ画面画像確認の有無、手順の一部または全体とその繰り返し回数などを示すデータである。なお、試験手順３０１は、試験対象装置２００に対し、実施したい試験の内容に応じて複数用意しても良い。また、試験の実行環境や実行タイミングに影響を受けやすくＵＩ画面表示が変化しやすい場合、または、以前に低確率で発生するＵＩ画面表示のばらつきによる不具合が発生したことがあるなどの理由で、特定の操作に対するＵＩ画面画像のサンプリング量を増やしたいなど重点的に確認を行いたいＵＩ画面や操作手順があれば、それらの繰り返し回数を増加させて強化試験とするなどの指定を試験手順３０１で行ってもよい。なお、操作タイミングや待ち時間によるＵＩ画面表示の変化の試験を行う場合は、試験手順３０１内に待ち時間とＵＩ画面画像確認の有無を組み合わせて設定することで実現できる。
合否判定基準学習データ（学習データ）３０２は、自動試験装置１００の合否判定基準学習部１０６により生成された、各ＵＩ画面の表示のばらつきの範囲や傾向を示すデータである。
試験結果３０３は、自動試験装置１００による試験の実施で得た結果を示すデータである。試験結果３０３は、試験手順３０１の各操作における試験の合否判定結果とＵＩ画面画像などの動作結果を記録したデータである。
【００２１】
次に動作について説明する。本発明の大きな動作の流れとして、まず、学習モード実施により試験対象装置１００のＵＩ画面表示のばらつきの範囲や傾向を学習し、次に試験モード実施により試験対象装置１００の試験を実施し、学習モードで学習したＵＩ画面表示のばらつきの範囲や傾向を用いて試験の合否判定を行う。
【００２２】
最初に学習モードの動作を説明する。学習モードの動作の流れを図４に示す。なお、本実施の形態では、試験対象装置２００に対する操作やデータ入力をｘ回実行する試験手順群（群）を有する試験手順３０１をｎ回繰り返し実施する例について、説明を行う。
自動試験装置１００の制御部１０２は、データベース部３００から試験手順３０１を読み出し、学習部１０６を呼び出す（Ｓ１０１）。
学習部１０６は、読み出した試験手順３０１に従い、試験対象操作部１０３から試験対象装置２００の入力部２０４に対し、操作やデータ入力を行う（Ｓ１０２）。なお、学習部１０６が、試験手順３０１に従い、試験対象装置２００の操作を続ける中で、試験手順３０１に試験対象装置２００からのＵＩ画面画像取得の手順を、試験手順３０１を構成する試験用コマンド群などの中からＵＩ画面画像取得命令コマンドなどとして検出した場合、画面画像取得部１０４は、試験対象装置２００からその時の試験対象装置２００のＵＩ画面画像を画像データとして取得する（Ｓ１０３）。
【００２３】
学習部１０６は、試験手順３０１を完了するまで、上記の試験対象装置２００の操作と必要に応じて試験対象装置２００からＵＩ画面画像の取得を繰り返す（Ｓ１０４）。
学習部１０６は、試験手順３０１の群を全て終了すると、試験手順３０１を試験した回数が、予め設定された繰り返し回数ｎとの比較を行い、試験した回数がｎよりもまだ少ない場合は、再度試験手順３０１の試験実行を行う（Ｓ１０５）。
学習モードのここまでの動作のイメージを図５に示す。
学習部１０６は、操作部１０３を介して、群に含まれる各操作やデータ入力を順次実施し、ＵＩ画面画像取得指示がある場合は取得部１０４を介して、そのときのＵＩ画面画像を取得する。
学習部１０６は、群を繰り返し実施することで群の各操作と手順に対応したＵＩ画面画像を繰り返しの数だけ取得する。なお、群における同じ操作手順に対する繰り返し毎のＵＩ画面画像の集まり（図５の点線で囲ったＵＩ画面画像の集まり）を、ＵＩ画面画像群と呼ぶ。
【００２４】
図４のフローチャートの説明に戻る。
合否判定基準学習部１０６は、試験手順３０１で得られたＵＩ画面画像をもとに、合否判定基準学習データ３０２を生成する（Ｓ１０６）。なお、本実施の形態では、合否判定基準学習データ３０２の一例として、基準画面画像と差分パターンを用いる方法について説明する。
図６は、合否判定基準学習部１０６が、合否判定基準を学習する実施例である。
【００２５】
まず、合否判定基準学習部１０６は、基準画面画像５０１を生成する。なお、基準画面画像５０１は、合否判定基準学習部１０６が試験手順３０１を繰り返し回数分、実施して得られた、各操作に対応したＵＩ画面画像群の平均的な情報とする。ここでは基準画面画像をＵＩ画面画像群に含まれる各ＵＩ画面画像の各画素のＲＧＢ成分の平均値とし、図６の基準画面画像５０１の画面１、画面２、画面ｘのように各操作に対応したＵＩ画面画像群から基準画面画像を生成する。図６の基準画面画像５０１では、基準画面画像を画像イメージとして表現した例を示している。
【００２６】
次に合否判定基準学習部１０６は、差分パターン５０２を生成する。
差分パターン５０２は、先程生成した試験手順３０１の各操作に対応した基準画面画像に対して、試験手順３０１の各操作に対応したＵＩ画面画像群の各ＵＩ画面画像が持つ、差分の範囲と傾向を示したデータとする。本実施の形態では、差分の範囲として各操作に対応したＵＩ画面画像群の基準画面画像に対して、ＵＩ画面画像群に含まれる各ＵＩ画面画像の各画素のＲＧＢ成分が最も小さい場合の差分（図６の５０３）と最も大きい場合の差分（図６の５０４）を抽出したものとする。
また、合否判定基準学習部１０６は、ＵＩ画面画像群の各ＵＩ画面画像の基準画面画像に対する差分の発生傾向を算出する。本実施の形態では、差分の傾向としてＵＩ画面画像群に含まれる各ＵＩ画面画像の各画素のＲＧＢ成分が基準画面画像に対して、小さい場合は図６の５０３の傾向、大きい場合は図６の５０４の傾向として、どちらに分布するかをＵＩ画面画像群に含まれるＵＩ画面画像の数に対する割合として算出している。
なお、図６の例では、画面１の場合は、ＵＩ画面画像群の各ＵＩ画面画像が全て一定している場合を示しており、基準画面画像に対する差分は無いため、差分の範囲に差はなく、発生傾向は１００％である。画面２の場合は、基準画面画像に対してＵＩ画面画像内の斜線の矩形部分５０５が、ＵＩ画面に表示されない場合があり、ＵＩ画面画像内の矩形部分５０６が、ＵＩ画面に表示される場合があることを示している。画面ｘの場合も、画面２の場合と同様に、ＵＩ画面画像内の斜線の矩形部分５０５がＵＩ画面に表示されない場合があり、ＵＩ画面画像の矩形部分５０６がＵＩ画面に表示される場合があることを示している。
【００２７】
なお、本実施の形態では、試験手順３０１の操作を繰り返し回数分、実施した後に合否判定基準学習（Ｓ１０６）を実施したが、試験手順３０１の各操作を実施し試験対象装置２００からＵＩ画面画像を取得するタイミングで随時、合否判定基準学習（Ｓ１０６）を実施してもよい。
【００２８】
次に制御部１０２は、表示部１１０を呼出し、合否判定基準学習の結果を、ユーザに通知する。ユーザは、学習結果の確認を行い、妥当なないようであるかの判定を行う（Ｓ１０７）。ここで、ユーザによる学習結果の確認が必要な理由について説明する。合否判定基準学習部１０６が、合否判定基準学習（Ｓ１０６）において、ＵＩ画面表示のばらつきの範囲と傾向を学習している最中に、偶発的な問題により、ＵＩ画面表示に異常が発生した場合や不具合が含まれている場合がある。このような場合、そのまま学習データとして試験を行うと合否判定に影響を及ぼす恐れがあるため、ユーザによる学習データの確認を行うことで異常なＵＩ画面表示の情報を学習データから取り除き、試験モード時に使用する合否判定基準学習データ３０２の妥当性を保証する。
【００２９】
ユーザによる学習結果の確認の例として、合否判定基準学習（Ｓ１０６）で生成した基準画面画像と差分パターン、対応する試験手順３０１内の操作をユーザへ通知する方法が考えられる。合否判定基準学習（Ｓ１０６）で得た学習データをユーザへ通知する際は、ユーザが差分を認識しやすいよう、３Ｄグラフやヒートマップのようにグラフィカルに表示してもよい。
ユーザは、通知された内容を確認し（Ｓ１０７）、合否判定基準学習（Ｓ１０６）の結果が妥当であるかを判断し（Ｓ１０８）、もしユーザが学習結果に問題があると判断した場合には、前記の妥当性の確認で例を挙げたように合否判定基準学習データ３０２に対する各ＵＩ画面画像の合否状態に対するフィードバックが必要とする内容を自動試験装置１００の入力部１０９に入力する。
フィードバックを必要とする内容は、例えば「Ｘ番目の操作によるＵＩ画面表示は現在の学習結果では合格に分類されているが、ＵＩ画面表示内容が異常であるため基準画面画像、差分パターンに含めないよう再学習する」や「Ｙ番目の操作によるＵＩ画面表示は現在の学習結果では合格と分類されているが、ＵＩ画面表示内容が異常であるためユーザが合格と判断し選んだ別の繰り返し時のＹ番目の操作によるＵＩ画面表示と同じ画像を使い基準画面画像、差分パターンの再学習を行う」などである。
入力部１０９は、ユーザから受け付けたフィードバックを必要とする情報を、ユーザフィードバック部１０７に渡す。ユーザフィードバック部１０７は、ユーザから受け付けたフィードバックの内容を反映した合否判定基準の再学習を行う（Ｓ１０９）。
【００３０】
図５を用いて、再学習の例について説明する。図５では、試験手順３０１の群の繰り返しｎ回目において、操作ｘに対する画面ｘの表示が繰り返し１回目、繰り返し２回目と比べて、画面中央部への矩形の表示（白抜き文字ＸＸＸ）が行われるという差異がある。この差異の発生が繰り返し回数ｎのうちの１回のみであった場合、図６の合否判定基準学習結果５０７の発生傾向は１／ｎとなる。ユーザは、この発生傾向の値を見ることにより、他の発生傾向と比べて明らかに発生頻度が低く特異な傾向と判断できる。
また、ユーザが、予めＵＩ画面画像の正しい表示結果を知っていた場合には、ＵＩ画面画像群の中で５０７の表示内容が異常であることを目視で判断できる。
【００３１】
学習データが異常と判断したユーザは、上記の例の場合だと、試験手順３０１の群の繰り返しｎ回目における画面ｘが異常であることを入力部１０９に入力する。  ユーザフィードバック部１０７は、入力部１０９に入力された内容をもとに、合否判定基準の再学習を実施する。
ユーザフィードバック部１０７は、合否判定基準の再学習において、図５における各ＵＩ画面画像の取得結果から、ユーザから異常であると指定された試験手順３０１の群の繰り返しｎ回目における画像ｘを除いた、残りの全ての繰り返し毎の各操作に対するＵＩ画面画像に対し、合否判定基準学習（Ｓ１０６）と同様の手順で合否判定基準の再学習を行う。再学習の結果、合否判定基準の学習結果、図７に示すようになったとする。図７では、画面ｘにおける画面中央部への矩形の表示（白抜き文字ＸＸＸ）が基準画面画像に対する差分パターンから除外される。つまり、試験モード時の合格基準から除外される。
上記の手順Ｓ１０７〜Ｓ１０９は、ユーザがフィードバック不要と判断するまで繰り返し実施される（Ｓ１０８）。
【００３２】
ユーザがフィードバック不要と判断した場合、記録部１０１は、学習モードで得た試験手順３０１の群における各操作に対応したＵＩ画面画像群、基準画面画像、差分パターンをデータベース部３００の合否判定基準学習データ３０２として記録する（Ｓ１１０）。
なお、本実施の形態と、別の方法で合否判定基準の学習を行った場合には、その別の方法が必要とする合否判定基準学習データ３０２を記録部１０１は、記録する。
以上が基準画面画像と差分パターンを用いた学習モードの動作の例である。
【００３３】
次に試験モードの動作を説明する。試験モードの動作の流れを図８に示す。
最初に制御部１０２は、データベース部３００から試験手順３０１を読み出し、学習部１０６を呼び出す（Ｓ２０１）。
学習部１０６は、読み出した試験手順３０１に従い、試験対象操作部１０３から試験対象装置２００の入力部２０４に対し、操作やデータ入力を行う（Ｓ２０２）。
学習部１０６が、試験手順３０１に従い、試験対象装置２００の操作を続ける中で、試験手順３０１に試験対象装置２００からのＵＩ画面画像取得の手順を検出した場合、画面画像取得部１０４は、試験対象装置２００からその時の試験対象装置２００のＵＩ画面画像を画像データとして取得する（Ｓ２０３）。
学習部１０６は、試験手順３０１を完了するまで、上記の試験対象装置２００の操作と必要に応じて試験対象装置２００からＵＩ画面画像の取得を繰り返す（Ｓ２０４）。
学習モードでは、試験手順３０１の群を繰り返し回数分だけ繰り返し実行してＵＩ画面画像を収集していたが、試験モードでは、試験手順３０１の群を一回だけ実行してＵＩ画面画像を収集する。
【００３４】
学習モードが、試験手順３０１の手順を全て終了後（Ｓ２０４）、合否判定部１０８は、学習モードで生成した合否判定基準学習データ３０２を用いて、試験対象装置２００のＵＩ画面画像に対する試験の合否判定を実施する（Ｓ２０５）。
【００３５】
図９を用いて合否判定の例について説明する。本実施の形態では、合否判定の方法の一例として、学習モードで生成した基準画面画像と差分パターンを用いた合否判定方法について説明する。
合否判定は合否判定部１０８によって行われる。合否判定部１０８は、画像比較部１０５を用いて、試験モード（図８：Ｓ２０１〜Ｓ２０４）で得た試験手順３０１の各操作に対応するＵＩ画面画像と、学習モード（図１：Ｓ１０１〜Ｓ１１０）で得た試験手順３０１の各操作に対応する基準画面画像の比較を行う。
合否判定部１０８は、試験モードで得た各操作に対応したＵＩ画面画像と、対応した基準画面画像との比較を行い、発生した差分が各操作に対応した差分パターンの範囲に収まる場合に合否判定を合格とし、そうでない場合は不合格と判断する。
【００３６】
例えば、試験モードで得た試験手順３０１の操作２に対するＵＩ画面画像は、学習モードで得た試験手順３０１の操作２に対する基準画面画像と比較した場合、差分は合否判定基準学習データ３０２の範囲内に収まるため、操作２の試験合否判定は合格となる。
【００３７】
また、試験モードで得た試験手順３０１の操作ｘに対するＵＩ画面画像は、学習モードで得た試験手順３０１の操作ｘに対する基準画面画像と比較した場合、画面中央部の矩形部分が差分として検出される。この差分は合否判定基準学習データの差分パターンにも含まれていないため、試験手順３０１の操作ｘに対する試験合否判定は不合格となる。
合否判定部１０８は、試験手順３０１の全ての操作に対して上記のように合否判定を行う。
【００３８】
なお、本実施の形態では、試験手順３０１の操作を全て実施完了後に試験合否判定（Ｓ２０５）を実施するよう説明を行ったが、試験手順３０１の各操作を実施し、試験対象装置２００からＵＩ画面画像を取得するタイミングで随時、試験合否判定（Ｓ２０５）を実施してもよい。
【００３９】
次に合否判定部１０８は、試験の合否判定の結果が妥当な内容であるかの確認をユーザへ通知する（Ｓ２０６）。ユーザへの通知には、表示部１１０が用いられる。
合否判定部１０８は、併せて、自動試験装置１００による試験合否判定が妥当であるかを確認することもユーザへ通知する。
なお、本実施の形態では、試験の合否版手の結果が得られた後に合否判定部がユーザに対し通知を行う例について説明したが、このユーザへの通知を行う手順は、試験モードの完了後、ユーザ側から自動試験装置１００に対して要求があった時点で行ってもよい。
【００４０】
表示部１１０は、試験合否判定（Ｓ２０５）の結果として試験手順３０１の各操作に対する合否判定結果と試験モードで得たＵＩ画面画像、基準画面画像とこれに対する差分、差分パターンなどをユーザへ通知する。通知の方法は学習モード時のユーザへの確認と同様にグラフィカルな表示を用いて認識しやすくしてもよい。
ユーザは、通知された合否判定結果と試験モードで得たＵＩ画面画像、基準画面画像に対する差分、差分パターンなどを確認し、合否判定結果に問題があると判断した場合は、フィードバックが必要とする内容を自動試験装置１００の入力部１０９に入力する（Ｓ２０７）。
入力部１０９は、ユーザから受け付けたフィードバックを必要とする情報を、ユーザフィードバック部１０７に渡し。ユーザフィードバック部１０７は、ユーザから受け付けたフィードバックの内容にした内容を反映した合否判定基準の再学習と試験の合否判定結果の修正を行う（Ｓ２０８）。
【００４１】
図９では、試験手順３０１の操作ｘのＵＩ画面画像がユーザの確認結果により合格とする場合、学習モード時の例で図６から図７へ再学習を行った場合と同様に、ＵＩ画面画像群に試験モードで得た試験手順３０１の操作ｘに対するＵＩ画面画像を含めて合否判定基準の再学習を行い、合否判定基準学習データ３０２を更新する。
この場合の合否判定基準の再学習の結果は図６のようになる。また、ユーザにより合格と判断された試験手順３０１の操作ｘの合否判定結果を不合格から合格に修正する。  判定部１０８は、ユーザがフィードバック不要と判断するまで、上記の手順Ｓ２０６〜Ｓ２０８を繰り返し実施する（Ｓ２０７）。
【００４２】
記録部１０１は、試験モードで得た試験手順３０１の各操作に対応したＵＩ画面画像と試験の合否判定結果を試験結果３０３としてデータベース部３００に記録する。また、記録部１０１は、更新された合否判定基準学習データ３０２をデータベース部３００に記録する。
以上が基準画面画像と差分パターンを用いた試験モードの動作の例である。
【００４３】
なお、学習モード、試験モードにおいて生成したデータや試験対象装置２００から得られたＵＩ画面画像は、ユーザが自動試験装置１００の入力部１０９に対して要求操作を入力することで、表示部１１０を用いて随時確認することができる。
【００４４】
以上のように、試験対象装置２００を自動的に操作しＵＩ画面画像を取得することにより、従来の正解画面画像やマスクデータにあたる情報を合否判定基準学習データ３０２として自動的に生成でき、試験準備に必要な時間やコストを削減することが可能となる。
また、試験手順３０２を用いて同様の操作手順を複数回実施し、同じ操作手順に対するＵＩ画面画像のばらつきの範囲や傾向を合否判定基準として学習し試験の合否判定に用いることにより、通常の動作で発生し得る試験で許容可能なＵＩ画面表示のばらつきを許容することを可能とし、従来だと試験対象領域としてマスク処理などの準備が困難であった領域も自動試験の対象となり、ユーザの判断がひつようとなる作業を削減することが可能となる。
【００４５】
本実施の形態では、合否判定基準学習データ３０２に含む基準画面画像と差分パターンを試験手順３０１の各操作に対して１つとしたが、合否判定基準学習データ３０２に含む基準画面画像と差分パターンを各操作に対して複数持ってもよい。
図１０、図１１、図１２を用いて、合否判定基準学習データ３０２の基準画面画像と差分パターンを試験手順３０１の任意の操作に対して複数持つ場合の例について説明する。
試験手順３０１の任意の操作に対し繰り返し実施した結果得られたＵＩ画面画像群を図１０に示す。
合否判定基準学習の結果、ＵＩ画面画像の正常ケースを基準画面画像と差分パターンで表現すると、図１１に示すように冗長な合否判定基準学習データ３０２となり、合否判定基準の精度を低下させる可能性がある。このような場合、前記図４の学習結果確認（Ｓ１０７）での学習結果の妥当性確認を行い、その結果、ユーザフィードバック部１０７によりユーザが合否判定基準学習データ３０２からＵＩ画面画像一覧をチェックし、特定のＵＩ画面画像を別の正常ケースとして選択できるように選択肢をユーザフィードバック部１０７からユーザへ提供する。
ユーザフィードバックのように、ユーザにより別の正常ケースとして特定のＵＩ画面画像が選択された場合、再学習を行い、図１２に示すように特定の操作に対するＵＩ画面表示に対して複数の基準画面画像と差分パターンを合否判定基準学習データ３０２に保持できる。
合否判定基準学習データ３０２に１つの試験手順３０１の操作に対して複数の基準画面画像と差分パターンを持つ場合、図８に示す試験モードにおける試験合否判定（Ｓ２０５）では、図１２のように複数の基準画面画像と差分パターンの全てのケースと試験で得たＵＩ画面画像を比較し、いずれかの基準画面画像と差分パターンに一致する場合に合格と判定する。
この方法により、操作手順や入力データの内容によりＵＩ画面表示が大きく変化する場合への対応が可能となる。
【００４６】
実施の形態２．
本実施の形態では、実施の形態１にエラー推定機能を加えた場合について説明する。
図１３は、エラー推定機能を加えた場合の自動試験装置１００を用いたシステム構成の一例である。図１３において、図３と同一符号である、記録部１０１、制御部１０２、操作部１０３、取得部１０４、比較部１０５、学習部１０６、反映部１０７、判定部１０８、入力部１０９、表示部１１０、記録部２０１、制御部２０２、生成部２０３、入力部２０４、表示部２０５、試験手順３０１、学習データ３０２、試験結果３０３は、同一または相当する部分を表しており、図３で説明したものと同じである。
自動試験装置１００のエラー推定部（推定部）１１１は、データベース部３００から読み出したエラー推定設定（推定設定）３０４をもとに、学習モードでの合否判定基準学習（Ｓ１０６）や試験モードでの合否判定基準学習データ３０２による試験合否判定（Ｓ２０５）に加えて試験対象装置２００のＵＩ画面画像のばらつきの範囲や傾向から特定の偏りを持つものをエラーと推定する。
データベース部３００のエラー推定設定（推定設定）３０４は、エラー推定部１１１でエラー推定に用いるデータであり、エラー推定の基準となるばらつきの範囲や傾向を示すものでありユーザが設定する。
なお、エラー推定部１１１は、プロセッサ１が記憶装置２に記憶されたプログラムを実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実行してもよい。
【００４７】
エラー推定を用いた動作について説明する。エラー推定を用いた学習モードの動作の流れを図１４に示す。なお、本実施の形態では、実施の形態１で用いた、合否判定基準学習データ３０２の基準画面画像、差分パターンを例として用いる。
まず、制御部１０２は、データベース部３００からエラー推定設定３０４を読み出す。エラー推定設定３０４は、図１３に示すように外部（ネットワークを経由したサーバもしくは外部記憶装置）から取得してもよいし自動試験装置１００の記録部１０１のように自動試験装置１００に内蔵した記録媒体に記録し必要に応じて読み出してもよい。また、エラー推定設定３０４の内容はユーザが希望する任意のエラー推定基準に変更してもよいし、過去に取得した合否判定基準学習データ３０２からエラー推定設定３０４の形式として抽出するよう改良して抽出した結果を使用してもよい。
次に推定部１１１は、読み出したエラー推定設定３０４と合否判定基準学習データ３０２を用いてエラー推定を行う（Ｓ３０１）。
【００４８】
エラー推定設定の例として、図６における合否判定基準学習データ３０２の差分パターンの発生傾向が一定の割合ｅ／ｎ以下の場合エラーと判断するよう設定する。
実施の形態１では、合否判定基準学習（Ｓ１０６）の後、ユーザへ基準画面画像や差分パターンなどの合否判定基準学習データ３０２と学習モードで得た試験対象装置２００のＵＩ画面画像群を通知することにより、ユーザによる学習結果の妥当性の確認を行った。  これに対し、エラー推定を用いた、本実施の形態の場合では、エラー推定実施（Ｓ３０１）において、合否判定基準学習（Ｓ１０６）で得た差分パターンに対してエラー推定設定３０４で設定された差分パターンの発生傾向がｅ／ｎ以下の場合にエラーとして検出する。例えば、図６の５０７の発生傾向ｄ／ｎがエラー推定設定３０４の発生傾向ｅ／ｎ以下の場合、図６の５０７に分類された各ＵＩ画面画像に異常の可能性があるとして検出する。
実施の形態１の説明で、図４の合否判定基準学習（Ｓ１０６）の結果に対して行ったのと同様に、エラー推定部１１１で検出した結果は、Ｓ１０７〜Ｓ１０９においてユーザへ通知され、ユーザによる確認とフィードバックの要否判断が行われる。
例えば、エラー推定部１１１でエラー推定した通り、ユーザへ通知したＵＩ画面画像が異常であるとユーザが判断した場合は、ユーザによるその内容が入力部１０９へ入力され、ユーザフィードバック部１０７により（Ｓ１０８）実施の形態１と同様に合否判定基準の再学習（Ｓ１０９）を実施する。
【００４９】
このように、エラー推定部１１１が、エラー推定設定３０４で設定された条件に合った内容を自動的に判断し、ユーザへ通知することにより、ユーザによる合否判定基準学習データ３０２の妥当性の確認と異常の検出判断に必要な負荷を軽減することが可能となり、試験用データを自動生成するのに必要な時間やコストを削減することが可能となる。
なお、本実施の形態では、エラー推定（Ｓ３０１）の実施を試験手順３０１の手順を完了し合否判定基準学習（Ｓ１０６）の後に行ったが、処理の順序は必要に応じて変更してもよい。
【００５０】
実施の形態３．
本実施の形態では、実施の形態１に加えて、発明の対象である自動試験装置１００を製品や試験環境に内蔵した場合について説明する。自動試験装置１００を製品や試験環境に内蔵することで、既に市場に出回った製品動作中のＵＩ画面表示で検出可能な異常や、開発段階や市場不具合発生後のＵＩ画面表示で検出可能な異常の再現試験での検出に使用する。
図１５は、本発明の本実施の形態３に係る自動試験装置を用いたシステム構成の一例である。なお、本実施の形態では、試験対象装置２００を製品や試験環境として説明を行う図１５において、図３と同一の符号である、記録部１０１、制御部１０２、操作部１０３、取得部１０４、比較部１０５、学習部１０６、反映部１０７、判定部１０８、入力部１０９、表示部１１０、記録部２０１、制御部２０２、生成部２０３、入力部２０４、表示部２０５、試験手順３０１、学習データ３０２、試験結果３０３は、同一または相当する部分を表しており、図３で説明したものと同じである。
データベース部３００のエラー検出設定（検出設定）３０５は、異常の検出に必要な情報を保持するデータである。
エラー検出設定３０５は、ＵＩ画面画像を異常と判別するための基準である。ここではエラー検出設定３０５は、製品出荷前に予め用意された操作と操作に対応する基準画面画像と差分パターンを記録したものとする。エラー検出設定３０５とＵＩ画面画像を比較した結果、エラー検出設定３０５に含まれない場合はＵＩ画面表示が異常であると判断することができる。なお、エラー検出設定３０５は、ユーザにより基準画面画像と差分パターンと同様の情報を作成してもよいし、基準画面画像と差分パターンに含まれる内容を正常ではなく異常と判断するように設定する方法を取ってもよい。
【００５１】
自動試験装置１００のログ出力部（出力部）１１２は、試験対象操作部１０３と類似の構成であり、異常検出時に試験対象装置２００に対して異常発生を通知し、ログ出力やメモリダンプなどの後の異常解析作業に用いるデータの記録を指示する。なお、ログ出力部１１２は、プロセッサ１が記憶装置２に記憶されたプログラムを実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実行してもよい。
試験対象装置２００のログ出力部（出力部）２０６は、自動試験装置１００から異常発生の通知を受け、ログ出力やメモリダンプなどの情報を記録する。記録先は、試験対象装置２００の記録部２０１でもよいし、自動試験装置１００へ通知して自動試験装置１００の記録部１０１へ記録してもよい。また、データベース部３００など外部の記録媒体へ通知し記録を行ってもよい。
【００５２】
次に図１６を用いて、自動試験装置を製品に組込んで使用する場合の動作について説明する。
自動試験装置１００の制御部１０２は、試験対象装置２００起動時にデータベース部３００のエラー検出設定３０５を読み込む（Ｓ４０１）。
本実施の形態では、エラー検出設定３０５のデータとして実施の形態１の図６で用いた画面２のＵＩ画面画像群の基準画面画像と差分パターンを示すものとするが、エラー検出設定３０５のデータの内容は、任意の画像データなどに変更してもよい。
取得部１０４は、取得部１０４の内部または制御部１０２などに持つタイマで時間を計測し、予め設定された時間が経過すると（Ｓ４０２）試験対象装置２００からＵＩ画面画像を取得すると、画像比較部１０５を呼び出す。
【００５３】
試験対象装置２００が稼働する中で自動試験装置１００は、試験対象装置２００のＵＩ画面表示内容をＵＩ画面生成部２０３から画面画像取得部１０４により取得する（Ｓ４０３）。ここでは、試験対象装置２００からのＵＩ画面表示内容の取得の一例として、ＵＩ画面表示内容を短時間の間隔で定期的に取得するものとする。
試験対象装置２００からＵＩ画面画像を取得する時間の間隔や画面の大きさ、位置などの条件は、エラー検出設定３０５で設定してもよい。なお、これらの設定は制御部１０２がエラー検出設定３０５を読み込んだ際に設定を行う。
画像比較部１０５は、取得したＵＩ画面画像とエラー検出設定３０５の内容の比較を行う。
合否判定部１０８は、画像比較部１０５の結果を受け取り、試験対象装置２００から取得したＵＩ画面画像がエラー検出設定３０５の条件に含まれるかを判断する。なお、本実施の形態では、エラー検出設定３０５に基準画面画像と差分パターンを使用しているため、合否判定部１０８を用いて、試験対象装置２００から取得したＵＩ画面画像とエラー検出設定３０５を比較する（Ｓ４０４）。
【００５４】
製品組込みの場合、製品の操作はユーザが行い、自動試験装置１００から操作を行わないためエラー検出設定３０５に含まれる基準画面画像と差分パターンをユーザの操作手順とを完全に対応付けることができない。このため、本実施の形態では、試験対象装置２００から取得したＵＩ画面画像をエラー検出設定３０５に含まれる全ての基準画面画像と差分パターンに対し総当たりで比較を行うものとする。その例を図１７に示す。また、エラー検出設定３０５には製品出荷前に予め全ての操作に対する基準画面画像と差分パターンを取得し記録されているものとする。
合否判定部１０８は、試験対象装置２００から取得したＵＩ画面画像とエラー検出設定３０５を比較し、エラー検出設定３０５に含まれない場合は、異常と判断する（Ｓ４０４）。
上記において合否判定部１０８が異常と判断した場合、合否判定部１０８は制御部１０２を経由してログ出力部１１２へ異常を通知し、ログ出力部１１２は試験対象装置２００に対し、異常発生の通知を行う（Ｓ４０５）。
異常発生の通知を受けた試験対象装置２００はログ出力部２０６により、記録部２０１などの記録媒体へ動作ログやメモリダンプなどの動作情報の記録を行う（Ｓ４０６）。
【００５５】
このように、試験対象装置２００の通常動作時のＵＩ画面表示を常時受け取り、エラー検出設定３０５に予め用意した基準画面画像、差分パターンなどの異常判別情報と比較をすることにより、異常が発生したことを自動的に検出し、ログ出力やメモリダンプなどの動作情報を記録することができるようになり、後の解析作業を効率的に行うことが可能となる。
【００５６】
特に異常の発生頻度が特に低い場合においては、人によるログやメモリダンプの解析作業だと手間と時間がかかるため、非効率的である。
本発明によりＵＩ画面表示に影響する異常を自動検出し、必要な情報のみを自動的に記録することで人による解析作業の負荷を軽減することが可能となる。メモリの不正アクセスなどのようにシステムに明確な異常を示す不具合はプログラム上発見し易いが、市場での動作環境に起因する問題やプログラム上のエラー検出処理では発見できない設計や実装の不具合流出による極めて低い頻度での不正なＵＩ画面表示が発生する場合は、特に本発明での効果を得られると考える。
本実施の形態で説明した、製品組込みの例では、実施の形態１の構成に加えて異常の検出と動作情報の記録に必要な機能を追加したが、不要であれば市場での製品組込み時に自動試験装置１００の合否判定基準学習部１０６やユーザフィードバック部１０７などの機能やデータベース部３００の学習データ３０２、試験結果３０３などの情報を除外してもよい。
また、自動試験装置１００の機能は、試験対象装置２００に含んでもよいし、独立させてもよい。さらに、ログ出力などの動作情報の記録の指示と実施を行う機能は、自動試験装置１００や試験対象装置２００にまとめてもよいし、または、各装置に分散させてもよく、外部へ通信などにより通知を行ってもよい。
【００５７】
実施の形態４．
本実施の形態は、実施の形態１に加えて、自動試験装置１００のプロセッサ１などの処理速度や試験操作インタフェース３、画像取得インタフェース４、制御部１０２の処理速度や通信速度、または、試験対象装置２００の処理速度などの影響により、自動試験装置１００や試験対象装置２００の処理タイミングの変化に対応するためパラメータによる補正機能を持たせたものである。
図１８は、パラメータによる補正機能を持たせた場合の自動試験装置１００を用いたシステム構成の一例である。図１８において、図３と同一符号である、記録部１０１、制御部１０２、操作部１０３、取得部１０４、比較部１０５、学習部１０６、反映部１０７、判定部１０８、入力部１０９、表示部１１０、記録部２０１、制御部２０２、生成部２０３、入力部２０４、表示部２０５、試験手順３０１、学習データ３０２、試験結果３０３は、同一または相当する部分を表しており、図３で説明したものと同じである。
自動試験装置１００のパラメータ補正部（補正部）１１３は、データベース部３００から読み出した補正パラメータ（パラメータ）３０６をもとに、学習モードや試験モードにおける試験手順３０１に含まれた各操作やデータ入力、ＵＩ画面画像取得のタイミングを早く、または、遅くするものである。
データベース部３００の補正パラメータ３０６は、補正部１１３で試験手順３０１に含まれる操作やデータ入力、ＵＩ画面画像取得に対し、予め設定された待ち時間の短縮、待ち時間の追加に用いるデータであり、試験手順３０１に含まれる操作やデータ入力、ＵＩ画面画像取得のタイミングを補正するためにユーザが設定するものである。
なお、補正部１１３は、プロセッサ１が記憶装置２に記憶させたプログラムを実行することにより、実現される。また、複数のプロセッサおよび複数のメモリが連携して上記機能を実行してもよい。
【００５８】
パラメータ補正を用いた動作について説明する。パラメータ補正を用いた試験手順３０１の実施の流れを図１９に示す。なお、本実施の形態では、実施の形態１で用いた、試験モードにおける試験手順３０１の実施を例として用いる。
まず、自動試験装置１００の制御部１０２は、データベース部３００から試験手順３０１と補正パラメータ３０６を読み出し、学習部１０６を呼び出す（Ｓ２０１）。
学習部１０６は、読み出した試験手順３０１に含まれる操作やデータ入力を試験対象装置２００に対して行う前に、読み出した補正パラメータ３０６と試験手順３０１をパラメータ補正部１１３へ渡し補正を指示する（Ｓ６０１）。
パラメータ補正の例として、図５の学習モードにおける操作１の操作、データ入力Ｓ１０２の中にＵＩ画面画像取得Ｓ１０３を実施するまでの待ち時間が１秒として定義されているとする。また、補正パラメータ３０６には試験手順３０１の繰り返し毎の操作１に対しＵＩ画面画像取得へ移るまでの待ち時間を１秒追加する内容を含んでいるものとする。
ここでは学習モードの試験手順３０１を例としているが、試験手順３０１の内容は試験モードでも同等のため問題ない。
パラメータ補正部１１３は、試験手順３０１から読み出した操作１に対応する補正情報を補正パラメータ３０６から検索し、待ち時間を１秒追加する内容を見つける。パラメータ補正部１１３は、試験手順３０１から読み出した操作１の操作、データ入力Ｓ１０２の中から待ち時間を１秒とする情報を見つけ、補正パラメータ３０６から見つけた待ち時間を１秒追加する内容を反映し、待ち時間を２秒として学習部１０６へ返す。
学習部１０６は、パラメータ補正部１１３から受け取った情報をもとに、待ち以外の操作やデータ入力の実施後、ＵＩ画面画像取得までに２秒の待ちを行う（Ｓ２０２）。
ＵＩ画面画像取得（Ｓ２０３）以降の流れは実施の形態１と同様である。
【００５９】
以上のように、既に用意された試験手順３０１に対しパラメータ補正を行うことで、自動試験装置１００や試験対象装置２００の処理性能などにより、一部の試験手順３０１の操作やＵＩ画面画像取得のタイミングを調整することができる。自動試験装置１００や試験対象装置２００を構成する各要素の処理性能が変化した場合、ＵＩ画面表示が次のＵＩ画面表示へ遷移する早さなどの変化が想定されるが、パラメータ補正を行うことで既に使用した試験手順３０１や合否判定基準学習データ３０２を変更することなく、補正パラメータ１１３を追加するのみで異なる処理性能の自動試験装置１００や試験対象装置２００での学習モードや試験モードの実施が可能となり、資源の有効活用や作業の効率化を行うことができる。
【符号の説明】
【００６０】
１  プロセッサ、２  記憶装置、３  試験操作インタフェース、４  画像取得インタフェース、５  入力装置、６  表示装置、１００  自動試験装置、１０１  記録部、１０２  制御部、１０３  操作部、１０４  取得部、１０５  比較部、１０６  学習部、１０７  反映部、１０８  判定部、１０９  入力部、１１０  表示部、１１１  推定部、１１２  出力部、補正部１１３、２００  試験対象装置、２０１  記録部、２０２  制御部、２０３  生成部、２０４  入力部、２０５  表示部、３００  データベース部、３０１  試験手順、３０２  学習データ、３０３  試験結果、３０４  推定設定、３０５  検出設定、３０６  パラメータ。
【図１】
2016170618.tif 000003
【図２】
2016170618.tif 000004
【図３】
2016170618.tif 000005
【図４】
2016170618.tif 000006
【図５】
2016170618.tif 000007
【図６】
2016170618.tif 000008
【図７】
2016170618.tif 000009
【図８】
2016170618.tif 000010
【図９】
2016170618.tif 000011
【図１０】
2016170618.tif 000012
【図１１】
2016170618.tif 000013
【図１２】
2016170618.tif 000014
【図１３】
2016170618.tif 000015
【図１４】
2016170618.tif 000016
【図１５】
2016170618.tif 000017
【図１６】
2016170618.tif 000018
【図１７】
2016170618.tif 000019
【図１８】
2016170618.tif 000020
【図１９】
2016170618.tif 000021
【手続補正書】
【提出日】平成29年3月28日(2017.3.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
【図１】本発明の本実施の形態１に係る自動試験装置のハードウェア構成の一例を示すブロック図である。
【図２】本実施の形態１に係る自動試験装置の機能構成の一例を示すブロック図である。
【図３】本実施の形態１に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図４】本実施の形態１に係る自動試験装置の学習モード時の処理を示すフローチャートである。
【図５】本実施の形態１に係る自動試験装置の学習モードの動作イメージである。
【図６】本実施の形態１に係る自動試験装置の合否判定基準学習の動作イメージである。
【図７】本実施の形態１に係る自動試験装置の合否判定基準再学習の動作イメージである。
【図８】本実施の形態１に係る自動試験装置の試験モード時の処理を示すフローチャートである。
【図９】本実施の形態１に係る自動試験装置の合否判定方法の一例を示す動作イメージである。
【図１０】基準画面画像が複数あった場合に、学習モードで取得した画面画像群の一例である。
【図１１】差分パターンが冗長となってしまった合否判定基準学習データ３０２の一例である。
【図１２】基準画面画像と差分パターンを複数持つ場合の合否判定基準学習データ３０２の一例である。
【図１３】本実施の形態２に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図１４】本実施の形態２に係る自動試験装置の学習モード時の処理を示すフローチャートである。
【図１５】本実施の形態３に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図１６】本実施の形態３に係る自動試験装置を製品に組込んで使用する場合の動作について説明するフローチャートである。
【図１７】本実施の形態３に係る自動試験装置を用いたエラー検出設定とＵＩ画面画像比較の動作イメージである。
【図１８】本実施の形態４に係る自動試験装置を用いたシステムの機能構成の一例を示すブロック図である。
【図１９】本実施の形態４に係る自動試験装置を用いたパラメータ補正の処理を示すフローチャートである。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
実施の形態１．
図１は、本発明の実施の形態１に係る自動試験装置１００のハードウェア構成の具体例を概略的に示すブロック図である。図１に示されるように、実施の形態１に係る自動試験装置１００は、当該装置全体の制御を行うプロセッサ１と、記憶装置２と、試験操作インタフェース３と、画像取得インタフェース４と、入力装置５と、出力装置６とを有する。
記憶装置２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリや、ハードディスクなどの外部記憶装置の総称であり、プロセッサ１によってプログラムやデータの読み書きが行われ、また、一時データの格納先としても使用される。
試験対象操作インタフェース３は、試験対象装置の入力機器の操作を行う装置であり、ＵＳＢケーブル、ＬＡＮケーブル、赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの有線や無線の通信機器、ロボット、音声制御装置などである。試験対象操作インタフェース３には、試験対象装置の入力機器を操作するためのプログラムやデータ、通信経路を含んでもよいし、必要な情報を記憶装置２から読み出しプロセッサ１による指示を受けて動作するものであってもよい。
画像取得インタフェース４は、試験対象装置の出力画面表示内容（ＵＩ画面画像）を取得するための装置であり、カメラなどのキャプチャ装置である。画像取得インタフェース４は、試験対象装置のＵＩ画面画像を取得するためのプログラムやデータ、通信経路を含んでもよいし、必要な情報を記憶装置２から読み出しプロセッサ１による指示を受けて動作するものであってもよい。
入力装置５は、キーボードやマウス、タッチパッド、有線や無線の通信インタフェース、音声認識、各種センサなどの入力機器とそれらの制御プログラムや通信経路などである。
表示装置６は、自動試験装置１００で使用する設定データや出力データなどをユーザへ通知するための装置であり、外部の表示機器（図示せず）へデータ出力を行う通信経路とそれらの制御プログラムや通信経路である。 
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
画面画像取得部（取得部）１０４は、画像取得インタフェース４を介して試験対象装置２００からＵＩ画面の表示内容をビットマップ画像やＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式などの静止画像データとして取得する。画像取得インタフェース４を介した画面画像取得部１０４による試験対象装置２００からのＵＩ画面表示内容取得では、試験対象装置２００が生成部２０３から表示部２０５へ送信した静止画像データを通信経路上から取得する、または、生成部２０３から表示部２０５へ送信した映像データから任意のタイミングで取り込み、画像取得インタフェース４または画面画像取得部１０４において静止画像データに変換してもよい。さらに、試験対象装置２００の表示部２０５に表示された内容を画像取得インタフェース４においてカメラなどから静止画像データとして取得してもよい。画像取得インタフェース４を画面画像取得部１０４とし、画面画像取得部１０４に対する制御を制御部１０２で行うようにしても良い。 
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
最初に学習モードの動作を説明する。学習モードの動作の流れを図４に示す。なお、本実施の形態では、試験対象装置２００に対する操作やデータ入力をｘ回実行する試験手順群（群）を有する試験手順３０１をｎ回繰り返し実施する例について、説明を行う。
自動試験装置１００の制御部１０２は、データベース部３００から試験手順３０１を読み出し、学習部１０６を呼び出す（Ｓ１０１）。
学習部１０６は、読み出した試験手順３０１に従い、試験対象操作部１０３から試験対象装置２００の入力部２０４に対し、操作やデータ入力を行う（Ｓ１０２）。なお、学習部１０６が、試験手順３０１に従い、試験対象装置２００の操作を続ける中で、試験手順３０１に試験対象装置２００からのＵＩ画面画像取得の手順を、試験手順３０１を構成する試験用コマンド群などの中からＵＩ画面画像取得コマンドなどとして検出した場合、画面画像取得部１０４は、試験対象装置２００からその時の試験対象装置２００のＵＩ画面画像を画像データとして取得する（Ｓ１０３）。 
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
次に合否判定部１０８は、試験の合否判定の結果が妥当な内容であるかの確認をユーザへ通知する（Ｓ２０６）。ユーザへの通知には、表示部１１０が用いられる。
合否判定部１０８は、併せて、自動試験装置１００による試験合否判定が妥当であるかを確認することもユーザへ通知する。
なお、本実施の形態では、試験の合否判定の結果が得られた後に合否判定部がユーザに対し通知を行う例について説明したが、このユーザへの通知を行う手順は、試験モードの完了後、ユーザ側から自動試験装置１００に対して要求があった時点で行ってもよい。 
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
以上のように、試験対象装置２００を自動的に操作しＵＩ画面画像を取得することにより、従来の正解画面画像やマスクデータにあたる情報を合否判定基準学習データ３０２として自動的に生成でき、試験準備に必要な時間やコストを削減することが可能となる。
また、試験手順３０１を用いて同様の操作手順を複数回実施し、同じ操作手順に対するＵＩ画面画像のばらつきの範囲や傾向を合否判定基準として学習し試験の合否判定に用いることにより、通常の動作で発生し得る試験で許容可能なＵＩ画面表示のばらつきを許容することを可能とし、従来だと試験対象領域としてマスク処理などの準備が困難であった領域も自動試験の対象となり、ユーザの判断がひつようとなる作業を削減することが可能となる。 
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2016170618.tif 000022
【国際調査報告】
2016170618.tif 000023
2016170618.tif 000024