(57)【要約】【課題】検証作業を効率的に実行することを課題とする。【解決手段】検証管理サーバは、互いに異なる動作環境が構築された複数の仮想マシンを実行する。そして、検証管理サーバは、検証対象のアプリケーションを動作させる動作環境に基づいて、実行される仮想マシンを選択する。その後、検証管理サーバは、選択された仮想マシンで検証対象のアプリケーションを実行し、選択された動作環境における検証対象のアプリケーションの動作を検証する。【選択図】図２
2014035744.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる動作環境が構築された複数の仮想マシンを実行する仮想実行部と、
検証対象のアプリケーションを動作させる動作環境に基づいて、前記仮想実行部によって実行される仮想マシンを選択する選択部と、
前記選択部によって選択された仮想マシンで前記検証対象のアプリケーションを実行し、前記動作環境における前記検証対象のアプリケーションの動作を検証する検証部と
を有することを特徴とする検証管理装置。
【請求項２】
前記検証対象のアプリケーションの実行要求を送信する端末装置を特定する端末情報と、前記仮想マシンを特定するマシン情報の少なくとも１つとを対応付けて記憶する端末記憶部をさらに有し、
前記選択部は、前記検証対象のアプリケーションの実行要求を前記端末装置から受信し、前記実行要求を送信した前記端末装置に対応付けられる前記マシン情報を前記端末記憶部から特定し、特定した前記マシン情報によって特定される前記仮想マシンを選択することを特徴とする請求項１に記載の検証管理装置。
【請求項３】
前記選択部が選択した仮想マシンにおいて表示対象となる画面情報であって、前記仮想マシンを遠隔で操作できる遠隔処理画面を、前記仮想マシンに前記検証対象のアプリケーションの実行を要求した端末装置に表示させる遠隔処理部をさらに有することを特徴とする請求項２に記載の検証管理装置。
【請求項４】
前記検証部は、前記遠隔処理画面で受け付けられた操作情報で特定される処理を、前記遠隔処理画面で前記端末装置と連携する前記仮想マシンで実行して、前記操作情報で特定される処理を検証することを特徴とする請求項３に記載の検証管理装置。
【請求項５】
前記検証対象のアプリケーションの実行要求を送信する端末装置を特定する端末情報に対応付けて、検証結果の表示対象となる出力先装置を特定する出力情報を記憶する出力情報記憶部をさらに有し、
前記検証部は、前記検証対象のアプリケーションの実行要求を送信した前記端末装置に対応付けられる前記出力情報を前記出力情報記憶部から特定し、特定した出力情報で特定される出力先装置に、前記アプリケーションの検証結果を出力することを特徴とする請求項１から４のいずれか一つに記載の検証管理装置。
【請求項６】
検証管理装置で実行される検証管理方法であって、
互いに異なる動作環境が構築された複数の仮想マシンを実行する仮想実行工程と、
検証対象のアプリケーションを動作させる動作環境に基づいて、前記仮想実行工程によって実行される仮想マシンを選択する選択工程と、
前記選択工程によって選択された仮想マシンで前記検証対象のアプリケーションを実行し、前記動作環境における前記検証対象のアプリケーションの動作を検証する検証工程と
を含んだことを特徴とする検証管理方法。
【請求項７】
互いに異なる動作環境が構築された複数の仮想マシンを実行する仮想実行ステップと、
検証対象のアプリケーションを動作させる動作環境に基づいて、前記仮想実行ステップによって実行される仮想マシンを選択する選択ステップと、
前記選択ステップによって選択された仮想マシンで前記検証対象のアプリケーションを実行し、前記動作環境における前記検証対象のアプリケーションの動作を検証する検証ステップと
をコンピュータに実行させることを特徴とする検証管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証管理装置、検証管理方法および検証管理プログラムに関する。
【背景技術】
【０００２】
近年、アプリケーションの開発サイクルは早く、短いサイクルでのリリースが一般的となりつつある一方、ＯＳ（Operating  System）の更改サイクルも短い。このため、同じアプリケーションを異なるＯＳで動作させる状況が存在する。このような状況の発生は、特にスマートフォンなどのモバイル環境で動作するアプリケーションにおいて顕著である。モバイル環境では、異なるＯＳや異なるバージョンのＯＳを搭載した端末が複数存在するので、アプリケーションの開発側は、短い開発期間の中で、複数の実行環境での利用を想定して動作検証を行う必要がある。
【０００３】
例えば、想定される複数の実行環境各々をサーバなどに物理的に用意し、用意した各実行環境で、アプリケーションの動作検証を行う検証手法が知られている。また、開発マシン上でエミュレータを動作させて想定される各実行環境を擬似的に構築し、アプリケーションの検証を行う検証手法も知られている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】木南  英夫著、「Google  Androidアプリケーション開発入門（２．３  エミュレータの使用方法）」、日経BP出版センター  ２００９年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記技術では、コストが高く、検証できる項目に制限があるなど、検証作業が効率的ではないという問題がある。
【０００６】
例えば、想定される実行環境としては、ＯＳの種類、ＯＳのバージョン、アプリケーションのバージョン、これらの組み合わせなどが考えられ非常に多い。したがって、実行環境各々を物理的に用意する手法では、実行環境が５０個あれば、５０台の端末を用意することになり、コストが高くなる。
【０００７】
また、開発環境は、パーソナルコンピュータやサーバなど固定端末であることが多く、固定端末でエミュレータを起動することが一般的である。したがって、エミュレータを用いる手法では、センサ機能やＧＰＳ機能による測定処理、他の装置が測定した情報を受信する処理、受信した情報を用いて実行する処理などを検証することができない。
【０００８】
開示の実施形態は、上記に鑑みてなされたものであって、検証作業を効率的に実行できる検証管理装置、検証管理方法および検証管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する検証管理装置、検証管理方法および検証管理プログラムは、一つの態様において、互いに異なる動作環境が構築された複数の仮想マシンを実行する仮想実行部と、検証対象のアプリケーションを動作させる動作環境に基づいて、前記仮想実行部によって実行される仮想マシンを選択する選択部と、前記選択部によって選択された仮想マシンで前記検証対象のアプリケーションを実行し、前記動作環境における前記検証対象のアプリケーションの動作を検証する検証部とを有する。
【発明の効果】
【００１０】
本願の開示する検証管理装置、検証管理方法および検証管理プログラムの一つの態様によれば、検証作業を効率的に実行できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態に係るシステムの全体構成例を示す図である。
【図２】図２は、第１の実施形態に係る各装置の機能構成を示す機能ブロック図である。
【図３】図３は、管理情報ＤＢが記憶する情報の例を示す図である。
【図４】図４は、選択済み情報ＤＢが記憶する情報の例を示す図である。
【図５】図５は、検証処理の流れを示すフローチャートである。
【図６】図６は、検証対象のＶＭが複数存在する場合の検証処理の流れを示すフローチャートである。
【図７】図７は、遠隔操作ビューアの切替例を示す図である。
【図８】図８は、第２の実施形態に係るシステムの全体構成例を示す図である。
【図９】図９は、第２の実施形態に係る検証処理の流れを示すフローチャートである。
【図１０】図１０は、具体的な利用シーンを説明する図である。
【図１１】図１１は、検証管理プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する検証管理装置、検証管理方法および検証管理プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
［第１の実施形態］
第１の実施形態では、システムの全体構成、システムを構成する各装置の機能ブロック図、処理の流れ等について説明する。
【００１４】
［全体構成］
図１は、第１の実施形態に係るシステムの全体構成例を示す図である。図１に示すように、このシステムは、クライアント端末１と検証管理サーバ１０とを有し、アプリケーションの動作検証を実行するシステムである。
【００１５】
クライアント端末１は、検証対象のアプリケーションや検証対象の動作環境を検証管理サーバ１０に対して指定する端末である。クライアント端末１としては、例えば一般的なパーソナルコンピュータやサーバの他に、スマートフォンを採用することができる。例えば、クライアント端末１は、アプリケーションＡを動作環境Ｚで動作させるなどの指定を管理者から受け付けて検証管理サーバ１０に送信する。
【００１６】
検証管理サーバ１０は、クライアント端末１からの指示にしたがってアプリケーションの動作を検証するサーバである。具体的には、検証管理サーバ１０は、ＶＭ管理部１５によって、互いに異なる動作環境が構築された複数の仮想マシン（VM：Virtual  Machine）を実行する。ここでは、ＶＭ管理部１５は、ＶＭ（Ａ）、ＶＭ（Ｂ）、ＶＭ（Ｃ）・・・ＶＭ（Ｚ）を実行する。そして、検証管理サーバ１０は、検証対象のアプリケーションを動作させる動作環境に基づいて、ＶＭ管理部１５によって実行される仮想マシンを選択する。その後、検証管理サーバ１０は、選択された仮想マシンで検証対象のアプリケーションを実行し、指定された動作環境における検証対象のアプリケーションの動作を検証する。
【００１７】
ここで、動作環境とは、ＯＳの種類、ＯＳのバージョン、アプリケーションのバージョン、連携する各アプリケーションのバージョンの組み合わせ、さらにはこれらの組み合わせなどが該当する。つまり、検証管理サーバ１０が実行する各ＶＭには、アプリケーションの検証対象として想定される動作環境が構築され、検証対象のアプリケーションがインストール済みである。例えば、ＶＭ（Ａ）は、ＯＳ（Ａ）のバージョン０、ＶＭ（Ｂ）は、ＯＳ（Ａ）のバージョン１、ＶＭ（Ｃ）は、ＯＳ（Ｂ）のバージョン１などのように、各ＶＭには異なる動作環境が構築されている。
【００１８】
このような状況で、例えば、スマートフォンのアプリケーションＡがＯＳ（Ａ）で正常に動作するかを検証する場合を想定する。この場合、開発者は、クライアント端末１を用いて、アプリケーションＡおよびＯＳ（Ａ）を検証管理サーバ１０に指定する。すると、検証管理サーバ１０は、ＯＳ（Ａ）で動作するＶＭ（Ａ）を特定し、ＶＭ（Ａ）にアプリケーションＡの動作を指示する。その後、検証管理サーバ１０は、ＶＭ（Ａ）上でのアプリケーションＡの動作状況や動作結果をクライアント端末１に送信する。
【００１９】
このようにすることで、検証対象の動作環境を物理的に用意することなく、また、アプリケーションを開発する開発端末上で動作させたエミュレータを用いることもなく、アプリケーションを複数の動作環境で簡単に実行することができる。この結果、コストの増加を抑制し、検証項目の制限を緩和することができるので、アプリケーションの検証作業を効率的に実行できる。
【００２０】
なお、ここでは、クライアント端末１が検証対象のアプリケーションや動作環境を検証管理サーバ１０に指定する例を説明したが、これに限定されるものではない。例えば、検証管理サーバ１０にマウスやディスプレイ等を接続し、検証管理サーバ１０が、管理者等から検証対象のアプリケーションや動作環境の指定を直接受け付けてもよい。また、スマートフォンの開発を例にしたが、これに限定されるものではなく、一般的なコンピュータ等で実行される様々なアプリケーションを対象とすることができる。
【００２１】
［機能構成］
次に、図２を用いて、図１に示したシステムを構成するクライアント端末１と検証管理サーバ１０の機能構成について説明する。図２は、第１の実施形態に係る各装置の機能構成を示す機能ブロック図である。
【００２２】
（クライアント端末）
図２に示すように、クライアント端末１は、通信部１ａ、要求部１ｂ、遠隔操作ビューア実行部１ｃ、表示部１ｄを有する。なお、ここに示した処理部は、あくまで例示であり、例えばマウスなどの入力部、メモリやハードディスクなどの記憶部などを有していてもよい。
【００２３】
通信部１ａは、検証管理サーバ１０との通信を制御する処理部である。例えば、通信部１ａは、後述する要求部１ｂが出力した実行要求等を検証管理サーバ１０に送信し、検証管理サーバ１０から受信した検証結果や遠隔操作ビューア用の表示画面等を遠隔操作ビューア実行部１ｃに出力する。なお、通信部１ａは、例えばネットワークインタフェースカードなどであり、ＩＰアドレス「ＩＰ（１）」が設定されている。
【００２４】
要求部１ｂは、検証管理サーバ１０に対して、アプリケーションの検証を要求する処理部である。具体的には、要求部１ｂは、管理者から指示された場合、検証対象のアプリケーションの情報を含んだ実行要求を検証管理サーバ１０に送信する。また、要求部１ｂは、遠隔操作ビューア実行部１ｃで検証対象の操作が受け付けられた場合に、実行要求として受け付けられた操作情報を検証管理サーバ１０に送信する。このように、実行要求には、検証対象のアプリケーションを特定する情報やタッチパネルの操作情報が含まれており、さらには、クライアント端末のＳＩＭ情報、検証対象のＯＳやバージョン等を含めてもよい。
【００２５】
遠隔操作ビューア実行部１ｃは、要求部１ｂが実行要求を送信した先のＶＭと遠隔操作ビューアで接続する処理部である。遠隔操作ビューア実行部１ｃは、遠隔操作ビューアを表示部１ｄに表示させて、該当ＶＭと連携接続する。すなわち、遠隔操作ビューア実行部１ｃによって、クライアント端末１からＶＭを遠隔操作することができる。
【００２６】
また、この遠隔操作ビューア実行部１ｃは、連携先のＶＭで表示される画面を表示部１ｄに表示させ、表示部１ｄに表示される遠隔操作ビューア上で管理者等が操作した内容をＶＭに送信する。例えば、遠隔操作ビューア実行部１ｃが、特定した操作情報を要求部１ｂに出力し、要求部１ｂが、当該操作情報をＶＭに送信する。また、遠隔操作ビューア実行部１ｃは、受け付けた操作情報をタッチパネル上の座標情報等に変換して、操作を特定することもできる。一例を挙げると、遠隔操作ビューア実行部１ｃは、受け付けた操作情報を実行要求である「アプリケーションＢの実行」に変換することもできる。
【００２７】
また、遠隔操作ビューア実行部１ｃは、クライアント端末１からＶＭを遠隔操作してその内容を遠隔操作ビューアで確認できることから、表示部１ｄで受け付けられた操作内容がＶＭで正常に認識されているかの検証を行うこともできる。つまり、ＶＭでタッチパネルの操作が正常に処理されるかを検証できる。
【００２８】
表示部１ｄは、遠隔操作ビューア実行部１ｃによって実行される遠隔操作ビューアを表示する表示装置であり、例えばタッチパネルやディスプレイが該当する。表示部１ｄが表示する遠隔操作ビューアは、タッチパネルだけでなく、マウスやキーボード等を用いて操作することもできる。なお、検証管理サーバ１０は、上述したタッチパネルの操作だけでなく、マウスやキーボード等を用いた操作から操作情報を生成することができる。
【００２９】
（検証管理サーバ）
図２に示すように、検証管理サーバ１０は、外部通信部１１、内部通信部１２、記憶部１３、ＶＭ管理部１５、仮想領域１６を有する。なお、ここに示した処理部は、あくまで例示であり、例えばマウスなどの入力部、ディスプレイなどの表示部などを有していてもよい。なお、記憶部１３は、例えばメモリやハードディスクなどの記憶装置であり、ＶＭ管理部１５は、プロセッサが実行する処理部である。
【００３０】
外部通信部１１は、クライアント端末１との通信を制御する処理部である。例えば、外部通信部１１は、クライアント端末１から実行要求や操作情報を受信してＶＭ管理部１５に出力する。また、外部通信部１１は、内部通信部１２によって受信されたＶＭの画面情報や検証結果をクライアント端末１へ送信する。この外部通信部１１は、例えばネットワークインタフェースカードであり、ＩＰアドレス「ＩＰ（１０）」が設定されている。
【００３１】
内部通信部１２は、ＶＭ管理部１５と仮想領域１６内の各ＶＭとの通信を制御する処理部である。例えば、内部通信部１２は、ＶＭ管理部１５からアプリケーションの実行指示や遠隔操作ビューアの接続指示等を受信して、該当するＶＭに出力する。また、内部通信部１２は、ＶＭの画面情報や検証結果をＶＭから受信して、ＶＭ管理部１５へ出力する。なお、内部通信部１２は、例えば仮想スイッチなどである。
【００３２】
記憶部１３は、プロセッサが実行するプログラムやデータを記憶するとともに、管理情報ＤＢ１３ａと選択済み情報ＤＢ１３ｂとを有する記憶部である。管理情報ＤＢ１３ａは、検証対象のアプリケーションの実行要求を送信するクライアント端末を特定する端末情報と、ＶＭを特定するマシン情報の少なくとも１つと、検証結果の出力先を特定する出力先情報とを対応付けて記憶するデータベースである。図３は、管理情報ＤＢが記憶する情報の例を示す図である。
【００３３】
図３に示すように、管理情報ＤＢ１３ａは、「ＳＩＭ情報、ＶＭのＩＰアドレス、出力先のＩＰアドレス」を対応付けて記憶する。ここで記憶される「ＳＩＭ情報」は、クライアント端末に挿入されるＳＩＭカードが記憶する情報を示し、例えば携帯電話会社との契約情報等である。また、「ＶＭのＩＰアドレス」は、アプリケーションの検証を要求する先のＶＭに割当てられたＩＰアドレスである。また、「出力先のＩＰアドレス」は、検証結果の出力先として指定された装置に割当てられたＩＰアドレスである。
【００３４】
図３の場合、ＳＩＭ（１）を有するクライアント端末１が送信した実行要求については、ＩＰ（Ａ）のＶＭで検証処理が実行され、ＩＰ（１）の端末に検証結果が出力されることを示す。また、ＳＩＭ（２）を有するクライアント端末が送信した実行要求については、ＩＰ（Ａ）のＶＭとＩＰ（Ｃ）のＶＭの各々で検証処理が実行され、ＩＰ（２）の端末とＩＰ（１００）の端末との各々に検証結果が出力されることを示す。
【００３５】
なお、図３では、クライアント端末１がスマートフォンであることを想定した場合の例を示したが、これに限定されるものではない。例えば、クライアント端末１がサーバ等である場合には、ＳＩＭ情報の代わりに、クライアント端末１のＩＰアドレスやＭＡＣ（Media  Access  Control）アドレスであってもよい。
【００３６】
選択済み情報ＤＢ１３ｂは、ＶＭ管理部１５によってアプリケーションの実行先として選択されたＶＭの情報と、当該ＶＭに対して検証処理の実行を要求したクライアント端末１を特定する端末情報とを対応付けて記憶するデータベースである。図４は、選択済み情報ＤＢが記憶する情報の例を示す図である。
【００３７】
図４に示すように、選択済み情報ＤＢ１３ｂは、「選択済みＶＭ、要求元のＩＰアドレス」を対応付けて記憶する。ここで記憶される「選択済みＶＭ」は、後述する選択部１５ｂによって選択されたＶＭのＩＰアドレスである。また、「要求元のＩＰアドレス」は、ＳＩＭ情報を送信したクライアント端末のＩＰアドレスである。図４の場合、ＩＰアドレスがＩＰ（Ａ）のＶＭに対して、検証の実行を要求したクライアント端末のＩＰアドレスが「ＩＰ（１）」であることを示す。
【００３８】
ＶＭ管理部１５は、仮想実行部１５ａ、選択部１５ｂ、検証部１５ｃを有し、これらによってアプリケーションの動作を検証する処理部である。
【００３９】
仮想実行部１５ａは、仮想領域１６内で、互いに異なる動作環境が構築された複数のＶＭを動作させる処理部である。また、仮想実行部１５ａは、各ＶＭで稼動するＯＳに、仮想プロセッサと仮想メモリとを割り当てる。この結果、各ＶＭは、独立して各種処理を実行することができる。なお、仮想メモリは、検証管理サーバ１０のメモリにおける所定領域を、ＶＭのＯＳが使用するメモリとして割り当てることで実現された仮想的なメモリである。仮想プロセッサは、検証管理サーバ１０のプロセッサにおける所定処理能力をＶＭのＯＳが使用するプロセッサとして割り当てることで実現された仮想的なプロセッサである。
【００４０】
例えば、実施の形態１では、仮想実行部１５ａは、ＯＳ（Ａ）のバージョン０が稼動するＶＭ（Ａ）、ＯＳ（Ａ）のバージョン１が稼動するＶＭ（Ｂ）、ＯＳ（Ｂ）のバージョン１が稼動するＶＭ（Ｃ）を実行する。
【００４１】
選択部１５ｂは、検証対象のアプリケーションを動作させる動作環境に基づいて、仮想実行部１５ａによって実行されるＶＭを選択する処理部である。具体的には、選択部１５ｂは、仮想領域１６で動作する複数のＶＭの中から、ＳＩＭ情報を送信したクライアント端末１や検証処理の実行要求を送信したクライアント端末１に対応付けられているＶＭを選択する。つまり、選択部１５ｂは、クライアント端末１が検証対象とする動作環境のＶＭを選択する。
【００４２】
例えば、選択部１５ｂは、クライアント端末１からＳＩＭ情報「ＳＩＭ（１）」を受信すると、管理情報ＤＢ１３ａを参照し、ＳＩＭ情報「ＳＩＭ（１）」に対応するＩＰ（Ａ）を特定する。そして、選択部１５ｂは、特定したＩＰ（Ａ）に対して、受信したＳＩＭ情報「ＳＩＭ（１）」を送信する。このとき、選択部１５ｂは、ＳＩＭ情報が含まれるパケット等からクライアント端末１のＩＰアドレス「ＩＰ（１）」を抽出し、抽出したＩＰアドレス「ＩＰ（１）」と特定済みのＩＰアドレス「ＩＰ（Ａ）」とを対応付けて、選択済み情報ＤＢ１３ｂに格納する。
【００４３】
また、選択部１５ｂは、クライアント端末１から実行要求や操作情報を含むパケットを受信すると、当該パケットからクライアント端末１のＩＰアドレス「ＩＰ（１）」を抽出する。そして、選択部１５ｂは、上記選択済み情報ＤＢ１３ｂから、抽出したＩＰアドレス「ＩＰ（１）」に対応するＩＰ（Ａ）を特定する。そして、選択部１５ｂは、特定したＩＰアドレス「ＩＰ（Ａ）」のＶＭでアプリケーションの動作を検証するために、特定したＩＰアドレス「ＩＰ（Ａ）」を検証部１５ｃに通知する。
【００４４】
検証部１５ｃは、選択部１５ｂによって選択されたＶＭで検証対象のアプリケーションを実行し、ＶＭに構築される動作環境において検証対象のアプリケーションの動作を検証する処理部である。例えば、検証部１５ｃは、選択部１５ｂから受信したＩＰアドレスのＶＭに対して、受信済みの実行要求または操作情報を送信する。
【００４５】
このとき、検証部１５ｃは、受信済みの実行要求内に検証対象のアプリケーションが指定されていた場合は、該当するＶＭに対して、指定されたアプリケーションの実行を指示する。また、検証部１５ｃは、受信済みの実行要求がタッチパネルの操作情報である場合には、当該操作情報を該当するＶＭに送信する。
【００４６】
また、検証部１５ｃは、ＶＭから画面情報や検証結果を受信すると、送信元のＶＭのＩＰアドレス「ＩＰ（Ａ）」を特定する。なお、特定方法は、画面情報等を含むパケットのヘッダから特定できる。そして、検証部１５ｃは、特定したＶＭのＩＰアドレス「ＩＰ（Ａ）」に対応する出力先のＩＰアドレス「ＩＰ（１）」を管理情報ＤＢ１３ａから特定する。その後、検証部１５ｃは、最終的に特定したＩＰアドレス「ＩＰ（１）」に対して、ＶＭから受信した画面情報や検証結果を送信する。
【００４７】
仮想領域１６は、仮想実行部１５ａによって管理される領域であり、任意の数のＶＭを動作させることができる。例えば、仮想領域１６では、互いに異なる動作環境が構築された複数のＶＭが動作する。ここで動作するＶＭは、動作環境が異なるものの、同一の構成を有するので、ＶＭ１７として説明する。
【００４８】
ＶＭ１７は、仮想プロセッサや仮想メモリが割当てられた仮想マシンである。このＶＭ１７は、仮想的に生成された処理部等として、通信部１７ａとアプリ記憶部１７ｂとプログラム実行部１７ｃと遠隔操作ビューア実行部１７ｄとを有する。
【００４９】
通信部１７ａは、検証管理サーバ１０の内部通信部１２との間で通信を制御する処理部である。例えば、通信部１７ａは、ＶＭ管理部１５からＳＩＭ情報、実行要求、操作情報などを受信して、ＶＭ１７に送信する。また、通信部１７ａは、ＶＭ１７から画面情報や検証結果などを受信して、検証管理サーバ１０の内部通信部１２に送信する。なお、通信部１７ａは、例えば仮想ネットワークインタフェースカードであり、ＩＰアドレスとして「ＩＰ（Ａ）」などが設定される。
【００５０】
アプリ記憶部１７ｂは、検証対象のアプリケーションのプログラムを記憶する仮想記憶部である。例えば、アプリ記憶部１７ｂは、様々な検証に対応できるように、１つのアプリケーションについて、複数のバージョンのアプリケーションを記憶するようにしてもよい。なお、アプリ記憶部１７ｂは、例えば仮想メモリ等に設けられる記憶部である。
【００５１】
プログラム実行部１７ｃは、ＶＭ管理部１５から受信した実行要求や操作指示にしたがってアプリケーションを実行する処理部である。例えば、プログラム実行部１７ｃは、実行要求によってアプリケーションＡの実行が指示されていた場合には、アプリケーションＡのプログラムをアプリ記憶部１７ｂから読み出して実行する。
【００５２】
また、プログラム実行部１７ｃは、ＶＭ管理部１５から操作情報によって特定される処理を実行する。例えば、ＶＭ１７は、ＶＭ管理部１５から操作情報を受信する。すると、遠隔操作ビューア実行部１７ｄが当該操作情報に基づいて操作内容を特定する。このとき、特定される操作内容としては、例えば「フォルダＡをクリックして開いたフォルダＢにあるアプリケーションＢの起動をさせる」などである。そして、プログラム実行部１７ｃは、操作内容すなわち上記例では「アプリケーションＢの起動」を実行する。具体的には、プログラム実行部１７ｃは、アプリケーションＢのプログラムをアプリ記憶部１７ｂから読み出して実行する。
【００５３】
遠隔操作ビューア実行部１７ｄは、ＳＩＭ情報を送信したクライアント端末１との間で遠隔操作ビューアを接続する処理部である。例えば、遠隔操作ビューア実行部１７ｄは、ＶＭ１７内で実行される各種処理を監視し、遠隔操作ビューアを介して、その内容をクライアント端末１に送信する。つまり、遠隔操作ビューア実行部１７ｄは、遠隔操作ビューアで連携接続されるクライアント端末１に、ＶＭ１７で表示対象となる画面情報をリアルタイムで送信することができる。
【００５４】
また、遠隔操作ビューア実行部１７ｄは、遠隔操作ビューアで連携接続されるクライアント端末１側で操作された情報を特定することもできる。例えば、遠隔操作ビューア実行部１７ｄは、遠隔操作ビューア上でクライアント端末１側がＶＭ１７を操作する内容を随時受信することで、クライアント端末１がアプリケーションＢを実行したことを検知できる。なお、クライアント端末１とＶＭ１７とは、遠隔操作ビューアでＶＭの同じ画面を表示する。このため、遠隔操作ビューア実行部１７ｄは、クライアント端末１で操作された一連の動きを示す一連の座標情報を操作情報として受信したとしても、操作内容を特定することができる。
【００５５】
［処理の流れ］
次に、図５と図６を用いて、検証処理の流れを説明する。ここでは、検証先のＶＭが１台の場合とＶＭが２台の場合とについて説明する。また、ここでは、クライアント端末１がスマートフォンである場合を例にして説明する。
【００５６】
（検証処理（ＶＭ１台））
図５は、検証処理の流れを示すフローチャートである。図５に示すように、クライアント端末１の要求部１ｂは、ＳＩＭ情報の送信指示を受け付けると（Ｓ１０１）、挿入されているＳＩＭカードからＳＩＭ情報を読み出して、検証管理サーバ１０に送信する（Ｓ１０２とＳ１０３）。
【００５７】
そして、検証管理サーバ１０のＶＭ管理部１５の選択部１５ｂは、ＳＩＭ情報を受信し（Ｓ１０４）、管理情報ＤＢ１３ａを参照して、受信したＳＩＭ情報に対応するＶＭ１７を特定する（Ｓ１０５）。このとき、選択部１５ｂは、選択したＶＭのＩＰアドレスとクライアント端末１のＩＰアドレスとを対応付けて、選択済みＤＢ１３ｂに格納する。続いて、選択部１５ｂは、特定したＶＭ１７へ、受信したＳＩＭ情報を送信する（Ｓ１０６とＳ１０７）。
【００５８】
ＶＭ１７の遠隔操作ビューア実行部１７ｄは、ＳＩＭ情報の受信を契機に、遠隔操作ビューアの動作を開始し（Ｓ１０８）、遠隔操作ビューアすなわちＧＵＩ（Graphical  User  Interface）画面をＶＭ管理部１５へ送信する（Ｓ１０９とＳ１１０）。
【００５９】
このＧＵＩ画面を受信したＶＭ管理部１５の検証部１５ｃは、ＧＵＩ画面の送信元のＶＭ１７のＩＰアドレスに対応する出力先のＩＰアドレスを管理情報ＤＢ１３ａから特定し（Ｓ１１１）、特定したＩＰアドレスに対してＧＵＩ画面を送信する（Ｓ１１２）。ここでは、出力先として、要求元のクライアント端末１が特定されたとする。
【００６０】
そして、クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ１７のＧＵＩ画面を受信すると、遠隔操作ビューアを起動して、受信したＧＵＩ画面を表示部１ｄに表示させる（Ｓ１１３）。このようにすることで、ＶＭ１７とクライアント端末１との間が、遠隔操作ビューアで連携される。
【００６１】
その後、クライアント端末１の遠隔操作ビューア実行部１ｃは、表示部１ｄに表示させた遠隔操作ビューア上で管理者からの操作を受け付ける（Ｓ１１４）。すると、要求部１ｂは、受け付けられた操作情報を検証管理サーバ１０に送信する（Ｓ１１５とＳ１１６）。
【００６２】
そして、検証管理サーバ１０のＶＭ管理部１５は、操作情報を受信すると（Ｓ１１７）、選択済み情報ＤＢ１３ｂを参照して、当該操作情報を送信したクライアント端末１（要求元）に対応付けられるＶＭ１７（選択済み）を特定し、特定したＶＭ１７に操作情報を送信する（Ｓ１１８とＳ１１９）。
【００６３】
その後、ＶＭ１７の遠隔操作ビューア実行部１７ｄは、ＶＭ管理部１５から操作情報を受信する（Ｓ１２０）。このとき、ＶＭ１７とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ１７が操作情報を受信したときの状況をクライアント端末１で表示することができる（Ｓ１２１〜Ｓ１２３）。
【００６４】
そして、ＶＭ１７の遠隔操作ビューア実行部１７ｄは、受信した操作情報から実行対象の処理やアプリケーションを特定して実行する（Ｓ１２４）。このとき、ＶＭ１７とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ１７が処理を実行したときの状況をクライアント端末１で表示することができる（Ｓ１２５〜Ｓ１２７）。
【００６５】
その後、ＶＭ１７の遠隔操作ビューア実行部１７ｄは、実行した処理やアプリケーションの実行が終了すると、遠隔操作ビューアを用いて、実行結果の情報を示すＧＵＩ画面をクライアント端末１に送信する（Ｓ１２８〜Ｓ１３０）。そして、クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ１７から受信した検証結果を遠隔操作ビューアに表示させる（Ｓ１３１）。
【００６６】
（検証処理（ＶＭ２台））
図６は、検証対象のＶＭが複数存在する場合の検証処理の流れを示すフローチャートである。図６に示すように、クライアント端末１の要求部１ｂは、ＳＩＭ情報の送信指示を受け付けると（Ｓ２０１）、挿入されているＳＩＭカードからＳＩＭ情報を読み出して、検証管理サーバ１０に送信する（Ｓ２０２とＳ２０３）。
【００６７】
そして、検証管理サーバ１０のＶＭ管理部１５の選択部１５ｂは、ＳＩＭ情報を受信し（Ｓ２０４）、管理情報ＤＢ１３ａを参照して、受信したＳＩＭ情報に対応するＶＭ（Ａ）とＶＭ（Ｂ）とを特定する（Ｓ２０５）。このとき、選択部１５ｂは、選択したＶＭ（Ａ）のＩＰアドレスとクライアント端末１のＩＰアドレスとを対応付けて、選択済み情報ＤＢ１３ｂに格納する。同様に、選択部１５ｂは、選択したＶＭ（Ｂ）のＩＰアドレスとクライアント端末１のＩＰアドレスとを対応付けて、選択済みＤＢ１３ｂに格納する。続いて、選択部１５ｂは、特定したＶＭ（Ａ）とＶＭ（Ｂ）とへ、受信したＳＩＭ情報を送信する（Ｓ２０６〜Ｓ２０８）。
【００６８】
ＶＭ（Ａ）の遠隔操作ビューア実行部１７ｄは、ＳＩＭ情報の受信を契機に、遠隔操作ビューアの動作を開始し（Ｓ２０９）、遠隔操作ビューアすなわちＧＵＩ画面をＶＭ管理部１５へ送信する（Ｓ２１０とＳ２１１）。
【００６９】
このＧＵＩ画面を受信したＶＭ管理部１５の検証部１５ｃは、ＧＵＩ画面の送信元のＶＭ（Ａ）のＩＰアドレスに対応する出力先のＩＰアドレスを管理情報ＤＢ１３ａから特定し（Ｓ２１２）、特定したＩＰアドレスに対してＧＵＩ画面を送信する（Ｓ２１３）。ここでは、出力先として、要求元のクライアント端末１が特定されたとする。
【００７０】
同様に、ＶＭ（Ｂ）の遠隔操作ビューア実行部１７ｄは、ＳＩＭ情報の受信を契機に、遠隔操作ビューアの動作を開始し（Ｓ２１４）、遠隔操作ビューアすなわちＧＵＩ画面をＶＭ管理部１５へ送信する（Ｓ２１５とＳ２１６）。
【００７１】
このＧＵＩ画面を受信したＶＭ管理部１５の検証部１５ｃは、ＧＵＩ画面の送信元のＶＭ（Ｂ）のＩＰアドレスに対応する出力先のＩＰアドレスを管理情報ＤＢ１３ａから特定し（Ｓ２１７）、特定したＩＰアドレスに対してＧＵＩ画面を送信する（Ｓ２１８）。ここでは、出力先として、要求元のクライアント端末１が特定されたとする。
【００７２】
そして、クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ（Ａ）やＶＭ（Ｂ）のＧＵＩ画面を受信すると、遠隔操作ビューアを起動して、受信した各ＧＵＩ画面を表示部１ｄに表示させる（Ｓ２１９）。このようにすることで、ＶＭ（Ａ）とクライアント端末１との間およびＶＭ（Ｂ）とクライアント端末１との間が、遠隔操作ビューアで連携される。
【００７３】
その後、クライアント端末１の遠隔操作ビューア実行部１ｃは、表示部１ｄに表示させたＶＭ（Ａ）またはＶＭ（Ｂ）の遠隔操作ビューア上で管理者からの操作を受け付ける（Ｓ２２０）。すると、要求部１ｂは、受け付けられた操作情報を検証管理サーバ１０に送信する（Ｓ２２１とＳ２２２）。
【００７４】
つまり、クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ（Ａ）またはＶＭ（Ｂ）と連携する遠隔操作ビューアで、アプリケーションＢの実行指示を受け付けると、アプリケーションＢの実行指示を検証管理サーバ１０に送信する。ここで送信される操作情報としては、「アプリケーションＢの実行」などのように、操作情報から変換された実行要求であってもよい。
【００７５】
そして、検証管理サーバ１０のＶＭ管理部１５は、２つの操作情報を受信すると（Ｓ２２３）、選択済み情報ＤＢ１３ｂを参照して、各操作情報を送信した各クライアント端末１に対応付けられる各ＶＭを特定し、特定した各ＶＭに各操作情報を送信する（Ｓ２２４〜Ｓ２２６）。
【００７６】
つまり、ＶＭ管理部１５は、ＶＭ（Ａ）またはＶＭ（Ｂ）と連携する遠隔操作ビューアで操作を受け付けた操作情報「アプリケーションＢの実行指示」をＶＭ（Ａ）とＶＭ（Ｂ）に送信する。
【００７７】
その後、ＶＭ（Ａ）の遠隔操作ビューア実行部１７ｄは、ＶＭ管理部１５から操作情報を受信する（Ｓ２２７）。このとき、ＶＭ（Ａ）とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ（Ａ）が操作情報を受信したときの状況をクライアント端末１で表示することができる（Ｓ２２８とＳ２２９）。
【００７８】
そして、ＶＭ（Ａ）の遠隔操作ビューア実行部１７ｄは、受信した操作情報から実行対象の処理やアプリケーションを特定して実行する（Ｓ２３０）。このとき、ＶＭ（Ａ）とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ（Ａ）が処理を実行したときの状況をクライアント端末１で表示することができる（Ｓ２３１とＳ２３２）。
【００７９】
同様に、ＶＭ（Ｂ）の遠隔操作ビューア実行部１７ｄは、ＶＭ管理部１５から操作情報を受信する（Ｓ２３３）。このとき、ＶＭ（Ｂ）とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ（Ｂ）が操作情報を受信したときの状況をクライアント端末１で表示することができる（Ｓ２３４とＳ２３５）。
【００８０】
そして、ＶＭ（Ｂ）の遠隔操作ビューア実行部１７ｄは、受信した操作情報から実行対象の処理やアプリケーションを特定して実行する（Ｓ２３６）。このとき、ＶＭ（Ｂ）とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ（Ｂ）が処理を実行したときの状況をクライアント端末１で表示することができる（Ｓ２３７とＳ２３８）。
【００８１】
一方、クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ（Ａ）およびＶＭ（Ｂ）の各々と遠隔操作ビューアで接続していることから、各遠隔操作ビューアを切替えることで、いずれかのＶＭの画面を表示する（Ｓ２３９）。
【００８２】
その後、ＶＭ（Ａ）の遠隔操作ビューア実行部１７ｄは、実行した処理やアプリケーションの実行が終了すると、遠隔操作ビューアを用いて、実行結果の情報を示すＧＵＩ画面をクライアント端末１に送信する（Ｓ２４０〜Ｓ２４２）。
【００８３】
同様に、ＶＭ（Ｂ）の遠隔操作ビューア実行部１７ｄは、実行した処理やアプリケーションの実行が終了すると、遠隔操作ビューアを用いて、実行結果の情報を示すＧＵＩ画面をクライアント端末１に送信する（Ｓ２４３〜Ｓ２４５）。
【００８４】
一方、クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ（Ａ）およびＶＭ（Ｂ）の各々と遠隔操作ビューアで接続していることから、各遠隔操作ビューアを切替えることで、いずれかの検証結果を表示する（Ｓ２４６）。
【００８５】
ここで、遠隔操作ビューアの切替例を説明する。図７は、遠隔操作ビューアの切替例を示す図である。図７に示すように、クライアント端末１の表示部１ｄには、遠隔操作ビューアを起動するアプリケーションのアイコン「Virtual  Smartphone」が表示される。そして、このアイコン「Virtual  Smartphone」をユーザが選択すると、クライアント端末１の表示部１ｄには、遠隔操作ビューアのトップ画面が表示される。このとき、連携先が１つの場合には、連携先の画面を表示してもよい。
【００８６】
図７の場合、連携先が複数あることから、遠隔操作ビューア実行部１ｃは、遠隔操作ビューアのトップ画面を表示した後、画面の一部にＶＭを切替えるアイコンを表示させる。そして、遠隔操作ビューア実行部１ｃは、ユーザがＶＭを切替えるアイコンを選択するたびに、異なるＶＭの画面を表示する。このようにすることで、ユーザは、遠隔操作ビューアで連携される各画面をクライアント端末１に表示させることができる。
【００８７】
［効果］
このように、検証管理サーバ１０で、複数のＶＭを管理して一度の複数のＶＭを操作することができるので、バージョン等の異なる環境での検証を一斉に行うことができる。また、一度の操作入力を複数のＶＭを動作させることができるので、効率的に検証を実行することができる。また、実際の端末を複数台動かすことなく、アプリケーションを複数の動作環境で検証することができる。さらに、エミュレータでは、エミュレータの画面上で操作されるマウス操作しか検証できなかったが、第１の実施形態では、クライアント端末１で受け付けられたタッチパネルやセンサなどの入力情報もＶＭに送信して検証することができる。
【００８８】
［第２の実施形態］
第１の実施形態では、出力先の端末が検証要求元のクライアント端末１台である例を説明したが、これに限定されるものではない。例えば、検証要求元に関係なく、複数の端末に検証結果を出力することもできる。そこで、第２の実施形態では、複数の端末に検証結果を出力する例を説明する。
【００８９】
［全体構成］
図８は、第２の実施形態に係るシステムの全体構成例を示す図である。図８に示すように、このシステムは、クライアント端末１と開発端末５と検証管理サーバ１０とを有し、アプリケーションの動作検証を実行するシステムである。
【００９０】
第１の実施形態と異なる点は、開発端末５を有する点であり、クライアント端末１の構成や検証管理サーバ１０の構成については、実施の形態１と同様とする。なお、実施の形態２に係る検証管理サーバ１０は、「ＳＩＭ情報、ＶＭのＩＰアドレス、出力先のＩＰアドレス」として「クライアント端末１のＳＩＭ情報、ＶＭ１７のＩＰアドレス、クライアント端末１のＩＰアドレスおよび開発端末のＩＰアドレス」を記憶する。
【００９１】
また、開発端末５は、アプリケーションを開発する端末であり、固有のＩＰアドレスが割当てられている。また、開発端末に限らず、大型ディスプレイなどＩＰアドレスが設定できる装置であればいずれの装置も用いることができる。
【００９２】
このような構成において、実施の形態２では、クライアント端末１が検証管理サーバ１０のＶＭに、アプリケーションＡの実行要求を送信する。そして、ＶＭが、アプリケーションＡを実行して動作検証を実行し、その検証結果をクライアント端末１と開発端末５とに送信する例を説明する。
【００９３】
［処理の流れ］
図９は、第２の実施形態に係る検証処理の流れを示すフローチャートである。図９に示すように、クライアント端末１の要求部１ｂは、ＳＩＭ情報の送信指示を受け付けると（Ｓ３０１）、挿入されているＳＩＭカードからＳＩＭ情報を読み出して、検証管理サーバ１０に送信する（Ｓ３０２とＳ３０３）。
【００９４】
そして、検証管理サーバ１０のＶＭ管理部１５の選択部１５ｂは、ＳＩＭ情報を受信し（Ｓ３０４）、管理情報ＤＢ１３ａを参照して、受信したＳＩＭ情報に対応するＶＭ１７を特定する（Ｓ３０５）。このとき、選択部１５ｂは、選択したＶＭのＩＰアドレスとクライアント端末１のＩＰアドレスとを対応付けて、選択済みＤＢ１３ｂに格納する。続いて、選択部１５ｂは、特定したＶＭ１７へ、受信したＳＩＭ情報を送信する（Ｓ３０６とＳ３０７）。
【００９５】
ＶＭ１７の遠隔操作ビューア実行部１７ｄは、ＳＩＭ情報の受信を契機に、遠隔操作ビューアの動作を開始し（Ｓ３０８）、遠隔操作ビューアすなわちＧＵＩ画面をＶＭ管理部１５へ送信する（Ｓ３０９とＳ３１０）。
【００９６】
このＧＵＩ画面を受信したＶＭ管理部１５の検証部１５ｃは、ＧＵＩ画面の送信元のＶＭ１７のＩＰアドレスに対応する出力先のＩＰアドレスを管理情報ＤＢ１３ａから特定する（Ｓ３１１）。このとき、検証部１５ｃは、ＶＭ１７のＩＰアドレスに対応する出力先のＩＰアドレスとして、クライアント端末１のＩＰアドレス「ＩＰ（１）」と、開発端末５のＩＰアドレス「ＩＰ（１００）」との２つを特定する。その後、検証部１５ｃは、特定したＩＰアドレス「ＩＰ（１）」と「ＩＰ（１００）」とに対してＧＵＩ画面を送信する（Ｓ３１２〜Ｓ３１４）。
【００９７】
そして、開発端末５は、ＶＭ１７のＧＵＩ画面を受信すると、遠隔操作ビューアを起動して、受信したＧＵＩ画面を表示部１ｄに表示させる（Ｓ３１５）。このとき、開発端末５は、ＶＭ１７を遠隔操作しない場合には、遠隔操作ビューアを起動せずに、受信したＶＭ１７のＧＵＩ画面をディスプレイに表示させるだけでもよい。
【００９８】
クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ１７のＧＵＩ画面を受信すると、遠隔操作ビューアを起動して、受信したＧＵＩ画面を表示部１ｄに表示させる（Ｓ３１６）。
【００９９】
その後、クライアント端末１の遠隔操作ビューア実行部１ｃは、表示部１ｄに表示させた遠隔操作ビューア上で管理者からの操作を受け付ける（Ｓ３１７）。すると、要求部１ｂは、受け付けられた操作情報を検証管理サーバ１０に送信する（Ｓ３１８とＳ３１９）。
【０１００】
そして、検証管理サーバ１０のＶＭ管理部１５は、操作情報を受信すると（Ｓ３２０）、選択済み情報ＤＢ１３ｂを参照して、当該操作情報を送信したクライアント端末１（要求元）に対応付けられるＶＭ１７（選択済み）を特定し、特定したＶＭ１７に操作情報を送信する（Ｓ３２１とＳ３２２）。
【０１０１】
その後、ＶＭ１７の遠隔操作ビューア実行部１７ｄは、ＶＭ管理部１５から操作情報を受信する（Ｓ３２３）。このとき、ＶＭ１７とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ１７が操作情報を受信したときの状況をクライアント端末１で表示することができる（Ｓ３２４〜Ｓ３２６）。同様に、ＶＭ１７と開発端末５とは遠隔操作ビューアで連携されているならば、ＶＭ１７が操作情報を受信したときの状況を開発端末５で表示することができる（Ｓ３２７〜Ｓ３２９）。
【０１０２】
そして、ＶＭ１７の遠隔操作ビューア実行部１７ｄは、受信した操作情報から実行対象の処理やアプリケーションを特定して実行する（Ｓ３３０）。このとき、ＶＭ１７とクライアント端末１とは遠隔操作ビューアで連携されていることから、ＶＭ１７が処理を実行したときの状況をクライアント端末１で表示することができる（Ｓ３３１〜Ｓ３３３）。同様に、ＶＭ１７と開発端末５とは遠隔操作ビューアで連携されているならば、ＶＭ１７が処理を実行したときの状況をクライアント端末１で表示することができる（Ｓ３３４〜Ｓ３３６）。
【０１０３】
その後、ＶＭ１７の遠隔操作ビューア実行部１７ｄは、実行した処理やアプリケーションの実行が終了すると、遠隔操作ビューアを用いて、実行結果の情報を示すＧＵＩ画面をクライアント端末１に送信する（Ｓ３３７〜Ｓ３３９）。そして、クライアント端末１の遠隔操作ビューア実行部１ｃは、ＶＭ１７から受信した検証結果を遠隔操作ビューアに表示させる（Ｓ３４０）。
【０１０４】
同様に、ＶＭ１７の遠隔操作ビューア実行部１７ｄは、実行した処理やアプリケーションの実行が終了すると、遠隔操作ビューアを用いて、実行結果の情報を示すＧＵＩ画面を開発端末５に送信する（Ｓ３４１とＳ３４２）。開発端末５は、ＶＭ１７から受信した検証結果を遠隔操作ビューアに表示するか、または、遠隔操作ビューアを用いることなく単純にディスプレイに表示させる（Ｓ３４３）。
【０１０５】
［効果］
このように、第２の実施形態では、出力先を表示させたい端末のＩＰアドレスを予めクライアント端末１やＶＭと対応付けておくことで、検証を要求したクライアント端末１以外の任意の端末に、検証結果を表示させることができる。
【０１０６】
ここで、開示する検証管理サーバ１０の利用シーンの一例を説明する。図１０は、具体的な利用シーンを説明する図である。図１０に示すように、クライアント端末は、動画像を撮影する（Ｓ４０１）。続いて、クライアント端末は、検証管理サーバ１０が動作させる各ＶＭに対して、撮影した動画像を送信して動画像編集アプリケーションを動作させる（Ｓ４０２とＳ４０３）。その後、検証管理サーバ１０は、各ＶＭの検証結果を大型スクリーンに表示させる（Ｓ４０４）。なお、表示のさせ方は一般的な手法を用いることができ、例えば全ての情報を一度に表示させてもよく、切替方式で表示させてもよい。そして、開発者は、大型スクリーンに表示される検証結果を見ながら、どのＯＳで異常処理が発生しているかを考慮しつつ、検証した動画像編集アプリケーションの再開発を実行することができる（Ｓ４０５）。
【０１０７】
このように、開発途中のアプリケーションを様々な動作環境で動作させた結果を、複数の開発者達で確認することができる。この結果、アプリケーションの再開発を効率的に進めることができる。
【０１０８】
［第３の実施形態］
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施形態を説明する。
【０１０９】
（遠隔操作ビューア）
上記実施形態では、ＶＭ内で遠隔操作ビューアを実行する例を説明したが、これに限定されるものではなく、検証管理サーバ１０のＶＭ管理部１５が実行してもよい。具体的には、検証管理サーバ１０のＶＭ管理部１５が、遠隔操作ビューアを用いて各ＶＭの画面を管理する。そして、ＶＭ管理部１５が、遠隔操作ビューアで収集した画面情報を、連携先のクライアント端末や出力先の端末に送信してもよい。
【０１１０】
（ＶＭの生成）
上記実施形態では、検証管理サーバ１０内でＶＭが既に生成されている場合を説明したが、これに限定されるものではない。例えば、検証管理サーバ１０は、実行要求等を受信したタイミングで、指定された動作環境のＶＭを生成してもよい。
【０１１１】
（ＶＭの選定）
上記実施形態では、クライアント端末とＶＭとが予め対応付けられている例で説明したが、これに限定されるものではない。例えば、検証管理サーバ１０は、ＶＭごとに、ＶＭの構成情報やＶＭの現時点での処理負荷などを記憶しておき、クライアント端末から実行要求とともに実行環境を受信し、実行環境に該当するＶＭを動的に特定する。そして、検証管理サーバ１０は、特定したＶＭに対して、実行要求を送信してもよい。このようにすることで、同じ動作環境で動作する複数のＶＭが存在する場合に、検証処理を分散させることができる。
【０１１２】
（操作情報）
上記第２の実施形態では、２つのＶＭに対して、同じアプリケーションの実行を要求する例を説明したが、これに限定されるものではない。例えば、クライアント端末１は、複数のＶＭ各々と遠隔操作ビューアで接続されている場合に、各ＶＭに対して異なる操作情報を送信することで、ＶＭごとに異なる検証を同時に実施することができる。具体的には、クライアント端末１は、各ビューアで操作した操作情報を、各ビューアに接続されるＶＭに対してのみ送信することで、各ＶＭに操作情報を送信することができる。
【０１１３】
（システム構成等）
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１１４】
また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１５】
（プログラム）
また、実施形態に係る情報処理装置が実行する処理をコンピュータが実行可能な言語で記述した検証管理プログラムを作成することもできる。この場合、コンピュータがバグ検出プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる検証管理プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された検証管理プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、図２等に示した検証管理装置と同様の機能を実現する検証管理プログラムを実行するコンピュータの一例を説明する。
【０１１６】
図１１は、検証管理プログラムを実行するコンピュータを示す図である。図１１に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【０１１７】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【０１１８】
ここで、図１１に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各ＤＢは、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【０１１９】
また、検証管理プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、例えばハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明した仮想実行部１５ａと同様の情報処理を実行する仮想実行手順と、選択部１５ｂと同様の情報処理を実行する選択手順と、検証部１５ｃと同様の情報処理を実行する検証手順と、遠隔操作ビューア実行部１７ｄと同様の情報処理を実行する遠隔操作ビューア実行手順とが記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。
【０１２０】
また、検証管理プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【０１２１】
なお、検証管理プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、バグ検出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１２２】
１  クライアント端末
１ａ  通信部
１ｂ  要求部
１ｃ  遠隔操作ビューア実行部
１ｄ  表示部
１０  検証管理サーバ
１１  外部通信部
１２  内部通信部
１３  記憶部
１３ａ  管理情報ＤＢ
１３ｂ  選択済み情報ＤＢ
１５  ＶＭ管理部
１５ａ  仮想実行部
１５ｂ  選択部
１５ｃ  検証部
１６  仮想領域
１７  ＶＭ
１７ａ  通信部
１７ｂ  アプリ記憶部
１７ｃ  プログラム実行部
１７ｄ  遠隔操作ビューア実行部
１０００  コンピュータ
１０１０  メモリ
１０１１  ＲＯＭ
１０１２  ＲＡＭ
１０２０  ＣＰＵ
１０３０  ハードディスクドライブインタフェース
１０４０  ディスクドライブインタフェース
１０５０  シリアルポートインタフェース
１０６０  ビデオアダプタ
１０７０  ネットワークインタフェース
１０８０  バス
１０９０  ハードディスクドライブ
１０９１  ＯＳ
１０９２  アプリケーションプログラム
１０９３  プログラムモジュール
１０９４  プログラムデータ
１１００  ディスクドライブ
１１１０  マウス
１１２０  キーボード
１１３０  ディスプレイ
【図１】
2014035744.tif 000003
【図２】
2014035744.tif 000004
【図３】
2014035744.tif 000005
【図４】
2014035744.tif 000006
【図５】
2014035744.tif 000007
【図６】
2014035744.tif 000008
【図７】
2014035744.tif 000009
【図８】
2014035744.tif 000010
【図９】
2014035744.tif 000011
【図１０】
2014035744.tif 000012
【図１１】
2014035744.tif 000013