JP5104958B2 - 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム - Google Patents

仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム Download PDF

Info

Publication number
JP5104958B2
JP5104958B2 JP2010531694A JP2010531694A JP5104958B2 JP 5104958 B2 JP5104958 B2 JP 5104958B2 JP 2010531694 A JP2010531694 A JP 2010531694A JP 2010531694 A JP2010531694 A JP 2010531694A JP 5104958 B2 JP5104958 B2 JP 5104958B2
Authority
JP
Japan
Prior art keywords
virtual machine
test
guest
clone
virtual
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.)
Expired - Fee Related
Application number
JP2010531694A
Other languages
English (en)
Other versions
JPWO2010038307A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2010038307A1 publication Critical patent/JPWO2010038307A1/ja
Application granted granted Critical
Publication of JP5104958B2 publication Critical patent/JP5104958B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システムに関し、特に、アプリケーションを実行する仮想計算機上で動作するアプリケーションのテストを、短時間で効率良く高い信頼性で実行することができる仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システムに関する。
仮想計算機システムは、OS(オペレーティングシステム)により構成される複数の仮想計算機を備える。複数の仮想計算機には、各々、特定の役割が割り当てられる。アプリケーションプログラム(以下、アプリケーションという)を実行する仮想計算機即ちOSは、ゲストOSと呼ばれる。ゲストOS上で動作するアプリケーションについては、それが正しく動作するか否かについて、出荷前にテストする必要がある。
なお、計算機システムの自動テスト方式において、被テスト計算機が実計算機の場合だけでなく、仮想計算機の場合もテスト環境として存在させ、どちらの場合でも自動テストを実行する手段を備えることが提案されている。
また、シミュレーション処理を使用するクラスタ間の相互作用のシステム・オン・チップの設計検証の方法及びシステムにおいて、既知のシーケンスに依存するテストケースを作成するステップと、テストケースを既知の点に到達するまで親プロセッサ上で実行するステップを含む方法及びシステムが提案されている。
更に、計算機プログラム部品のテスト支援装置において、テストケース記憶手段により記憶されたテストケースに基づいて、テスト状況を集計するテスト状況集計手段と、テスト状況を報知するテスト状況報知手段を備えることが提案されている。
特開平4−195436号公報 特開2007−164781号公報 特開平9−69056号公報
図12は、本発明者が検討した仮想計算機システムにおけるアプリケーションのテストについての説明図である。
ゲストOS上で動作するアプリケーションのテストは、想定される種々の条件を選択的に組み合わせて、網羅的にテストすることが望ましい。そこで、例えば、ゲストOS上で動作するアプリケーションのテストは、アプリケーションが要求する選択子(選択肢)に応じて、テストを実行するオペレータが、選択を繰り返す。これにより、想定される種々の条件を選択的に組み合わせて、当該条件の下でのテスト(組み合わせテスト)を実行する。
例えば、仮想計算機システムのOS上で動作するアプリケーションのテスト時に、図12に示すように、コンソール上での表示画面911が、アプリケーションをテストするオペレータに対して表示される。例えば、アプリケーションの開始の表示画面911(Start)が表示された後に、第1の選択画面(Select1)が表示される。この場合、オペレータは、アプリケーションが要求する選択子9111(yes)又は選択子9112(no)の選択を行う。以下、同様にして、オペレータは、第2の選択画面(Select2−1又はSelect2−2)の選択子(yes/no)を選択し、第3の選択画面(Select3−1〜3−4のいずれか一つ)の選択子(yes/no)を選択する。
第1のテストケースCASE1は、オペレータが選択画面Select1でyesを選択し、選択画面Select2−1でyesを選択し、選択画面Select3−1でyesを選択した組合せであり、当該組合せによるテストである。選択画面Select2−1は、選択画面Select1でyesを選択した場合の選択画面である(他も同様である)。第2のテストケースCASE2等も、同様である。
この場合、全てのケースについてのテストを実施するには、選択が3回行われるので、合計で8種類のテストケース(CASE1〜CASE8に対応)を実施する必要がある。このように、全てのケースについてのテスト(網羅テスト)を実行しようとする場合、本発明者の検討によれば、以下に示す問題がある。
即ち、第1に、条件が1つ増える毎にテストケースが倍になる。このため、条件の数が多ければ莫大なテストケースが生じ、また、オペレータによる選択を繰り返すために多大な時間を要する。第2に、オペレータにより条件を選択する場合、テスト漏れが発生する可能性があり、テストの信頼性を低下させる要因となる。第3に、網羅テストを自動化した場合、テスト漏れを防止することはできるが、個々のテストケース毎に最初の条件からテストをやり直す必要があり、テストの効率が悪くなる。
本発明は、アプリケーションを実行する仮想計算機上で動作するアプリケーションのテストを、短時間で効率良く高い信頼性で実行することができる仮想計算機システムのテスト方法、テストプログラム及びその記録媒体を提供することを目的とする。
また、本発明は、アプリケーションを実行する仮想計算機上で動作するアプリケーションのテストを、短時間で効率良く高い信頼性で実行することができる仮想計算機システムを提供することを目的とする。
本発明の一実施態様である仮想計算機システムのテスト方法は、CPUとメモリとを含むハードウェアと、各々が前記CPU上で動作するプログラムを備える複数の仮想計算機と、前記複数の仮想計算機の制御を行う仮想計算機モニタとを備える仮想計算機システムのテスト方法である。このテスト方法は、アプリケーションのテストを実行する第1の仮想計算機が、アプリケーションのテストにおける条件の選択を、仮想計算機モニタを介して、仮想計算機システムを制御する第2の仮想計算機に要求するステップと、仮想計算機モニタが、条件の選択が要求された場合、第1の仮想計算機の複製であるクローンを作成するステップと、第1の仮想計算機及び前記作成されたクローンが、アプリケーションのテストを実行するステップとを含む。
本発明の一実施態様である仮想計算機システムのテストプログラムは、仮想計算機システムにおいて実行されて、前述の仮想計算機システムのテスト方法を実現する。
本発明の一実施態様である仮想計算機システムのテストプログラムの記録媒体は、前述の仮想計算機システムのテストプログラムを提供する。
本発明の一実施態様である仮想計算機システムは、前述の仮想計算機システムのテスト方法を実現する構成を備える。
本発明の一実施態様である仮想計算機システムのテスト方法によれば、テストにおける条件の選択が要求された場合、第1の仮想計算機の複製であるクローンが作成され、この後、第1の仮想計算機及び作成されたクローンの双方がテストを実行する。これにより、テストの条件が増えてテストケースが増えたとしても、オペレータによる条件の選択を不要とすることができるので、このための時間を省略してテスト時間を短縮し、テスト漏れを防止してテストの信頼性を向上することができる。また、テストケースが増えたとしても、個々のテストケース毎に最初の条件からテストをやり直す必要がないので、テストを効率良く行うことができる。
本発明の一実施態様である仮想計算機システムのテストプログラム及びその記録媒体によれば、前述の仮想計算機システムのテスト方法を実現し、前述の効果を得ることができる。
本発明の一実施態様である仮想計算機システムによれば、前述の仮想計算機システムのテスト方法を実現し、前述の効果を得ることができる。
仮想計算機システムの構成の一例を示す図である。 仮想計算機システムの構成の一例を示す図である。 仮想計算機システムの構成の一例を示す図である。 監視テーブル、ログデータ及び制御テーブルの構造の一例を示す図である。 仮想計算機システムの動作を説明する図である。 仮想計算機システムの動作を説明する図である。 仮想計算機システムの動作を説明する図である。 図1の仮想計算機システムにおけるテスト処理フローである。 図1の仮想計算機システムにおけるテスト処理フローである。 図1の仮想計算機システムにおけるテスト結果出力処理フローである。 テスト実行時の動作を示す図である。 本発明者が検討した仮想計算機システムの説明図である。
符号の説明
1 仮想計算機モニタ
2 ハードウェア
3 仮想計算機
5 アプリケーション
11 ゲストOS監視部
12 クローン作成部
21、311、331 メモリ部
31 ホストOS
32 ドライバOS
33 ゲストOS
41 コンソール
42 磁気ディスク装置
43 ネットワーク
111 監視テーブル
312 ログ部
313 テスト進行状態制御テーブル
323 バックエンドドライバ
324 実I/Oドライバ
333 フロントエンドドライバ
図1は、この仮想計算機システムの構成の一例を示す図である。仮想計算機システムは、仮想計算機モニタ(VMM:Virtual Machine Monitor 又はHypervisor)1、ハードウェア2、複数の仮想計算機(VM:Virtual Machine )3を備える。ハードウェア2上で仮想計算機モニタ1及び仮想計算機3が動作する。
仮想計算機システムは、複数の仮想計算機3を備える。即ち、ホストOS(オペレーティングシステム即ち制御プログラム)31、ドライバOS32、ゲストOS33が、各々、仮想計算機3である。各々の仮想計算機3は、各々のOS31〜33がハードウェア2の物理(又は実)CPUの制御権を獲得して当該物理CPU上で実行されることにより実現される。仮想計算機モニタ1も同様にして実現される。
仮想計算機モニタ1は、この仮想計算機システムの全体を制御する。即ち、仮想計算機モニタ1は、複数の仮想計算機3、即ち、OS31〜33のディスパッチ(物理CPUの制御権の割当て)、OS31〜33が実行する特権命令のエミュレーション、物理CPU等のハードウェア2の制御等を行う。
ホストOS31は、1個設けられ、仮想計算機(ドメイン)として動作し、仮想計算機システム全体の管理を行う。ホストOS31は、仮想計算機システムのブート時に起動され、ドライバOS32やゲストOS33の制御(起動及び停止等を含む全ての制御)を行う。ホストOS31は、同時に、ドライバOS32としても動作可能である。ホストOS31は、入出力装置等のコンソール(端末)41を備える。
ドライバOS32は、物理(又は実)入出力装置(I/O装置)42、43を制御するOSである。物理I/O装置42、43は、複数の種類、例えば磁気ディスク装置42、ネットワーク43等を備える。ドライバOS32は、複数の種類の物理I/O装置42、43毎に、設けられる。物理I/O装置42、43の制御はドライバOS32が実行する。ドライバOS32は、ホストOS31上やゲストOS33上でも動作可能である。ドライバOS32がゲストOS33上で動作する場合、そのゲストOS33は、見かけ上ドライバOS32となる。
ゲストOS33は、物理I/O装置42、43を持たないOSである。ゲストOS33は、通常の(いわゆる)OSと考えてよい。例えば、アプリケーションプログラム(以下、アプリケーション)5は、いずれかのゲストOS33上で動作する。アプリケーション5は、テストの対象となるプログラム(アプリケーション5)である。ゲストOS33は、ドライバOS32に対してI/O命令の実行を依頼することにより、そのI/O命令の実行が可能となる。
図2は、図1の仮想計算機システムにおけるドライバの構成の一例を示す図である。ドライバOS32は、バックエンドドライバ(Backend Driver)323、実I/O(Input/Output)ドライバ324を備える。ゲストOS33は、各々、フロントエンドドライバ(Frontend Driver)333を備える。
バックエンドドライバ323は、ドライバOS32に設けられ、ドライバOS32とゲストOS33間でI/O命令を受け渡すドライバである。フロントエンドドライバ333は、ゲストOS33に設けられ、ゲストOS33とドライバOS32間でI/O命令を受け渡すドライバである。
例えば、ゲストOS33は、フロントエンドドライバ333からバックエンドドライバ323へI/O命令の実行を依頼する。このI/O命令の実行の依頼は、仮想計算機モニタ1を介して実行される。即ち、フロントエンドドライバ333は、仮想計算機モニタ1にバックエンドドライバ323へI/O命令の実行を依頼するように要求する。これに応じて、仮想計算機モニタ1は、バックエンドドライバ323へ当該I/O命令の実行を依頼する。
実I/Oドライバ324は、ドライバOS32に設けられ、物理I/O装置42、43に対して、バックエンドドライバ323へ依頼された当該I/O命令を実行するドライバである。これにより、例えば磁気ディスク装置42からデータが読み出され、又は、データが書き込まれる。なお、図2においては、ネットワーク43の図示を省略している。
図3は、仮想計算機モニタ1及びハードウェア2の構成の一例を示す図である。
仮想計算機モニタ1は、ゲストOS監視部11、クローン作成部12を備える。ゲストOS監視部11は、監視テーブル111を備える。ハードウェア2は、物理CPU(図示省略)、メモリ部21を備える。メモリ部21は、複数のメモリ211を備える。ホストOS31は、メモリ部311、ログ部312、テスト進行状態制御テーブル313を備える。ゲストOS33は、メモリ部331を備える。なお、図3において、図2に示すバックエンドドライバ323等の図示は省略している。
ゲストOS監視部11は、ゲストOS33からのI/O命令の実行の依頼について監視を行う。I/O命令は所定のフォーマットを備える。従って、I/O命令か否かは、ゲストOS33からの命令のフォーマットを調べることにより知ることができる。I/O命令がコンソール41のI/O命令(後述する)であるか否かも、同様に、知ることができる。I/O命令がゲストOS33からの選択要求(後述する)であるか否かも、同様である。また、ゲストOS監視部11は、監視テーブル111に基づいて、アプリケーション5のテストが開始されてその時点でテスト中であるか否かを判定する。ゲストOS監視部11は、監視テーブル111に、テスト中であるかどうかを識別するデータを格納する。
図4(A)は、監視テーブル111のテーブルの構造の一例を示す。監視テーブル111は、アプリケーション5のテスト(テスト名)毎に、テスト中であるかどうかを識別するデータを格納する。テスト中かどうかを識別するデータは、テスト中である場合にはyesとされ、テスト中でない場合にはnoとされる。
即ち、ゲストOS監視部11は、アプリケーション5のテストが開始されて終了していなければ、テスト中と判断する。この場合、ゲストOS監視部11は、監視テーブル111において、そのテストについて「yes」を格納する。また、これ以外の場合、ゲストOS監視部11は、監視テーブル111において、そのテストについて「no」を格納する。これにより、ゲストOS監視部11は、ホストOS31に対して、ゲストOS33のアプリケーション5のテストの状態を通知することができる。
クローン作成部12は、アプリケーション5のテストにおいて、ホストOS31からゲストOS33のクローンの作成又は削除の要求を受信する。これにより、クローン作成部12は、対象となるゲストOS33のクローンの作成又は削除を行う。
ここで、クローンとは、ある時点において、あるゲストOS33(ゲストOS#1)のメモリを他のゲストOS33(ゲストOS#2)にコピーし、同一の状態から他のゲストOS33が動作し得るようにする(又は、動作させる)ことをいう。 例えば、ゲストOS#1の使用するメモリ部21のメモリ#1が、ゲストOS#2の使用するメモリ#2としてコピーされる。この場合、ゲストOS#2は、ゲストOS#1のクローンである。メモリ#1はゲストOS#1のメモリ部331に対応する実メモリであり、メモリ#2はゲストOS#2のメモリ部331に対応する実メモリである。ゲストOS#1のメモリ部331は、ゲストOS#1が使用する仮想メモリである。ゲストOS#2のメモリ部331も同様である。
ハードウェア2において、仮想計算機モニタ1により、実CPU及び実メモリが、各々の仮想計算機3に割当てられる。メモリ部21は、ゲストOS33がアプリケーション5を実行するための実メモリである。メモリ部21は、複数のメモリ(メモリ領域)211を含む。
メモリ#1はゲストOS#1の使用するメモリ領域であるものとし、メモリ#2はゲストOS#2の使用するメモリ領域であるものとする。例えば、ゲストOS#1のアプリケーション5には、クローン作成部12により、メモリ#1が割当てられる。同様にして、ゲストOS#2のアプリケーション5には、メモリ#2が割当てられる。クローンであるゲストOS#2の削除において、クローン作成部12により、メモリ#2が開放される。
ホストOS31は、仮想計算機モニタ1から通知される、ゲストOS33からのI/O命令がコンソール41へのI/O命令であるか否かを判定する。ホストOS31は、コンソール41へのI/O命令である場合、更に、ゲストOS33からの選択要求(選択子の選択を実行する要求)か否かを判定する。ゲストOS33からの選択要求の場合、ホストOS31は、テスト進行状態制御テーブル313を参照して、この選択要求のデータが格納済みか否かを判定する。
図4(C)は、テスト進行状態制御テーブル313のテーブルの構造の一例を示す。テスト進行状態制御テーブル313は、アプリケーション5のテストのテストケース毎に、複数の選択子の取った値と、ドメイン名と、当該テストの状況とを格納する。従って、複数のテストケース(例えば、図11のCASE1〜CASE8)が並列に実行される場合、複数のテスト進行状態制御テーブル313が設けられる。選択子の取った値は、yes又はnoとされる。ドメイン名は、当該アプリケーション5を実行している(又は、実行した)ドメイン(即ち、仮想計算機又はOS)の名前である。テストの状況は、テストが終了した場合にはテスト済とされ、テストが終了していない場合にはテスト中とされる。
ホストOS31は、テスト進行状態制御テーブル313に、当該テストケースに対応する選択要求のデータ(選択子の値)が格納済みでない場合(未選択項目である場合)、該当データを格納する。一方、ホストOS31は、当該選択要求のデータが格納済みである場合、当該データを格納しない。
更に、ホストOS31は、当該選択要求のデータが未選択項目である場合、ゲストOS33のクローンを作成するために必要な資源があるか否かを判定する。ここで、必要な資源とは、メモリ部21に、ゲストOS#1のメモリ#1をコピーできる大きさの空き領域をいう。ホストOS31は、当該選択要求のデータが未選択項目で、かつ、前記資源がある場合、ゲストOS33(#1)のクローンの作成を、クローン作成部12に依頼する。
一方、ホストOS31は、選択要求を行ったゲストOS33に対する応答(いずれの選択子を選択するかの返答)を送信し、その応答に関するログ(選択要求に対する選択項目の内容)を記憶する。即ち、ホストOS31は、アプリケーション5の選択子に対応したテスト結果(ログ)をログ部312へ記憶する。
図4(B)は、ログ部312に記憶されるログの構造の一例を示す。ログ部312は、アプリケーション5の選択子に対応したテスト結果(ログ)を記憶するためのメモリである。ログ部312は、選択情報(select)と、結果情報(result)とを格納する。選択情報は、アプリケーション5のテストの選択子毎に、当該選択子として選択された値を格納する。選択子として選択された値は、選択子(又はその値、以下同じ)yesが選択された場合にはyesとされ、選択子noが選択された場合にはnoとされる。結果情報は、当該テストの結果であるログファイル(例えば、file−1)、パケット(network packet−1)、画面(console screen 1)等を含む。
なお、yes又はnoのような選択子以外の応答が必要な場合がある。例えば、ユーザIDなどの文字列をテストプログラムが要求する場合である。このようなテストケースの場合、aaaのように、ランダムに選択した文字列を応答するものとする。これは、ランダムな文字列のテストケースにおいては、ある1個のパターンの文字列のテストが実施されれば、アプリケーション5が要求する応答が得られるためである。
一方、ホストOS31は、ゲストOS33のテストが完了すると、クローンの削除をクローン作成部12へ要求する。この要求を受信したクローン作成部12は、クローンであるゲストOS33(#2)の削除を実行する。更に、ホストOS31は、クローンの削除依頼の要求の通知後、その時点でログ部312に格納されているログを読込み、読み込んだログを、テスト結果412として、物理I/O装置(41、42又は43)等へ出力、又は、保存する。
図4(D)は、コンソール41へ出力されるテスト結果412の例を示す。テスト結果412は、ログ部312が出力されたものである。テスト結果412は、例えば、当該テストにおいて、複数の選択子の取った値と、当該選択子を実行した時点におけるテスト結果を格納するファイル名(例えば、file1:aa.aa.bb.cc)とを含む。なお、ホストOS31は、ログ部312を予め定められた処理により編集して、テスト結果412として出力する。
ゲストOS33は、以上のようなアプリケーション5のテストを開始した場合、仮想計算機モニタ1にテスト開始を通知する。テスト開始の通知後、ゲストOS33は、コンソール41へ選択要求のI/O命令を実行する。ホストOS31から選択要求に対する応答を受信したゲストOS33が、その応答内容(選択子の選択内容)をアプリケーション5に対して実行する。
即ち、クローンであるゲストOS33(#2)がこの応答を受信した場合、この応答を受信したクローンであるゲストOS33がその応答内容を実行する。これ以後、ゲストOS33は、同様な動作を繰り返し、テストが完了した場合、ホストOS31に対してアプリケーション5のテストの完了の通知を行う。
このテスト完了通知を受信したホストOS31は、クローン作成部12に対してクローンであるゲストOS33(#2)の削除を依頼する。これに応じて、クローン作成部12が、メモリ部21のメモリ#2を解放する。この結果、クローンであるゲストOS33は削除される。
以上のように、この例においては、仮想計算機モニタ1のクローン作成部12は、ゲストOS33の複製であるクローンを作成する。例えば、前述したように、ゲストOS#1のメモリ#1を他のゲストOS#2のメモリ#2にコピーすることにより、ゲストOS#1のクローンを作成することができる。
クローンの作成は、所定の場合に実行される。このために、仮想計算機モニタ1のゲストOS監視部11は、ゲストOS33を監視する。そして、ゲストOS監視部11は、ゲストOS33が、アプリケーション5のテストにおける条件の選択を、仮想計算機モニタ1を介して、ホストOS31に要求した場合、これを検出する。この検出に基づいて、クローン作成部12が、前記条件の選択が要求された場合、クローンを作成する。なお、前記条件の選択は、仮想計算機モニタ1を介して要求される。
この結果、ゲストOS#1及び作成されたクローンであるゲストOS#2が、アプリケーション5のテストを実行する。アプリケーション5のテストは、ゲストOS#1及びクローンであるゲストOS#2が、仮想計算機モニタ1を介して、入出力命令を実行するドライバOS32にI/O命令の実行を要求し、そのログを記録することにより、実行される。
このために、仮想計算機モニタ1のゲストOS監視部11は、ゲストOS#1及びクローンであるゲストOS#2からドライバOS32へのI/O命令をトラップ(又はコピー)して、ホストOS31に通知する。この通知を受信したホストOS31が、メモリ部21にクローンを作成するための領域が存在する場合に、仮想計算機モニタ1のクローン作成部12にクローンの作成を依頼する。このホストOS31からの依頼に応じて、仮想計算機モニタ1のクローン作成部12が、クローンを作成する。
以下、図5、図6及び図7に従って、ホストOS31、ゲストOS33及び仮想計算機モニタ1について、詳細に説明する。
図5は、ゲストOS33上のアプリケーション5が要求する選択の監視とホストOS31の応答を示す図である。
ゲストOS33が、アプリケーション5のテスト開始を仮想計算機モニタ1へ通知する(処理#1−0−1)。ゲストOS33のテスト開始の通知を受信した後、仮想計算機モニタ1は、テスト開始の通知の情報を監視テーブル111へ記憶する(処理#1−0−2)。
ゲストOS33は、コンソール41へ、テストプログラム(アプリケーション5)の選択要求であるI/O命令を出力する(処理#1−1)。仮想計算機モニタ1は、ゲストOS33からのコンソール41へのI/O命令を監視し、テストが開始されたと判断した場合、“テスト開始済み”であるとホストOS31へ通知する(処理#1−2)。なお、図5においては、I/O命令を単にIOと表記している(図6〜8においても同じ)。
ホストOS31は、仮想計算機モニタ1から通知されたI/O命令がコンソール41へのI/O命令か否かを判定する(処理#1−3)。ホストOS31は、I/O命令がコンソール41へのI/O命令出力である場合、更に、ゲストOS33からの選択要求か否かの判定を行う(処理#1−4)。
ホストOS31は、ゲストOS33からの選択要求である場合、テスト進行状態制御テーブル313へ選択項目のデータ更新を行う(処理#1−5−1)。具体的には、ホストOS31は、テスト進行状態制御テーブル313から対応するテストケースについて、「状況」項目について、“テスト中”であることの更新を行う。
更に、ホストOS31は、選択項目(未選択の項目)を選択する(処理#1−5−2)。ホストOS31は、その選択項目の選択子の値を決定した後、その決定した値にテスト進行状態制御テーブル313のデータを更新する(処理#1−6)。
次に、ホストOS31は、選択項目の選択子の値をゲストOS33へ応答する(処理#1−7)。ホストOS31は、その応答した選択子の値のログ及び選択子以外のログの情報をログ部312へ保存する(処理#1−8及び処理#1−9)。
ゲストOS33は、ホストOS31からの応答を受けて、応答された選択子によりテストを続行する(処理#1−10)。
図6は、ゲストOS33が要求した選択の要求時にクローンの作成及び並列でテストを実行する動作を説明する図である。
ゲストOS33が、例えば、ホストOS31へのI/O命令、即ち、コンソール41への選択要求を送信する(処理#2−1)。ゲストOS33を監視している仮想計算機モニタ1のゲストOS監視部11が、これを検出して、ホストOS31へ通知する(処理#2−2)。この通知を受信したホストOS31が、ゲストOS33のクローンを作成するメモリ部21の資源があるか否かを判定して(処理#2−3)、資源がある場合、仮想計算機モニタ1のクローン作成部12にクローンの作成を依頼する(処理#2−4)。
この依頼に応じて、クローン作成部12が、ゲストOS33(#1)のクローンであるゲストOS33(#2)を作成する(処理#2−5)。
ホストOS31が、選択要求に応じて、例えば、選択子Aを応答としてゲストOS33(#1)に返信する(処理#2−6)。また、ホストOS31が、選択要求に応じて、例えば、選択子Bを応答としてゲストOS33(#2)に返信する(処理#2−7)。更に、ホストOS31が、ゲストOS33に返信した選択子A及びBをログとしてログ部312に格納する(処理#2−8)。
なお、後述する図11において、選択子Aは選択子4111(yes)に相当し、選択子Bは選択子4112(no)に相当する。ゲストOS33(#1)は、元々存在するゲストOS33である。ゲストOS33(#1)が、選択子Aの選択により生成されるようにしても良い。ゲストOS33(#2)は、選択子Bの選択により生成されたゲストOS33(#1)のクローンである。
図6は、便宜的に、処理#2−6及び処理#2−7が、連続して従って並列に実行される場合を示す。しかし、処理#2−6及び処理#2−7は、必要に応じて、個々に実行されるようにされるようにしても良い。
一方、ゲストOS33(#1)が選択子Aを実行し(処理#2−9)、クローンであるゲストOS33(#2)が選択子Bを実行する(処理#2−10)。
図7は、ホストOS31がアプリケーション5の出力の結果をログする動作を説明する図である。
ゲストOS33が、コンソール41への選択要求以外のI/O命令を送信する(処理#3−1)。ゲストOS監視部11が、これを検出して、ホストOS31へ通知する(処理#3−2)。この通知を受信したホストOS31が、選択子に応じた出力結果をログ部312にログする(処理#3−3)。
ゲストOS33は、テストが完了すると(処理#3−4)、これをホストOS31に通知する。この通知を受信したホストOS31は、クローン作成部12にクローンの削除を依頼する(処理#3−5−1)。
この依頼に応じて、クローン作成部12が、ゲストOS33(#1)のクローンであるゲストOS33(#2)を削除する(処理#3−5−2)。
削除依頼の後に、ホストOS31が、その時点で格納されているログを読み込んで(処理#3−6)、選択子と結果とをレポートとして出力する(処理#3−7)。
図8及び図9は、図1の仮想計算機システムにおけるテスト処理フローである。
ゲストOS33が、当該ゲストOS33上で実行されるアプリケーション5について、仮想計算機モニタ1にテスト開始を通知する(ステップS11)。ステップS11は、例えば処理#1−0−1に対応する。
この通知を受信した仮想計算機モニタ1が、通知を受信したゲストOS33のテスト開始の情報を、ゲストOS監視部11に記憶する(ステップS12)。ステップS12は、例えば処理#1−0−2に対応する。ステップS12において、ゲストOS監視部11は、監視テーブル111に、テスト毎に、テスト中かどうかを識別するデータ(yes)を格納する。また、例えば、仮想計算機モニタ1は、当該テスト開始をホストOS31に通知する。この通知を受信したホストOS31は、図4(B)のログ部312及び図4(C)のテスト進行状態制御テーブル313を生成する。例えば、ログ部312において、選択子の数及び結果情報の数は1個とされ、各項目は空とされる。例えば、テスト進行状態制御テーブル313において、テストケースの数は1個とされ、各項目は空とされる。
ゲストOS33が、ホストOS31又はドライバOS32に対するI/O命令を実行する(ステップS13)。ステップS13は、例えば処理#1−1、#2−1及び#3−1に対応する。ステップS13において、ゲストOS33は、ホストOS31又はドライバOS32へ当該I/O命令の実行を要求するように、仮想計算機モニタ1に依頼する。
これに応じて、仮想計算機モニタ1が、監視テーブル111に基づいて、テスト開始済みか否かを判定する(ステップS14)。ステップS14は、例えば処理#1−2に対応する。テスト開始済みである場合、仮想計算機モニタ1は、ゲストOS33からの当該I/O命令をトラップ(コピー)して、当該トラップしたI/O命令をホストOS31へ通知する(ステップS15)。ステップS15は、例えば処理#1−2、#2−2及び#3−2に対応する。テスト開始済みでない場合、仮想計算機モニタ1は、処理を終了する。
トラップしたI/O命令の通知を受信したホストOS31は、当該通知されたI/O命令がコンソール41のI/O命令であるか否かを判定する(ステップS16)。ステップS16は、例えば処理#1−3に対応する。コンソール41のI/O命令である場合、ホストOS31は、更に、当該I/O命令がゲストOS33からの選択要求であるか否かを判定する(ステップS17)。ステップS17は、例えば処理#1−4に対応する。
ステップS16において当該通知されたI/O命令がコンソール41のI/O命令でない場合、ホストOS31は、テスト結果として、ログをログ部312の結果情報(result)へ保存する(ステップS18)。また、ステップS17において当該I/O命令がゲストOS33からの選択要求でない場合にも、ホストOS31は、ステップS18を実行する。ステップS18の実行後、仮想計算機モニタ1は、ステップS15以下の処理を繰り返す。ステップS18は、例えば処理#1−9及び#3−3に対応する。
ステップS17において当該I/O命令がゲストOS33からの選択要求である場合、ホストOS31は、ゲストOS33からの選択要求の選択子がテスト進行状態制御テーブル313に格納済みか否かを判定する(ステップS19)。格納済みでない場合、ホストOS31は、テスト進行状態制御テーブル313に、テストケース毎に、これに対応する当該選択子を追加する(ステップS20)。ステップS19及びS20は、例えば処理#1−5−1に対応する。格納済みである場合、ステップS20は省略される。
例えば、図4(B)のテスト進行状態制御テーブル313において、選択子1(の値)及び選択子2(の値)が格納され、選択子3(の値)が格納されていないとする。即ち、テスト進行状態制御テーブル313において、「選択子の続き」の欄は空であるとする。また、第1のテストケースCASE1は、テスト済みでなく、テスト中であるとする。
この状態で、第1のテストケースCASE1において、ゲストOS33(#1)の処理が進んで、ゲストOS33(#1)即ちguest1からコンソール41に対して、選択子3の選択要求が発行される。選択子3は格納されていないので、ホストOS31により、テスト進行状態制御テーブル313において、以下のように、データが追加される。
当該選択要求は、yes又はnoのいずれかの選択を要求する。これに基づいて、選択子3がyes又はnoの2個の値を取ることが判る。1個の処理(例えば、選択子3=yesの処理)を現在処理中のゲストOS33(#1)が引き続き処理する場合、残りの1個の処理(例えば、選択子3=noの処理)を他のゲストOS33が処理することになる。そこで、第1のテストケースCASE1と第2のテストケースCASE2との間に空行が挿入され、当該空行にその時点の第1のテストケースCASE1のデータのコピーが格納される。
この時、「実行ドメイン名」は、「空」とされる。「状況」は、「テスト未」とされる。次に、「選択子の続き」に「選択子3の値」が追加される。即ち、他のゲストOS33が処理する選択子3=noが記述される。
一方、第1のテストケースCASE1において、「選択子の続き」に「選択子3の値」が追加され、ゲストOS33(#1)が処理する選択子3=yesが記述される。
なお、実際には、第2〜第4のテストケースCASE2〜CASE4についても、同様の処理により、空行が挿入され、各々のデータが格納される。これに伴って、第2〜第4のテストケースCASE2〜CASE4において、当該ゲストOS33が処理する選択子3=yesが記述される。
また、例えば、第1のテストケースCASE1と第2のテストケースCASE2の間に挿入された行が、新たな第2のテストケースCASE2とされる。それまでの第2のテストケースCASE2は、第3のテストケースCASE3とされる(他も同様である)。以上により、新たな第2、第4、第6及び第8のテストケースCASE2、CASE4、CASE6及びCASE8(以下、「新たなテストケース」という)が作成され、第1〜第8のテストケースCASE1〜CASE8が存在することになる。
また、ホストOS31は、「新たなテストケース」について、これに対応するログ部312を新たに生成して、テスト進行状態制御テーブル313と同様にして、その時点までに選択された選択子の値を記述する。例えば、前述の新たな第2のテストケースCASE2について、ログ部312が新たに生成されて、これに第1のテストケースCASE1のログ部312のコピーが格納される。この時、例えば、選択子3即ちselect3を追加し、その値noを格納する。また、第1のテストケースCASE1のログ部312において、当該選択子即ちselect3を追加し、その値yesを格納する。他についても、同様である。
この後、ホストOS31が、ゲストOS33のクローンを作成する必要がある場合、当該クローンを作成する資源(ハードウェア2のメモリ部21の空き領域)があるか否かを判定する(ステップS21)。ステップS21は、例えば処理#2−3に対応する。例えば、前述の「新たなテストケース」の全部を実行するためのクローンを作成する資源があるかが判定される。資源がない場合、ホストOS31は、予め定められた時間の経過を待ち(ステップS22)、この後、ステップS21を繰り返す。なお、ホストOS31は、ステップS21の開始に際して、ゲストOS33のクローンを作成する必要があるか(「新たなテストケース」が存在するか)否かを調べる。作成する必要がある場合にはステップS21が続行され、作成する必要がない場合には、ステップS21〜S25が省略される。
資源がある場合、ホストOS31が、ゲストOS33のクローンの作成を、仮想計算機モニタ1に依頼する(ステップS23)。ステップS23は、例えば処理#2−4に対応する。この依頼を受信した仮想計算機モニタ1は、クローン作成部12に対し、対象となるゲストOS33のクローンの作成を指示する。これに応じて、クローン作成部12は、メモリ部21の空き領域に、対象となるゲストOS33のクローンを作成する(ステップS24)。ステップS24は、例えば処理#2−5に対応する。これにより、例えば、「新たなテストケース」の各々について、これを実行するクローンが作成される。
ホストOS31が、例えば仮想計算機モニタ1からクローン作成の通知を受信した場合、テスト進行状態制御テーブル313において、「状況」が「テスト未」であるテストケース(以下、未選択項目という)を選択し(ステップS25)、当該選択された未選択項目を更新する(ステップS26)。ステップS25は、例えば処理#1−5−2に対応する。ステップS26は、例えば、処理#1−6に対応する。
ステップS26において、当該選択された未選択項目の「状況」が「テスト未」から「テスト中」に変更され、「実行ドメイン名」が当該テストケースを実行するゲストOS33の名前とされる。このゲストOS33は、基本的には、ステップS24において作成されたゲストOS33のクローンである。但し、図4(C)に示すように、例えば、第1のテストケースCASE1がテスト済である場合には、これを実行したゲストOS33(guest1)に、他のテストケースCASE3を実行させるようにしても良い。
この後、ホストOS31が、ステップS15で通知された選択要求についてゲストOS33に対して応答する(ステップS27)。例えば、選択要求に対応する値である「選択子3=yes」が、ゲストOS33に返信される。ステップS27は、例えば処理#1−7及び#2−6に対応する。更に、ホストOS31が、ゲストOS33のクローン(ゲストクローン)が存在する場合には、当該ゲストクローンに対して、当該選択された未選択項目について応答する(ステップS28)。例えば、選択要求に対応する値である「選択子3=no」が、ゲストOS33のクローンに返信される。ステップS28は、例えば処理#2−7に対応する。更に、ホストOS31が、当該選択要求に関するログを、対応するログ部312に記録する(ステップS29)。例えば、選択子3=yesに関するログを、テストケースSASE1のログとして、各々の対応するログ部312に記録する。ステップS29は、例えば処理#1−8及び#2−8に対応する。
この後、応答を受信したゲストOS33が、ステップS27及びS28の応答により得た選択子を実行することにより、テストを続行する(ステップS30)。即ち、ステップS13以下が実行される。ステップS30は、例えば処理#1−10、#2−9及び#2−10に対応する。例えば、ゲストOS33が選択子3=yesを実行し、ゲストOS33のクローンが選択子3=noを実行する。ゲストOS33のクローンは、ゲストOS33をコピーしているので、最初からテストを繰り返すことなく、途中の選択子2以降を実行すれば良い。
図10は、図1の仮想計算機システムにおけるテスト結果の出力処理フローである。
ゲストOS33が、当該ゲストOS33上で実行されるアプリケーション5について、仮想計算機モニタ1を介して、ホストOS31にテスト終了を通知する(ステップS31)。ステップS31は、例えば処理#3−4に対応する。この通知は、アプリケーション5についてのテストが終了した場合に行われる。
この通知を受信したホストOS31が、仮想計算機モニタ1に当該ゲストOS33のクローンの削除を依頼し、この依頼を受けた仮想計算機モニタ1が当該クローンを削除する(ステップS32)。ステップS32は、例えば処理#3−5−1及び#3−5−2に対応する。具体的には、仮想計算機モニタ1からの指示を受けたクローン作成部12が、ハードウェア2のメモリ部21において、当該クローンに関するメモリ211を開放する。また、仮想計算機モニタ1は、通知を受信したゲストOS33のテスト終了の情報を、ゲストOS監視部11に記憶する。即ち、ゲストOS監視部11が、監視テーブル111に、テスト毎に、テスト中かどうかを識別するデータ(no)を格納する。
この後、ホストOS31が、アプリケーション5について実行されたテストケースについて、その時点までにログ部312に格納されたログを読み出して(ステップS33)、読み出したログをテスト結果として例えばコンソール41に出力する(ステップS34)。これにより、例えば、図4(D)に示すテスト結果412が得られる。ステップS33は、例えば処理#3−6に対応する。ステップS33は、例えば処理#3−7に対応する。
図11は、アプリケーションのテスト実行時の動作を示す図である。図11において、仮想計算機システムのOS上で動作するアプリケーション5のテスト時のコンソール上での表示画面411を示す。
アプリケーション5のテスト時に、図11に示すように、コンソール41において、表示画面411が、アプリケーション5をテストするオペレータに対して表示される。アプリケーション5の開始の表示画面411(Start)が表示された後に、第1の選択画面(Select1)が、オペレータに対して表示される。この場合、オペレータは、アプリケーション5が要求する選択子4111(yes)又は選択子4112(no)の選択を行う。
この時、選択子の選択要求は、アプリケーション5を実行するゲストOS33(#1)から、仮想計算機モニタ1を介して、ホストOS31に通知される。そこで、仮想計算機モニタ1において、クローン作成部12が、ゲストOS#1のクローンであるゲストOS#2を作成する。
なお、図11において、第1の選択画面(Select1)についてのみ、クローンの作成について示す。他の選択画面(Select)については、記号Cを付して、クローン作成処理が実行されることを示す。
以下、同様にして、オペレータは、第2の選択画面(Select2−1又はSelect2−2)の選択子(yes/no)を選択し、第3の選択画面(Select3−1〜3−4のいずれか一つ)の選択子(yes/no)を選択する。この選択子の選択要求の都度、その時点でのゲストOS33のクローンが作成される。
即ち、クローン作成部12は、選択要求された時点におけるゲストOS#1をコピーして、ゲストOS#2を作成する。この結果、2個の同じ状態のゲストOS33が存在することになる。これにより、選択画面Select1における選択子yesを条件として含むアプリケーション5(選択画面Select2−1に対応する)と、選択子noを条件として含むアプリケーション5(選択画面Select2−2に対応する)とを、双方共に、実行することができる。また、この実行は、並列に実行するようにしても良い。
第1のテストケースCASE1は、オペレータが選択画面Select1でyesを選択し、選択画面Select2−1でyesを選択し、選択画面Select3−1でyesを選択した組合せであり、当該組合せによるテストである。選択画面Select2−1は、選択画面Select1でyesを選択した場合の選択画面である(他も同様である)。第2のテストケースCASE2等も、同様である。
この場合、全てのケースについてのテストを実施するには、選択が3回行われるので、合計で8種類のテストケース(CASE1〜CASE8に対応)を実施する必要がある。しかし、ホストOS31からのゲストOS33への選択要求を監視するので、ゲストOS33のアプリケーション5の網羅テストを実現することができる。その結果、アプリケーション5のテストの信頼性及びテストの効率性を実現することができる。
また、本実施態様によれば、ゲストOS33の選択の要求時に、ゲストOS33のクローンを作成し、作成したクローンに並列にテストを実行することができる。このため、1テストケース毎に最初の条件からテストをやり直す必要はない。その結果、アプリケーション5のテスト時間を大幅に短縮できる。更に、例えば、アプリケーション5において、初回起動時のみに発生するバグが存在していた場合、アプリケーション5の1回目の選択のテストを完了する前のクローンを作成する。このため、1回目のテストも繰り返し実施が可能となる。そのため、初回起動時のみに発生するバグ等の検出が容易となる。従って、この点からも、アプリケーション5のテストの信頼性及びテストの効率性を実現することができる。

Claims (7)

  1. CPUとメモリとを含むハードウェアと、各々が前記CPU上で動作するプログラムを備える複数の仮想計算機と、前記複数の仮想計算機の制御を行う仮想計算機モニタとを備える仮想計算機システムのテスト方法であって、
    アプリケーションのテストを実行する第1の仮想計算機が、前記アプリケーションのテストにおける条件の選択を、前記仮想計算機モニタを介して、前記仮想計算機システムを制御する第2の仮想計算機に要求するステップと、
    前記仮想計算機モニタが、前記条件の選択が要求された場合、前記第1の仮想計算機の複製であるクローンを作成するステップと、
    前記第1の仮想計算機及び前記作成されたクローンが、前記アプリケーションのテストを実行するステップとを含む
    ことを特徴とする仮想計算機システムのテスト方法。
  2. 前記第1の仮想計算機及び前記作成されたクローンが、前記仮想計算機モニタを介して、入出力命令を実行する第3の仮想計算機に前記入出力命令の実行を要求することにより、前記アプリケーションのテストを実行する
    ことを特徴とする請求項1に記載の仮想計算機システムのテスト方法。
  3. 前記仮想計算機モニタが、前記第1の仮想計算機及び前記作成されたクローンから前記第3の仮想計算機への前記入出力命令をトラップして、前記第2の仮想計算機に通知し、
    前記通知を受信した前記第2の仮想計算機が、前記メモリに前記クローンを作成するための領域が存在する場合に、前記仮想計算機モニタに前記クローンの作成を依頼する
    ことを特徴とする請求項に記載の仮想計算機システムのテスト方法。
  4. 前記仮想計算機モニタが、前記第2の仮想計算機からの前記依頼を受けた場合、前記クローンを作成する
    ことを特徴とする請求項3に記載の仮想計算機システムのテスト方法。
  5. CPUとメモリとを含むハードウェアと、各々が前記CPU上で動作するプログラムを備える複数の仮想計算機と、前記複数の仮想計算機の制御を行う仮想計算機モニタとを備える仮想計算機システムのテストプログラムであって、
    前記仮想計算機システムであるコンピュータに、
    アプリケーションのテストを実行する第1の仮想計算機が、前記アプリケーションのテストにおける条件の選択を、前記仮想計算機モニタを介して、前記仮想計算機システムを制御する第2の仮想計算機に要求するステップと、
    前記仮想計算機モニタが、前記条件の選択が要求された場合、前記第1の仮想計算機の複製であるクローンを作成するステップと、
    前記第1の仮想計算機及び前記作成されたクローンが、前記アプリケーションのテストを実行するステップとを実行させる
    ことを特徴とする仮想計算機システムのテストプログラム。
  6. CPUとメモリとを含むハードウェアと、各々が前記CPU上で動作するプログラムを備える複数の仮想計算機と、前記複数の仮想計算機の制御を行う仮想計算機モニタとを備える仮想計算機システムのテストプログラムを記録するコンピュータ読み取り可能な記録媒体であって、
    前記テストプログラムは、前記仮想計算機システムであるコンピュータに、
    アプリケーションのテストを実行する第1の仮想計算機が、前記アプリケーションのテストにおける条件の選択を、前記仮想計算機モニタを介して、前記仮想計算機システムを制御する第2の仮想計算機に要求するステップと、
    前記仮想計算機モニタが、前記条件の選択が要求された場合、前記第1の仮想計算機の複製であるクローンを作成するステップと、
    前記第1の仮想計算機及び前記作成されたクローンが、前記アプリケーションのテストを実行するステップとを実行させるテストプログラムを記録する
    ことを特徴とする仮想計算機システムのテストプログラムの記録媒体。
  7. CPUとメモリとを含むハードウェアと、各々が前記CPU上で動作するプログラムを備える複数の仮想計算機と、前記複数の仮想計算機の制御を行う仮想計算機モニタとを備える仮想計算機システムであって、
    アプリケーションのテストを実行する第1の仮想計算機と、
    前記仮想計算機システムを制御する第2の仮想計算機と、
    前記仮想計算機モニタに設けられた、前記第1の仮想計算機の複製であるクローンを作成するクローン作成手段とを備え、
    前記第1の仮想計算機がアプリケーションのテストにおける条件の選択を前記仮想計算機モニタを介して前記第2の仮想計算機に要求した場合、前記クローン作成手段が、前記クローンを作成し、
    前記第1の仮想計算機及び前記作成されたクローンが、前記アプリケーションのテストを実行する
    ことを特徴とする仮想計算機システム。
JP2010531694A 2008-10-03 2008-10-03 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム Expired - Fee Related JP5104958B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/068045 WO2010038307A1 (ja) 2008-10-03 2008-10-03 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム

Publications (2)

Publication Number Publication Date
JPWO2010038307A1 JPWO2010038307A1 (ja) 2012-02-23
JP5104958B2 true JP5104958B2 (ja) 2012-12-19

Family

ID=42073099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010531694A Expired - Fee Related JP5104958B2 (ja) 2008-10-03 2008-10-03 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム

Country Status (3)

Country Link
US (1) US8584089B2 (ja)
JP (1) JP5104958B2 (ja)
WO (1) WO2010038307A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
JP5104958B2 (ja) * 2008-10-03 2012-12-19 富士通株式会社 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム
US8677355B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Virtual machine branching and parallel execution
WO2013140460A1 (en) * 2012-03-23 2013-09-26 Hitachi, Ltd. Patch applying method for virtual machine by cloning an operating system image on shared storage and applying a patch to this cloned image
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US9092767B1 (en) 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US10339236B2 (en) * 2013-09-10 2019-07-02 Vmware, Inc. Techniques for improving computational throughput by using virtual machines
TWI608419B (zh) * 2013-09-23 2017-12-11 財團法人資訊工業策進會 軟體相容性預先檢測方法與其系統
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US10726119B2 (en) * 2014-12-08 2020-07-28 Vmware, Inc. Monitoring application execution in a clone of a virtual computing instance for application whitelisting
JP6265435B2 (ja) * 2015-03-30 2018-01-24 ビッグローブ株式会社 基盤ソフト運用管理システム、基盤ソフト運用管理装置、制御方法およびプログラム
US11429716B2 (en) * 2019-11-26 2022-08-30 Sap Se Collaborative application security
CN111639029B (zh) * 2020-05-28 2024-04-26 东莞市锐易电子科技有限公司 一种软ac产品的可靠性测试方法及测试系统
CN113760767B (zh) * 2021-09-10 2024-04-19 元心信息科技集团有限公司 操作系统的调试方法、装置、电子设备及计算机可读存储介质
US20230125567A1 (en) * 2021-10-22 2023-04-27 Sap Se Application security through global lockout and capture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195436A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 計算機システム自動テスト方式
JPH08137719A (ja) * 1994-11-08 1996-05-31 Hitachi Ltd プログラムテスト再実行方法
JP2004133894A (ja) * 2002-07-11 2004-04-30 Microsoft Corp 仮想マシンをフォークまたはマイグレートするための方法
US20070168734A1 (en) * 2005-11-17 2007-07-19 Phil Vasile Apparatus, system, and method for persistent testing with progressive environment sterilzation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0969056A (ja) 1995-08-31 1997-03-11 Toshiba Corp 計算機プログラム部品のテスト支援装置
US7266808B2 (en) * 2001-08-10 2007-09-04 Parasoft Corporation Method and system for dynamically invoking and/or checking conditions of a computer test program
GB0213688D0 (en) * 2002-06-14 2002-07-24 Ibm Automated test generation
US6978401B2 (en) * 2002-08-01 2005-12-20 Sun Microsystems, Inc. Software application test coverage analyzer
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7707578B1 (en) * 2004-12-16 2010-04-27 Vmware, Inc. Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system
US7849362B2 (en) 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
US8151263B1 (en) * 2006-03-31 2012-04-03 Vmware, Inc. Real time cloning of a virtual machine
US7752501B2 (en) * 2006-07-27 2010-07-06 International Business Machines Corporation Dynamic generation and implementation of globalization verification testing for user interface controls
US8458695B2 (en) * 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US8949826B2 (en) * 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US8234641B2 (en) * 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8032351B2 (en) * 2006-11-30 2011-10-04 Symantec Corporation Running a virtual machine directly from a physical machine using snapshots
US8336046B2 (en) * 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
JP5088366B2 (ja) * 2007-03-27 2012-12-05 富士通株式会社 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
US8181159B2 (en) * 2007-03-29 2012-05-15 Microsoft Corporation Test automation using virtual machines
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8336029B1 (en) * 2007-11-08 2012-12-18 Google Inc. Debugger connection
US8037032B2 (en) * 2008-08-25 2011-10-11 Vmware, Inc. Managing backups using virtual machines
JP5104958B2 (ja) * 2008-10-03 2012-12-19 富士通株式会社 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム
US20100293144A1 (en) * 2009-05-15 2010-11-18 Bonnet Michael S Using snapshotting and virtualization to perform tasks in a known and reproducible environment
JP5585140B2 (ja) * 2010-03-18 2014-09-10 富士通株式会社 仮想計算機システムの管理プログラム,管理装置及び管理方法
US8489929B2 (en) * 2010-09-30 2013-07-16 Salesforce.Com, Inc. Facilitating large-scale testing using virtualization technology in a multi-tenant database environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195436A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 計算機システム自動テスト方式
JPH08137719A (ja) * 1994-11-08 1996-05-31 Hitachi Ltd プログラムテスト再実行方法
JP2004133894A (ja) * 2002-07-11 2004-04-30 Microsoft Corp 仮想マシンをフォークまたはマイグレートするための方法
US20070168734A1 (en) * 2005-11-17 2007-07-19 Phil Vasile Apparatus, system, and method for persistent testing with progressive environment sterilzation

Also Published As

Publication number Publication date
US8584089B2 (en) 2013-11-12
WO2010038307A1 (ja) 2010-04-08
JPWO2010038307A1 (ja) 2012-02-23
US20110252278A1 (en) 2011-10-13

Similar Documents

Publication Publication Date Title
JP5104958B2 (ja) 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム
US10394547B2 (en) Applying update to snapshots of virtual machine
US7574627B2 (en) Memory dump method, memory dump program and computer system
US8423997B2 (en) System and method of controlling virtual machine
US7552044B2 (en) Simulated storage area network
US20150081243A1 (en) Setsudo: Pertubation-based Testing Framework for Scalable Distributed Systems
JP6788178B2 (ja) 設定支援プログラム、設定支援方法及び設定支援装置
US7984332B2 (en) Distributed system checker
KR102025078B1 (ko) 단일 스텝 실행을 이용한 코드 진단
US8752027B2 (en) Injecting faults into program for testing software
US10802847B1 (en) System and method for reproducing and resolving application errors
US8086900B2 (en) System, method and computer program product for testing a boot image
US20120216184A1 (en) Runtime code replacement
KR101748833B1 (ko) 소프트웨어 고장의 위치 확정 방법, 장치 및 설비
US20090276205A1 (en) Stablizing operation of an emulated system
US10725889B2 (en) Testing multi-threaded applications
WO2015040688A1 (ja) 計算機システムを管理する管理システム及びその管理方法
JP2007133544A (ja) 障害情報解析方法及びその実施装置
US9195562B2 (en) Recording external processes
US20140108874A1 (en) Detecting memory hazards in parallel computing
US20160259578A1 (en) Apparatus and method for detecting performance deterioration in a virtualization system
US20110202903A1 (en) Apparatus and method for debugging a shared library
JP6356822B2 (ja) 計算機システム及びメモリダンプ方法
JP2018077697A (ja) 検証システムおよび検証方法
US8171345B2 (en) Disablement of an exception generating operation of a client system

Legal Events

Date Code Title Description
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: 20120904

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120917

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees