JP5906705B2 - テストシステム、テスト方法、及び、プログラム - Google Patents

テストシステム、テスト方法、及び、プログラム Download PDF

Info

Publication number
JP5906705B2
JP5906705B2 JP2011267106A JP2011267106A JP5906705B2 JP 5906705 B2 JP5906705 B2 JP 5906705B2 JP 2011267106 A JP2011267106 A JP 2011267106A JP 2011267106 A JP2011267106 A JP 2011267106A JP 5906705 B2 JP5906705 B2 JP 5906705B2
Authority
JP
Japan
Prior art keywords
test
image
item
execution
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011267106A
Other languages
English (en)
Other versions
JP2013120440A (ja
Inventor
岳夫 大野
岳夫 大野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2011267106A priority Critical patent/JP5906705B2/ja
Publication of JP2013120440A publication Critical patent/JP2013120440A/ja
Application granted granted Critical
Publication of JP5906705B2 publication Critical patent/JP5906705B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、プログラムのテストを行うテストシステム、テスト方法、及び、プログラムに関する。
プログラムの開発プロセスでは、結合テストやシステムテストを行うためのテスト環境、障害発生時の再現環境、パッチ適用時のテスト環境、機能更新時のテスト環境等、さまざまなテスト環境が必要である。
テスト環境の準備を効率的に行う技術として、仮想マシン(VM(Virtual Machine))の利用が提案されている。例えば、特許文献1には、テスト対象システムのVMイメージを物理サーバに配備することにより、テスト環境を構築する技術が開示されている。テスト環境に仮想マシンを用いる利点として、データや設定の初期化が容易となる、オペレーティングシステム、アプリケーション、及び、データを含む環境を短時間で生成できる、1台の装置上で複数のテストを同時に実行できる、テスト途中のメモリ状態を保存し、テスト後にテスト結果を検証できる等が挙げられる。テスト環境の準備作業はプログラムの開発プロセスで繰り返し行われるため、仮想マシンの利用は、開発スピード向上やプログラム開発のコスト低減への効果が大きい。
ところで、プログラム開発においては、複数のテスト項目から成るテストシナリオの最初のテスト項目からのテストではなく、あるテスト項目が終了した時点のテスト環境を復元し、当該テスト項目の次のテスト項目からテストを実行する場合がある。例えば、特許文献2には、プログラムの動作時のある時点のコンテキストを保存し、当該コンテキストをもとにプログラムの状態を復元し、所定のテストを行う開発支援装置が開示されている。
上述の仮想マシンによるテスト環境において、テストシナリオの内の任意のテスト項目からのテストを可能にするためには、テストシナリオ内の各テスト項目に対してVMイメージを予め保存し、テストを行うたびに、必要なVMイメージを物理サーバに転送する必要がある。しかしながら、VMイメージのサイズは、1つの仮想マシンあたり数GBから数十GBと大きいため、VMイメージの保存にコストがかかる。
このような、メモリイメージの保存コストを低減可能な技術として、プログラムのメモリイメージの差分をもとにメモリイメージを復元する技術が提案されている。例えば、特許文献3には、プログラムのメモリ情報を時間的経過に従って収集し、収集されたメモリ情報間の差分を保存し、保存された差分をもとにある時点のメモリ情報を復元するメモリ情報保存方法が開示されている。
特開2010‐113381号公報 特開2010‐113381号公報 特開昭63‐118847号公報
プログラムのテストシナリオが多岐にわたる場合、あるテスト項目が終了した時点の同一の状態に対して、複数の異なるテスト項目を実行する必要がある。しかしながら、上述の特許文献3の技術は、連続した時間経過に従って、メモリ情報の差分を検出、保存する技術であり、あるテスト項目が終了した時点の同一の状態に対して、複数の異なるテスト項目を実行する場合については考慮されていない。
本発明の目的は、上述の課題を解決し、仮想マシンに用いたテスト環境において、テストシナリオが多岐にわたる場合であっても、VMイメージの保存コストを低減できるテストシステム、テスト方法、及び、プログラムを提供することにある。
本発明のテストシステムは、初期VMイメージを有する仮想マシンに対して実行される複数のテスト項目の各々を、ルートノードを起点とした各ノードに対応付けることにより、各テスト項目のテスト実行前に実行が必要な他のテスト項目を示した木構造を記憶するテストツリー記憶手段と、前記複数のテスト項目の各々の実行前の前記仮想マシンのVMイメージと実行後のVMイメージとの差分である差分イメージを、前記複数のテスト項目の各々に対応付けて記憶する差分イメージ記憶手段と、前記仮想マシンを用いてテストを実行するテスト項目が指定された場合、前記初期VMイメージ、及び、前記木構造上の前記ルートノードから前記指定されたテスト項目の親のテスト項目までの各テスト項目に対応する差分イメージをもとに、前記指定されたテスト項目の親のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元するテスト実行手段と、を含む。
本発明のテスト方法は、初期VMイメージを有する仮想マシンに対して実行される複数のテスト項目の各々を、ルートノードを起点とした各ノードに対応付けることにより、各テスト項目のテスト実行前に実行が必要な他のテスト項目を示した木構造を記憶し、前記複数のテスト項目の各々の実行前の前記仮想マシンのVMイメージと実行後のVMイメージとの差分である差分イメージを、前記複数のテスト項目の各々に対応付けて記憶し、前記仮想マシンを用いてテストを実行するテスト項目が指定された場合、前記初期VMイメージ、及び、前記木構造上の前記ルートノードから前記指定されたテスト項目の親のテスト項目までの各テスト項目に対応する差分イメージをもとに、前記指定されたテスト項目の親のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する。
本発明のテストプログラムは、コンピュータに、初期VMイメージを有する仮想マシンに対して実行される複数のテスト項目の各々を、ルートノードを起点とした各ノードに対応付けることにより、各テスト項目のテスト実行前に実行が必要な他のテスト項目を示した木構造を記憶し、前記複数のテスト項目の各々の実行前の前記仮想マシンのVMイメージと実行後のVMイメージとの差分である差分イメージを、前記複数のテスト項目の各々に対応付けて記憶し、前記仮想マシンを用いてテストを実行するテスト項目が指定された場合、前記初期VMイメージ、及び、前記木構造上の前記ルートノードから前記指定されたテスト項目の親のテスト項目までの各テスト項目に対応する差分イメージをもとに、前記指定されたテスト項目の親のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する処理を実行させる。
本発明の効果は、仮想マシンに用いたテスト環境において、テストシナリオが多岐にわたる場合であっても、VMイメージの保存コストを低減できることである。
本発明の第1の実施の形態の特徴的な構成を示すブロック図である。 本発明の第1の実施の形態における、テストシステム1の構成を示すブロック図である。 本発明の第1の実施の形態におけるテストツリー121の例を示す図である。 本発明の第1の実施の形態におけるテスト情報122の例を示す図である。 本発明の第1の実施の形態におけるVMイメージの変化の例を示す図である。 本発明の第1の実施の形態における初期イメージ情報123の例を示す図である。 本発明の第1の実施の形態における差分イメージ情報124の例を示す図である。 本発明の第1の実施の形態における差分イメージ生成処理を示すフローチャートである。 本発明の第1の実施の形態におけるVMイメージ復元処理を示すフローチャートである。 本発明の第2の実施の形態における、テストシステム1の構成を示すブロック図である。 本発明の第2の実施の形態におけるVMイメージ復元処理を示すフローチャートである。
(第1の実施の形態)
次に、本発明の第1の実施の形態について説明する。
はじめに、本発明の第1の実施の形態の構成について説明する。図2は、本発明の第1の実施の形態における、テストシステム1の構成を示すブロック図である。
図2を参照すると、テスト実行システム1は、テスト管理装置100と1以上のテスト実行装置200とを含む。テスト管理装置100とテスト実行装置200とは、ネットワーク等により接続される。
テスト管理装置100は、テスト実行装置200にテストの実行を指示する。テスト実行装置200は、テスト対象である(テストを行うプログラムを含む)仮想マシンのVMイメージを生成し、仮想マシンを用いてテストを行う。
テスト管理装置100は、テスト管理部101、テストツリー記憶部111、テスト情報記憶部112、初期イメージ記憶部113、及び、差分イメージ記憶部114を含む。
テスト管理部101は、テスト項目に応じて、初期VMイメージ、及び、差分イメージをテスト実行装置200に送信する。また、テスト管理部101は、テスト実行装置200にテストの実行を指示する。
ここで、テストツリー記憶部111は、テストツリー121を記憶する。テストツリー121は、テスト実行装置200において、テスト対象の仮想マシンの初期状態(初期VMイメージ)から実行される複数のテスト項目の各々の実行順序をツリー(木構造)形式で示す情報である。
図3は、本発明の第1の実施の形態におけるテストツリー121の例を示す図である。テストツリー121のルートノードは、上述の初期状態に対応する。そして、テストツリー121上のルートノードを起点とした各ノードには、上述の初期状態から実行される複数のテスト項目の各々の識別子が、実行順序に従って付与される。テストツリー121上の親のノードのテスト項目は、子のノードのテスト項目のテスト実行前に実行が必要なテスト項目を示す。
図3の例では、上述の初期状態から、例えば、テスト項目「テスト1」、「テスト1−1」、「テスト1−1−1」の順序、テスト項目「テスト2」、「テスト2−1」、「テスト2−1−1」の順序等でテストが実行される。
テスト情報記憶部112は、テスト情報122を記憶する。図4は、本発明の第1の実施の形態におけるテスト情報122の例を示す図である。テスト情報122は、テスト識別子対応に、テストの内容を含む。
ここで、本発明の実施の形態におけるVMイメージの変化について説明する。図5は、本発明の第1の実施の形態におけるVMイメージの変化の例を示す図である。図5の例は、図3のテストツリー121に従ってテスト項目のテストが行われた場合の、VMイメージの変化を示す。
図5に示すように、初期VMイメージに対して、例えば、「テスト1」、「テスト1−1」、の順にテストが実行されると、VMイメージは、初期VMイメージから、「VMI1」、「VMI1−1」の順に変化する。
初期イメージ記憶部113は、初期イメージ情報123を記憶する。図6は、本発明の第1の実施の形態における初期イメージ情報123の例を示す図である。初期イメージ情報123には、初期VMイメージが登録される。
差分イメージ記憶部114は、差分イメージ情報124を記憶する。図7は、本発明の第1の実施の形態における差分イメージ情報124の例を示す図である。差分イメージ情報124には、テスト識別子対応に、差分イメージが登録される。ここで、差分イメージは、対応するテスト識別子で示されるテスト項目のテスト前後のVMイメージの差分である。差分イメージは、例えば、VMイメージにおける、テストにより変更されたデータのアドレスと、当該アドレスにおける変更前、及び、変更後のデータの値を含む。差分イメージは、例えば、後述する処理部202のVM制御手段により生成される。
テスト実行装置200は、テスト制御部201、及び、処理部202を含む。
テスト制御部201は、テスト管理装置100から受信した、初期VMイメージ、及び、差分イメージから、テスト対象の仮想マシンのVMイメージを生成する。テスト制御部201は、生成した仮想マシンを処理部202に配備し、テストを実行する。
処理部202は、図示しないCPU(Central Processing Unit)、及び、CPU上で1以上の仮想マシンの動作を制御するVM制御手段を含む。VM制御手段は、例えば、VMモニタやハイパーバイザである。VM制御手段は、テスト対象である仮想マシンのVMイメージを用いて、仮想マシンを起動、実行する。ここで、VMイメージは、アプリケーション、ミドルウェア、及び、OSのイメージを含む。また、VMイメージは、データベースファイルを含んでいてもよい。さらに、VMイメージは、アプリケーションの変数領域等、RAM(Random Access Memory)上のデータを含んでいてもよい。
なお、テスト管理部101と、テスト制御部201とは、CPUとプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、テストツリー記憶部111、テスト情報記憶部112、初期イメージ記憶部113、及び、差分イメージ記憶部114は、それぞれ個別の記憶媒体でも、1つの記憶媒体によって構成されてもよい。
また、テスト管理部101、テストツリー記憶部111、テスト情報記憶部112、初期イメージ記憶部113、差分イメージ記憶部114、テスト制御部201、及び、処理部202の内の1つまたは複数が、1つの装置を構成し、他の装置とネットワークを介して接続されていてもよい。
次に、本発明の第1の実施の形態におけるテストシステム1の動作について説明する。
<差分イメージ生成処理>
はじめに、差分イメージ情報124を生成する差分イメージ生成処理について説明する。図8は、本発明の第1の実施の形態における差分イメージ生成処理を示すフローチャートである。
ここでは、テストツリー記憶部111、テスト情報記憶部112には、図4、図5のテストツリー121、テスト情報122がそれぞれ設定されており、初期イメージ記憶部113には、図6の初期イメージ情報123が設定されていると仮定する。
テスト管理装置100のテスト管理部101は、テストシステム1のユーザから、テストを実行するテスト項目の範囲の指定を、テストツリー121上のルートノードを起点とした部分木により受け付ける(ステップS101)。
例えば、テスト管理部101は、テスト範囲として、図4のテストツリー121上の「部分木A」を受け付ける。
テスト管理部101は、テスト制御部201に、ステップS101で指定されたテスト項目の範囲(部分木)を送信し、テストの実行を指示する。テスト制御部201は、部分木におけるルートノードの子ノードからテスト項目を1つ選択し、対象テスト項目に設定する(ステップS102)。
例えば、テスト制御部201は、「部分木A」におけるルートノードの子ノードからテスト項目「テスト1」を選択し、対象テスト項目に設定する。
テスト管理部101は、初期イメージ情報123から初期VMイメージを取得し、テスト実行装置200のテスト制御部201に送信する(ステップS103)。
テスト制御部201は、処理部202に初期VMイメージを配備し、仮想マシンを起動する(ステップS104)。
例えば、テスト制御部201は、図6の初期VMイメージを処理部202に配備する。
テスト制御部201は、処理部202上の仮想マシンを用いて、対象テスト項目のテストを実行する(ステップS105)。ここで、テスト制御部201は、テスト情報記憶部112のテスト情報122を参照し、対象テスト項目の処理を実行させるためのデータや指示を仮想マシンに入力し、当該入力に対する応答を検出する。
例えば、テスト管理部101は、図5のテスト情報122を参照し、対象テスト項目「テスト1」に対する指示「データA追加」を仮想マシンに入力し、処理結果を検出する。
テスト制御部201は、対象テスト項目の実行前のVMイメージと実行後のVMイメージとを比較することにより差分イメージを生成し、差分イメージ情報124に登録する(ステップS106)。ここで、テスト制御部201は、差分イメージを対象テスト項目の識別子に対応付けて登録する。
例えば、テスト制御部201は、初期VMイメージと、対象テスト項目「テスト1」のテスト実行後のVMイメージ「VMI1」とから、差分イメージ「D1」を取得し、図7に示すように、テスト項目「テスト1」に対応付けて、差分イメージ情報124に登録する。
次に、テスト制御部201は、部分木の範囲内の全てのテスト項目についてテストが実行されたかどうかを判定する(ステップS107)。
ステップS107で全てのノードのテスト項目についてテストが実行されている場合(ステップS107/Yes)、テスト制御部201は、処理を終了する。
ステップS107でテストが実行されていないテスト項目がある場合(ステップS107/No)、テスト制御部201は、テスト範囲で指定された部分木内でテストが実行されていないテスト項目であり、かつ、対象テスト項目の子(次)のテスト項目があるかどうかを判定する(ステップS108)。
ステップS108において、子のテスト項目がある場合(ステップS108/Yes)、テスト制御部201は、子のテスト項目からテスト項目を1つ選択して対象テスト項目に設定し(ステップS111)、ステップS105からの処理を実行する。
例えば、テスト制御部201は、対象テスト項目「テスト1」のテスト実行後に、テスト項目「テスト1−1」を対象テスト項目に設定する。テスト制御部201は、対象テスト項目「テスト1−1」に対応する指示「データB追加」を仮想マシンに入力し、処理結果を検出する。テスト制御部201は、対象テスト項目「テスト1−1」の実行前後のVMイメージ「VMI1」「VMI1−1」から、差分イメージ「D1−1」を取得し、図7に示すように、テスト項目「テスト1−1」に対応付けて、差分イメージ情報124に登録する。
ステップS108において、子のテスト項目がない場合(ステップS108/No)、テスト制御部201は、対象テスト項目のテスト実行前の仮想システムのVMイメージを復元する(ステップS109)。ここで、テスト制御部201は、現在のVMイメージと、差分イメージ情報124の対象テスト項目に対する差分イメージとをもとに、対象テスト項目のテスト実行前の仮想システムのVMイメージを復元する。テスト制御部201は、例えば、現在のVMイメージのデータの内、差分イメージにより示されるアドレスのデータを、当該アドレスにおける変更前のデータの値で置き換えることにより、テスト実行前のVMイメージを復元する。
そして、テスト制御部201は、対象テスト項目の親(前)のテスト項目を対象テスト項目に設定し(ステップS110)、ステップS108からの処理を実行する。
例えば、テスト制御部201は、対象テスト項目「テスト1−1」のテスト実行後に、現在のVMイメージ「VMI1−1」と、図7の差分イメージ情報124のテスト項目「テスト1−1」に対する差分イメージ「D1−1」とをもとに、対象テスト項目「テスト1−1」のテスト実行前のVMイメージ「VMI1」を復元する。そして、テスト制御部201は、対象テスト項目「テスト1」を対象テスト項目に設定する。
そして、テスト制御部201は、テスト項目「テスト1−2」を対象テスト項目に設定し、テストを実行する。テスト制御部201は、対象テスト項目「テスト1−2」の実行前後のVMイメージ「VMI1」「VMI1−2」から、差分イメージ「D1−2」を取得し、図7に示すように、テスト項目「テスト1−2」に対応付けて、差分イメージ情報124に登録する。
そして、テスト制御部201は、対象テスト項目「テスト1−2」のテスト実行後に、現在のVMイメージ「VMI1−2」と、図7の差分イメージ情報124のテスト項目「テスト1−2」に対する差分イメージ「D1−2」とをもとに、対象テスト項目「テスト1−2」のテスト実行前のVMイメージ「VMI1」を復元する。テスト制御部201は、対象テスト項目「テスト1」を対象テスト項目に設定する。
さらに、テスト制御部201は、現在のVMイメージ「VMI1」と、図7の差分イメージ情報124のテスト項目「テスト1」に対する差分イメージ「D1」とをもとに、対象テスト項目「テスト1」のテスト実行前の初期VMイメージを復元する。
そして、テスト制御部201は、テスト項目「テスト2」「テスト2−1」「テスト2−2」の順序でテストを実行し、図7に示すように、差分イメージ「D2」「D2−1」「D2−2」を、それぞれ、差分イメージ情報124に登録する。
このように、テスト制御部201は、ステップS101で指定された部分木の範囲内の全テスト項目について、テストを実行し、差分イメージを差分イメージ情報124に登録する。
<VMイメージ復元処理>
次に、指定されたテスト項目を実行するときに、差分イメージ情報124をもとに、仮想マシンのVMイメージを復元する処理について説明する。
図9は、本発明の第1の実施の形態におけるVMイメージ復元処理を示すフローチャートである。
ここでは、上述の差分イメージ生成処理によって、差分イメージ記憶部114に図7の差分イメージ情報124が登録されていると仮定する。
テスト管理装置100のテスト管理部101は、テストシステム1のユーザから、テストツリー121上で、テストを実行するテスト項目の指定を受け付ける(ステップS201)。テスト管理部101は、テスト制御部201に、ステップS201で指定されたテスト項目を送信し、テストの実行を指示する。
例えば、テスト管理部101は、テスト項目として、図4のテストツリー121上のテスト項目「テスト1−1−1」を受け付ける。
テスト管理部101は、初期イメージ情報123の初期VMイメージを取得し、テスト実行装置200のテスト制御部201に送信する(ステップS202)。
例えば、テスト管理部101は、図6の初期VMイメージをテスト制御部201に送信する。
テスト管理部101は、テストツリー121上のルートノードから、指定されたテスト項目の親(前)のテスト項目までの各テスト項目に対応する差分イメージを差分イメージ情報124から取得し、テスト制御部201に送信する(ステップS203)。
例えば、テスト管理部101は、図7の差分イメージ情報124から、テスト項目「テスト1」「テスト1−1」に対応する差分イメージ「D1」「D1−1」を取得し、テスト制御部201に送信する。
テスト制御部201は、テスト管理部101から受信した初期VMイメージと各テスト項目に対応する差分イメージとをもとに、指示されたテスト項目の親(前)のテスト項目のテスト実行後のVMイメージを復元する(ステップS204)。ここで、テスト制御部201は、初期VMイメージに、各テスト項目に対応する差分イメージをテストツリー121上の実行順序に従って適用して、VMイメージを復元する。テスト制御部201は、例えば、VMイメージのデータの内、差分イメージにより示されるアドレスのデータを、当該アドレスにおける変更後のデータの値で置き換えることにより、各テスト実行後のVMイメージを復元する。
例えば、テスト制御部201は、初期VMイメージに、テスト項目「テスト1」「テスト1−1」に対応する差分イメージ「D1」「D1−1」を順番に適用し、テスト項目「テスト1−1」のテスト実行後のVMイメージ「VMI1−1」を復元する。
テスト制御部201は、復元したVMイメージを処理部202に配備し、仮想マシンを起動する(ステップS205)。
例えば、テスト制御部201は、VMイメージ「VMI1−1」を処理部202に配備する。
テスト制御部201は、処理部202上の仮想マシンを用いて、指示されたテスト項目のテストを実行する(ステップS206)。
例えば、テスト制御部201は、仮想マシン(VMイメージ「VMI1−1」)を用いて、テスト項目「テスト1−1−1」のテストを実行する。
なお、テスト制御部201は、上述の差分イメージ生成処理と同様に、さらに、指定されたテスト項目を起点とする部分木の範囲のテスト項目のテストを実行し、差分イメージ情報124を更新してもよい。
以上により、本発明の第1の実施の形態の動作が完了する。
次に、本発明の第1の実施の形態の特徴的な構成を説明する。図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
図1を参照すると、テストシステム1は、テストツリー記憶部111、差分イメージ記憶部114、及び、テスト制御部201を含む。
テストツリー記憶部111は、初期VMイメージを有する仮想マシンに対して実行される複数のテスト項目の各々を、ルートノードを起点とした各ノードに対応付けることにより、各テスト項目のテスト実行前に実行が必要な他のテスト項目を示した木構造を記憶する。
差分イメージ記憶部114は、複数のテスト項目の各々の実行前の仮想マシンのVMイメージと実行後のVMイメージとの差分である差分イメージを、複数のテスト項目の各々に対応付けて記憶する。
テスト制御部201は、仮想マシンを用いてテストを実行するテスト項目が指定された場合、初期VMイメージ、及び、木構造上のルートノードから指定されたテスト項目の親のテスト項目までの各テスト項目に対応する差分イメージをもとに、指定されたテスト項目の親のテスト項目のテスト実行後の仮想マシンのVMイメージを復元する。
本発明の第1の実施の形態によれば、仮想マシンに用いたテスト環境において、テストシナリオが多岐にわたる場合であっても、VMイメージの保存コストを低減できる。その理由は、テストツリー記憶部111が、仮想マシンに対して実行される複数のテスト項目の実行順序を示す木構造を記憶し、テスト制御部201が、初期VMイメージ、及び、木構造上のルートノードから指定されたテスト項目の親のテスト項目までの各テスト項目実行前後の差分イメージをもとに、指定されたテスト項目の親のテスト項目のテスト実行後の仮想マシンのVMイメージを復元するためである。これにより、テスト項目の各々に対して仮想マシンのVMイメージを保存する場合よりも、VMイメージを保存するためのコストが低減される。
また、本発明の第1の実施の形態によれば、テストシナリオが多岐にわたる場合であっても、VMイメージの転送コストを低減できる。その理由は、テスト制御部201が、テスト項目のテスト実行後に、当該テスト項目を実行前のVMイメージを復元する場合、差分イメージをもとに、実行前のVMイメージを復元するためである。これにより、テスト項目の各々に対して仮想マシンのVMイメージを転送する場合よりも、VMイメージを転送するためのコストが低減される。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
本発明の第2の実施の形態においては、複数のテスト実行装置200で異なる複数のテスト項目のテストを行う場合に、同じ差分データを用いたテストが、同じテスト実行装置200で行われるように、各テスト実行装置200にテスト項目が割り当てられる。
次に、本発明の第2の実施の形態の構成について説明する。図10は、本発明の第2の実施の形態における、テストシステム1の構成を示すブロック図である。
図10を参照すると、テスト実行システム1は、テスト管理装置100と複数のテスト実行装置200(200a、200b、…)とを含む。
次に、本発明の第2の実施の形態におけるテストシステム1の動作について説明する。
<VMイメージ復元処理>
複数のテスト項目を実行するときに、テスト実行装置200にテスト項目を割り当て、各テスト実行装置200で仮想マシンのVMイメージを復元する処理について説明する。
図11は、本発明の第2の実施の形態におけるVMイメージ復元処理を示すフローチャートである。
はじめに、上述の差分イメージ生成処理によって、差分イメージ記憶部114に図7の差分イメージ情報124が登録されていると仮定する。
テスト管理装置100のテスト管理部101は、テストシステム1のユーザから、テストツリー121上で、テストを実行する複数のテスト項目の指定を受け付ける(ステップS301)。
例えば、テスト管理部101は、テスト項目として、図4のテストツリー121上の「テスト1−1−1」「テスト1−2−1」「テスト2−1−1」「テスト2−2−1」を受け付ける。
テスト管理部101は、指定されたテスト項目の各々のテストを実行するテスト実行装置200を決定する。ここで、テスト管理部101は、指定されたテスト項目の内、テストツリー121上のルートノードから親(前)のテスト項目までに、共通なテスト項目を持つテスト項目の組を抽出し、抽出された組のテスト項目のテストが同じテスト実行装置200で実行されるように、テスト実行装置200を決定する(ステップS302)。テスト管理部101は、決定したテスト実行装置200の各々のテスト制御部201に、実行するテスト項目を送信し、テストの実行を指示する。
例えば、テスト管理部101は、ルートノードから親(前)のテスト項目までに、共通なテスト項目「テスト1」を持つ、テスト項目「テスト1−1−1」「テスト1−2−1」の組、及び、共通なテスト項目「テスト2」を持つ、テスト項目「テスト2−1−1」「テスト2−2−1」の組を抽出する。そして、テスト管理部101は、テスト項目「テスト1−1−1」「テスト1−2−1」をテスト実行装置200a、テスト項目「テスト2−1−1」「テスト2−2−1」をテスト実行装置200bに割り当てる。
テスト管理部101は、初期イメージ情報123の初期VMイメージ取得し、各組のテストを実行するテスト実行装置200のテスト制御部201に送信する(ステップS303)。
例えば、テスト管理部101は、図6の初期VMイメージをテスト実行装置200a、200bのテスト制御部201a、200bに送信する。
テスト管理部101は、ステップS302で抽出されたテスト項目の組の各々について、テストツリー121上のルートノードのテスト項目から指定されたテスト項目の親(前)のテスト項目までの各テスト項目に対応する差分イメージを差分イメージ情報124から取得し、各組のテストを実行するテスト実行装置200のテスト制御部201に送信する(ステップS304)。ここで、テスト管理部101は、ステップS302で抽出されたテスト項目の組の各々において、共通なテスト項目に対応する差分イメージについては、1つだけ送信する。
例えば、テスト管理部101は、共通なテスト項目「テスト1」に対応する差分イメージ「D1」、及び、「テスト1−1」「テスト1−2」に対応する差分イメージ「D1−1」「D1−2」をテスト制御部201aに送信する。また、テスト管理部101は、共通なテスト項目「テスト2」に対応する差分イメージ「D2」、及び、「テスト2−1」「テスト2−2」に対応する差分イメージ「D2−1」「D2−2」をテスト制御部201bに送信する。
各テスト制御部201は、テスト管理部101から受信した初期VMイメージと差分イメージとをもとに、指示されたテスト項目の親(前)のテスト項目のテスト実行後のVMイメージを復元する(ステップS305)。
例えば、テスト制御部201aは、初期VMイメージと差分イメージ「D1」「D1−1」からテスト項目「テスト1−1」のテスト実行後のVMイメージ「VMI1−1」、初期VMイメージと差分イメージ「D1」「D1−2」からテスト項目「テスト1−2」のテスト実行後のVMイメージ「VMI1−2」を復元する。また、テスト制御部201bは、初期VMイメージと差分イメージ「D2」「D2−1」からテスト項目「テスト2−1」のテスト実行後のVMイメージ「VMI2−1」、初期VMイメージと差分イメージ「D2」「D2−2」からテスト項目「テスト2−2」のテスト実行後のVMイメージ「VMI2−2」を復元する。
テスト制御部201は、処理部202に復元したVMイメージを配備し、仮想マシンを起動する(ステップS306)。
例えば、図10に示すように、テスト制御部201aは、VMイメージ「VMI1−1」「VMI1−2」を用いた2つの仮想マシンを処理部202aに配備する。また、テスト制御部201bは、VMイメージ「VMI2−1」「VMI2−2」を用いた2つの仮想マシンを処理部202bに配備する。
テスト制御部201は、処理部202上の仮想マシンを用いて、指示されたテスト項目のテストを実行する(ステップS307)。
例えば、テスト制御部201aは、2つの仮想マシン(VMイメージ「VMI1−1」「VMI1−2」)を用いて、テスト項目「テスト1−1−1」「テスト1−2−1」を、それぞれ実行する。また、テスト制御部201bは、2つの仮想マシン(VMイメージ「VMI2−1」「VMI2−2」)を用いて、テスト項目「テスト2−1−1」「テスト2−2−1」を、それぞれ実行する。
以上により、本発明の第2の実施の形態の動作が完了する。
本発明の第2の実施の形態によれば、複数のテスト実行装置200で異なる複数のテスト項目のテストを行う場合に、VMイメージの転送コストを低減できる。その理由は、テスト管理部101が、同じ差分データを用いたテストが、同じテスト実行装置200で行われるように、各テスト実行装置200にテスト項目を割り当てるためである。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
例えば、本発明の実施の形態では、テスト実行装置200のテスト制御部201が、処理部202上の仮想マシンに対してテストを行っているが、テスト実行装置200の外部の装置が処理部202上の仮想マシンに対してテストを実行してもよい。この場合、テスト制御部201が、仮想マシンにおける各テスト項目のテスト終了を検出し、テスト実行前後の差分イメージを生成する。
また、本発明の実施の形態では、テスト制御部201が、生成した差分イメージを、差分イメージ記憶部114の差分イメージ情報124に登録しているが、テスト制御部201は、差分イメージを、テスト実行装置200の図示しない一時的な記憶部に保存し、テスト実行前のVMイメージの復元に用いてもよい。この場合、テスト制御部201は、複数の差分イメージをまとめて差分イメージ記憶部114の差分イメージ情報124に登録してもよい。
1 テスト実行システム
100 テスト管理装置
101 テスト管理部
111 テストツリー記憶部
112 テスト情報記憶部
113 初期イメージ記憶部
114 差分イメージ記憶部
121 テストツリー
122 テスト情報
123 初期イメージ情報
124 差分イメージ情報
200 テスト実行装置
201 テスト制御部
202 処理部

Claims (10)

  1. 初期VMイメージを有する仮想マシンに対して所定の順序に従って実行される複数のテスト項目の各々を、ルートノードを起点とした各ノードに前記所定の順序に従って対応付けることにより、各テスト項目のテスト実行前に実行が必要な他のテスト項目を示した木構造を記憶するテストツリー記憶手段と、
    前記複数のテスト項目の各々の実行前の前記仮想マシンのVMイメージと実行後のVMイメージとの差分である差分イメージを、前記複数のテスト項目の各々に対応付けて記憶する差分イメージ記憶手段と、
    前記仮想マシンを用いてテストを実行するテスト項目が指定された場合、前記初期VMイメージ、及び、前記木構造上の前記ルートノードから前記指定されたテスト項目の親のテスト項目までの各テスト項目に対応する差分イメージをもとに、前記指定されたテスト項目の親のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元するテスト実行手段と、
    を含むテストシステム。
  2. 前記テスト実行手段は、前記仮想マシンにおいて、前記木構造に従って前記複数のテスト項目の各々のテスト実行後に、前記複数のテスト項目の各々について前記差分イメージを取得し、前記差分イメージ記憶手段に保存する
    請求項1に記載のテストシステム。
  3. 前記テスト実行手段は、前記仮想マシンにおいて、第1のテスト項目のテスト実行後に、前記木構造上の前記ルートノードから前記第1のテスト項目の親のテスト項目までのテスト項目の内の第2のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する場合、前記第1のテスト項目実行後のVMイメージと、前記第2のテスト項目の子のテスト項目から前記第1のテスト項目までの各テスト項目に対応する差分イメージと、をもとに、前記第2のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する
    請求項1に記載のテストシステム。
  4. 複数の前記テスト実行手段を含み、
    さらに、前記仮想マシンを用いてテストを実行する複数のテスト項目が指定された場合、前記指定された複数のテスト項目の内、前記木構造上のルートノードから親のテスト項目までに、共通なテスト項目を持つテスト項目の組を抽出し、抽出された組の各々を、前記複数の前記テスト実行手段の内の異なるテスト実行手段に割り当てるテスト管理手段を含む
    請求項1に記載のテストシステム。
  5. 初期VMイメージを有する仮想マシンに対して所定の順序に従って実行される複数のテスト項目の各々を、ルートノードを起点とした各ノードに前記所定の順序に従って対応付けることにより、各テスト項目のテスト実行前に実行が必要な他のテスト項目を示した木構造を記憶し、
    前記複数のテスト項目の各々の実行前の前記仮想マシンのVMイメージと実行後のVMイメージとの差分である差分イメージを、前記複数のテスト項目の各々に対応付けて記憶し、
    前記仮想マシンを用いてテストを実行するテスト項目が指定された場合、前記初期VMイメージ、及び、前記木構造上の前記ルートノードから前記指定されたテスト項目の親のテスト項目までの各テスト項目に対応する差分イメージをもとに、前記指定されたテスト項目の親のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する
    テスト方法。
  6. さらに、前記仮想マシンにおいて、前記木構造に従って前記複数のテスト項目の各々のテスト実行後に、前記複数のテスト項目の各々について前記差分イメージを取得する
    請求項5に記載のテスト方法。
  7. さらに、前記仮想マシンにおいて、第1のテスト項目のテスト実行後に、前記木構造上の前記ルートノードから前記第1のテスト項目の親のテスト項目までのテスト項目の内の第2のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する場合、前記第1のテスト項目実行後のVMイメージと、前記第2のテスト項目の子のテスト項目から前記第1のテスト項目までの各テスト項目に対応する差分イメージと、をもとに、前記第2のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する
    請求項5に記載のテスト方法。
  8. コンピュータに、
    初期VMイメージを有する仮想マシンに対して所定の順序に従って実行される複数のテスト項目の各々を、ルートノードを起点とした各ノードに前記所定の順序に従って対応付けることにより、各テスト項目のテスト実行前に実行が必要な他のテスト項目を示した木構造を記憶し、
    前記複数のテスト項目の各々の実行前の前記仮想マシンのVMイメージと実行後のVMイメージとの差分である差分イメージを、前記複数のテスト項目の各々に対応付けて記憶し、
    前記仮想マシンを用いてテストを実行するテスト項目が指定された場合、前記初期VMイメージ、及び、前記木構造上の前記ルートノードから前記指定されたテスト項目の親のテスト項目までの各テスト項目に対応する差分イメージをもとに、前記指定されたテスト項目の親のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する
    処理を実行させるテストプログラム。
  9. さらに、前記仮想マシンにおいて、前記木構造に従って前記複数のテスト項目の各々のテスト実行後に、前記複数のテスト項目の各々について前記差分イメージを取得する
    請求項8に記載のテストプログラム。
  10. さらに、前記仮想マシンにおいて、第1のテスト項目のテスト実行後に、前記木構造上の前記ルートノードから前記第1のテスト項目の親のテスト項目までのテスト項目の内の第2のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する場合、前記第1のテスト項目実行後のVMイメージと、前記第2のテスト項目の子のテスト項目から前記第1のテスト項目までの各テスト項目に対応する差分イメージと、をもとに、前記第2のテスト項目のテスト実行後の前記仮想マシンのVMイメージを復元する
    請求項8に記載のテストプログラム。
JP2011267106A 2011-12-06 2011-12-06 テストシステム、テスト方法、及び、プログラム Active JP5906705B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011267106A JP5906705B2 (ja) 2011-12-06 2011-12-06 テストシステム、テスト方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011267106A JP5906705B2 (ja) 2011-12-06 2011-12-06 テストシステム、テスト方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2013120440A JP2013120440A (ja) 2013-06-17
JP5906705B2 true JP5906705B2 (ja) 2016-04-20

Family

ID=48773064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011267106A Active JP5906705B2 (ja) 2011-12-06 2011-12-06 テストシステム、テスト方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP5906705B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2598988C2 (ru) * 2013-08-07 2016-10-10 Фиизер Инк. Способы и системы для поиска прикладных программ
JP2015090692A (ja) * 2013-11-07 2015-05-11 富士通株式会社 仮想マシン配備方法、仮想マシン配備プログラム及び情報処理装置
CN111164579A (zh) * 2017-10-06 2020-05-15 三菱电机株式会社 状态再现系统、状态再现程序、安全检查系统和安全检查程序
JP7084505B2 (ja) * 2019-02-15 2022-06-14 日立Astemo株式会社 検証装置および検証方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020349A (ja) * 1998-07-06 2000-01-21 Toshiba Corp プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援用プログラムを記録した媒体
JP5412995B2 (ja) * 2009-06-30 2014-02-12 富士通株式会社 プログラムモデル検査におけるデータベース制御装置、データベース制御方法、データベース制御プログラム
JP2011242965A (ja) * 2010-05-18 2011-12-01 Mitsubishi Electric Corp データ管理装置及びデータ管理方法及びプログラム

Also Published As

Publication number Publication date
JP2013120440A (ja) 2013-06-17

Similar Documents

Publication Publication Date Title
JP5401922B2 (ja) 仮想システム制御プログラム、方法及び装置
US8762534B1 (en) Server load balancing using a fair weighted hashing technique
CN112035293A (zh) 虚拟机集群备份
US9087001B1 (en) Virtualizing multiple networked machines using a predetermined network recovery policy
CN104199957A (zh) 一种Redis通用代理的实现方法
WO2015045031A1 (ja) 仮想マシンテストシステム、仮想マシンテスト方法
US9229758B2 (en) Passive monitoring of virtual systems using extensible indexing
JP5906705B2 (ja) テストシステム、テスト方法、及び、プログラム
GB2499143A (en) Computer system
TWI514263B (zh) 用於多核心處理單元的啟動載入處理器指派的技術
US10860375B1 (en) Singleton coordination in an actor-based system
JP6202091B2 (ja) 情報処理装置、及び、配備方法
CN107395710B (zh) 一种云平台网元的配置和高可用ha实现方法和装置
WO2017017937A1 (ja) 配備装置、配備方法、及び、記録媒体
CN110825399A (zh) 一种应用程序的部署方法及装置
JP2017135653A (ja) 試験装置、ネットワークシステム、及び試験方法
US9183092B1 (en) Avoidance of dependency issues in network-based service startup workflows
KR101626067B1 (ko) 슬레이브 노드들 사이에서 컨테이너의 이전을 용이하게 하기 위한 장치 및 방법
US9348672B1 (en) Singleton coordination in an actor-based system
US9405605B1 (en) Correction of dependency issues in network-based service remedial workflows
US10180830B2 (en) Information processing device, deployment method, and recording medium
JP2015204025A (ja) 情報処理システム、配備装置、配備方法、及び、プログラム
WO2010035480A1 (ja) 分散処理システム、分散処理方法およびプログラム
CN110471767A (zh) 一种设备的调度方法
JP6840573B2 (ja) システム構築装置、システム構築方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151015

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160307

R150 Certificate of patent or registration of utility model

Ref document number: 5906705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150