(57)【要約】【課題】分散システムを構成する複数の実機のソフトウェア試験を仮想化技術を用いて行う際に、非同期性を考慮した試験を可能とするソフトウェア試験装置を得る。【解決手段】１台のＰＣ１０１のホストＯＳ１０２上に、分散システムを構成する複数の実機を模擬する複数の模擬タスク１０６、１０７を仮想化技術を用いて形成し、複数の模擬タスクをスケジュールにしたがって動作させて、模擬タスク上のアプリケーションを試験するに当たって、ホストＯＳ１０２上で動作するタスク管理機能１０８が、ユーザによって起動された模擬タスクを監視する起動タスク監視部１１０と、この起動タスク監視部１１０により監視された模擬タスクの優先度をランダムに変更する優先度変更部１０９とを有し、模擬タスク間の非同期性を考慮したスケジュールにする。【選択図】図１
2014174724.tif 000002
【特許請求の範囲】
【請求項１】
１台のパーソナルコンピュータのホストＯＳ上で、分散システムを構成する複数の計算機ハードウェアを仮想化技術を用いて模擬する複数の模擬タスクをスケジュールにしたがって動作させ、上記模擬タスク上のアプリケーションを試験するソフトウェア試験装置であって、
上記ホストＯＳ上で動作し、上記模擬タスク間の非同期性が得られるように上記スケジュールをランダムに変更するスケジュール変更手段を備えたことを特徴とするソフトウェア試験装置。
【請求項２】
上記スケジュール変更手段は、起動させた模擬タスクを監視する起動タスク監視部と、
この起動タスク監視部により監視された模擬タスクの優先度をランダムに変更する優先度変更部とを有し、
上記スケジュールの変更を、上記模擬タスクの優先度の変更により行うことを特徴とする請求項１記載のソフトウェア試験装置。
【請求項３】
上記スケジュール変更手段は、上記模擬タスクのクォンタム時間を変更するクォンタム時間変更部を有し、
上記スケジュールの変更を、上記模擬タスクのクォンタム時間の変更により行うことを特徴とする請求項１記載のソフトウェア試験装置。
【請求項４】
上記スケジュール変更手段は、予め作成された模擬タスクの一覧である模擬タスクリストと、
上記模擬タスクリストに記載された各模擬タスクをランダムに起動する模擬タスク起動部を有し、
上記スケジュールの変更を、上記模擬タスク起動部による模擬タスクのランダムな起動により行うことを特徴とする請求項１記載のソフトウェア試験装置。
【請求項５】
上記ホストＯＳ上で動作し、ユーザの指示に応じて、上記模擬タスクの優先度を極端に低下させるかまたは上記模擬タスクを停止させる模擬タスク制御アプリケーションを備えたことを特徴とする請求項２記載のソフトウェア試験装置。
【請求項６】
上記スケジュール変更手段は、予め実機の演算性能を相対的に評価した模擬タスク管理テーブルを有し、
上記模擬タスク管理テーブルにしたがって、上記模擬タスクのクォンタム時間を線形配分することを特徴とする請求項２記載のソフトウェア試験装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、分散システムを構成する複数の実機のソフトウェア試験を、仮想化技術により実機を用いずに行うソフトウェア試験装置に関するものである。
【背景技術】
【０００２】
従来より、分散システムの試験を効率化するために、システムを構成する複数の実機を、１台のＰＣ（パーソナルコンピュータ）により模擬して実機台数を減らす手法が知られている（特許文献１）。
さらに、近年主流となっている仮想化技術を適用することで、試験対象となる実機も１台のＰＣ上で模擬し、実機を用いることなく、ＰＣ上でソフトウェア試験を実施することが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１４０７１１号公報（第３〜４頁、第１図）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の仮想化技術を用いたソフトウェア試験では、実機Ｈ／Ｗ（ハードウェア）をＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）により模擬するため、ＶＭはホストＯＳ上の１つのタスクとして動作し、ホストＯＳのスケジューリングの影響を受ける。
そのため、模擬する実機間は厳密には非同期性では動作しておらず、分散システムとしての非同期性に影響されるような試験は不十分であった。
【０００５】
この発明は、上述のような課題を解決するためになされたものであり、分散システムを構成する複数の実機のソフトウェア試験を仮想化技術を用いて行う際に、非同期性を考慮した試験を可能とするソフトウェア試験装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係わるソフトウェア試験装置においては、１台のパーソナルコンピュータのホストＯＳ上で、分散システムを構成する複数の計算機ハードウェアを仮想化技術を用いて模擬する複数の模擬タスクをスケジュールにしたがって動作させ、模擬タスク上のアプリケーションを試験するソフトウェア試験装置であって、ホストＯＳ上で動作し、模擬タスク間の非同期性が得られるようにスケジュールをランダムに変更するスケジュール変更手段を備えたものである。
【発明の効果】
【０００７】
この発明によれば、１台のパーソナルコンピュータのホストＯＳ上で、分散システムを構成する複数の計算機ハードウェアを仮想化技術を用いて模擬する複数の模擬タスクをスケジュールにしたがって動作させ、模擬タスク上のアプリケーションを試験するソフトウェア試験装置であって、ホストＯＳ上で動作し、模擬タスク間の非同期性が得られるようにスケジュールをランダムに変更するスケジュール変更手段を備えたので、１台のパーソナルコンピュータのホストＯＳ上で、模擬タスク間の非同期性を考慮したソフトウェア試験を実施することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるソフトウェア試験装置を示す構成図である。
【図２】この発明の実施の形態１によるソフトウェア試験装置の動作を示す図である。
【図３】この発明の実施の形態２によるソフトウェア試験装置を示す構成図である。
【図４】この発明の実施の形態２によるソフトウェア試験装置の動作を示す図である。
【図５】この発明の実施の形態３によるソフトウェア試験装置を示す構成図である。
【図６】この発明の実施の形態４によるソフトウェア試験装置を示す構成図である。
【図７】この発明の実施の形態５によるソフトウェア試験装置を示す構成図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
この発明の実施の形態１を、図に基づいて説明する。
図１は、この発明の実施の形態１によるソフトウェア試験装置を示す構成図である。
図１において、ＰＣ（１０１）上に、ホストＯＳ（１０２）となる汎用ＯＳを搭載する。ホストＯＳ（１０２）上に実機Ｈ／Ｗ（計算機ハードウェア）を模擬するＶＭ（１０３）を搭載し、ＶＭ（１０３）上でゲストＯＳ（１０４）と、試験対象となるアプリケーション１（１０５）を動作させる。
このＶＭ上の環境は、実機の模擬タスク１（１０６）として、ホストＯＳ（１０２）上の１つのタスクとして動作する。この模擬タスクを、分散システムを構成する実機台数がｎ台であれば、その台数分の模擬タスクｎ（１０７）まで起動する。
【００１０】
ホストＯＳ（１０２）上には、さらに模擬タスクを管理するためのタスク管理機能（１０８）（スケジュール変更手段）を搭載する。タスク管理機能（１０８）も、ホストＯＳ（１０２）上の１つのタスクとして動作する。タスク管理機能（１０８）には、ホストＯＳ（１０２）が実行する模擬タスクの優先度を変更するための優先度変更部（１０９）と、起動されている模擬タスクを管理するための起動タスク監視部（１１０）とを設ける。
この発明の特徴となる部分は、タスク管理機能（１０８）に集約されている。その他は一般的な仮想化技術によるソフトウェア試験環境である。
【００１１】
図２は、この発明の実施の形態１によるソフトウェア試験装置の動作を示す図である。
図２（ａ）は、通常のスケジューリングを示し、図２（ｂ）は実施の形態１のスケジューリングを示している。
図２において、ホストＯＳ（１０２）上の模擬タスクＡ、Ｂ、Ｃと、各ゲストＯＳ上のアアプリケーションの各アプリ処理Ａ１〜Ａｎ、Ｂ１〜Ｂｎ、Ｃ１〜Ｃｎがスケジューリングされている。
【００１２】
次に、実施の形態１の動作について説明する。
タスク管理機能（１０８）の起動タスク監視部（１１０）は、ホストＯＳ（１０２）に標準搭載されている機能を使用して、ユーザによって起動された起動済みタスクを定期的にチェックし、ＶＭ（１０３）のタスクを模擬タスクと判断し、そのタスク番号を記憶する。
優先度変更部（１０９）は、起動タスク監視部（１１０）の記憶しているタスク番号の模擬タスクの優先度を、標準の優先度より高い・低い・同じのいずれかに、定期的にランダムに設定する。ホストＯＳ（１０２）は、優先度変更部（１０９）により設定された模擬タスクの優先度にしたがって模擬タスクを実行する。
これにより、ホストＯＳ（１０２）による模擬タスクのスケジューリングに不確定要素を持たせられるため、模擬タスク間の非同期性を高めることが可能となる。
【００１３】
次に、実際の動作例を、図２により説明する。
図２では、Ａ、Ｂ、Ｃの３つの模擬タスクを起動し，各模擬タスクはそれぞれ１回のクォンタム時間で３つのアプリ処理（１つのアプリケーションの中の処理）が行えるものとする。図２（ａ）に示す通常のスケジューリングでは、各模擬タスクのアプリ処理の進み方は模擬タスクＡ、Ｂ、Ｃの順に一定で、各アプリは必ず同じタイミングで動作することになる。
一方、図２（ｂ）に示す実施の形態１のスケジューリングでは、各模擬タスクのアプリ処理は優先度の変更により、Ａ、Ｂ、Ｃの順にはならず、その結果、各模擬タスクＡ、Ｂ、Ｃのアプリ処理はＡ１〜Ａ６、Ｂ１〜Ｂ３、Ｃ１〜Ｃ９の処理と一定ではなく、模擬タスク間の動作が一様ではないことを示している。
【００１４】
実施の形態１によれば、タスク管理機能に模擬タスクの優先度を変更する優先度変更部を設けたので、模擬タスクのスケジューリングに不確定要素を持たせられ、模擬タスク間の非同期性を高めることが可能となる。
【００１５】
実施の形態２．
この発明の実施の形態２を、図に基づいて説明する。
図３は、この発明の実施の形態２によるソフトウェア試験装置を示す構成図である。
図３において、１０１〜１０８、１１０は図１におけるものと同一のものである。図３では、図１の優先度変更部（１０９）の代わりに、模擬タスクのクォンタム時間を変更するクォンタム時間変更部（３０１）をタスク管理機能（１０８）に設けている。
【００１６】
図４は、この発明の実施の形態２によるソフトウェア試験装置の動作を示す図である。
図４（ａ）は、通常のスケジューリングを示し、図４（ｂ）は実施の形態２のスケジューリングを示している。
図４において、ホストＯＳ（１０２）上の模擬タスクＡ、Ｂ、Ｃと、各ゲストＯＳ上のアプリケーションの各アプリ処理Ａ１〜Ａｎ、Ｂ１〜Ｂｎ、Ｃ１〜Ｃｎがスケジューリングされている。
【００１７】
実施の形態２では、実施の形態１の優先度変更部（１０９）の代わりに、クォンタム時間変更部（３０１）をタスク管理機能（１０８）に設け、模擬タスクのクォンタム時間を変更するようにする。ホストＯＳ（１０２）は、クォンタム時間変更部（３０１）により変更された模擬タスクのクォンタム時間で、当該模擬タスクを実行する。
これにより、ホストＯＳ（１０２）による模擬タスクのスケジューリングに不確定要素を持たせられるため、模擬タスク間の非同期性を高めることが可能となる。
この方式のメリットは、システム全体のクォンタム時間を設定するようにすれば、起動タスク監視部（１１０）を省略可能であり、定期的なタスクのチェックを行わなくすることで、タスク管理機能（１０８）の負荷をより下げることができることである。
【００１８】
次に、実際に優先度を変更させた動作例を、図４により説明する。
実施の形態２では、図４（ｂ）のように、各模擬タスクＡ、Ｂ、Ｃのスケジューリングの順番は、図４（ａ）の通常の場合と同じだが、模擬タスクのクォンタム時間を変更することにより、各模擬タスクＡ、Ｂ、Ｃのアプリ処理はＡ１〜Ａ８、Ｂ１〜Ｂ５、Ｃ１〜Ｃ５と進み方がばらけており、模擬タスク間の動作が一様ではないことを示している。
【００１９】
実施の形態２によれば、クォンタム時間変更部を設けたことにより、模擬タスク間の非同期性を高めることが可能となる。
【００２０】
実施の形態３．
この発明の実施の形態３を、図に基づいて説明する。
図５は、この発明の実施の形態３によるソフトウェア試験装置を示す構成図である。
図５において、１０１〜１０８は図１におけるものと同一のものである。図５では、タスク管理機能（１０８）に、模擬タスクを起動する模擬タスク起動部（５０１）と、模擬タスク起動部（５０１）によって起動される模擬タスクを列挙した模擬タスクリスト（５０２）を設けている。
【００２１】
次に、実施の形態３の動作について説明する。
模擬タスクの起動は、実施の形態１と異なり、ユーザが個別に行わない。ユーザは、起動したい模擬タスクを、予め模擬タスクリスト（５０２）に記載しておき、模擬タスク起動部（５０１）が、模擬タスクリスト（５０２）に従って模擬タスクを起動する。
この際、模擬タスクリスト（５０２）の記載順ではなく、ランダムに模擬タスクを起動することで、試験毎に模擬タスクの順番が入れ替わり、ホストＯＳ（１０２）によるスケジューリングの均一化を防ぐことができる。
【００２２】
実施の形態３によれば、ユーザが模擬タスクリストを作成しておき、模擬タスク起動部がランダムに模擬タスクリストの模擬タスクを起動するようにしたので、試験毎に模擬タスクの起動される順番が入れ替わり、ホストＯＳによるスケジューリングの均一化を防ぐことができる。
【００２３】
実施の形態４．
この発明の実施の形態４を、図に基づいて説明する。
図６は、この発明の実施の形態４によるソフトウェア試験装置を示す構成図である。
図６において、１０１〜１１０は図１におけるものと同一のものである。図６では、ホストＯＳ（１０２）上で動作する模擬タスク制御アプリ（６０１）を設けている。模擬タスク制御アプリ（６０１）は、起動タスク監視部（１１０）の管理する模擬タスクに対し、ユーザ指示に基づき、特定の模擬タスクの優先度を極端に落としたり、またはサスペンド（停止）させる機能を有する。
【００２４】
実施の形態４は、実施の形態１の構成に、模擬タスク制御アプリ（６０１）を追加する。模擬タスク制御アプリ（６０１）は、ホストＯＳ（１０２）上で動作する、ユーザ操作可能なアプリケーションである。
模擬タスク制御アプリ（６０１）は、起動タスク監視部（１１０）の管理する模擬タスクに対し、ユーザ指示に基づき、特定の模擬タスクの優先度を極端に落としたり、またはサスペンド（停止）させる機能を有する。
【００２５】
実施の形態４の構成により、通常は実現が難しい機器（実機）故障や応答遅延などの異常系試験を、以下のように簡単に実施することができるようになる。
（１）ある機器が故障して応答しなくなる試験
当該機器の模擬タスクをサスペンドすることで、任意のタイミングで機器故障状態を作り出せる。
（２）ある機器の応答速度が遅くなる試験
当該機器の模擬タスクの優先度を落とすことで、レスポンス低下を再現することが可能となる。
【００２６】
実施の形態４によれば、ホストＯＳ上で動作する模擬タスク制御アプリを設けたことにより、機器故障や応答遅延などの異常系試験を簡単に実施することができる。
【００２７】
実施の形態５．
この発明の実施の形態５を、図に基づいて説明する。
図７は、この発明の実施の形態５によるソフトウェア試験装置を示す構成図である。
図７において、１０１〜１０９は図１におけるものと、３０１は図３におけるものとそれぞれ同一のものである。図７では、タスク管理機能１０８が優先度変更部１０９とクォンタム時間変更部３０１に加えて、予め実機でアプリケーションベンチマークを実施して、実機の演算性能を相対的に評価した模擬タスク管理テーブル７０１を有している。
【００２８】
実施の形態５では、実施の形態１のタスク管理機能（１０８）に、実施の形態２のクォンタム時間変更部（３０１）を持たせ、さらに新たに模擬タスク管理テーブル（７０１）を追加する。
模擬タスク管理テーブル（７０１）には、予め実機でアプリケーションベンチマークを実施して、実機の演算性能を相対的に評価した、実機の相対評価で記載しておく。
【００２９】
次に、実施の形態５の動作について説明する。
タスク管理機能（１０８）は、模擬タスク管理テーブル（７０１）に記載された実機の相対評価を元に、各実機を模擬する各模擬タスクのクォンタム時間を線形配分する。クォンタム時間変更部（３０１）は、そのクォンタム時間を各模擬タスクに設定することで、性能が高い実機を模擬した模擬タスクほど実行される時間が長くなり、各模擬タスクの演算性能を、実機の演算性能比に近づけることが可能となる。
また、試験実施中は、実施の形態１のとおり、優先度変更部（１０９）が各模擬タスクの優先度をランダムに設定する。
【００３０】
実施の形態５によれば、複数の実機の相対評価を元に、各実機を模擬する各模擬タスクのクォンタム時間を線形配分することで、各模擬タスクの演算性能を実機性能に近づけつつ、非同期性を高めた試験が可能となる。
【００３１】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００３２】
１０１  ＰＣ、１０２  ホストＯＳ、１０３  ＶＭ、１０４  ゲストＯＳ、
１０５  アプリ１、１０６  模擬タスク１、１０７  模擬タスクｎ、
１０８  タスク管理機能、１０９  優先度変更部、１１０  起動タスク監視部、
３０１  クォンタム時間変更部、５０１  模擬タスク起動部、５０２  模擬タスクリスト、６０１  模擬タスク制御アプリ、７０１  模擬タスク管理テーブル。
【図１】
2014174724.tif 000003
【図２】
2014174724.tif 000004
【図３】
2014174724.tif 000005
【図４】
2014174724.tif 000006
【図５】
2014174724.tif 000007
【図６】
2014174724.tif 000008
【図７】
2014174724.tif 000009