(57)【要約】      （修正有）【課題】アプリケーション開発において、複数種類の端末装置でのアプリケーション動作テストにかかるコストを低減する。【解決手段】複数の端末装置１４０−１，１４０−２に接続されたテスト装置１０１は、当該テスト装置に対する操作から、第一の端末装置１４０−１で動作するプログラムに対する操作として検出し、検出した操作と等価であり、他の端末装置の仕様に合わせた操作を特定する操作検出部１０２と、特定した等価な操作に基づく、他の端末装置で動作するプログラムへの等価な操作命令を作成する操作命令作成部１０３と、等価な操作命令を、他の端末装置１４０−２へ送信する操作命令送信部１０４と、を備え、他の端末装置は、受信した等価な操作命令を、プログラムに実行させる操作命令実行部と、プログラムが実行した結果を取得し、テスト装置へ送信する送信部と、を備える。【選択図】図１
2014219885.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末装置で動作するプログラムのテストを一括して行うテスト支援システムであって、
前記複数の端末装置に接続されたテスト装置は、
当該テスト装置に対する操作を、第一の前記端末装置で動作するプログラムに対する操作として検出し、前記検出した操作と等価であり、他の前記端末装置の仕様に合わせた操作を特定する操作検出部と、
特定した等価な操作に基づく、他の前記端末装置で動作するプログラムへの等価な操作命令を作成する操作命令作成部と、
前記等価な操作命令を、前記他の端末装置へ送信する操作命令送信部と、を備え、
前記他の端末装置は、
受信した前記等価な操作命令を、前記プログラムに実行させる操作命令実行部と、
前記プログラムが実行した結果を取得し、前記テスト装置へ送信する送信部と、を備える
ことを特徴とするテスト支援システム。
【請求項２】
請求項１に記載のテスト支援システムにおいて、
前記テスト装置は、
端末装置毎の画面構成要素のレイアウト情報を管理するレイアウト情報管理部と、
複数の前記端末装置において表示される画面の画面イメージを取得する画面イメージ取得部と、
取得した前記複数の端末装置の画面を表示する画面イメージ表示部と、を備え、
前記操作検出部は、前記画面イメージに対する操作から、前記操作対象の画面構成要素を特定する
ことを特徴とするテスト支援システム。
【請求項３】
請求項２に記載のテスト支援システムにおいて、
前記レイアウト情報管理部は、画面の解像度ごとに前記画面構成要素の配置情報を管理する
ことを特徴とするテスト支援システム。
【請求項４】
請求項１から３のいずれか一に記載のテスト支援システムにおいて、
前記操作命令作成部は、前記操作命令の分割と、座標移動のいずれか一方または両方により、前記操作命令を補正する
ことを特徴とするテスト支援システム。
【請求項５】
請求項１から４のいずれか一に記載のテスト支援システムにおいて、
前記画面イメージ取得部は、
前記操作命令の実行結果として、前記複数の端末装置から画面イメージを取得して一括表示する
ことを特徴とするテスト支援システム。
【請求項６】
請求項２に記載のテスト支援システムにおいて、
前記画面イメージ表示部は、前記画面イメージ取得部が前記複数の端末装置から取得した、前記画面イメージの共通領域を強調表示する
ことを特徴とするテスト支援システム。
【請求項７】
請求項６に記載のテスト支援システムにおいて、
前記操作命令作成部は、強調表示された前記共通領域以外の画面イメージに対する操作を受け付けない
ことを特徴とするテスト支援システム。
【請求項８】
テスト装置が、複数の端末装置で動作するプログラムのテストを一括して行うテスト支援方法であって、
前記複数の端末装置に接続され、
当該テスト装置に対する操作を、第一の前記端末装置で動作するプログラムに対する操作として検出し、
前記検出した操作と等価であり、他の前記端末装置の仕様に合わせた操作を特定し、
特定した等価な操作に基づく、他の前記端末装置で動作するプログラムへの等価な操作命令を作成し、
前記等価な操作命令を、前記他の端末装置へ送信し、
送信した前記等価な操作命令を前記他の端末装置の前記プログラムが実行した結果を、前記他の端末装置から取得する
ことを特徴とするテスト支援方法。
【請求項９】
請求項８に記載のテスト支援方法において、
端末装置毎の画面構成要素のレイアウト情報を管理し、
複数の前記端末装置において表示される画面の画面イメージを取得し、
取得した前記複数の端末装置の画面を表示し、
前記操作の特定において、前記画面イメージに対する操作から、前記操作対象の画面構成要素を特定する
ことを特徴とするテスト支援方法。
【請求項１０】
請求項９に記載のテスト支援方法において、
画面の解像度ごとに前記画面構成要素の配置情報を管理する
ことを特徴とするテスト支援方法。
【請求項１１】
請求項８から１０のいずれか一に記載のテスト支援方法において、
前記操作命令の分割と、座標移動のいずれか一方または両方により、前記操作命令を補正する
ことを特徴とするテスト支援方法。
【請求項１２】
請求項８から１１のいずれか一に記載のテスト支援方法において、
前記操作命令の実行結果として、前記複数の端末装置から画面イメージを取得して一括表示する
ことを特徴とするテスト支援方法。
【請求項１３】
請求項９に記載のテスト支援方法において、
前記複数の端末装置から取得した前記画面イメージの共通領域を強調表示する
ことを特徴とするテスト支援方法。
【請求項１４】
請求項１３に記載のテスト支援方法において、
強調表示された前記共通領域以外の画面イメージに対する操作を受け付けない
ことを特徴とするテスト支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される主題は、アプリケーションの動作テストを、複数種類の端末で並行して実施する方法、および、システムに係わる。
【背景技術】
【０００２】
スマートフォンやタブレット端末などのスマートデバイス向けに開発したアプリケーションプログラム（以下、アプリケーション、または、アプリという）を、スマートデバイスにインストールして動作テストを行う場合、スマートデバイスの機種ごとに動作テストをしなければならず、人件費を始めとするテストに掛かるコストが莫大になってしまう。複数端末の動作テストにかかるコストを削減するために、複数端末を同時に操作してテストを実施する方法がある。この時、アプリケーションにテスト用の機能を埋め込むのは不具合原因になる可能性があるため、アプリケーションとは独立の機能で実現できるのが望ましい。
【０００３】
複数端末の同時操作の一つとして、マウスやキーボード等の入力デバイスで入力された操作を複数端末に送信し、各端末では受信した操作に従って動作させる方法がある。例えば、特許文献１には、「コードレス化された入力デバイス（キーボード、マウス）より、信号を発信し、複数の端末側で信号を受信することにより入力を行う。対応する入力デバイスおよび端末側の対応は、発信・受信チャネルをあわせることにより行う。このチャネルを複数の端末で同一チャネルにセットすることにより、複数の端末を同時に操作することが可能となる。」（段落０００９）と開示されている。
【０００４】
また、遠隔端末の操作方法の一つとして、ある端末での画面操作をネットワーク経由で送ることで、別端末で画面操作を再現する方法がある。例えば、特許文献２には、「送り側のＰＣ端末におけるマウスやキーボード等、講師の入力をともなう操作に関する情報を取得すること、及び、取得した操作に基づく情報のみをデータとして遠隔地に伝送すること、及び、受け側では、送られてきた操作に関する情報をもとに、受け側のＰＣ端末において前記操作を発生させる」（段落０００６）と開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１７２６４０号公報
【特許文献２】特開２０００−２９８６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１は、同一の複数端末を同時に操作する方法であるため、複数種類の端末を同時に操作することはできない。例えば、画面サイズが異なる複数種類の端末を同時に操作することはできない。また、上記特許文献２は、操作元の端末と同一画面を持つ遠隔端末を操作する方法であるため、遠隔端末が複数種類の場合には、並行して操作することはできない。
【０００７】
従って、アプリケーションの動作テストを、複数種類の端末で並行して実施する方法が望まれている。
【課題を解決するための手段】
【０００８】
本明細書では、アプリケーションその他のプログラムの動作テストを、複数種類の端末で並行して実施する方法、および、そのシステムが開示される。
【０００９】
具体的には、複数の端末装置で動作するプログラムのテストを一括して行うテスト支援システムであって、
複数の端末装置に接続されたテスト装置は、当該テスト装置に対する操作を、第一の端末装置で動作するプログラムに対する操作として検出し、検出した操作と等価であり、他の端末装置の仕様に合わせた操作を特定する操作検出部と、特定した等価な操作に基づく、他の端末装置で動作するプログラムへの等価な操作命令を作成する操作命令作成部と、等価な操作命令を、他の端末装置へ送信する操作命令送信部と、を備え、
他の端末装置は、受信した等価な操作命令を、プログラムに実行させる操作命令実行部と、プログラムが実行した結果を取得し、テスト装置へ送信する送信部と、を備えるテスト支援システムが開示される。
【００１０】
開示されるより具体的な態様は、テスト装置が、端末装置毎の画面構成要素のレイアウト情報を管理するレイアウト情報管理部と、複数の端末装置において表示される画面の画面イメージを取得する画面イメージ取得部と、取得した複数の端末装置の画面を表示する画面イメージ表示部と、を備え、操作検出部は、画面イメージに対する操作から、操作対象の画面構成要素を特定することを特徴とする。
【００１１】
開示されるより具体的な態様は、レイアウト情報管理部が、画面の解像度ごとに画面構成要素の配置情報を管理することを特徴とする。
【００１２】
開示されるより具体的な態様は、操作命令作成部が、操作命令の分割と、座標移動のいずれか一方または両方により、操作命令を補正することを特徴とする。
【００１３】
開示されるより具体的な態様は、画面イメージ取得部が、操作命令の実行結果として、複数の端末装置から画面イメージを取得して一括表示することを特徴とする。
【００１４】
開示されるより具体的な態様は、画面イメージ表示部が、画面イメージ取得部が複数の端末装置から取得した、画面イメージの共通領域を強調表示することを特徴とする。
【００１５】
開示されるより具体的な態様は、操作命令作成部が、強調表示された共通領域以の画面イメージに対する操作を受け付けないことを特徴とする。
【発明の効果】
【００１６】
開示によれば、アプリケーション開発において、複数種類の端末でのアプリケーション動作テストにかかるコストを低減することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施例のテスト支援システムの構成例を示す。
【図２】本実施例の端末装置の構成例を示す。
【図３】本実施例のレイアウト情報管理部のテーブル構成例を示す。
【図４】本実施例の端末情報管理部が管理するデータの構成例を示す。
【図５】本実施例の操作命令作成部の処理フロー例を示す。
【図６】本実施例の操作命令に補正が必要な例を示す。
【図７】本実施例の操作命令の分割の例を示す。
【図８】本実施例の端末装置の画面の一括表示の例を示す。
【図９】本実施例のテスト装置でのユーザ操作制限の例を示す。
【発明を実施するための形態】
【００１８】
以下に、本発明の実施形態について、図を用いて詳細に説明する。
【００１９】
図１は、本実施例におけるテスト支援システムの構成を示す。このテスト支援システムは、テスト装置１０１と、複数の端末装置１４０−１と１４０−２と、を有する。端末装置１４０−１と１４０−２とは、端末仕様が異なり、端末ごとに表示解像度や、画面サイズ、処理性能が異なる。なお、端末装置１４０−１と１４０−２とを端末装置１４０と総称する。
【００２０】
テスト装置１０１は、複数の端末装置１４０のカーナビアプリ２０４の動作テストを並行して行う。テスト装置１０１は例えば、コンピュータであり、端末装置１４０のソフトウェアの開発に用いられるコンピュータであっても良い。端末装置１４０は、スマートフォンやタブレット端末などの情報端末装置であっても良いし、車両に搭載されるナビゲーション装置であっても良い。テスト装置１０１と端末装置１４０は、通信路１３０を介して接続される。通信路１３０は、ＵＳＢ（Universal Serial Bus）やＬＡＮ（Local Area Network）などの有線通信路であっても良いし、無線ＬＡＮ等の無線通信路であっても良い。
【００２１】
テスト装置１０１は、記憶部１２０、および、ＣＰＵ（Central Processing Unit）１２１、入力部１２２、表示部１２３、通信部１２４を有する。記憶部１２０は、半導体メモリやＨＤＤ（Hard Disk Drive）等であり、テストのためのプログラム及びデータを格納する。ＣＰＵ１２１は、記憶部１２０内のプログラム及びデータに基づいて、端末装置１４０のテストを実行する。入力部１２２は、ユーザによる操作を検出する。表示部１２３は、ＣＰＵ１２１からの指示に従って画面を表示する。通信部１２４は、端末装置１４０との通信を行う。
【００２２】
記憶部１２０は、操作検出部１０２、操作命令作成部１０３、操作命令送信部１０４、レイアウト情報管理部１０５、端末情報管理部１０６、接続管理部１０７、画面イメージ表示部１０８、画面イメージ取得部１０９のそれぞれを実現するプログラムとデータのいずれか一方または両方を格納する。これらの処理部と、以下に説明する各処理は、ＣＰＵ１２１が記憶部１２０内のプログラムを実行することにより実現される。これらのプログラムは、テスト装置１０１が読み取り可能な記憶媒体に格納され、その記憶媒体から、または、通信路１３０を介して他の装置から、テスト装置１０１へインストールされても良い。
【００２３】
複数種類の端末装置１４０の動作テストを効率的に実施するために、各端末装置１４０の画面を取得してテスト装置１０１の画面に表示、表示された端末装置１４０の画面の何れか一つをユーザが操作するだけで、全ての端末装置１４０の並行操作を可能にする。画面イメージ取得部１０９が複数の端末装置１４０から画面イメージを取得し、画面イメージ表示部１０８で、取得した複数の端末装置１４０の画面を一括表示する。ここで、画面イメージとは、端末装置１４０の画面をキャプチャしたものを表している。ユーザは、一括表示された複数の端末装置１４０の画面の何れかを操作する。
【００２４】
操作検出部１０２は、テスト装置１０１の画面上でのユーザ操作を検出し、ユーザが操作した端末装置１４０（例えば１４０−１）、および、その端末装置１４０−１へのユーザ操作を特定する。ユーザ操作には、画面上に表示されたボタン等のタップ（マウスでクリックするのと同様の操作）、画面上に表示された地図等のドラッグ、端末装置１４０−１に物理的に設置されたハードウェアボタンの押下などがある。また、ハードウェアボタンには、画面を前に戻すためのボタン、メニュー画面を開くためのボタン等がある。操作検出部１０２では、タップの場合はタップされた画面上の位置(X,Y)、ドラッグの場合はドラッグされた画面上の開始位置(X1,Y1)と終了位置(X2,Y2)、ハードウェアボタン押下の場合は押下されたハードウェアボタンの種類を特定する。ここで、特定する画面上の座標は、テスト装置１０１の画面上の座標ではなく、端末装置１４０−１の画面上での座標である。
【００２５】
複数の端末装置１４０の端末種類が異なる場合、例えば、端末ごとに画面解像度が異なる。テスト対象のカーナビアプリ２０４の画面のレイアウトが、画面解像度に応じて異なる場合、ユーザ操作から各端末装置１４０に適した操作命令を、それぞれ作成する必要がある。
【００２６】
操作命令作成部１０３は、レイアウト情報管理部１０５が管理する画面解像度ごとの画面レイアウト情報に基づいて、操作検出部１０２で特定した端末装置１４０−１に対するユーザ操作から、端末装置１４０−１に適した操作命令と、端末装置１４０−２の仕様に適合するように変換した変換操作命令を作成する。操作命令作成部１０３の詳細は図５で詳細に説明する。操作命令送信部１０４は、操作命令作成部１０３で作成した、操作命令を端末装置１４０−１へ送信し、変換操作命令を端末装置１４０−２へ送信する。
【００２７】
接続管理部１０７は、テスト装置１０１に接続された端末装置１４０から端末ＩＤと画面解像度を取得し、端末情報管理部１０６に格納する。格納された端末情報は、操作命令作成部１０３で、端末装置１４０に適した操作命令を作成するのに利用される。
【００２８】
図２は、端末装置１４０の構成を示す。端末装置１４０は、記憶部２２０、および、ＣＰＵ２２１、入力部２２２、表示部２２３、通信部２２４を有する。記憶部２２０は、半導体メモリやＨＤＤ等であり、プログラム及びデータを格納する。ＣＰＵ２２１は、記憶部２２０内のプログラム及びデータに基づいて、処理を実行する。入力部２２２は、ユーザによる操作を検出し、入力情報として出力する。表示部２２３は、ＣＰＵ２２１からの指示に従って画面を表示する。通信部２２４は、テスト装置１０１の通信部１２４と通信路１３０を介して接続され、テスト装置１０１との通信を行う。
【００２９】
記憶部２２０は、操作命令受信部２０１、操作命令実行部２０２、端末情報送信部２０３、カーナビアプリ２０４、画面イメージ送信部２０５のそれぞれを実現するプログラムとデータのいずれか一方または両方を格納する。なお、カーナビアプリは地図上に車の位置を表示、目的地までの経路を案内するアプリであり、画面上には地図の縮尺を変更するボタンなどが表示される。また、業務用のカーナビアプリの場合には、配送先の一覧を表示したりもする。これらの処理部と、以下に説明する各処理は、ＣＰＵ２２１が記憶部２２０内のプログラムを実行することにより実現される。これらのプログラムは、端末装置１４０が読み取り可能な記憶媒体に格納され、その記憶媒体から、または、通信路１３０を介して他の装置から、端末装置１４０へインストールされても良い。
【００３０】
操作命令受信部２０１が操作命令送信部１０４からの操作命令を受信し、操作命令実行部２０２が受信した操作命令を、カーナビアプリ２０４に実行させる。画面イメージ送信部２０５は、カーナビアプリ２０４が実行した端末装置１４０の画面イメージを定期的に取得（キャプチャ）し、画面イメージ取得部１０９に送信する。定期的に送信するのではなく、画面の変化を検知したタイミングで送信しても良い。また、画面全体を送信するのではなく、変更のあった画面の一部分のみを送信するようにしても良い。
【００３１】
端末情報送信部２０３は、端末装置１４０がテスト装置１０１に接続されたタイミングで、端末情報として端末装置１４０を一意に識別するための端末ＩＤと、端末装置１４０の画面解像度を接続管理部１０７に送信する。端末情報を送信後、カーナビアプリ１２４の状態を初期化し、地図縮尺、地図表示の座標、ボタンの選択／非選択などを、事前に決めた初期状態に設定する。こうすることで、全ての端末装置１４０でカーナビアプリ２０４を初期状態に合わせておくことができる。
【００３２】
端末装置１４０がテスト装置１０１に接続したタイミングで初期化するのではなく、接続管理部１０７からの命令により初期化を行っても良いし、カーナビアプリ２０４が起動したタイミングで初期化しても良い。初期状態は、事前に決めた設定を端末装置１４０またはカーナビアプリ２０４内に保持していても良いし、接続管理部１０７から初期状態を動的に配信するようにしても良い。
【００３３】
図３は、テスト装置１０１のレイアウト情報管理部１０５が管理するレイアウト情報をテーブル形式で示す。このレイアウト情報では、画面解像度ごとに、カーナビアプリ２０４の画面がどのように構成されるかが管理され、一組が、画面解像度３０１、部品ＩＤ３０２、部品種類３０３、名前３０４、左上座標３０５、右下座標３０６、従属部品ＩＤ３０７を含んで構成される。部品ＩＤ３０２〜従属部品ＩＤ３０７はカーナビアプリ２０４の画面がどのように構成されるかを表しており、画面解像度３０１ごとに、カーナビアプリが画面に表示するボタン等の画面構成要素（以下、画面部品という）のレイアウト情報が定義される。部品ＩＤ３０２は、画面部品を一意に特定するための識別子であり、画面解像度が異なっても画面部品として同じであれば同じ部品IDとなる。部品種類３０３は画面部品の種類を表しており、名前は画面部品の名前を、左上座標３０５と右下座標３０６は、画面部品を画面上に表示する座標を表している。従属部品ＩＤ３０７は、画面部品レイアウトの前後関係を表しており、どの画面部品より前面に表示するかということを意味している。例えば、図３の例で説明すると、画面解像度１０２４×６００の「部品ＩＤ＝２」の画面部品は「従属部品ＩＤ＝１」となっているので、地図（画面解像度１０２４×６００の部品ＩＤ＝１）の前面に、「現在地」という名前のボタン（部品ＩＤ＝２）を配置することを表している。また、画面解像度１０２４×６００の「部品ＩＤ＝６」と「部品ＩＤ＝７」の画面部品は「従属部品ＩＤ＝５」となっているので、配送先リスト（画面解像度１０２４×６００の部品ＩＤ＝５）の前面に、配送先名を表す文字列（部品ＩＤ＝６）と、配送先場所を地図上に表示するためのボタン（部品ＩＤ＝７）を配置することを表している。このように、画面のレイアウトは、画面部品の一段以上の階層構造で定義される。
【００３４】
図４は、テスト装置１０１の端末情報管理部１０６が管理する端末仕様データをテーブル形式で示す。このデータでは、テスト装置１０１に接続された端末装置１４０の仕様の一例として、画面解像度が管理され、一組が、端末ＩＤ４０１、画面解像度４０２を含んで構成される。端末ＩＤ４０１は端末装置１４０を一意に特定するための識別子である。テスト装置１０１は、端末ＩＤを指定することで、指定した端末装置１４０とデータ送受信ができる。画面解像度４０２は、端末ＩＤ４０１で特定される端末装置１４０の画面の解像度を表している。
【００３５】
図５は、テスト装置１０１の処理フローを示す。最初にステップ５０１では、操作命令作成部１０３が、操作検出部１０２で特定したユーザ操作が、画面の操作か否かを判定する。画面上のタップおよびドラッグであれば画面操作であり、ハードウェアボタン押下であれば画面操作ではない。画面操作でない場合（Ｎｏ）はステップ５０９に進み、押下されたハードウェアボタンの種類に応じた外部ボタン操作命令を作成してステップ５０７へ進む。画面操作の場合（Ｙｅｓ）はステップ５０２に進み、操作検出部１０２がユーザ操作内容を特定する。
【００３６】
操作検出部１０２は、タップおよびドラッグの画面操作は画面上の座標に基づいた操作として検出し、例えば、端末装置と、操作種類と、座標と、を特定する。例えば、タップの場合は「端末装置＝端末１」「操作種類＝タップ」「座標＝(X,Y)」であるし、ドラッグの場合は「端末装置＝端末１」「操作種類＝ドラッグ」「座標＝(X1,Y1)-(X2,Y2)」である。ここで、(X,Y)、(X1,Y1)、(X2,Y2)は端末１の画面上での座標を意味している。また、なお、端末１とは、操作検出部１０２で特定したいずれかの端末装置１４０であり、ここでは、端末装置１４０−１とする。
【００３７】
ステップ５０３では、操作検出部１０２は、レイアウト情報管理部１０５と端末情報管理部１０６に基づいて、画面上の座標から、操作された画面部品を特定する。まず、操作対象の端末装置１４０−１の画面解像度を、端末情報管理部１０６から特定する。例えば、操作検出部１０２で特定された端末装置が「端末１」の場合、端末情報管理部１０６から「端末ID＝端末１」となる画面解像度４０２を調べる。次に、判明した画面解像度に対応するレイアウト情報をレイアウト情報管理部１０５から取得し、ユーザ操作の座標に対応する画面部品を特定する。
【００３８】
例えば、判明した画面解像度が「1024×600」、タップした座標が(X,Y)で、(X,Y)の座標は、X1<X3<X<X4<X2、Y1<Y3<Y<Y4<Y2の条件を満たす場合を例に説明する。画面解像度３０１が「1024×600」となる画面部品一覧をレイアウト情報管理部１０５から抽出し、左上座標３０５と右下座標３０６で表される矩形内にタップした座標(X,Y)が含まれる画面部品を探す。ここでは、部品ID＝1の地図と、部品ID＝2の現在地ボタンが条件を満たしたとする。複数の画面部品が条件を満たした場合には、画面上で最も前面に配置されている画面部品が操作されたものとする。
【００３９】
この例では、従属部品ID３０７に定義されているように、現在地ボタン（部品ID＝2）は地図（部品ID＝1）の上に配置されているので、現在地ボタン（部品ID＝2）がタップされたものと解釈する。また、タップした座標(X,Y)と、現在地ボタンの座標(X3,Y3)-(X4,Y4)から、現在地ボタン上のタップされた相対位置を「左上から右に1/3かつ下に1/3の位置」などのように画面部品の大きさに対する比率で算出する。つまり、ユーザ操作のタップは「現在地ボタンの左上から右に1/3かつ下に1/3の位置をタップした」と解釈する。
【００４０】
また例えば、判明した画像解像度が「1024×600」、画面操作が開始位置(XS,YS)から終了位置(XE,YE)へのドラッグの場合を例に説明する。まず、上記のタップでの例と同様に、開始位置(XS,YS)に対応する画面部品を特定し、地図（部品ID=1）が特定されたとする。ドラッグでの移動距離はdX＝XE-XS、dY=YE-YSと算出できるため、ユーザ操作のドラッグは「地図の左上から右に1/3かつ下に1/3の位置から、X方向にdX、かつ、Y方向にdYの距離をドラッグした」と解釈する。
【００４１】
タップ位置やドラッグ開始を画面部品の左上を基準にした比率で算出するのではなく、それ以外の基準点（右下、中心、など）を基準とした比率で算出しても良いし、比率ではなく画面上の距離で算出するようにしても良い。例えば、地図の表示の場合には、それぞれの地図は画面中央に自車位置がくるように表示され、面解像度が異なる端末装置１４０間で表示している地図の領域は異なる（画面サイズに応じた領域が表示される）。そのため、左上からの比率では地図上の座標としては同じ座標を示さないため、中央の自車位置からの絶対距離で表さなければならない。また、ドラッグの移動距離も画面上での絶対距離ではなく、画面部品に対する相対距離（比率）を用いるようにしても良い。「基準点」と「比率または絶対距離」の使い分けは、画面部品ごとに定義しても良いし、全部品共通の「基準点」と「比率または絶対距離」を定義しても良い。
【００４２】
次にステップ５０３では、併せてテストする他の操作端末１４０を一つ選択、選択した他の操作端末１４０での操作対象となる、上記操作端末１４０−１の画面部品に対応する、等価な画面部品を特定する。選択した操作端末１４０の画面解像度を端末情報管理部１０６から取得、取得した画面解像度の部品群の中から、ステップ５０２で特定した画面部品の部品ID３０２と同一の画面部品をレイアウト情報管理部１０５から取得する。
【００４３】
例えば、ステップ５０２で特定した画面部品が「部品ID＝2」、選択した操作端末１４０が「端末２」（操作端末１４０−２）の場合で説明する。まず、端末情報管理部１０６で「端末ID＝端末2」を検索し、画面解像度「480×800」を取得する。次に、レイアウト情報管理部１０５で「画面解像度＝480×800  AND  部品ID＝2」で検索し、現在地ボタンの情報として「部品種類＝button、名前＝現在地、左上座標＝(X13,Y13)、右下座標＝(X14,Y14)」を取得する。なお、同一の部品か否かを判定する方法としては、部品ID３０２の一致のみを判定しても良いし、名前３０４の一致のみを判定しても良いし、部品ID３０２と名前３０４の両方の一致を判定しても良い。
【００４４】
次にステップ５０４では、操作命令作成部１０３が、ステップ５０２で特定されたユーザ操作と、ステップ５０３で特定した画面部品に基づいて、操作端末１４０−１に対する操作命令と等価な、選択した端末装置１４０−２に対する操作命令を作成する。操作命令は、端末装置１４０−２における操作種類（タップ、または、ドラッグ）と画面上の座標（タップ位置、ドラッグ開始位置および距離）の組み合わせを含んで構成される。
【００４５】
まず、タップの場合の例を、操作端末１４０−２が「端末ID＝端末２」、操作対象の画面部品が「現在地ボタン（部品ID＝2、左上座標＝(X13,Y13）、右下座標＝(X14,Y14））」、現在地ボタン上のタップ位置が比率指定で「左上から右に1/3かつ下に1/3の位置」で説明する。基準点の左上座標を基準にして、ボタンのタップ位置を座標に変換すると、X座標＝X13＋(X14-X13)/3、Y座標＝Y13＋(Y14-Y13)/3となる。ここで、(X14-X13)/3や(Y14-Y13)/3は、現在地ボタン上での相対的なタップ位置、つまり、「左上から右に1/3かつ下に1/3の位置」を表している。よって、端末装置１４０−２に対する操作命令は「X座標＝X13＋(X14-X13)/3、Y座標＝Y13＋(Y14-Y13)/3の画面上の座標をタップする」となる。
【００４６】
次に、ドラッグの場合の例を、操作端末１４０−２が「端末ID＝端末２」、操作対象の画面部品が「地図（部品ID＝1、左上座標＝(X11,Y11)、右下座標＝(X12,Y12)）」、地図上でのドラッグ開始位置が比率指定で「左上から右に1/3かつ下に1/3の位置」、ドラッグでの移動距離が絶対距離で「X方向にdXかつY方向にdYの距離」で説明する。
【００４７】
まずドラッグ開始位置を座標に変換すると、X座標＝X11＋(X12-X11)/3、Y座標＝Y11＋(Y12-Y11)/3となる。ここで、(X12-X11)/3や(Y12-Y11)/3は、地図上での相対的なドラッグ開始位置、つまり、「左上から右に1/3かつ下に1/3の位置」を表している。次にドラッグ終了位置は開始位置に絶対的な移動距離を加えた、X座標＝X11＋(X12-X11)/3＋dX、Y座標＝Y11＋(Y12-Y11)/3＋dYとなる。よって、端末装置１４０−２に対する操作命令は「開始位置（X座標＝X11＋(X12-X11)/3、Y座標＝Y11＋(Y12-Y11)/3）から終了位置（X座標＝X11＋(X12-X11)/3＋dX、Y座標＝Y11＋(Y12-Y11)/3＋dY）までドラッグする」となる。
【００４８】
次にステップ５０５では、ステップ５０４で作成した操作命令の補正が必要か否かを判定する。補正が必要な場合（Ｙｅｓ）にはステップ５０６に、補正が必要ない場合（Ｎｏ）にはステップ５０７に進む。補正が必要か否かは、操作命令の座標が画面外になるか否かで判定する。補正の有無判定を図６の例で説明する。端末１の画面６０１に対して、左上から右に1/3かつ下に2/3の開始位置（Ａ−１）から終了位置（Ｂ−１）まで地図を絶対距離Ｄだけドラッグしたとする。これを端末２の画面６０２への操作命令に変換すると、開始位置は比率計算のため開始位置（Ａ−２）は地図上にのるが、終了位置（Ｂ−２）が画面外の座標となってしまう。
【００４９】
このようにドラッグの終了位置が画面外になってしまう場合に、画面内の座標におさまるように操作命令の補正が必要となる。なお、図６では開始位置が比率で指定された場合のため、端末２の画面６０２で開始位置（Ａ−２）は地図上になるが、基準点からの絶対距離で指定した場合は開始位置が画面外になることもある。そのため、ドラッグの終了位置が画面外となる場合だけでなく、ドラッグの開始位置が画面外となる場合、ドラッグの開始位置および終了位置が画面外となる場合にも操作命令の補正が必要となる。
【００５０】
次にステップ５０６では、画面内の座標におさまるように「座標移動」と「命令分割」のいずれか一方または両方を行うことで操作命令を補正する。まず、ドラッグ開始位置が画面外の場合には、座標を平行移動して画面内におさまるようにする。例えば、ドラッグ開始位置が(-10,10)の場合には、X方向に10移動して(0,10)をドラッグ開始したことにする。平行移動の方法は、画面外になっているX座標またはY座標のみを移動しても良いし、左上座標(0,0)などに移動するようにしても良い。地図に対するドラッグの場合には、開始位置に依存せず、ドラッグした距離だけ地図を移動させる処理であるため、開始位置を平行移動しても問題はない。
【００５１】
次に、ドラッグ終了位置が画面外の場合には、操作命令を複数に分割することで、画面内の操作になるように変換する。操作命令の分割を図７の例で説明する。ステップ５０５で作成した操作命令が、開始位置（Ａ）７０２から、画面外の終了位置（Ｂ）７０３まで、移動量がX方向に2x、Y方向に2yのドラッグ操作７０１だとする。終了位置（Ｂ）が画面外に出てしまうため、画面内の中間地点（Ｃ）７０４を選択し、Ａ→Ｂのドラッグ操作を、Ａ→Ｃのドラッグ操作７１０（X方向にx、Y方向にyのドラッグ）と、Ｃ→Ｂのドラッグ操作７２０（X方向にx、Y方向にyのドラッグ）に分割する。図７の例では２つの操作命令への分割であるが、３つ以上の操作命令への分割でも良い。また、ドラッグ開始位置が画面内の場合でも、開始位置を「座標移動」しても良い。
【００５２】
ステップ５０７では作成した操作命令を端末装置１４０−２に送信する。ステップ５０６で操作命令が分割された場合には、複数の操作命令を送信する。ステップ５０８では、テスト装置１０１に接続された全ての端末装置１４０に操作命令を送信したか否かを確認、未送信の端末装置１４０がある場合（Ｎｏ）にはステップ５０１に戻り、全ての端末装置１４０に送信した場合（Ｙｅｓ）には終了する。
【００５３】
図８は、画面イメージ表示部１０８での、複数の端末装置１４０の画面表示例を表している。テスト装置１０１に２つの端末装置１４０−１、１４０−２（端末１と端末２）が接続されており、画面イメージ表示部１０８により、端末１の画面８０１と、端末２の画面８１０と、が表示されており、ユーザは、端末１画面８０１または端末２画面８１０の何れかを操作する。
【００５４】
画面イメージ８０２は、画面イメージ送信部２０５がキャプチャした端末１の画面に基づき、画面イメージ表示部が１０８が表示する画面イメージであり、メニューボタン８０３、ホームボタン８０４、戻るボタン８０５は、端末１が備えるハードウェアボタンを疑似的に表示したボタンである。また、画面イメージ８１１は、画面イメージ送信部２０５がキャプチャした端末２の画面に基づき、画面イメージ表示部が１０８が表示する画面イメージであり、メニューボタン８１２、ホームボタン８１３、戻るボタン８１４は、端末２が備えるハードウェアボタンを疑似的に表示したボタンである。
【００５５】
端末１と端末２は画面解像度や画面向きなどの仕様が異なるため、画面イメージ８０２と画面イメージ８１１に表示されている画面部品は同じであるが、画面のレイアウトは異なっている。例えば、横向きの画面イメージ８０２では現在地ボタンは左下に表示されているが、縦向きの画面イメージ８１１では現在地ボタンは上部に表示されている。
【００５６】
ユーザは、画面イメージ８０２または画面イメージ８１１に対してタップやドラッグ操作を行ったり、メニューや、ホーム、戻るのハードウェアボタンを押下したりする。端末１画面８０１にも、端末２画面８１０にも同じハードウェアボタンを表示しているが、全ての端末で共通のハードウェアボタンと表示しても良い。画面イメージ８０２および画面イメージ８１１は、端末装置１４０の実際の画面サイズと同じサイズで表示しても良いし、小さい画面のみを拡大して表示するようにしても良い。端末１画面８０１、端末２画面８１０の表示位置は、縦並びや横並びで表示しても良いし、ユーザが自由に設定できるようにしても良い。
【００５７】
図９は、テスト装置１０１で、ドラッグなどのユーザ操作を制限するための画面表示の一例である。図８の例と同様に、端末１画面８０１と端末２画面８１０とが表示されている。端末１と端末２は画面解像度が異なるため、それぞれの画面に表示されている地図の領域が異なる。画面イメージ表示部１０８は、端末１と端末２の両方に表示されている地図の領域を、領域９０１として、強調表示している。地図の場合は、基準点が中央であるため、画面中央を中心にして画面を重ねた場合の、地図の領域の重なり部分が共通領域となる。地図を操作する場合、この共通領域でない部分を操作した場合に、ドラッグ開始位置やドラッグ終了位置が画面外となり、図５のステップ５０６で操作命令の補正が必要となる。ユーザに共通領域内での操作を促すことで、操作命令の補正を行う必要がなくなる。共通領域は表示するだけでも良いし、操作命令作成部１０３が、共通領域でない地図領域部分のユーザ操作を受け付けないようにしても良い。共通領域は枠で囲んで表示しても良いし、色を変えて表示しても良い。
【００５８】
なお、テスト装置１０１が端末装置１４０のエミュレータを有し、このエミュレータ上でカーナビアプリ２０４を動作させることにより、端末装置１４０を用いずにカーナビアプリ２０４のテストを実行しても良い。また、テスト装置１０１と端末装置１４０を有するテスト支援システムを用いる場合、テスト装置１０１がエミュレータを有する場合に比べて、テスト装置１０１の負荷を低減することができる。
【００５９】
また、テスト装置１０１に表示された端末１４０の画面に対する操作を操作検出部１０２で検出するのではなく、操作検出部１０２を端末装置１４０で実行する構成とし、ユーザが端末装置１４０の何れかを操作、端末装置１４０内の操作検出部１０２がユーザ操作を検出し、テスト装置１０１の操作命令作成部１０３に対して検出したユーザ操作を送るようにしても良い。ここで、操作命令作成部１０３に送る情報は、操作検出部１０２をテスト装置で動作させた時と同様に、ユーザが操作した端末装置１４０を特定するための端末ＩＤと、タップやドラッグなどのユーザ操作の内容である。
【符号の説明】
【００６０】
１０１：テスト装置、１０２：操作検出部、１０３：操作命令作成部、１０４：操作命令送信部、１０５：レイアウト情報管理部、１０６：端末情報管理部、１０７：接続管理部、１０８：画面イメージ表示部、１０９：画面イメージ取得部、１４０：端末装置、２０１：操作命令受信部、２０２：操作命令実行部、２０３：端末情報送信部、２０４：カーナビアプリ、２０５：画面イメージ送信部
【図１】
2014219885.tif 000003
【図２】
2014219885.tif 000004
【図３】
2014219885.tif 000005
【図４】
2014219885.tif 000006
【図５】
2014219885.tif 000007
【図６】
2014219885.tif 000008
【図７】
2014219885.tif 000009
【図８】
2014219885.tif 000010
【図９】
2014219885.tif 000011