(57)【要約】【課題】非機能系テストの自動化を適切に制御することを課題とする。【解決手段】試験制御装置１０は、システムの構成種別ごとに、該システムの試験のために障害を発生させる箇所に関する情報である障害構成情報を記憶する。そして、試験制御装置１０は、試験対象となるテスト対象システム２０の構成情報を取得し、取得されたテスト対象システム２０の構成情報に対応する障害構成情報を障害構成情報記憶部１３ａから取得し、該障害構成情報を用いて、テスト対象システム２０において障害を発生させる箇所を決定する。続いて、試験制御装置１０は、障害を発生させる箇所に障害を発生させ、テスト対象システム２０を試験する。【選択図】図１
2015026328.tif 000002
【特許請求の範囲】
【請求項１】
システムの構成種別ごとに、該システムの試験のために障害を発生させる箇所に関する情報である障害構成情報を記憶する記憶部と、
試験対象となる試験対象システムの構成種別を取得する取得部と、
前記取得部によって取得された前記試験対象システムの構成種別に対応する障害構成情報を前記記憶部から取得し、該障害構成情報を用いて、前記試験対象システムにおいて障害を発生させる箇所を決定する決定部と、
前記決定部によって決定された障害を発生させる箇所に障害を発生させ、前記試験対象システムを試験する試験部と、
を備えたことを特徴とする試験制御装置。
【請求項２】
前記記憶部は、冗長に構成されたシステムの構成種別ごとに、前記障害構成情報として、障害を発生させる箇所の組み合わせを記憶し、
前記決定部は、前記取得部によって取得された前記試験対象システムの構成種別に対応する障害構成情報を前記記憶部から取得し、該障害構成情報を用いて、前記試験対象システムにおける障害を発生させる箇所の組み合わせを決定し、
前記試験部は、前記決定部によって決定された障害箇所の組み合わせに基づいて、前記試験対象システムに障害を順次発生させつつ、該試験対象システムを試験することを特徴とする請求項１に記載の試験制御装置。
【請求項３】
前記決定部によって障害が発生される前に、前記試験対象システムが正常に作動しているか否かを確認する確認部をさらに備え、
前記決定部は、前記確認部によって試験対象システムが正常に作動していると確認された場合に、前記試験対象システムにおいて障害を発生させる箇所を決定することを特徴とする請求項１または２に記載の試験制御装置。
【請求項４】
試験制御装置によって実行される試験制御方法であって、
前記試験制御装置は、システムの構成種別ごとに、該システムの試験のために障害を発生させる箇所に関する情報である障害構成情報を記憶する記憶部を備え、
試験対象となる試験対象システムの構成種別を取得する取得工程と、
前記取得工程によって取得された前記試験対象システムの構成種別に対応する障害構成情報を前記記憶部から取得し、該障害構成情報を用いて、前記試験対象システムにおいて障害を発生させる箇所を決定する決定工程と、
前記決定工程によって決定された障害を発生させる箇所に障害を発生させ、前記試験対象システムを試験する試験工程と、
を含んだことを特徴とする試験制御方法。
【請求項５】
試験対象となる試験対象システムの構成種別を取得する取得ステップと、
前記取得ステップによって取得された前記試験対象システムの構成種別に対応する試験のために障害を発生させる箇所に関する情報である障害構成情報を、システムの構成種別ごとに障害構成情報を記憶する記憶部から取得し、該障害構成情報を用いて、前記試験対象システムにおいて障害を発生させる箇所を決定する決定ステップと、
前記決定ステップによって決定された障害を発生させる箇所に障害を発生させ、前記試験対象システムを試験する試験ステップと、
をコンピュータに実行させるための試験制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験制御装置、試験制御方法及び試験制御プログラムに関する。
【背景技術】
【０００２】
従来、システム開発技術において、開発システムのテストを自動的に実施する技術が利用されている。例えば、このような自動的にテストを行うツールとして、Junitのように主に単体テストを対象としたものが知られている。このような単体テストでは、個々のモジュール（部品）のみを対象とし、対象のモジュールが仕様書で要求された機能や性能を満たしているかどうか等をテストする。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“Junit  A  programmer-oriented  testing  framework  for  Java.”、[online]、[平成２５年７月１８日検索]、インターネット＜http://junit.org/＞
【非特許文献２】“Junit  入門”、[online]、[平成２５年７月１８日検索]、インターネット＜http://www.ncs.co.jp/tech/junit_nyuumon.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のテスト実施の自動化技術では、非機能系テストの自動化を適切に制御することができないという課題があった。つまり、従来のテスト実施の自動化技術では、機能系の単体テストが主であり、障害発生時の動作に関する障害テストなどの非機能系テストの自動実行制御に十分に対応できない場合があった。
【０００５】
なお、非機能系の試験項目を実施する総合テストでは、試験環境を含めた内容の複雑さからテスト実施の自動化が難しい工程とみなされている。このため、このようなテストを自動的に実施できるようにすることで、コスト削減効果と品質確保の波及効果を享受することが望まれている。
【０００６】
そこで、この発明は、非機能系テストの自動化を適切に制御することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、試験制御装置は、システムの構成種別ごとに、該システムの試験のために障害を発生させる箇所に関する情報である障害構成情報を記憶する記憶部と、試験対象となる試験対象システムの構成種別を取得する取得部と、前記取得部によって取得された前記試験対象システムの構成種別に対応する障害構成情報を前記記憶部から取得し、該障害構成情報を用いて、前記試験対象システムにおいて障害を発生させる箇所を決定する決定部と、前記決定部によって決定された障害を発生させる箇所に障害を発生させ、前記試験対象システムを試験する試験部と、を備えたことを特徴とする。
【０００８】
また、試験制御方法は、試験制御装置によって実行される試験制御方法であって、前記試験制御装置は、システムの構成種別ごとに、該システムの試験のために障害を発生させる箇所に関する情報である障害構成情報を記憶する記憶部を備え、試験対象となる試験対象システムの構成種別を取得する取得工程と、前記取得工程によって取得された前記試験対象システムの構成種別に対応する障害構成情報を前記記憶部から取得し、該障害構成情報を用いて、前記試験対象システムにおいて障害を発生させる箇所を決定する決定工程と、前記決定工程によって決定された障害を発生させる箇所に障害を発生させ、前記試験対象システムを試験する試験工程と、を含んだことを特徴とする。
【０００９】
また、試験制御プログラムは、試験対象となる試験対象システムの構成種別を取得する取得ステップと、前記取得ステップによって取得された前記試験対象システムの構成種別に対応する試験のために障害を発生させる箇所に関する情報である障害構成情報を、システムの構成種別ごとに障害構成情報を記憶する記憶部から取得し、該障害構成情報を用いて、前記試験対象システムにおいて障害を発生させる箇所を決定する決定ステップと、前記決定ステップによって決定された障害を発生させる箇所に障害を発生させ、前記試験対象システムを試験する試験ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
本願に開示する試験制御装置、試験制御方法及び試験制御プログラムは、非機能系テストの自動化を適切に制御することが可能である。
【図面の簡単な説明】
【００１１】
【図１】図１は、第一の実施形態に係る試験制御装置の構成を説明するための図である。
【図２】図２は、障害構成情報記憶部によって記憶される障害構成情報の一例を示す図である。
【図３】図３は、障害構成情報記憶部によって記憶される障害構成情報（冗長化グループ）の一例を示す図である。
【図４】図４は、障害ポイント情報記憶部によって記憶される障害ポイント情報の一例を示す図である。
【図５】図５は、テスト対象システムの具体例を示す図である。
【図６】図６は、冗長化グループ１の障害種別の組み合わせを示す図である。
【図７】図７は、冗長化グループ２の障害種別の組み合わせを示す図である。
【図８】図８は、冗長化グループ３の障害種別の組み合わせを示す図である。
【図９】図９は、第一の実施形態に係る試験制御装置における試験制御処理の流れを説明するためのフローチャートである。
【図１０】図１０は、試験制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明に係る試験制御装置、試験制御方法及び試験制御プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１３】
［第一の実施形態］
以下の実施形態では、第一の実施形態に係る試験制御装置の構成、試験制御装置による処理の流れを順に説明し、最後に第一の実施形態による効果を説明する。
【００１４】
［試験制御装置の構成］
最初に、図１を用いて、試験制御装置１０の構成を説明する。図１は、第一の実施形態に係る試験制御装置１０の構成を説明するための図である。図１に示すように、試験制御装置１０は、通信処理部１１、制御部１２および記憶部１３を有する。また、試験制御装置１０は、試験対象の開発システムであるテスト対象システム２０と接続されている。このテスト対象システム２０は、例えば、冗長構成となっており、ＡＣＴ（Active：運用系）／ＳＢＹ（Standby：待機系）の冗長構成システムが構成されている。
【００１５】
通信処理部１１は、試験対象の開発システムであるテスト対象システム２０との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部１１は、テスト対象システム２０に対してサービス正常性確認の指示を送信し、また、該サービス正常性確認の応答を受信する。ここでサービス正常性確認を行う手段としては、例えば、サービスを正常に提供できているかを判定するための合否判定用のスクリプトを実行したり、テスト対象システム２０が提供するＡＰＩ（Application  Programming  Interface）を発行したり、予め作成済みの自動試験プログラムを実行する等の手段が挙げられる。
【００１６】
記憶部１３は、図１に示すように、障害構成情報記憶部１３ａ、システム構成情報記憶部１３ｂ及び障害ポイント情報記憶部１３ｃを有する。記憶部１３は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【００１７】
障害構成情報記憶部１３ａは、システムの構成種別ごとに、該システムの試験のために障害を発生させる箇所に関する情報である障害構成情報を記憶する。また、障害構成情報記憶部１３ａは、障害ポイント情報を作成する際に参照される情報を記憶しており、クラスタ種別やノード数など、冗長化パターンを一般化した情報を記憶している。
【００１８】
例えば、障害構成情報記憶部１３ａは、図２に示すように、クラスタの種別を示す「クラスタ種別」、クラスタを構成する運用系（ＡＣＴ：Active）のノード数を示す「ＡＣＴ数（Ｎ）」、クラスタを構成する待機系（ＳＢＹ：Standby）のノード数を示す「ＳＢＹ数（Ｍ）」、同時に障害を発生させた場合に自動回復が可能なノード数を示す「障害ポイント数（同時発生）」、および「備考」を対応付けて記憶する。例えば、図２の例では、「障害ポイント数（同時発生）」として、（１）負荷分散クラスタでは、１〜Ｎ−１台までの同時故障を、（２）ＨＡクラスタの（２）−２「ＡＣＴ−（ｈｏｔ）ＳＢＹ構成」では、１〜Ｍ−１台までの同時故障を、テスト対象ケースとして扱うことを意味している。
【００１９】
また、障害構成情報記憶部１３ａは、図３に示すように、テスト対象システム２０における各冗長化グループのノードの種別を示す「ノード種別」と、該ノード種別の故障の原因となり得る「故障原因」との対応関係を記憶する。図３の例を用いて説明すると、例えば、障害構成情報記憶部１３ａは、ノードの種別が「サーバ」である場合には、該ノードの障害種別として、（１）筐体に関するハードウェア故障、（２）ＮＩＣ（Network  Interface  Card）に関するハードウェア故障、（３）ＮＷ（Network）に関するハードウェア故障、（４）プロセスに関するハードウェア故障が発生し得る。なお、ここで冗長化グループとは、同一機能を有するノードの集合で、冗長化グループ全体としてクラスタを構成し、耐障害性を有するものと定義する。
【００２０】
システム構成情報記憶部１３ｂは、テスト対象であるテスト対象システム２０の構成に関する情報を記憶する。例えば、システム構成情報記憶部１３ｂは、テスト対象システム２０の構成に関する情報として、テスト対象システム２０における各冗長化グループのクラスタ種別、ノード種別等を記憶する。具体的な例を挙げて説明すると、システム構成情報記憶部１３ｂは、所定の冗長化グループについて、３つのノードからなるｎＡＣＴ構成のＷＥＢ／ＡＰサーバ（ｎ＝３）であって、クラスタ種別として「負荷分散クラスタ」、ノード種別として「サーバ」を記憶する。
【００２１】
障害ポイント情報記憶部１３ｃは、テスト対象システム２０において障害を発生させる箇所を示す障害ポイント情報を記憶する。例えば、障害ポイント情報記憶部１３ｃは、試験を行う際に、障害を発生させる箇所の組み合わせを記憶する。障害ポイント情報記憶部１３ｃに記憶される情報は、試験部１２ｄによってテストが実行される際に参照される情報である。
【００２２】
ここで、図４を用いて、障害ポイント情報記憶部１３ｃによって記憶される障害ポイント情報の例について説明する。図４は、障害ポイント情報記憶部１３ｃによって記憶される障害ポイント情報の一例を示す図である。図４に例示するように、障害ポイント情報記憶部１３ｃは、障害ポイント情報として、組み合わせＮＯ．１〜４１の４１通りの障害を発生させる箇所の組み合わせに関する情報を記憶する。図４の例を用いて具体的な例を挙げて説明すると、組み合わせＮＯ．「１」の場合には、冗長化グループ１の「ノードＡ♯１」のみを故障発生ポイントとして故障を発生させ、その状態で試験を行うことを意味している。なお、図４における「×」は、故障発生ポイントであることを意味し、「○」は、正常に動作させていることを意味し、「−」は、テストの対象外としていることを意味している。
【００２３】
図１の説明に戻って、制御部１２は、取得部１２ａ、確認部１２ｂ、決定部１２ｃ、試験部１２ｄおよび出力部１２ｅを有する。ここで、制御部１２は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路やＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路である。
【００２４】
取得部１２ａは、試験対象となるテスト対象システム２０の構成情報を取得する。例えば、取得部１２ａは、テスト環境が構築された後、テスト準備工程のなかで、テスト対象システム２０の構成情報を取得する。ここで、図５に示すテスト対象システム２０の例を用いて、取得される構成情報の具体的な例を挙げて説明する。
【００２５】
図５は、テスト対象システム２０の具体例を示す図である。図５に例示されたテスト対象システム２０は、ＷＥＢ／ＡＰ＋ＤＢの２層システムであって、システム全体の冗長化グループとしては、ＷＥＢ／ＡＰサーバの冗長化グループ１、スイッチの冗長化グループ２、ＤＢサーバの冗長化グループ３が直列に並んだ形態で構成される。ここでは、テスト対象システム２０は、（１）１つ以上の冗長化グループを有する、（２）各冗長化グループ内で、１つ以上の故障に対して、故障を検知し、自動的に回復を図る耐障害性機能を有する、（３）複数の冗長化グループを有する場合、その同時故障にも耐障害性機能を有する、という（１）〜（３）の条件を満たしているものとする。なお、テスト対象として扱うシステムとしては、（１）〜（３）の条件のうち、１つ以上の条件を満たしていればよい。
【００２６】
冗長化グループ１は、３つのノードからなるｎＡＣＴ構成のＷＥＢ／ＡＰサーバ（ｎ＝３）であって、クラスタ種別が「負荷分散クラスタ」、ノード種別が「サーバ」、テストを実行する際の故障原因が「ハードウェア故障（筐体）」である。また、冗長化グループ２は、２つのノードからなるｎＡＣＴ構成のスイッチ（ｎ＝２）であって、クラスタ種別が「負荷分散クラスタ」、ノード種別が「スイッチ」、テストを実行する際の故障原因が「ハードウェア故障（筐体）」である。また、冗長化グループ３は、運用系のノードと待機系ノードが各１台設けられたＡＣＴ：ＳＢＹ（１：１）構成のＤＢサーバであって、クラスタ種別が「ＨＡ（High  Availability）クラスタ」、ノード種別が「サーバ」、テストを実行する際の故障原因が「ハードウェア故障（筐体）」である。
【００２７】
このような図５のシステムの例では、取得部１２ａは、テスト対象システム２０の構成情報として、上記した冗長化グループ１〜３のクラスタ種別、ノード種別、故障原因をそれぞれ取得し、取得した構成情報をシステム構成情報記憶部１３ｂに格納する。
【００２８】
確認部１２ｂは、後述する決定部１２ｃがテスト対象システム２０に対して障害を発生する前に、テスト対象システム２０が正常に作動しているか否かを確認する。例えば、確認部１２ｂは、テスト対象システム２０が有するサービス正常性確認を自動的に行い、テスト対象システム２０が正常に動作している場合には、テスト対象システム２０が正常に動作している旨を決定部１２ｃに通知する。
【００２９】
決定部１２ｃは、取得部１２ａによって取得されたテスト対象システム２０の構成情報に対応する障害構成情報を障害構成情報記憶部１３ａから取得し、該障害構成情報を用いて、テスト対象システム２０において障害を発生させる箇所を決定し、障害ポイント情報を生成する。
【００３０】
具体的には、決定部１２ｃは、確認部１２ｂによってテスト対象システム２０が正常に作動していると確認された場合に、障害構成情報記憶部１３ａに記憶された障害構成情報を参照してテスト対象システム２０における障害を発生させる箇所（障害種別）の組み合わせを決定し、障害を発生させる箇所の組み合わせを示す障害ポイント情報を生成する。
【００３１】
例えば、テスト対象システム２０について、クラスタ種別が負荷分散クラスタであり、４ＡＣＴ構成（全ＡＣＴ構成：Ｎ＝４）である場合には、障害構成情報において障害ポイント数が「１〜Ｎ−１」までとなっており（図２参照）、同時発生する障害として１重故障〜３種故障までが試験のために障害を発生させるパターンとなる。
【００３２】
上記の例を用いて説明すると、障害を発生させる箇所（障害種別）の組み合わせとして、１重故障の場合には、４通りの故障パターンを生成する。つまり、４つのノード＃１〜＃４がそれぞれ１台ずつ故障するパターンを４通り生成する。また、２重故障の場合には、６通りの故障パターンを生成する。つまり、ノード＃１、２が故障する場合、ノード＃１、３が故障する場合、ノード＃１、４が故障する場合、ノード＃２、３が故障する場合、ノード＃２、４が故障する場合、及び、ノード＃３、４が故障する場合の６通りの故障パターンを生成する。また、３重故障の場合には、４通りの故障パターンを生成する。つまり、ノード＃１、２、３が故障する場合、ノード＃１、２、４、が故障する場合、ノード＃１、３、４が故障する場合、ノード＃２、３、４が故障する場合の４通りの故障パターンを生成する。また、４つのノード＃１〜＃４が全て故障していない１つのパターンを生成する。このように、故障無し、１重故障、２重故障、３重故障の合計として、１＋４＋６＋４の計１５パターンを障害ポイント情報として生成する。なお、全部のノードが故障した場合については、システム全断となるため、テスト対象から除外する。
【００３３】
また、テスト対象システム２０における冗長構成には、複数のノードを直列に配置する構成と複数のノードを並列に配置する構成とがある。例えば、複数のノードが直列に配置されたシステムについては、複数のノードのうちのいずれかのノードが故障した場合に、システムが停止する。一方、複数のノードが並列に配置されたシステムについては、全てノードが故障した場合に、システムが停止する。このような冗長構成のテスト対象システム２０について、決定部１２ｃは、故障のパターンを列挙し、テスト対象システム２０が全故障に陥らない組み合わせを抽出し、障害を発生させる箇所の組み合わせを示す障害ポイント情報を生成する。
【００３４】
一般的に、障害テストは、耐障害性を有する故障点に対して実施される。このため、例えば、テスト対象システム２０の構成が、複数のノードが並列に配置された冗長化グループをＸ個直列に並べた構成である場合には（例えば、図５参照）、発生パターンとして、各冗長化グループに閉じた障害種別組み合わせと、複数の冗長化グループの同時故障の組み合わせとから、「システム全体としての障害ポイント情報の組み合わせ数＝冗長化グループ１の障害種別の組み合わせ数×冗長化グループ２の障害種別の組み合わせ数×・・・×冗長化グループＸの障害種別の組み合わせ数」と定義される。
【００３５】
テスト対象システム２０が複数の冗長化グループから構成され、且つ直列に並んでいる場合には、システム全体として障害テストの対象とすべきポイントが、各冗長化グループの障害種別の組み合わせを、乗じた数の組み合わせとなる。
【００３６】
各冗長化グループ内では、障害ポイント数（自動回復が可能なノード数）の範囲内での同時故障への耐障害性を有する。また、複数の冗長化グループのうち、どれか一つが故障するケースや、複数同時に故障するケースを網羅的に洗い出すと、上述の組み合わせパターンが生成される。以下では、図５に例示したテスト対象システム２０の例を用いて、障害ポイント情報の生成処理について説明する。
【００３７】
まず、図５に例示したテスト対象システム２０の冗長化グループ１（ｎＡＣＴ構成（ｎ＝３）のＷＥＢ／ＡＰサーバ）の障害種別の組み合わせについて説明する。決定部１２ｃは、図６に示すように、冗長化グループ１においては、３重故障時にシステム全断となるため、障害テスト対象としては、故障なし、１重故障、２重故障の計７パターンとなる。
【００３８】
また、決定部１２ｃは、図７に示すように、冗長化グループ２について、冗長化グループ２においては、２重故障時にシステム全断となるため、障害テスト対象は、故障なし、１重故障の計３パターンとなる。また、決定部１２ｃは、図８に示すように、冗長化グループ３について、冗長化グループ３においては、冗長化グループ２と同様、２重故障時にシステム全断となるほか、ＳＢＹ故障がテスト対象システム２０への影響がないため対象外とし、障害テスト対象は、故障なし、１重故障（ＡＣＴ側故障のみ対象）の計２パターンとなる。
【００３９】
次に、これらの冗長化グループ１〜３から構成される、システム全体としての障害ポイント情報の組み合わせは、前述したように、各冗長化グループの組み合わせ数を、乗じたものとなるため、７パターン×３パターン×２パターン＝４２パターンとなる。実際には、すべて「故障なし」の状態（１パターン）が対象外として除かれるので、計４１パターンを障害ポイント情報として生成する。これを実際の組み合わせパターンとして生成した障害ポイント情報が、前述した図４の障害ポイント情報である。決定部１２ｃは、障害ポイント情報を生成した後、該障害ポイント情報を障害ポイント情報記憶部１３ｃに格納する。
【００４０】
試験部１２ｄは、決定部１２ｃによって決定された障害を発生させる箇所に障害を発生させ、テスト対象システム２０を試験する。具体的には、試験部１２ｄは、決定部１２ｃによって決定された障害箇所の組み合わせに基づいて、ドライバを選定し、テスト対象システム２０に障害を順次発生させつつ、該テスト対象システム２０を試験する。ここでドライバは、市中製品、ＯＳＳ製品もしくは独自プログラムのなかから、または、これらの組み合わせから、障害箇所に応じて選択される。
【００４１】
図４の例を用いて説明すると、まず、試験部１２ｄは、障害ポイント情報記憶部１３ｃから障害ポイント情報を読み出し、障害ポイント情報の上位から順に、Ｎｏ．１からＮｏ．４１まで順次障害を発生させつつ、該テスト対象システム２０を試験する。
【００４２】
例えば、試験部１２ｄは、まずＮｏ.１の試験実行指示として、ノードＡ＃１への障害発生を、テスト対象システム２０に対して行う。そして、試験部１２ｄは、定期的にシステムの正常性チェックを実施することで、Ｎｏ.１の障害テストの実施終了を判断する。次に、試験部１２ｄは、障害ポイント情報のＮｏ.２の試験実行指示として、ノードＡ＃２への障害発生を、テスト対象システム２０に対して行う。以下、同様に、ＮＯ.１からＮＯ.４１までのテスト対象に対して、順次、「×」の障害発生ポイントに対する故障を発生させ、テスト終了の終了を繰り返すようなシナリオを実装することで、全ての障害テストの自動化を実現する。
【００４３】
出力部１２ｅは、試験部１２ｄによって試験された結果を出力する。例えば、出力部１２ｅは、図４の例を用いて説明すると、ＮＯ.１からＮＯ.４１までの各テスト対象を実行した結果、テスト対象システム２０が障害となっていた時間帯情報として、発生時刻および回復時刻をそれぞれ試験結果として出力する。
【００４４】
［試験制御装置による処理］
次に、図９を用いて、第一の実施形態に係る試験制御装置１０の処理を説明する。図９は、第一の実施形態に係る試験制御装置１０における試験制御処理の流れを説明するためのフローチャートである。
【００４５】
図９に示すように、試験制御装置１０の取得部１２ａは、テスト環境が構築された後、テスト準備工程のなかで、テスト対象システム２０のシステム構成情報を取得する（ステップＳ１０１）。なお、ここで取得されたシステム構成情報は、システム構成情報記憶部１３ｂに格納される。そして、確認部１２ｂは、テスト対象システム２０に対して障害を発生する前に、テスト対象システム２０が正常に作動しているか否かを確認する（ステップＳ１０２）。
【００４６】
この結果、確認部１２ｂは、テスト対象システム２０が正常に作動していないと判断した場合には（ステップＳ１０３否定）、処理を終了する。テストを実施する前からテスト対象システム２０が正常に動作していない場合には、適切にテストを実施できないからである。また、確認部１２ｂが、テスト対象システム２０が正常に作動していると判断した場合には（ステップＳ１０３肯定）、決定部１２ｃは、システム構成情報記憶部１３ｂからシステム構成情報を読み出し、また、障害構成情報記憶部１３ａから障害構成情報を読み出す（ステップＳ１０４）。
【００４７】
そして、決定部１２ｃは、システム構成情報および障害構成情報を用いて、テスト対象システム２０において障害を発生させる箇所である障害ポイント情報を決定する（ステップＳ１０５）。続いて、試験部１２ｄは、生成された障害ポイント情報に従い、テスト対象システム２０対して障害を発生させる（ステップＳ１０６）。具体的には、試験部１２ｄは、障害ポイント情報における組み合わせＮＯ．「１」のテスト対象に規定されたノード（図４の例では、ノードＡ＃１）に障害に発生させる。
【００４８】
そして、試験部１２ｄは、テスト対象システム２０が正常に作動しているか否かを確認する（ステップＳ１０７）。この結果、試験部１２ｄは、テスト対象システム２０が正常に作動していないと判断した場合には（ステップＳ１０８否定）、テスト対象システム２０の自動回復機能によりシステム障害が自動回復するまでステップＳ１０８の処理を定期的に繰り返す。
【００４９】
また、試験部１２ｄは、テスト対象システム２０が正常に作動していると判断した場合には（ステップＳ１０８肯定）、次の障害ポイント情報を取得し（ステップＳ１０９）、取得した障害ポイント情報に従い、テスト対象システム２０に対して障害を発生させる（ステップＳ１１０）。例えば、試験部１２ｄは、障害ポイント情報における組み合わせＮＯ．「１」のテストを実行した後に、組み合わせＮＯ．「２」のテスト対象に規定されたノード（図４の例では、ノードＡ＃２）に障害を発生させる。
【００５０】
そして、試験部１２ｄは、テスト対象システム２０が正常に作動しているか否かを確認し（ステップＳ１１１）、テスト対象システム２０におけるログ情報の収集を行う（ステップＳ１１２）。ここで、ログを自動的に収集することにより、例えば、収集したログを利用することで、試験合格の場合は合格のエビデンス、不合格の場合は故障原因の解析を行うことができる。
【００５１】
そして、試験部１２ｄは、テスト対象システム２０が正常に作動しているか否かを確認した結果、テスト対象システム２０が正常に作動していないと判断した場合には（ステップＳ１１３否定）、テスト対象システム２０の自動回復機能によりシステム障害が自動回復するまでステップＳ１１３の処理を定期的に繰り返す。
【００５２】
また、試験部１２ｄは、テスト対象システム２０が正常に作動していると判断した場合には（ステップＳ１１３肯定）、テスト対象システム２０を定常状態に復帰させる（ステップＳ１１４）。ここで定常状態の復帰とは、例えば、物理サーバＡ、Ｂ、ＣがそれぞれＡＣＴ、ＡＣＴ、ＳＢＹである場合に、物理サーバＡに故障を発生させると、物理サーバＡ、Ｂ、ＣがそれぞれＳＢＹ、ＡＣＴ、ＡＣＴとなるが、これを元のＡＣＴ、ＡＣＴ、ＳＢＹに復帰させることをいう。
【００５３】
そして、試験部１２ｄは、試験を行った結果として、試験の合否結果を記録する（ステップＳ１１５）。つまり、様々な故障パターンに対して合否結果を記録することで、後に試験実施者が俯瞰的に試験結果を確認することができる。
【００５４】
その後、試験部１２ｄは、テスト未実行の障害ポイント情報があるか判定する（ステップＳ１１６）。この結果、試験部１２ｄは、テスト未実行の障害ポイント情報がある場合には（ステップＳ１１６肯定）、ステップＳ１０９に戻って、次の障害ポイント情報を取得し、ステップＳ１０９〜ステップＳ１１６の処理を繰り返す。例えば、図４の例では、組み合わせＮＯ．１からＮＯ.４１までのテストが実行されるまで、処理を繰り返し行う。
【００５５】
また、試験部１２は、テスト未実行の障害ポイント情報がない場合には（ステップＳ１１６否定）、すなわち、全ての障害ポイント情報のテストを実行した場合には、試験制御処理を終了する。
【００５６】
[第一の実施形態の効果]
上述してきたように、試験制御装置１０は、システムの構成種別ごとに、該システムの試験のために障害を発生させる箇所に関する情報である障害構成情報を記憶する。そして、試験制御装置１０は、試験対象となるテスト対象システム２０の構成情報を取得し、取得されたテスト対象システム２０の構成情報に対応する障害構成情報を障害構成情報記憶部１３ａから取得し、該障害構成情報を用いて、テスト対象システム２０において障害を発生させる箇所を決定する。続いて、試験制御装置１０は、障害を発生させる箇所に障害を発生させ、テスト対象システム２０を試験する。このように、試験を自動化することで試験効率が向上するとともに、コスト効果と品質確保の波及効果を享受することができる。この結果、非機能系テストの自動化を適切に制御することが可能である。
【００５７】
また、第一の実施形態にかかる試験制御装置１０では、冗長に構成されたシステムの構成種別ごとに、障害構成情報として、障害を発生させる箇所の組み合わせを記憶する。そして、試験制御装置１０は、取得されたテスト対象システム２０の構成情報に対応する障害構成情報を障害構成情報記憶部１３ａから取得し、該障害構成情報を用いて、テスト対象システム２０における障害を発生させる箇所の組み合わせを決定する。そして、試験制御装置１０は、決定された障害箇所の組み合わせに基づいて、テスト対象システム２０に障害を順次発生させつつ、該テスト対象システム２０を試験する。このため、試験制御装置１０は、障害を発生させる箇所の組み合わせを選定し、順次これを自動実行することで、テストの網羅性を担保し、非機能系テストの自動化を適切に制御することが可能である。
【００５８】
また、第一の実施形態にかかる試験制御装置１０では、障害が発生される前に、テスト対象システム２０が正常に作動しているか否かを確認する。試験制御装置１０は、テスト対象システム２０が正常に作動していると確認された場合に、テスト対象システム２０において障害を発生させる箇所を決定する。このため、テストを実施する前からテスト対象システム２０が正常に動作していることを確認し、適切に試験を実施することが可能である。
【００５９】
また、第一の実施形態にかかる試験制御装置１０では、予め決められた条件を管理することで、テスト対象とすべき故障発生ポイントを自動的に特定することが可能である。また、障害の発生方法および正常性確認の方法を予め規定しておくことで、テスト対象システム２０に対して擬似的な障害を、リモートからの操作で自動発生させ、故障の自動復旧後に、正常性の自動チェックが可能である。
【００６０】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部１２ａと確認部１２ｂを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６１】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６２】
［プログラム］
また、上記実施形態において説明した試験制御装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係る試験制御装置１０が実行する処理をコンピュータが実行可能な言語で記述した試験制御プログラムを作成することもできる。この場合、コンピュータが試験制御プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる試験制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され試験制御プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図２に示した試験制御装置１０と同様の機能を実現する試験制御プログラムを実行するコンピュータの一例を説明する。
【００６３】
図１０は、試験制御プログラムを実行するコンピュータ１０００を示す図である。図１０に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００６４】
メモリ１０１０は、図１０に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１０に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１０に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図１０に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１０に例示するように、例えばディスプレイ１０６１に接続される。
【００６５】
ここで、図１０に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の試験制御プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【００６６】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、各種処理手順を実行する。
【００６７】
なお、試験制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、試験制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６８】
１０  試験制御装置
１１  通信処理部
１２  制御部
１２ａ  取得部
１２ｂ  確認部
１２ｃ  決定部
１２ｄ  試験部
１２ｅ  出力部
１３  記憶部
１３ａ  障害構成情報記憶部
１３ｂ  システム構成情報記憶部
１３ｃ  障害ポイント情報記憶部
２０  テスト対象システム
【図１】
2015026328.tif 000003
【図２】
2015026328.tif 000004
【図３】
2015026328.tif 000005
【図４】
2015026328.tif 000006
【図５】
2015026328.tif 000007
【図６】
2015026328.tif 000008
【図７】
2015026328.tif 000009
【図８】
2015026328.tif 000010
【図９】
2015026328.tif 000011
【図１０】
2015026328.tif 000012