(57)【要約】【課題】クラウドシステム上で稼働するアプリケーションのテストを行う場合、クラウドシステムから割り当てられる計算機リソースの仕様のバラツキが問題となる。【解決手段】クラウドシステムから得られる可能性のある複数の異なるＯＳ・ミドルのバージョンやＣＰＵ性能などの計算機リソースの仕様を管理テーブルに保持し、各々の仕様に対してテストを行った結果を、性能情報などと対応付けて記録する。これにより、クラウドシステム上でアプリケーションを仕様どおりに動かすために必要なクラウドシステムの計算機リソースの仕様をアプリケーションの実行前に特定する。【選択図】図１
2015049876.tif 000002
【特許請求の範囲】
【請求項１】
リソース割当部によりクラウドシステムから割り当てられた計算機リソースを用いてアプリケーションのテストを行うテストシステムであって、
前記クラウドシステムで利用可能な計算機リソース仕様情報を取得するクラウドシステム情報取得部と、
リソース割当部へ計算機リソースの仕様を指定してリソースの割り当てを要求するリソース要求部と、
前記リソース割当部により割り当てられた計算機リソースを用いてアプリケーションを実行するアプリケーション実行部と、
前記割り当てられた計算機リソースの性能情報を含む仕様情報を取得するリソース情報取得部と、
前記アプリケーション実行部により実行されたアプリケーションのテストを行うテスト管理部と、
前記テスト管理部により判定されたテスト結果および前記リソース割当部から割り当てられた計算機リソースの性能情報を含む仕様情報を対応付けて記憶するテスト構成管理テーブルと、を備えることを特徴とするテストシステム。
【請求項２】
請求項１のテストシステムにおいて、
第一の計算機リソースの仕様を指定した第一のリソース割当要求に基づいてリソース割当部より割り当てられた第一の計算機リソースにより実行されたアプリケーションの性能情報を含むテスト結果と、
第二の計算機リソースの仕様を指定した第二のリソース割当要求に基づいてリソース割当部より割り当てられた第二の計算機リソースにより実行されたアプリケーションの性能情報を含むテスト結果を、
同一画面に対応付けて出力するテスト情報出力部を備えることを特徴とするテストシステム。
【請求項３】
請求項１のテストシステムにおいて、
第一のリソース割当要求に基づいて割り当てられた第一の計算機リソースを用いてアプリケーション実行部が第一のアプリケーションを実行し、
第二のリソース割当要求に基づいて割り当てられた第二の計算機リソースを用いてアプリケーション実行部が第二のアプリケーションを実行し、
第一のアプリケーションの実行結果と第二のアプリケーションの実行結果を比較するテスト管理部と、
前記テスト実行部の比較結果と、各々のアプリケーションの実行に用いられた計算機リソースの仕様情報を、
同一画面に対応付けて出力するテスト情報出力部を備えることを特徴とするテストシステム。
【請求項４】
請求項１のテストシステムにおいて、
クラウドシステム情報取得部は、クラウドシステムが前記クラウドシステムにおいて利用可能な計算機リソース仕様を指定できる機能を提供しているか否かを判定し、
前記機能を提供している場合、前記機能を指定し、
前記機能を提供していない場合、リソース割当部にリソース割当要求を複数回発行し、リソース割当部により割り当てられた複数の計算機リソースの仕様情報を取得することで、
クラウドシステムにおいて利用可能な複数の異なる計算機リソース仕様を取得することを特徴とするテストシステム。
【請求項５】
請求項１のテストシステムにおいて、
リソース要求部は、リソース割当部に計算機リソース仕様を指定したリソース割当要求を発行する際に、
リソース割当部において前記指定した計算機リソース仕様を持つ計算機リソースの割り当てが可能か否かを判定し、
計算機リソースの割り当てが可能な場合は、リソース割当部に前記リソース割当要求を発行し、
計算機リソースの割り当てができなかった場合は、リソース割当部に前記リソース割当要求を複数回発行し、リソース割当部により割り当てられた複数の計算機リソースの仕様情報を取得し、前記仕様情報が前記指定した計算機リソース仕様と合致する計算機リソースを選択することで、
前記指定した計算機リソース仕様を持つ計算機リソースを得ることを特徴とするテストシステム。
【請求項６】
請求項５のテストシステムにおいて、
リソース割当部において指定可能な計算機リソース仕様と、前記リソース割当部において指定不可能な計算機リソース仕様を記録するクラウドシステム管理テーブルを備え、
リソース要求部は、リソース割当部に計算機リソース仕様を指定したリソース割当要求を発行する際に、前記クラウドシステム管理テーブルを参照し、
前記リソース割当部において前記指定した計算機リソース仕様を持つ計算機リソースの割り当てが可能か否かを判定することを特徴とするテストシステム。
【請求項７】
リソース割当部によりクラウドシステムから割り当てられた計算機リソースを用いてアプリケーションのテストを行うシステムにおけるテスト方法であって、
クラウドシステムにおいて利用可能な複数の異なる計算機リソース仕様情報を取得するステップと、
取得した前記計算機リソース仕様情報から任意の数の計算機リソース仕様を選択し、前記クラウドシステムに前記選択した計算機リソース仕様を持つ計算機リソースを割り当てるステップと、
前記計算機リソースにおいてアプリケーションを実行するステップと、
前記アプリケーションの実行結果と、異なる仕様を持つ異なる計算機リソースで実行するアプリケーションの実行結果とを比較しテストを行うステップと、
前記計算機リソースの性能情報を含む仕様情報と、前記計算機リソース上で実行する前記アプリケーションのテスト結果を、テスト構成管理テーブルに格納するステップと、
前記テスト構成管理テーブルに格納された異なる仕様を持つ複数の計算機リソースの性能情報を含む仕様情報と、各々の計算機リソース上で実行するアプリケーションのテスト結果を、同一画面に出力するステップと、
を備えることを特徴とするテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドシステムで実行するアプリケーションのテストを行うシステムに関する。
【背景技術】
【０００２】
特許文献１では、送信される仮想マシンの起動要求に応じて、自身のコンピュータリソースに仮想マシンを起動させる複数の物理マシンに接続された仮想マシン起動装置が、起動する仮想マシンの台数が含まれる起動要求の入力を受け付け、入力された起動要求に含まれる台数を超える台数の仮想マシンの起動要求を物理マシンに送信し、起動要求に応じて物理マシンに起動された複数の仮想マシンの性能を測定し、起動された複数の仮想マシンのうち、測定した複数の仮想マシンの性能に基づいて選択される仮想マシンを除く仮想マシンを停止させることが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０８５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のシステムでは、要求に応じて得られる計算機リソースは性能以外の仕様にもバラツキがある。多くの場合、クラウドシステムに対して計算機リソースを要求する際は専用のインタフェースを用いる。しかしインタフェースで指定できる仕様は、計算機リソースの大まかな性能を表すグレードなどに限定される。詳細な仕様は指定できないため、要求を発行する度に得られる計算機リソースの仕様は変化する。
【０００５】
例えば、リソース要求により仮想マシンを得られるＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）では、物理マシンが搭載するプロセッサや、仮想マシンを作成するハイパーバイザの種別が異なる可能性がある。また、リソース要求によりＷｅｂサーバやデータベースなどのミドルウェアを得られるＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）では、ミドルウェアそのものや、ミドルウェアを動かすＯＳやドライバの種別が異なる可能性がある。
【０００６】
これらの仕様の差異により、計算機リソース上で実行するアプリケーションの実行結果が変化し、その結果アプリケーションのテスト時に問題が発生する場合がある。
【０００７】
例えば本番稼働中のアプリケーションを改修した場合、改修後の動作が正しいことを確認するためにテスト系のアプリケーションを作成し、本番系とテスト系に同じ入力を与えて出力の一致や性能要件の充足を確かめる比較テストが行われる。しかしながら前述の利用形態では、アプリケーションを動かす計算機リソースの仕様が変化するため、ある時点で得られた計算機リソースでテストに成功しても、アプリケーションを新たな本番系として動かすときに得られる計算機リソースで正しく動作する保証が無い。特許文献１では、このような計算機リソースの仕様違いによるアプリケーションの動作までは考慮していない。
【課題を解決するための手段】
【０００８】
本発明のテストシステムは、テスト管理サーバにおいて、アプリケーションを動かすクラウドシステムから得られる異なる仕様を持つ複数の計算機リソースの情報をテスト構成管理テーブルに保持する。また、テスト構成管理テーブルに保持された各々の計算機リソースの仕様について、テスト系アプリケーションを作成して動作テストを行い、テスト結果と、計算機リソースの仕様情報と、その計算機リソース上でアプリケーションを実行した際の性能情報と、を対応付けてテスト構成管理テーブルに格納する。これにより格納された情報を一覧して提示することで、アプリケーションを正しく動作させるために必要な計算機リソースの仕様を示す。
【発明の効果】
【０００９】
本発明により、クラウドシステム上でアプリケーションを正しく動かすために必要な計算機リソースの仕様を知ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１におけるテストシステムの構成の一例を示す図である。
【図２】実施例１におけるアプリケーションテスト実行時の構成の一例を示す図である。
【図３】実施例１におけるテスト構成管理テーブルの一例を示す図である。
【図４】実施例１におけるクラウドシステム管理テーブルの一例を示す図である。
【図５】実施例１における入出力データログの一例を示す図である。
【図６】実施例１におけるアプリケーションテスト実行手順の一例を示すフローチャートである。
【図７】実施例１における入出力比較テスト実行手順の一例を示すフローチャートである。
【図８】実施例１における計算機リソース及びクラウドシステムの仕様情報取得の一例を示すフローチャートである。
【図９】実施例１における選択した仕様の計算機リソースを割当てる一例を示すフローチャートである。
【図１０】実施例１におけるテスト仕様選択手順の一例を示すフローチャートである。
【図１１】実施例１におけるテスト結果通知画面の構成の一例を示す図である。
【発明を実施するための形態】
【実施例１】
【００１１】
本発明の実施例について図面を参照しながら説明する。
【００１２】
図１は、実施例１におけるテストシステムの構成の一例を示す図である。テストシステムは、クラウドシステム１００と、テスト管理サーバ１１０と、入出力比較サーバ１２０と、端末１５０により構成され、各々の構成要素がネットワーク１４０により接続されている。また、各々の構成要素は計算機１３０上で実行される複数のプログラムおよびデータを含み、各々のプログラムは、ネットワーク１４０を介して相互に通信が可能である。
【００１３】
図２は、実施例１におけるアプリケーションテスト実行時の構成の一例を示す図である。実施例１では、クラウドシステム１００上に割り当てられた第一の計算機リソース１０２Ａ上で実行する第一のアプリケーション１０１Ａを正しい結果を出力し、目標とする性能を達成している本番系とし、第二の計算機リソース１０２Ｂ上で実行する第二のアプリケーション１０１Ｂをテスト対象であるテスト系としたときに、クラウドシステム１００で利用可能な複数の異なる計算機リソース仕様の中から、第二のアプリケーション１０１Ｂを正しく動かすために必要な第二の計算機リソース１０２Ｂの仕様を得るアプリケーションテストを行う方法を述べる。
【００１４】
はじめに、図２を用いてアプリケーションテスト実行手順の概要を説明する。
【００１５】
各々の計算機リソース１０２Ａ，１０２Ｂは、テスト管理サーバ１１０のテスト構成管理テーブル１１７に格納されたテスト構成１１９Ａ，１１９Ｂに基づき、クラウドシステム上に割り当てられる（処理２０１Ａ，２０１Ｂ）。その後、各々のアプリケーション１０１Ａ，１０１Ｂを実行する。入出力比較テストサーバ１２０は、前記アプリケーションの入出力を取得し、比較することで、第二のアプリケーション１０１Ｂが正しく動作しているかをテストする（処理２０２Ａ，２０２Ｂ）。入出力比較テストサーバ１２０はテスト結果をテスト管理サーバ１１０に渡し（処理２０３）、テスト管理サーバ１１０はテスト結果通知画面２１０を端末１５０に出力する。ユーザは、端末１５０に表示されたテスト結果通知画面２１０を参照することで、第二のアプリケーション１０１Ｂを正しく動かすために必要な第二の計算機リソース１０２Ｂの仕様を知ることができる。
【００１６】
次に、図１に示すテストシステムの各々の構成要素について説明する。
【００１７】
計算機１３０は、プロセッサ１３１、メモリ１３２、入出力装置１３３から構成される一般的な計算機である。入出力装置１３３には、キーボード、ディスプレイ、ネットワークアダプタ、ディスクアダプタなどを含む。プロセッサ１３１は、メモリ１３２に格納されたプログラムを読み出し、プログラムに記述された様々な処理を実行する。以後、各種のプログラムを主語として説明するときは、実際にはプロセッサ１３１がメモリ１３２からプログラムを読み出し、各種のプログラムの処理を実行することを意味する。
【００１８】
クラウドシステム１００は、事前に用意された複数の計算機１３０により構成され、ユーザからの要求仕様に応じて計算機リソース１０２を割り当てる基盤である。計算機リソース１０２は、計算機１３０が備えるプロセッサ１３１、メモリ１３２、入出力装置１３３などのリソースの一部もしくは全部を切り出したものであり、ユーザは割り当てられた計算機リソース１０２上で任意のアプリケーション１０１を実行することができる。計算機リソース１０２は、物理計算機そのものであるほか、物理計算機上で実行するハイパーバイザにより仮想化された仮想計算機や、これらの計算機上で実行するＯＳやミドルウェア、であってもよい。
【００１９】
リソース割当部１０３は、クラウドシステム１００のユーザが発行する計算機リソース割当要求を受け取り、前記要求に含まれる計算機リソース仕様情報を元にクラウドシステム１００上に計算機リソース１０２を割り当てるプログラムである。割り当ての後、前記計算機リソース１０２に接続するために使うアドレス情報を、前記要求の発行元に返信する。計算機リソース割当要求において指定できる計算機リソース仕様はクラウドシステム管理部１０４が公開するインタフェースで規定されており、クラウドシステム１００の種別に応じて異なる。
【００２０】
クラウドシステム管理部１０４は、クラウドシステム１００を管理するために任意のプログラムから要求を出す際の命令や手続きの方法を規定したインタフェースの一覧である。
【００２１】
テスト管理サーバ１１０は、クラウドシステム１００に対して計算機リソース１０２の割当要求を発行し、割り当てられた計算機リソース１０２を用いてアプリケーション１０１のテストを繰り返し行うことで、アプリケーション１０１を正しく動かすことができる計算機リソース１０２の仕様を得ることを目的とするサーバである。
【００２２】
テスト管理サーバ１１０は、テスト管理部１１１と、リソース要求部１１２と、リソース情報取得部１１３と、クラウドシステム情報取得部１１４と、アプリケーション実行部１１５と、テスト情報出力部１１６を、計算機上で実行されるプログラムとして備える。また、データとして複数のテスト構成１１９を格納するテスト構成管理テーブル１１７と、クラウドシステム管理テーブル１１８を有する。
【００２３】
テスト管理部１１１は、アプリケーションテスト実行要求を受け取り、リソース要求部１１２、リソース情報取得部１１３、クラウドシステム情報取得部１１４、アプリケーション実行部１１５や、入出力比較テストサーバ１２０のテスト実行部１２１などに対してアプリケーションテスト実行を指示するプログラムである。アプリケーションテスト実行開始の際は、前記要求から本番系である第一のアプリケーション１０１Ａのアドレスと、テスト系を実行するクラウドシステム１００のＩＤを取得し、前記クラウドシステム１００で利用可能な複数の異なる計算機リソース仕様について、テスト系である第二のアプリケーション１０１Ｂを実行し、本番系とテスト系の入出力比較テストを行う。テストの終了後は、テスト情報出力部１１６を介してテスト結果通知画面２１０を端末１５０に出力する。
【００２４】
リソース要求部１１２は、計算機リソースの仕様情報を含む計算機リソース割当要求を受け取り、リソース割当部１０３に前記要求を発行してクラウドシステム１００上に計算機リソース１０２を割り当てるプログラムである。その後、クラウドシステム１００上に割り当てられた計算機リソース１０２のアドレス情報を前記要求の発行元に返信する。このとき、前記要求に含まれる仕様情報にクラウドシステム１００では指定できない仕様が含まれていた場合は、クラウドシステム１００で指定できる仕様のみを用いて複数の計算機リソース割当要求を発行し、リソース情報取得部１１３を介して割り当てられた複数の計算機リソースの仕様情報を取得して、前記要求に含まれる仕様情報に合致する計算機リソースのみを選択し、そのアドレス情報を返信する。
【００２５】
リソース情報取得部１１３は、クラウドシステム１００から割り当てられた計算機リソース１０２に対して前記アドレス情報を用いて接続し、計算機リソース１０２の仕様情報や、アプリケーション１０１実行時の性能情報などを取得するプログラムである。取得した情報は、前記アドレス情報と対応付けてテスト構成管理テーブル１１７に格納する。
【００２６】
クラウドシステム情報取得部１１４は、クラウドシステム管理部１０４が公開するインタフェースを用いてクラウドシステム１００に接続し、計算機リソース割当要求を発行する際に指定できる計算機リソース仕様の情報と、指定できない計算機リソース仕様の情報を取得し、テスト構成管理テーブル１１７に格納するプログラムである。
【００２７】
アプリケーション実行部１１５は、クラウドシステム１００上に割り当てられた計算機リソース１０２に接続し、アプリケーション１０１を配置して実行するプログラムである。
【００２８】
テスト情報出力部１１６は、テスト構成管理テーブル１１７に格納された情報を元に、テスト結果通知画面２１０などの画面を生成して端末１５０に出力し、テスト結果をユーザに提示するプログラムである。テスト結果通知画面２１０では、テスト系である第二のアプリケーション１０１Ｂのテスト結果や、第二の計算機リソース１０２Ｂの詳細な仕様情報や、第二のアプリケーション１０１Ｂ実行時の性能情報など対応付けて提示する。また、異なる仕様を持つ複数の計算機リソースに対するテストの結果と、前記仕様情報や前記性能情報を対応付けて同一画面に表示する。テストに成功した計算機リソースが複数存在する場合は、前記性能情報を元に、最も性能の良い計算機リソースを選択し、推奨構成として提示する。ユーザは、テスト情報出力部１１６が提示する情報を確認することで、テスト系である第二のアプリケーション１０１Ｂを正しく動作することができる第二の計算機リソース１０２Ｂの仕様を得ることができる。
【００２９】
端末１５０は、ユーザがテスト管理サーバ１２０にアクセスし、テスト結果通知画面２１０などの画面を確認する端末となる計算機１３０である。
【００３０】
入出力比較テストサーバ１２０は、クラウドシステム１００上で実行する本番系である第一のアプリケーション１０１Ａおよびテスト系である第二のアプリケーション１０１Ｂが送受信するパケットなどの入出力データを取得し、取得した前記データの内容を比較することで、第二のアプリケーション１０１Ｂの動作が第一のアプリケーション１０１Ａの動作と一致することを確認するサーバである。
【００３１】
入出力比較テストサーバ１２０は、テスト実行部１２１と、入出力データ取得部１２２と、入力データ複製部１２３と、出力データ比較部１２４を、計算機上で実行されるプログラムとして備える。また、データとして入出力データログ１２５を有する。
【００３２】
テスト実行部１２１は、入出力比較テスト実行要求を受け取り、入出力データ取得部１２２、入力データ複製部１２３、出力データ比較部１２４に対して、入出力比較テストの実行を指示するプログラムである。入出力比較テスト実行開始の際は、前記要求から第一のアプリケーション１０１Ａのアドレスと第二のアプリケーション１０１Ｂのアドレスを取得し、それぞれを本番系のアドレスとテスト系のアドレスとして設定し、入出力比較テストの実行開始を指示する。また、入出力比較テスト開始からの経過時間を計測し、経過時間が事前に定められた入出力比較テスト実行時間を超過したら、入出力比較テストの実行終了を指示する。加えて、本番系とテスト系で出力データが不一致となった回数や、テスト系の実行性能が性能要件を満たさなかった回数が、事前に定められたテスト失敗許容回数を超過したときにも入出力比較テストの実行終了を指示する。入出力比較テストの終了後は、テスト結果を前記要求の発行元に返す。
【００３３】
入出力データ取得部１２２は、本番系である第一のアプリケーション１０１Ａが受信する入力データと、本番系である第一のアプリケーション１０１Ａおよびテスト系である第二のアプリケーション１０１Ｂが送信する出力データを全て受信するプログラムである。なお、第二のアプリケーション１０１Ｂが受信する入力データは、第一のアプリケーション１０１Ａが受信する入力データを入力データ複製部１２３が複製したものであるため、入出力データ取得部１２２では受信しない。第一のアプリケーション１０１Ａの入出力データを受信するためには、第一のアプリケーション１０１Ａが接続するスイッチのポートミラーリング機能やＷｅｂサーバが備えるパケットコピーなどの機能を利用し、第一のアプリケーション１０１Ａが送受信する入出力データを複製して、入出力比較テストサーバ１２０に転送する。複製元の入出力データはそのまま通信させることで、本番系の実行に影響を与えることなく、本番系の入出力データを受信する。第二のアプリケーション１０１Ｂが送信する出力データを受信するためには、第二のアプリケーション１０１Ｂに対して与える入力データの宛先アドレスを、入出力比較テストサーバ１２０にアドレスに書き換えることで、入力データに応じて第二のアプリケーション１０１Ｂが送信する出力データが、入出力比較テストサーバ１２０に届くようにする。入出力データ取得部１２２は、テスト実行部１２１から入出力比較テスト実行の指示を受けたときにこれらの設定を行い、入出力比較テスト実行終了の指示を受けたときにこれらの設定を解除する。
【００３４】
入力データ複製部１２３は、本番系である第一のアプリケーション１０１Ａに対して送信された入力データを取得して複製し、入力データに含まれるアドレス情報を書き換えた後、テスト系である第二のアプリケーション１０１Ｂに対して再送信するプログラムである。これにより、本番系とテスト系に同じ入力を与えることができる。また、本番系から取得した入力データとテスト系に再送信した入力データは、入出力データログ１２５に格納する。
【００３５】
出力データ比較部１２４は、本番系である第一のアプリケーション１０１Ａから送信された出力データと、テスト系である第二のアプリケーション１０１Ｂから送信された出力データを取得し、各々の出力データの内容を比較するプログラムである。これにより、出力データの内容が不一致であった場合、本番系とテスト系に同じ入力を与えたにも関わらず、テスト系が異なる動作したことを意味するため、テスト系の動作が正しくないと判定することができる。また、本番系およびテスト系から取得した出力データは、入出力データログ１２５に格納する。
【００３６】
図３は、実施例１におけるテスト構成管理テーブル１１７の一例を示す図である。テスト構成管理テーブル１１７は、クラウドシステム１００で利用可能な複数の異なる計算機リソースの仕様情報と、各々の計算機リソース仕様についてアプリケーションテストを行った際のテスト結果と、アプリケーションを実行した際の性能情報を対応付けてテスト構成１１９として格納するテーブルである。
【００３７】
テスト構成管理テーブル１１７には、テスト対象の計算機リソースの仕様情報を一意に識別するテスト構成ＩＤ３０１と、計算機リソースを割り当てるクラウドシステムを一意に識別するクラウドシステムＩＤ３０２と、計算機リソースのアドレス３０３と、計算機リソースの仕様情報を表す計算機リソース仕様３０４と、アプリケーションテストの成功および失敗を表すテスト結果３０５と、詳細なテスト結果であるテスト結果詳細３０６と、アプリケーションを実行したときの性能情報を表す実行性能３０７と、アプリケーション実行時に達成すべき性能情報を表す性能要件３０８と、を格納する。
【００３８】
アドレス３０３は、クラウドシステムにより割り当てられた計算機リソースに接続する際に利用する情報である。図３においては、アドレス情報として１９２．０．２．１などのＩＰアドレスを記載しているが、ＭＡＣアドレスやホスト名など別の情報を利用してもよい。
【００３９】
計算機リソース仕様３０４の例として、図３においてはグレード、アプリケーション種別、ミドルウェア種別、ＯＳ種別、仮想マシン種別、メモリ量、ＣＰＵ個数、ＣＰＵ種別、ＣＰＵ性能、ネットワークＩ／Ｏ性能、ディスクＩ／Ｏ性能を示している。グレードとは、例えばＬａｒｇｅグレードならＣＰＵ個数は２個でメモリ容量は４ＧＢ、ＭｅｄｉｕｍグレードならＣＰＵ個数は１個でメモリ容量は２ＧＢなどのように、クラウドシステム１００によって割り当てられる計算機リソース１２０の大まかな性能を表すために使われる値である。アプリケーション種別は、計算機リソース１０２上で実行するアプリケーション１０１の名前やバージョンなどの情報を表す。ミドルウェア種別、ＯＳ種別、仮想マシン種別なども同様である。また、ＣＰＵ種別は、クラウドシステム１００を構成する計算機１３０が備えるプロセッサ１３１のアーキテクチャや世代などの情報を表す。なお、ここに挙げた計算機リソース仕様はあくまで一例であり、クラウドシステム１００やアプリケーション１０１の特徴に応じて計算機リソース仕様を追加もしくは削除してもよい。
【００４０】
テスト結果３０５には、入出力比較テストサーバ１２０で行われた入出力比較テストが成功したか否かを格納する。テストに失敗した場合は、テスト結果詳細３０６にテスト結果の詳細情報を格納する。テスト結果詳細の例として、本番系とテスト系の出力データの不一致や、テスト系においてアプリケーションを実行した際の性能不足などが挙げられる。
【００４１】
この例ではDatacenter AのリソースセットProductionで実行したテストが現在稼働中のシステムであるので、このシステムの出力が他のテストの結果が正しいかどうかを判断するための基準となる。
【００４２】
性能の比較を行う必要が無い場合には出力結果が分かっているデータと比較することによりテストの結果が正しいかどうかを判断するようにしても良い。
【００４３】
実行性能３０７には、計算機リソース上でアプリケーションを実行したときの性能情報を格納する。性能情報の例としては、入出力比較テストサーバ１２０が取得したデータ入力時刻とデータ出力時刻の差から算出される実行時間や、リソース情報取得部１１３から取得した、計算機リソースのＣＰＵ使用率やメモリ使用量、Ｉ／Ｏ帯域使用量などの情報が挙げられる。
【００４４】
性能要件３０８には、本番系である第一のアプリケーション１０１Ａが実行時に達成すべき性能の値であり、例としてレスポンスタイム、処理件数、実行時間などが挙げられる。
【００４５】
図４は、実施例１におけるクラウドシステム管理テーブル１１８の一例を示す図である。クラウドシステム管理テーブルは、クラウドシステム１００に対して計算機リソース割当要求を発行する際に、計算機リソースの仕様として指定できる仕様と、指定できない仕様を管理するテーブルである。
【００４６】
クラウドシステム管理テーブル１１８には、クラウドシステムを一意に識別するクラウドシステムＩＤ４０１と、クラウドシステムに対して計算機リソース割当要求を発行する際に指定できる仕様を示す指定可能計算機リソース仕様４０２と、指定できない仕様を示す指定不可能計算機リソース仕様４０３と、を格納する。指定可能計算機リソース仕様４０２および指定不可能計算機リソース仕様４０３には、テスト構成管理テーブル１１７の計算機リソース仕様３０４に含まれる、グレードやＯＳ種別などの情報の一覧が格納される。
【００４７】
例として、図４においてＣｌｏｕｄＢというクラウドシステムＩＤ４０１で示されるクラウドシステム１００では、指定可能計算機リソース仕様４０２に含まれるグレード、アプリケーション種別、ミドルウェア種別、ＯＳ種別、仮想マシン種別については、計算機リソース割当要求の発行時に仕様を指定することができる。これによりユーザは指定した仕様通りの計算機リソース１０２を得ることができる。一方で、指定不可能計算機リソース仕様４０３に含まれるＣＰＵ種別、ＣＰＵ性能については、計算機リソース割当要求の発行時に仕様を指定できない。そのため、ユーザは実際に計算機リソース１０２が割り当てられるまで、どのような仕様となるか分からない。また、クラウドシステムＣｌｏｕｄＢを構成する計算機１３０の仕様によっては、計算機リソース１２０を割り当てるたびに異なる仕様が得られる場合もある。このような仕様の違いにより、計算機リソース上で実行するアプリケーションの実行結果や実行性能が変化する可能性がある。
【００４８】
図５は、実施例１における入出力データログ１２５の一例を示す図である。入出力データログ１２５には、入出力比較テストサーバ１２０が取得した、第一のアプリケーション１０１Ａおよび第二のアプリケーション１０１Ｂの入出力データを格納する。
【００４９】
入出力データログ１２５は、入出力データを受信もしくは送信した時刻５０１と、入出力データの送信元を表す送信元アドレス５０２と、入出力データの宛先を表す宛先アドレス５０３と、入出力データの本体であるデータ５０４と、から成る。図５においては、送信元アドレス５０２および宛先アドレス５０３として１９８．５１．１００．１などのＩＰアドレスを記載しているが、ＭＡＣアドレスやホスト名など別の情報を利用してもよい。
【００５０】
次に、実施例１において、クラウドシステム１００上で利用可能な複数の異なる計算機リソース仕様の中から、テスト系のアプリケーションを正しく動作できる計算機リソース仕様を得るためのアプリケーションテストの手順を、フローチャートに基づいて説明する。
【００５１】
図６は、実施例１におけるアプリケーションテスト手順の一例を示すフローチャートである。アプリケーションテストは、テスト管理サーバ１１０のテスト管理部１１１が、本番系である第一のアプリケーション１０１Ａのアドレスと、テスト系である第二のアプリケーション１０１Ｂを実行するクラウドシステム１００のＩＤと、アプリケーション１０１Ａ，１０１Ｂが達成すべき性能要件と、を含む、アプリケーションテスト実行要求を受け取ることで開始される。
【００５２】
なお、アプリケーション１０１Ａ，１０１Ｂは、単一の計算機リソース１０２上で実行する単一のアプリケーション１０１でなくてもよく、例えばＷｅｂサーバ、ＡＰサーバ、ＤＢサーバから成るＷｅｂ三階層システムのように、複数の計算機リソース１０２およびアプリケーション１０１を組み合わせたものでもよい。その場合、アプリケーションテスト実行要求に含むアドレスとしては、例えばＷｅｂ三階層システムのＷｅｂサーバのように、外部のサーバと通信を行うアプリケーションのアドレスを指定する。
【００５３】
ステップ６０１において、テスト管理部１１１は、前記要求に含まれるアドレスを用い、リソース情報取得部１１３を介して第一のアプリケーション１０１Ａの仕様情報および性能情報を取得する。その後、テスト構成管理テーブル１１７に新たなテスト構成１１９を追加し、計算機リソース仕様３０４および実行性能３０７に前記仕様情報および前記性能情報を各々格納する。このとき、任意のＩＤを生成してテスト構成ＩＤ３０１に合わせて格納する。また、前記要求に含まれるクラウドシステム１００のＩＤをクラウドシステムＩＤ３０２に、前記アドレス情報をアドレス３０３に、前記性能要件情報を性能要件３０８にそれぞれ格納する。また、第一のアプリケーション１０１Ａは本番系でありテストを行って得られた結果を正しい結果として扱い、テスト結果３０５には本番系である旨を格納する。図３の例では、ｐｒｏｄｕｃｔｉｏｎというテスト構成ＩＤ３０１で示される列が相当する。
【００５４】
続けて、テスト管理部１１１は、本番系である第一のアプリケーション１０１Ａの仕様情報とテスト系を実行するクラウドシステム１００のＩＤ情報を含む利用可能計算機リソース仕様取得要求を生成し、クラウドシステム情報取得部１１４に送信する。クラウドシステム情報取得部１１４は、クラウドシステム１００において利用可能な複数の異なる計算機リソース仕様の情報を取得し、前記情報の一覧をテスト管理部１１１に渡す。この処理の詳細は、図８を用いて後述する。テスト管理部１１１は、前記情報の一覧に含まれる複数の計算機リソース仕様情報それぞれについて、任意のＩＤを生成しテスト構成ＩＤ３０１に格納する。また、前記要求に含まれるクラウドシステム１００のＩＤをクラウドシステムＩＤ３０２に、仕様情報を計算機リソース仕様３０４に、前記ＩＤと対応付けて格納する。なお、アドレス３０３、テスト結果３０５、テスト結果詳細３０６、実行性能３０７に関しては、まだ計算機リソース１０２を割り当ててテストを行っていないため、空白のままである。
【００５５】
ステップ６０２において、テスト管理部１１１はテスト構成管理テーブル１１７を参照し、ステップ６０３以降でテストする計算機リソース仕様を一つ選択し、前記選択仕様のテスト構成ＩＤ３０１を取得する。この処理の詳細は、図１０を用いて後述する。
【００５６】
ステップ６０３において、テスト管理部１１１はステップ６０２で選択した計算機リソース仕様が以前にテストに失敗した計算機リソース仕様と近似しているか否かを判定し、
近似していない場合は、ステップ６０４以降の処理を行う。近似していた場合は、前記選択仕様のテストを行わず、テスト構成管理テーブル１１７のテスト結果３０５欄にテスト不要の旨を記録し、再びステップ６０２にて異なる計算機リソース仕様を選択する。
【００５７】
前記選択仕様が以前にテストに失敗した計算機リソース仕様と近似しているか否かを判定するには、各々の計算機リソース仕様３０４の差異を利用する。例として、テスト管理部１１１がテスト構成管理テーブル１１７のテスト結果３０５が失敗となっているテスト構成の計算機リソース仕様３０４を取得し、前記選択仕様の計算機リソース仕様３０４との差分を求める。このとき、前記テスト失敗仕様のテスト結果詳細３０６が性能不足であり、前記差分がＣＰＵ性能やメモリ量など計算機リソースの性能に関わるもののみであり、さらに前記選択仕様の計算機リソースの性能が前記テスト失敗仕様の性能を下回っている場合、計算機リソース仕様が前記テスト失敗仕様と近似していると判定する。
【００５８】
例えば、ＣＰＵ性能やＩ／Ｏ性能が過去のテストで失敗となっているテスト仕様のＣＰＵ性能より低い場合や、ミドルウェアやＯＳのバージョンが過去のテストで失敗となっているテスト仕様と同じか古い場合などがある。
【００５９】
なお、これはあくまで一例であり、テスト構成管理テーブル１１７に格納されたその他の情報を用いて、他の方法で計算機リソース仕様が近似しているか否かを判定しても良い。
【００６０】
ステップ６０４において、テスト管理部１１１は、ステップ６０２で選択した計算機リソース仕様と、クラウドシステム１００のＩＤを含む計算機リソースの割当要求を生成し、リソース要求部１１２に送信する。リソース要求部１１２は、リソース割当部１０３を介してクラウドシステム１００上にテスト系である第二の計算機リソース１０２Ｂを割り当てる。この処理の詳細は、図９を用いて後述する。
その後、テスト管理部１１１は、リソース要求部から第二の計算機リソース１０２Ｂのアドレス情報を受け取り、前記アドレス情報を前記選択仕様のテスト構成ＩＤに対応付け、アドレス３０３に格納する。
【００６１】
ステップ６０５において、アプリケーション実行部６０６は、前記アドレス情報を用いて第二の計算機リソース１０２Ｂに接続し、第二のアプリケーション１０１Ｂを配置して実行を開始する。このとき、アプリケーション実行部６０６は、第二のアプリケーション１０１Ｂの実行するために必要な通信先などの情報を設定する。
【００６２】
ステップ６０６において、テスト管理部１１１は、第一のアプリケーション１０１Ａを本番系とし、第二のアプリケーション１０１Ｂをテスト系として、テスト実行部１２１に対し、アプリケーション１０１Ａ，１０１Ｂのアドレス３０３と、第一のアプリケーション１０１Ａの性能要件３０８を含む入出力比較テスト実行要求を送信する。これにより、入出力比較テストが行われる。この処理の詳細は、図７を用いて後述する。その後、テスト管理部１１１は、テスト実行部１２１が返信したテスト結果と、テスト結果詳細と、実行性能を受け取り、前記選択仕様のテスト構成ＩＤに対応付け、各々の情報をテスト結果３０５と、テスト結果詳細３０６と、実行性能３０７に格納する。
【００６３】
ステップ６０７において、テスト管理部１１１はテスト構成管理テーブル１１７のテスト結果３０５を参照し、テストに成功した計算機リソース仕様の数が事前に定められた要求計算機リソース仕様数に達しているか否かを判定する。要求計算機リソース仕様数はアプリケーションテストにおいてテスト成功と判定された計算機リソース仕様を取得し提示する数を表したものであり、事前にユーザなどから指定された１以上の自然数である。要求計算機リソース仕様数はテスト管理部１１１が保持する。
テストに成功した計算機リソース仕様の数が、要求計算機リソース仕様数に達していない場合は、ステップ６０８以降の処理を行い、アプリケーションテストを継続する。達している場合は、第二のアプリケーション１０１Ｂを実行するのに必要な計算機リソース仕様の候補を十分に得られたと判断し、ステップ６０９を実行しアプリケーションテストを終了する。
【００６４】
ステップ６０８において、テスト管理部１１１はテスト構成管理テーブル１１７のテスト結果３０５欄を参照し、テスト構成管理テーブル１１７に格納された全ての計算機リソース仕様のテストが完了したか否かを判定する。テスト完了の場合は、ステップ６０９を実行しアプリケーションテストを終了する。テスト未完了の場合は、ステップ６０２に戻り次の計算機リソース仕様を選択してアプリケーションテストを継続する。
【００６５】
この例では全ての計算機リソース仕様のテストを行う例を説明したが、予め決められた数の計算機リソース仕様のテストを行うか、予め決められた時間内にテストが可能な計算機リソース仕様についてテストを行っても良い。
【００６６】
ステップ６０９において、テスト情報出力部１１６はテスト結果通知画面２１０を出力し、アプリケーションテストの結果をユーザに通知する。この画面の詳細は、図１１を用いて後述する。以上の処理により、クラウドシステム１００上で第二のアプリケーション１０１Ｂを正しく動作でき、目標とする性能を達成できる計算機リソース仕様を得ることができる。また、本発明の方法を用いることで、クラウドシステム１００上に計算機リソースを割り当てる際に指定できない仕様の差異によって第二のアプリケーション１０１Ｂの実行結果が変わる場合においても正しい結果が得られ、目標とする性能を達成できる可能性のある計算機リソース仕様の候補を得ることができる。これによりテストでリソースを要求した先のクラウドシステムが、アプリケーションが必要とするリソースを提供できるかどうかの判断が可能となる。
【００６７】
図７は、実施例１における入出力比較テスト実行手順の一例を示すフローチャートである。本処理は、入出力比較テストサーバ１２０のテスト実行部１２１が、本番系である第一のアプリケーション１０１Ａのアドレスと、テスト系である第二のアプリケーション１０１Ｂのアドレスと、第一のアプリケーション１０１Ａの性能要件を含む、入出力比較テスト実行要求を受け取ることで開始される。
【００６８】
ステップ７０１において、入出力データ取得部１２２は、第一のアプリケーション１０１Ａが接続するスイッチやサーバの設定を変更し、第一のアプリケーション１０１Ａが送受信する全ての入出力データを複製して入出力データ取得部１２２に転送するよう設定し、入出力データの取得を開始する。
【００６９】
ステップ７０２において、入出力データ取得部１２２は、第一のアプリケーション１０１Ａに対して送信された第一の入力データを受信すると、第一の入力データを入力データ複製部１２３に渡す。このとき、第一の入力データを見分けるには、受信した入出力データに含まれる宛先アドレスが、第一のアプリケーション１０１Ａのアドレスか否かを判定すればよい。
【００７０】
続けて、入力データ複製部１２３は、第一の入力データを複製して第二の入力データを生成し、第二の入力データに含まれる送信元アドレスを入出力比較テストサーバ１２０のアドレスに、宛先アドレスを第二のアプリケーション１０１Ｂのアドレスに書き換えて、第二の入力データを第二のアプリケーション１０１Ｂに送信する。また、第一の入力データおよび第二の入力データを、それぞれの受信および送信時刻と共に入出力データログ１２５に格納する。
【００７１】
ステップ７０３において、第一のアプリケーション１０１Ａは、第一の入力データを受信し、受信したデータに応じた処理を実行した後、第一の出力データを送信する。同様に、第二のアプリケーション１０１Ｂは第二の入力データを受信し、第二の出力データを送信する。このとき、第二の入力データの送信元アドレスは入出力比較テストサーバ１２０のアドレスであるため、第二のアプリケーション１０１Ｂは、入出力比較テストサーバ１２０を宛先として第二の出力データを送信する。
【００７２】
ステップ７０４において、入出力データ取得部１２２は、第一の出力データを受信すると、第一の出力データを出力データ比較部１２４に渡す。同様に、第二の出力データを受信すると、第二の出力データを出力データ比較部１２４に渡す。このとき、第一の出力データや第二の出力データを見分けるには、受信した入出力データに含まれる送信元アドレスが、第一のアプリケーション１０１Ａもしくは第二のアプリケーション１０１Ｂのアドレスか否かを判定すればよい。
【００７３】
続けて、出力データ比較部１２４は、第一の出力データおよび第二の出力データに含まれるデータの内容を比較する。また、第一の出力データおよび第二の出力データを、それぞれの受信時刻と共に入出力データログ１２５に格納する。
【００７４】
ステップ７０５において、出力データ比較部１２４は、ステップ７０４で比較した出力データの内容が一致している場合、ステップ７０６以降の処理を行う。一致しない場合は、テスト失敗としてステップ７０８以降の処理を行う。
【００７５】
ステップ７０６において、出力データ比較部１２４は、第二のアプリケーション１０１Ｂが第二の入力データおよび第二の出力データを処理したときの実行性能を確認する。実行性能が、前記性能要件を満たした場合、ステップ７０７以降の処理を行う。満たさない場合は、テスト失敗としてステップ７０８以降の処理を行う。
【００７６】
実行性能の確認手段の一例として、入出力データログ１２５の時刻５０１欄を参照し、第二の入力データの送信時刻と第二の出力データの受信時刻との差から第二のアプリケーション１０１Ｂで費やされた処理時間を算出し、前記処理時間を実行性能とすることができる。また、リソース情報取得部１１３を介して第二のアプリケーション１０１Ｂが実行する第二の計算機リソース１０２ＢのＣＰＵ使用率やメモリ使用量、Ｉ／Ｏ帯域使用量などの性能情報を取得し、利用してもよい。
【００７７】
図３の例では、性能要件３０８は、入出力処理の実行性能１．０ｓ（秒）以下となっている。このとき、出力データ比較部１２４は、入出力データログ１２５の時刻５０１から前記処理時間を算出し、前記性能要件と比較する。テスト構成１１９Ｂの場合、実行性能３０７に示す処理時間は０．６ｓであるためテスト成功と判定できる。また、テスト構成１１９Ｃの場合、実行性能３０７に示す処理時間は１．２ｓであるためテスト失敗と判定できる。
【００７８】
ステップ７０７において、テスト実行部１２１は、入出力比較テスト実行要求を受け取った時刻からの経過時間を算出し、経過時間が事前に定められた入出力比較テスト実行時間を超過しているか否かを判定する。超過していない場合、ステップ７０２に戻り入出力比較テストを継続する。超過している場合は、ステップ７１０を実行し入出力比較テストを終了する。
【００７９】
ステップ７０８において、テスト実行部１２１は、出力データ比較部１２４から得られたテスト失敗の情報を、テスト結果詳細と合わせて保持する。テスト結果詳細としては、ステップ７０５において第一の出力データと第二の出力データの内容が不一致であった場合は出力不一致を、ステップ７０６において第二のアプリケーション１０１Ｂが前記性能要件を満たしていない場合は性能不足を、それぞれ保持する。
【００８０】
ステップ７０９において、テスト実行部１２１は、ステップ７０８で保持したテスト失敗の回数が、事前に定められたテスト失敗許容回数を超過しているか否かを判定する。超過していない場合、ステップ７０７以降の処理を行い、入出力比較テストを継続する。超過している場合は、ステップ７１０以降の処理を行い、入出力比較テストを終了する。
【００８１】
ステップ７１０において、テスト実行部１２１は、入出力データ取得部１２２に対し入出力比較テスト終了の指示を与え、ステップ７０１で設定した入出力データの受信を停止する。
【００８２】
ステップ７１１において、テスト実行部１２１はステップ７０８で保持したテスト情報を集計し、入出力比較テスト実行要求の発行元へテスト結果を返信する。このとき、テスト失敗回数が事前に定められたテスト許容失敗回数を超過していたらテスト失敗、超過していなければテスト成功とする。また、テスト失敗の場合はステップ７０８で保持した失敗要因と、ステップ７０６で得られた第二のアプリケーション１０１Ｂの実行性能情報も合わせて返信する。
【００８３】
以上の処理により、本番系である第一のアプリケーション１０１Ａの入出力データと比較することで、テスト系である第二のアプリケーション１０１Ｂが正しく動作しているか否かをテストすることができる。  図８は、実施例１における計算機リソースおよびクラウドシステムの仕様情報取得の一例を示すフローチャートである。本処理は、テスト管理サーバ１１０のクラウドシステム情報取得部１１４が、計算機リソースの要求仕様とクラウドシステム１００のＩＤを含む、利用可能計算機リソース仕様取得要求を受け取ることで開始される。
【００８４】
図８に示す計算機リソースおよびクラウドシステムの仕様情報取得手順と、図９に示す選択した仕様の計算機リソース割当は、対象とするクラウドシステム１００の特徴に応じて、ケース１とケース２に分けられる。
【００８５】
ケース１は、テスト構成管理テーブル１１７の計算機リソース仕様３０４に格納する仕様情報を、計算機リソース割り当ての際に全て指定できるクラウドシステムの場合である。
【００８６】
ケース２は、前記仕様情報の一部を、計算機リソース１０２割り当ての際に指定できないクラウドシステムの場合である。ケース２では、指定できない計算機リソース仕様に関しては、計算機リソース１２０が割り当てられるたびに仕様が変化し、アプリケーションの実行結果や実行性能が変わる可能性がある。従って、ケース２の場合は、このような仕様の変化を考慮し、指定した通りの計算機リソース仕様を得るための処理が必要となる。
【００８７】
ステップ８０１において、クラウドシステム情報取得部１１４は、前記要求に含まれるクラウドシステム１００のクラウドシステム管理部１０４に接続し、公開されているインタフェースを参照して利用可能な複数の異なる計算機リソース仕様を取得できるか否かを判定する。取得できる場合（ケース１）、公開されたインタフェースをそのまま利用できるため、ステップ８０２を実行する。取得できない場合（ケース２）、クラウドシステム１００上に実際に計算機リソース１０２を割り当てて計算機リソース仕様を取得する必要があるため、ステップ８０３以降の処理を行う。
【００８８】
ステップ８０２において、クラウドシステム情報取得部１１４は、クラウドシステム管理部１０４が公開するインタフェースを用いて、クラウドシステム１００上で利用可能な複数の異なる計算機リソース仕様の一覧を取得する。その後、ステップ８０５を実行し処理を終了する。
【００８９】
ステップ８０３において、クラウドシステム情報取得部１１４は、前記要求仕様を含む計算機リソース割当要求を生成し、リソース要求部１１２を介してリソース割当部１０３に送信する。このとき、生成した計算機リソース割当要求を複数回送信し、複数の計算機リソースを得る。
【００９０】
ステップ８０４において、クラウドシステム情報取得部１１４は、リソース情報取得部１１３を介して、ステップ８０３で得た複数の計算機リソースの仕様情報を取得する。
【００９１】
ステップ８０５において、クラウドシステム情報取得部１１４は、ステップ８０２もしくはステップ８０４で得られたクラウドシステム１００上で利用可能な計算機リソース仕様の一覧を、前記要求の発行元に返信する。
【００９２】
以上の処理により、クラウドシステム１００上で利用可能な複数の異なる仕様を持つ計算機リソース仕様の一覧を取得することができる。
【００９３】
図９は、実施例１における選択した仕様の計算機リソースの割当の一例を示すフローチャートである。本処理は、テスト管理サーバ１１０のリソース要求部１１２が、計算機リソースの要求仕様とクラウドシステムＩＤを含む計算機リソース割当要求を受け取ることで開始される。
【００９４】
ステップ９０１において、リソース要求部１１２はクラウドシステム管理テーブル１１８を参照し、前記要求に含まれるクラウドシステムＩＤ情報を元に、計算機リソースを割り当てるクラウドシステム１００における指定可能計算機リソース仕様４０２と、指定不可能計算機リソース仕様４０３を取得する。  ステップ９０２において、リソース要求部１１２は、前記要求仕様が、ステップ９０１で取得した指定可能計算機リソース仕様４０３に含まれるか否かを判定する。含まれる場合（ケース１）、クラウドシステム１００上に前記要求仕様を満たす計算機リソースを割り当てることができるため、ステップ９０３を実行する。含まれない場合（ケース２）、クラウドシステム１００上に前記要求仕様とは異なる仕様を持つ計算機リソースが割り当てられる可能性があるため、要求仕様を持つ計算機リソースを得るためにステップ９０４以降の処理を行う。
【００９５】
ステップ９０３において、リソース要求部１１２は、前記要求仕様を含む計算機リソース割当要求を生成し、クラウドシステム１００のリソース割当部１０３に対して送信する。リソース要求部１１２は、リソース割当部１０３からの返信として計算機リソースのアドレスを受け取った後は、ステップ９０７以降の処理を行う。
【００９６】
ステップ９０４において、リソース要求部１１２は、前記要求仕様から、ステップ９０１で取得した指定可能計算機リソース仕様４０２に含まれる計算機リソース仕様のみを抽出する。その後、リソース要求部１１２は、抽出した前記仕様情報を含む計算機リソース割当要求を生成し、クラウドシステム１００のリソース割当部１０３に対して送信する。このとき、生成した計算機リソース割当要求を複数回送信し、複数の計算機リソースを得る。
【００９７】
ステップ９０５において、リソース要求部１１２は、リソース情報取得部１１３を介して、ステップ９０４で得た複数の計算機リソースの仕様情報を取得する。
【００９８】
ステップ９０６において、リソース要求部１１２は、前記要求仕様から、ステップ９０１で取得した指定不可能計算機リソース仕様４０１に含まれる計算機リソース仕様のみを抽出する。
【００９９】
続けて、ステップ９０５で得た複数の計算機リソース仕様情報と、前記要求仕様から抽出した前記仕様情報を比較し、両者が合致する計算機リソースが存在するか否かを判定する。存在しない場合、前記要求仕様を満たす計算機リソースの割り当てに失敗したため、ステップ９０７以降の処理を行う。存在する場合、前記要求仕様を満たす計算機リソースが割り当てられたため、ステップ９０８以降の処理を行う。  ステップ９０７において、リソース要求部１１２は、ステップ９０６でリソース割り当てに失敗した回数が、事前に定められたリソース割当失敗許容回数を超過しているか否かを判定する。超過していない場合、ステップ９０４に戻り処理を継続する。超過している場合は、リソース要求部１１２は前記要求の発行元に計算機リソースの割り当てに失敗した旨を返信し、処理を終了する。
【０１００】
ステップ９０８において、リソース要求部１１２は、ステップ９０３もしくはステップ９０６で得られた、前記要求仕様を満たす計算機リソースのアドレス情報を取得し、前記アドレス情報を前記要求の発行元に返信し、処理を終了する。
【０１０１】
以上の処理により、クラウドシステム１００上で指定不可能な計算機リソース仕様が存在する場合でも、要求された計算機リソース仕様を満たす計算機リソースを割り当てることができる。
【０１０２】
図１０は、実施例１におけるテスト未実行の計算機リソース仕様の選択の一例を示すフローチャートである。本フローチャートにて、ステップ６０２における処理の詳細を説明する。
【０１０３】
ステップ１００１において、テスト管理部１１１はテスト構成管理テーブル１１７を参照し、テスト結果３０５にテスト失敗が格納され、さらにテスト結果詳細３０６に性能不足が格納されているか否かを確認する。これにより直前に行われた第二のアプリケーション１０１Ｂのテストが性能不足により失敗したか否かを判定する。
性能不足により失敗であった場合は、第二の計算機リソース１０２Ｂを増強し、再度テストを行うためにステップ１００２以降の処理を行う。それ以外の場合は、ステップ１００５を実行し本処理を終了する。
【０１０４】
ステップ１００２において、リソース情報取得部１１３は、性能不足でテストに失敗した第二のアプリケーション１０１Ｂに接続し、ＣＰＵ使用率、メモリ使用量、Ｉ／Ｏ帯域使用量などの性能情報を取得する。
【０１０５】
ステップ１００３において、テスト管理部１１１は、前記性能情報を参照し、使用率が高く性能不足の要因と考えられるリソースを一つ選択する。例として、入出力比較テストの実行中にＣＰＵ使用率が１００％のまま推移していた場合は、ＣＰＵ性能が性能不足の要因と判断し、前記リソースとしてＣＰＵを選択する。
【０１０６】
ステップ１００４において、テスト管理部１１１は、テスト構成管理テーブル１１７に新たなテスト構成１１９を追加し、テストに失敗した第二のアプリケーション１０１Ｂの計算機リソース仕様を、前記テスト構成１１９の計算機リソース仕様３０４に格納する。合わせて、任意に生成したＩＤをテスト構成ＩＤ３０１に格納する。その後、テスト管理部１１１は、前記テスト構成１１９の計算機リソース仕様３０４のうち、ステップ１００３で選択したリソースの性能を増強する。例として、ＣＰＵ性能に不足があった場合は、周波数を２．３ＧＨｚから３．１ＧＨｚに向上する。リソースの増強後、前記テスト構成１１９のテスト構成ＩＤ３０１を取得する。これにより、テストに失敗したアプリの性能不足の要因を解消し、テスト成功仕様を得ることを図る。
【０１０７】
ステップ１００５において、テスト管理部１１１はテスト構成管理テーブル１１７のテスト結果３０５を参照し、テスト未実行の計算機リソース仕様を一つ選択する。選択した計算機リソース仕様を次にテストを実行する計算機リソース仕様とし、本処理を終了する。
【０１０８】
ステップ１００４もしくはステップ１００５において計算機リソース仕様を選択した後は、前記選択仕様のテスト構成ＩＤ３０１を利用し、ステップ６０３以降のアプリケーションテストを実行する。
【０１０９】
図１１は、実施例１におけるテスト結果通知画面の構成の一例を示す図である。テスト結果通知画面２１０は、テスト管理サーバ１１０のテスト情報出力部１１６により端末１５０へ出力され、ユーザに提示される。
【０１１０】
テスト結果通知画面２１０は、現状仕様情報１１０１と、推奨仕様情報１１０２と、テスト結果一覧１１０３ないし１１０８と、テスト成功数１１０９と、要求仕様数１１１０から構成される。
【０１１１】
現状仕様情報１１０１には、本番系である第一のアプリケーション１０１Ａおよび第一の計算機リソース１０２Ａの情報を表示する。表示情報は、テスト情報出力部１１６がテスト構成管理テーブル１１７からテスト構成ＩＤ３０１やアドレス３０３などの情報を取得する。なお、現状仕様情報１１０１に表示する情報はこれらに限らず、ユーザに分かりやすい表示名など本番系を表す情報であればよい。
【０１１２】
推奨仕様情報１１０２には、アプリケーションテスト実行により得られた、第二のアプリケーション１０１Ｂを正しく動作でき、目標とする性能を達成できる一つ以上の計算機リソース仕様のうち、最も実行性能に優れた計算機リソース仕様の情報を表示する。表示情報は、テスト情報出力部１１６がテスト構成管理テーブル１１７のテスト結果３０５を参照してテストに成功した計算機リソース仕様を抽出し、さらに実行性能３０７を参照してテストに成功した計算機リソース仕様の中から最も実行性能に優れた計算機リソース仕様を選択し、現状仕様情報１１０１と同様の情報を取得する。
【０１１３】
テスト結果一覧１１０３には、アプリケーションテストを実行した複数の異なる計算機リソース仕様について、各々のテスト構成のＩＤ１１０４と、テスト結果情報１１０５と、実行性能情報１１０６と、計算機リソース仕様差分情報１１０７，１１０８とを対応付け、一覧表示する。表示情報は、テスト情報出力部１１６がテスト構成管理テーブル１１７を参照し、テスト結果３０５、テスト結果詳細３０６、実行性能３０７などから取得する。また、計算機リソース仕様差分情報１１０７，１１０８には、本番系とテスト系それぞれの計算機リソース仕様３０４の間で差異がある仕様のみを抽出し、本番系の仕様情報１１０７とテスト系の仕様情報１１０８を比較できる形式で表示する。ユーザは、これらの情報を参照することで、任意の計算機リソース仕様でテストが失敗した際に、原因となる仕様の違いを確認することができる。
【０１１４】
テスト成功数１１０９には、アプリケーションテスト実行により得られた、第二のアプリケーション１０１Ｂを正しく動作でき、目標とする性能を達成できる計算機リソース仕様の数を表示する。テスト成功数１１０９は、テスト情報出力部１１６がテスト構成管理テーブル１１７のテスト結果３０５を参照して、テストに成功した計算機リソース仕様の数を数えて取得する。また、  要求仕様数１１１０には、事前に定められた要求計算機リソース仕様数をテスト管理部１１１より取得して表示する。ユーザは、これらの情報を参照することで、クラウドシステム１００上で第二のアプリケーション１０１Ｂを正しく動作でき、目標とする性能を達成できる計算機リソース仕様の種類がどの程度存在するかを確認し、他のアプリケーションを実行する際の参考とすることができる。
【０１１５】
以上の実施例により、ユーザに対してはテスト結果通知画面２１０のような画面を提示することで、ユーザは、テスト系である第二のアプリケーション１０１Ｂを正しく動作することができる第二の計算機リソース１０２Ｂの複数の仕様を一覧し、新たな本番系として第二のアプリケーション１０１Ｂを実行する計算機リソースの仕様を選ぶことができる。
【符号の説明】
【０１１６】
１００  クラウドシステム、１０１  アプリケーション、１０２  計算機リソース、１０３  リソース割当部、１０４  クラウドシステム管理部、１１０  テスト管理サーバ、１１１  テスト管理部、１１２  リソース要求部、１１３  リソース情報取得部、１１４  クラウドシステム情報取得部、１１５  アプリケーション実行部、１１６  テスト情報出力部、１１７  テスト構成管理テーブル、１１８  クラウドシステム管理テーブル、１１９  テスト構成、１２０  入出力比較テストサーバ、１２１  テスト実行部、１２２  入出力データ取得部、１２３  入力データ複製部、１２４  出力データ比較部、１２５  入出力データログ、１３０  計算機、１３１  プロセッサ、１３２  メモリ、１３３  入出力装置、１４０  ネットワーク、１５０  端末
【図１】
2015049876.tif 000003
【図２】
2015049876.tif 000004
【図３】
2015049876.tif 000005
【図４】
2015049876.tif 000006
【図５】
2015049876.tif 000007
【図６】
2015049876.tif 000008
【図７】
2015049876.tif 000009
【図８】
2015049876.tif 000010
【図９】
2015049876.tif 000011
【図１０】
2015049876.tif 000012
【図１１】
2015049876.tif 000013