(57)【要約】【課題】マルチコアＣＰＵを有効活用して、効率的な自動試験を実施することができるアプリケーション試験方法を提供する。【解決手段】アプリケーションに対する複数の試験手順が階層化にて設定されている試験要領書を用いて、複数のＣＰＵコアを有するマルチコアＣＰＵのコンピュータが、アプリケーションの各試験手順を実施するアプリケーション試験方法であって、マルチコアＣＰＵの各ＣＰＵコアを用いてアプリケーションを有する仮想環境２１０を起動し試験手順を設定して実施するとともに、試験手順のスナップショット１４０を作成し、当該試験手順の下位の試験手順を実施する場合、当該試験手順のスナップショット１４０により仮想環境２１０を復元して実施する。【選択図】図１
2016045764.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションに対する複数の試験手順が階層化にて設定されている試験要領書を用いて、複数のＣＰＵコアを有するマルチコアＣＰＵのコンピュータが、前記アプリケーションの各前記試験手順を実施するアプリケーション試験方法であって、
前記マルチコアＣＰＵの各前記ＣＰＵコアを用いて前記アプリケーションを有する仮想環境を起動し前記試験手順を設定して実施するとともに、前記試験手順のスナップショットを作成し、
当該試験手順の下位の前記試験手順を実施する場合、当該試験手順の前記スナップショットにより前記仮想環境を復元して実施するアプリケーション試験方法。
【請求項２】
前記試験要領書において、最下層の前記試験手順が複数存在するアプリケーション試験方法であって、
前記マルチコアＣＰＵの１つの前記ＣＰＵコアを用いて１つの前記仮想環境を設定し、前記試験要領書の最上層の前記試験手順から最下層に至るまでの前記試験手順を順に実施し、
前記最下層に至ると、前記最下層の複数の前記試験手順を、前記マルチコアＣＰＵの複数の前記ＣＰＵコアを用いて起動させた各前記仮想環境にてそれぞれ実施する請求項１に記載のアプリケーション試験方法。
【請求項３】
前記試験要領書において、同階層に存在する前記試験手順が複数存在するアプリケーション試験方法であって、
前記試験要領書の前記試験手順の同階層に存在する前記試験手順を、前記マルチコアＣＰＵの複数の前記ＣＰＵコアを用いて起動させた各前記仮想環境にて実施する請求項１に記載のアプリケーション試験方法。
【請求項４】
前記試験要領書において、同階層に存在する前記試験手順が複数存在するアプリケーション試験方法であって、
前記試験要領書のカレントの前記試験手順と同階層の前記試験手順、および、前記カレントの前記試験手順の次の前記試験手順を、
前記マルチコアＣＰＵの複数の前記ＣＰＵコアを用いて複数の各前記仮想環境を起動して実施する請求項１に記載のアプリケーション試験方法。
【請求項５】
前記カレントの前記試験手順の次の前記試験手順が前記試験要領書の最下層の場合、
前記最下層の複数の前記試験手順を、前記マルチコアＣＰＵの複数の前記ＣＰＵコアを用いて起動させた各前記仮想環境にてそれぞれ実施する請求項４に記載のアプリケーション試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マルチコアＣＰＵを搭載したコンピュータにおいて、ソフトウエア試験を実施する際に、マルチコアＣＰＵを極力活用して効率的に試験を実施することができるアプリケーション試験方法に関するものである。
【背景技術】
【０００２】
従来のアプリケーション試験方法は、マルチコアＣＰＵ等の複数資源を用いて自動試験を効率化する方式として、複数装置またはプログラムに着目し、それぞれをどの資源に割り当て、どのように連携させるかを改善するものであった（例えば、特許文献１および特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−６９４０２号公報  第６頁、図１
【特許文献２】特開２０１０−１９１５２２号公報  第１０頁、図１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のアプリケーション試験方法は、コンピュータ上で単一ソフトウエアの自動試験を行う場合は、シーケンシャル先頭から順番に実施していたため、マルチコアＣＰＵを搭載したコンピュータを用い、ＣＰＵコアを有効活用して試験時間を短縮するためには、作業者がどのコアにどの試験を割り当て、どの試験を同時に実施するのかを意識し、マルチコアＣＰＵに特化した試験を新規に構成する必要があり、非常に専門性の高い知識が求められ難易度が高いという問題点があった。
【０００５】
この発明は上記のような課題を解決するためになされたものであり、作業者による特別な準備を必要としないで、マルチコアＣＰＵを有効活用して、効率的な自動試験を実施するアプリケーション試験方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明のアプリケーション試験方法は、
アプリケーションに対する複数の試験手順が階層化にて設定されている試験要領書を用いて、複数のＣＰＵコアを有するマルチコアＣＰＵのコンピュータが、前記アプリケーションの各前記試験手順を実施するアプリケーション試験方法であって、
前記マルチコアＣＰＵの各前記ＣＰＵコアを用いて前記アプリケーションを有する仮想環境を起動し前記試験手順を設定して実施するとともに、前記試験手順のスナップショットを作成し、
当該試験手順の下位の前記試験手順を実施する場合、当該試験手順の前記スナップショットにより上記仮想環境を復元して実施するものである。
【発明の効果】
【０００７】
この発明のアプリケーション試験方法によれば、
作業者による特別な準備を必要としないで、マルチコアＣＰＵを有効活用して、効率的な自動試験を実施することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１のアプリケーション試験方法を行うためのハードウエアおよびソフトウエアの構成を示す図である。
【図２】図１に示したアプリケーション試験方法を行うための試験制御部の構成を説明するための図である。
【図３】図１に示したアプリケーション試験方法を説明するためのフローチャートである。
【図４】図１に示したアプリケーション試験方法にて用いられる試験要領書を示した図である。
【図５】図１に示したアプリケーション試験方法におけるソフトウエアの構成を示す図である。
【図６】図４に示した試験要領書および他の通常の試験要領書を説明するための図である。
【図７】この発明の実施の形態２のアプリケーション試験方法を説明するためのフローチャートである。
【図８】図７に示したアプリケーション試験方法における試験要領書を示す図である。
【図９】この発明の実施の形態３のアプリケーション試験方法を説明するためのフローチャートである。
【図１０】この発明の実施の形態３のアプリケーション試験方法を説明するためのフローチャートである。
【図１１】図９および図１０に示したアプリケーション試験方法における試験要領書を示す図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、本願発明の実施の形態について説明する。図１はこの発明の実施の形態１におけるアプリケーション試験方法を行うためのハードウエアおよびソフトウエアの構成を示す図である。図２は図１に示したアプリケーション試験方法を行うための試験制御部の構成を説明するための図である。図３は図１に示したアプリケーション試験方法を説明するためのフローチャートである。図４は図１に示したアプリケーション試験方法にて用いられる試験要領書を示した図である。図５は図１に示したアプリケーション試験方法におけるソフトウエアの構成を示す図である。図６は図４に示した試験要領書および他の通常の試験要領書を比較して説明するための図である。
【００１０】
図１において、ハードウエア（以下、Ｈ／Ｗと称す）は、第一コア１０２、第二コア１０３から第ｎコア１０ｎのｎ個の複数のＣＰＵコア（以下、コアと称す）からなるマルチコアＣＰＵ１０１と、ＨＤＤ１２０と、メモリ１３０とから構成される。ソフトウエア（以下、Ｓ／Ｗと称す）は、ホストＯＳ２３０と、その上に各コア１０２、１０３〜１０ｎ上で動作するＶｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（以下、ＶＭと称す）２１２が設定される。
【００１１】
ＶＭ２１２上では、ゲストＯＳ２１３と、試験対象となるアプリケーションの試験対象アプリ２１４とが動作する。これら、ＶＭ２１２、ゲストＯＳ２１３、および試験対象アプリ２１４にて１つの第一仮想環境２１０が設定されるものである。そして、第一仮想環境２１０は１つに限られるものではなく、図５に示すように、複数の試験手順を実施する場合には、各コア１０２、１０３〜１０ｎに対応する第一仮想環境２１０、第二仮想環境２２０などと、必要に応じてＣＰＵコアの数分の仮想環境を設定することができる。
【００１２】
ＶＭ２１２用のＨ／Ｗ資源としては、ＨＤＤ１２０上にはゲストＯＳ２１３用の第一仮想ＨＤＤ１２１〜第ｎ仮想ＨＤＤ１２ｎが格納され、メモリ１３０上にはゲストＯＳ２１３用の第一メモリ１３１〜第ｎメモリ１３ｎが確保されている。尚、第一仮想ＨＤＤ１２１および第一メモリ１３１とは、第一仮想環境２１０に対応するものであり、それ以外の、第ｎ仮想ＨＤＤ１２ｎおよび第ｎメモリ１３ｎとは、他の仮想環境にそれぞれ対応するものである。
【００１３】
ＨＤＤ１２０にはその他に、スナップショット１４０が保存される。この場合のスナップショット１４０とは、ＶＭ２１２の状態を保存および復元するためのものを示している。よって、ゲストＯＳ２１３の第一仮想ＨＤＤ１２１、第一メモリ１３１などの情報が保存される。よって、このスナップショット１４０を用いることで、ゲストＯＳ２１３を任意の状態から再開することが可能となる。また、ホストＯＳ２３０には、各試験手順の制御を行う試験制御部２００が搭載される。
【００１４】
次に、試験制御部２００の構成について、図２に基づいて説明する。試験制御部２００は、ＶＭ２１２、ゲストＯＳ２１３、試験対象アプリ２１４の第一仮想環境２１０の起動や終了を制御するためのＶＭ起動終了部２０１と、試験対象アプリ２１４に対して自動的に信号や操作を入力して動作を制御する信号送受信部２０２と、試験要領書２０５から試験手順や確認内容の読み取りを行ったり、試験手順の結果を判定するための試験実行部２０３と、第一仮想ＨＤＤ１２１〜第ｎ仮想ＨＤＤ１２ｎや第一メモリ１３１〜第ｎメモリ１３ｎなどの情報をスナップショット１４０に保存したり、スナップショット１４０からＶＭ２１２を任意の状態に復元するためのスナップショット実行部２０４とから構成される。
【００１５】
尚、図２においては、便宜上、第一仮想環境２１０のみを示しているが、他の仮想環境も試験制御部２００において同様に設定されるものである。このような試験制御部２００における、ＶＭ起動終了部２０１、信号送受信部２０２、および、スナップショット実行部２０４については公知の技術に基づいて行うことができるものである。そして、本発明の特徴は、試験実行部２０３の試験実行の動作（アルゴリズム）にある。
【００１６】
次に、本実施の形態において用いられる試験要領書２０５は図４に示すように構成されている。当該試験要領書２０５と、通常の試験要領書３００との違いについて図６を用いて比較する。まず、図６（ａ）に示すように、通常の試験要領書３００は、試験の項番ごとに、独立して試験手順とそれに対応する確認項目が記載されている。ここで、試験手順に着目すると、途中までは試験手順が全く同じで、途中から分岐する試験手順となっている項目が多数含まれている。
【００１７】
本実施の形態では、図６（ｂ）に示すように、同一試験手順を１つにまとめて、それに続く試験手順を、その一階層下に設定する、階層化された試験要領書２０５を作成する（図４）。尚、本実施の形態１において用いられる試験要領書２０５は、一般的な階層化の考えに基づいて作成されたものであり、作業者が人手で試験を実施する際に試験手順が分かりにくくなるようなものではない。
【００１８】
次に、上記のように構成された実施の形態１のアプリケーション試験方法について図３に基づいて説明する。本実施の形態１におけるアプリケーション試験方法は、試験手順が階層化にて設定された試験要領書２０５を、上層から順に行う方式である。そして、下層へ、下層へと進んでいき、最下層に辿り着くと、最下層の同一階層に並んでいる試験手順を、複数のコアに分散して同時に実施するものであり、以下詳細に説明する。
【００１９】
まず、試験を開始すると、試験制御部２００の試験実行部２０３は試験要領書２０５を読み込み、以下の試験を実行していく（図３のステップＳＴ４０１）。そして、カレントを手順１に設定する（図３のステップＳＴ４０２）。尚、カレントとは、試験制御部２００が着目している試験手順の項目のことで、その試験の準備および実施が完了したら、カレントを次の試験手順に進め、元のカレントの試験手順は完了済みとして管理する。このことは、以下の実施の形態においても同様であるためその説明は適宜省略する。
【００２０】
次に、カレントの手順の下位に手順が存在するか否か確認する（図３のステップＳＴ４０３）。ここでは、カレントは手順１であり、下位に手順２などが存在するためＹｅｓとなる。次に、カレントの手順を実施する（図３のステップＳＴ４０４）。ここでは、ＶＷ起動終了部２０１は第一コア１０２に動作する第一仮想環境２１０を起動して、信号送受信部２０２が第一仮想環境２１０に信号を送信し、第一コア１０２により第一仮想環境２１０を用いてカレントの手順１が実施されることとなる。尚、カレントの手順の実施する方法は、以下の場合および以下の実施の形態においても同様であるためその説明は適宜省略する。
【００２１】
次に、スナップショット１４０を保存する（図３のステップＳＴ４０５）。ここでは、スナップショット実行部２０４が、この手順１が終了した第一仮想環境２１０の状態をスナップショット１４０として保存する。そして、カレントを次の手順に進める（図３のステップＳＴ４０６）。ここでは、手順１が終了したため、カレントが手順２に設定される。次に、再びステップＳＴ４０３に戻り、カレントの手順の下位に手順が存在するか否かを判断する。ここでは、カレントは手順２であり、下位に手順３などが存在するためＹｅｓとなる。そして、上記に示した場合と同様の動作を行い、第一仮想環境２１０にて手順２が実施され、その状態がスナップショット１４０として保存される。
【００２２】
そして、再び、ステップＳＴ４０３に戻り、カレントの下位の手順が存在するか否かを判断する。すると、ここではカレントの手順３の下位の手順が存在しないためＮｏとなる。次に、カレントを次の手順に進める（図３のステップＳＴ４０７）。ここでは、カレントが手順３のため、手順４に進める。
【００２３】
次に、一階層上で保存したスナップショット１４０を元にＶＭ２１２を起動する（図３のステップＳＴ４０８）。ここでは、一階層上で保存したスナップショット１４０、すなわちここでは手順２を実施した後に保存したスナップショット１４０に基づいて、第二コア１０３にて動作する第二仮想環境２２０を復元して作成し（図５参照）、第二仮想環境２２０の新たなＶＭ２１２を起動して、この新たな第二仮想環境２２０にて実施するカレントを手順４に設定する。よってこの場合、第二仮想環境２２０は手順２が実施されて終了した状態と同様の状態にて起動されているものである。尚、マルチコアＣＰＵのコア数分作成可能な仮想環境の復元して作成して起動する方法は、以下の動作および以下の実施の形態においても同様であるため、その説明は適宜省略する。
【００２４】
次に、同じ階層である最下層の手順の数だけ、一階層上で保存したスナップショット１４０に基づいて、未使用のコアにＶＭ２１２を割り付けて起動し、起動した各ＶＭ２１２に試験手順を割り当てる処理を繰り返す（図３のステップＳＴ４０７〜図３のステップＳＴ４０９）。尚、同じ階層の手順と言うのは、一階層上の試験手順から分離した試験項目である。このことは、以下の実施の形態においても同様であるためその説明は適宜省略する。そして、一階層上の手順まで実施した環境をスナップショット１４０により復元すれば、同じ階層の試験は独立して同時に実施が可能である。
【００２５】
そして、全てのマルチコアＣＰＵ１０１のコアを使用するか、または、同じ階層の手順が無くなれば、各仮想環境２１０、２２０の各ＶＭ２１２に割り当てたカレントの手順を実施する（図３のステップＳＴ４１０）。そして、得られた結果と試験要領書２０５の確認項目とを比較して、試験結果の合否を判定する（図３のステップＳＴ４１１）。次に、同階層の手順が残っているか否かを判断する（図３のステップＳＴ４１２）。
【００２６】
そして、同階層の手順が残っている場合（Ｙｅｓ）には、上記に示した一連の処理、図３のステップＳＴ４０７〜図３のステップＳＴ４１１を繰り返し、同階層の手順が無くなるまで繰り返す。ここでは、手順５が終了している場合、同階層の手順がないと判断される。そして、同階層の手順が残っていない場合（Ｎｏ）には、最後の手順に辿り着いたか否かを判断する（図３のステップＳＴ４１３）。
【００２７】
そして、最後の手順が終了している場合（Ｙｅｓ）には、試験を終了する。また、最後の手順が終了していない場合（Ｎｏ）には、カレントを次の手順に進める（図３のステップＳＴ４１４）。ここでは、手順５が終了したものであり、最後の手順が終了していないため、カレントが次の手順６に設定される。次に、カレントの一階層上で保存したスナップショット１４０を第一仮想環境２１０に復元する（図３のステップＳＴ４１５）。
【００２８】
ここでは、手順６の上位階層である、手順１の実施により保存されたスナップショット１４０により第一仮想環境２１０が復元される。よって、第一仮想環境２１０が手順１を終了した状態を同様の状態に復元され起動される。尚、スナップショット１４０の復元および起動は、以下の実施の形態においても同様であるため、その説明は適宜省略する。また、カレントの一階層上が存在しない場合、例えば手順９の場合では、一階層上が存在しないためスナップショット１４０を復元することなく、仮想環境は初期状態にて、次のステップに進む。そして、再びステップＳＴ４０３に戻り、上記に示した同様の動作を繰り返し、試験要領書２５０の最後の手順まで試験手順を実施する。
【００２９】
上記のように構成された実施の形態１のアプリケーション試験方法によれば、マルチコアＣＰＵのＣＰＵコアを用いてアプリケーションを有する仮想環境を起動し試験手順を設定して実施するとともに、試験手順のスナップショットを作成し、当該試験手順の下位の試験手順を実施する場合、当該試験手順のスナップショットにより仮想環境を復元して実施することができるため、マルチコアＣＰＵを有効活用して、効率的な自動試験を実施することができる。
【００３０】
また、試験手順を階層化した試験要領書を用いて、その階層を辿ることにより並列実施可能な試験手順を自動で判別し、マルチコアＣＰＵにおいて空いているコアに試験対象プログラムを自動的に割り付けることが可能となる。これにより、作業者による特別な準備をすることなく、マルチコアＣＰＵの空いているコアを有効活用して、効率的な自動試験が実施可能となる。
【００３１】
また、複数資源であるマルチコアＣＰＵに試験項目を分散させることで、試験の効率化を図ることができる。また、試験手順を上階層から順に実施しているため、進捗把握が容易であり、任意のポイントから再開しやすい。また、仮想環境により対応しているため実装が簡単である。また、試験手順の先読みが不要なためメモリ消費量を少なくすることができる。そのため、スナップショットの保存および復元回数が少なく、試験を短時間にて構成することができる。
【００３２】
尚、試験制御部２００の動作は、以下の実施の形態においても本実施の形態１と同様であるため、その説明は適宜省略する。また、ＨＤＤ１２０およびメモリ１３０についても、以下の実施の形態は本実施の形態１と同様であるため、その説明は適宜省略する。
【００３３】
実施の形態２．
図７は図１に示したアプリケーション試験方法を行うためのハードウエアおよびソフトウエアの構成を用いて行う実施の形態２におけるアプリケーション試験方法のフローチャートである。図８は図７に示したアプリケーション試験方法にて用いられる試験要領書を示した図である。
【００３４】
次に実施の形態２のアプリケーション試験方法について図７に基づいて説明する。本実施の形態２におけるアプリケーション試験方法は、同一階層に並んでいる試験手順を複数のコアに分散して実施し、その後、一階層ずつ下層に潜っていく方法であり、以下にて詳細に説明する。
【００３５】
まず、試験を開始すると、試験制御部２００の試験実行部２０３は試験要領書２０５を読み込み、以下の試験を実行していく（図７のステップＳＴ５０１）。次に、カレントを手順１に設定する（図７のステップＳＴ５０２）。そして、カレントの手順と同階層に手順が存在するか否かを確認する（図７のステップＳＴ５２０）。次に、図４の試験要領書２０５とは異なるものの、カレントの手順１と同階層の手順が存在しない場合には、Ｎｏとなり、一階層上で保存したスナップショット１４０に基づいて、未使用のコアにＶＭ２１２を割り付けて起動し（図７のステップＳＴ５２１）、カレントの手順を実施する（図７のステップＳＴ５２２）。
【００３６】
但し、ステップＳＴ５２１において、カレントの手順の階層以上の手順が存在しない場合、すなわちカレントの手順が最上層の場合には、スナップショット１４０が存在しないため、単に未使用のコアにＶＭ２１２を割り付けて起動するものである。次に、スナップショット１４０を保存する（図７のステップＳＴ５２３）。
【００３７】
また、本実施の形態２では、ステップＳＴ５２０において、カレントは手順１であり、同階層に手順９が存在するためＹｅｓとなる。次に、一階層上で保存したスナップショット１４０を元にＶＭ２１２を起動する（図７のステップＳＴ５０４）。但し、最上層の場合には、一階層上が存在しないため初期状態としてＶＭ２１２を起動する。よって、ここでは、手順１であり、一階層上が存在しないため通常のようにＶＭ２１２を起動する。
【００３８】
次に、カレントを次の手順に設定する（図７のステップＳＴ５０５）。ここでは、次の手順９に進め、ＶＭ２１２に設定する。そして、未使用のコアが存在するまで、同じ階層にある手順を、一階層上で保存したスナップショット１４０に基づいて、未使用のコアにＶＭ２１２を割り付けて起動し、起動した各ＶＭ２１２に試験手順を割り当てる処理を繰り返す（図７のステップＳＴ５０４〜図７のステップＳＴ５０６）。
【００３９】
次に、各ＶＭ２１２のカレントの手順を実施する（図７のステップＳＴ５０７）。次に、各ＶＭ２１２のスナップショット１４０を保存する（図７のステップＳＴ５０８）。次に、カレントと同階層の手順が残っているか否かを判断する（図７のステップＳＴ５０３）。そして、カレントの手順の同階層が残っている場合（Ｙｅｓ）には、上記に示した場合と同様の動作が行われる。
【００４０】
そして、再び、ステップＳＴ５０３に戻り、カレントと同階層の手順が残っているか否かを判断する。そして、同階層の手順が残っていない場合（Ｎｏ）には、カレントを次の手順に進める（図７のステップＳＴ５０９）。ここでは、カレントが手順１のため、カレントを手順２に進める。
【００４１】
次に、カレントの手順の下位の手順が存在するか否かを判断する（図７のステップＳＴ５１０）。そして、下位の手順が存在する場合（Ｙｅｓ）には、再びステップＳＴ５２０に戻り、上記に示した動作を繰り返す。ここでは、手順２であり、下位の手順が存在するため、ステップＳＴ５１０にてＹｅｓとなり、ステップＳＴ５２０に戻る。そして、ステップＳＴ５２０においては、カレントの手順２と同階層の手順６が存在するため、ステップＳＴ５０４に移り、上記に示した動作を繰り返す。
【００４２】
そして、手順２および手順６が実施され、再びステップＳＴ５０９に戻り、カレントを次の手順に進める。ここでは、カレントが手順３に進むこととなる。次に、ステップＳＴ５１０にてＮｏとなる。次に、一階層上で保存したスナップショット１４０を元にＶＭ２１２を起動する（図７のステップＳＴ５１１）。ここでは、一階層上で保存したスナップショット１４０、すなわちここでは手順２を実施した後に保存したスナップショット１４０に基づいて、ＶＭ２１２を起動する。
【００４３】
次に、カレントを次の手順に設定する（図７のステップＳＴ５１２）。ここでは、次の手順４に進め、ＶＭ２１２に設定する。次に、同じ階層である最下層の手順の数だけ、一階層上で保存したスナップショット１４０に基づいて、未使用のコアにＶＭ２１２を割り付けて起動し、起動した各ＶＭ２１２に試験手順を割り当てる処理を繰り返す（図７のステップＳＴ５１１〜図７のステップＳＴ５１３）。
【００４４】
そして、マルチコアＣＰＵ１０１の全てのコアを使用するか、または、同じ階層の手順が無くなれば、各ＶＭ２１２に割り当てたカレントの手順を実施する（図７のステップＳＴ５１４）。そして、得られた結果と試験要領書２０５の確認項目とを比較して、試験結果の合否を判定する（図７のステップＳＴ５１５）。次に、同階層の手順が残っているか否かを判断する（図７のステップＳＴ５３０）。そして、同階層の手順が残っている場合（Ｙｅｓ）には、上記に示した一連の処理、図７のステップＳＴ５１１〜図７のステップＳＴ５１５を繰り返し、同階層の手順が無くなるまで繰り返す。
【００４５】
ここでは、手順５が終了している場合、同階層の手順がないと判断される。そして、同階層の手順が残っていない場合（Ｎｏ）には、最後の手順に辿り着いたか否かを判断する（図７のステップＳＴ５１６）。そして、最後の手順が終了している場合（Ｙｅｓ）には、試験を終了する。また、最後の手順が終了していない場合（Ｎｏ）には、カレントを次の手順に進める（図７のステップＳＴ５１７）。ここでは、手順６が終了したものであり、最後の手順が終了していないため、カレントが次の手順７に設定される。
【００４６】
そして、再びステップＳＴ５１０に戻り、カレントから下位の手順が存在するか否かで、Ｎｏとなり、上記に示した同様の動作を繰り返し、手順７および手順８がカレントに設定され、手順が実施される。そして、再び、ステップＳＴ５１６に戻り、手順９が終了しているため、カレントが次の手順１０に設定される。そして、再びステップＳＴ５１０に戻り、カレントから下位の手順が存在するか否かで、Ｙｅｓとなり、ステップＳＴ５２０に戻る。
【００４７】
そして、カレントと同階層に手順が残っているか否かを判断し、Ｎｏとなるため、一階層上で保存したスナップショット１４０に基づいて、未使用のコアにＶＭ２１２を割り付けて起動し（図７のステップＳＴ５２１）、起動したＶＭ２１２に試験手順を割り当て、カレントの手順を実施する（図７のステップＳＴ５２２）。次に、スナップショット１４０を保存する（図７のステップＳＴ５２３）。次に、ステップＳＴ５０９にて、カレントが手順１１に設定され、上記に示した同様の動作を繰り返し各手順が実施される。
【００４８】
上記のように構成された実施の形態２のアプリケーション試験方法によれば、上記実施の形態１と同様の効果を奏するのはもちろんのこと、ＣＰＵコア数が多い場合であって、特に試験項目の絶対数が多く、同一階層の試験項目が多数並んでいる場合には、ＣＰＵコアを有効的に使用することができる。但し、同一階層の試験項目を調べるために試験要領書を先読みする必要があり、実施の形態１よりメモリ消費が増える。また、スナップショットの保存・復元回数が多くなるため、試験構成によっては時間がかかる。
【００４９】
実施の形態３．
図９、図１０は図１に示したアプリケーション試験方法を行うためのハードウエアおよびソフトウエアの構成を用いて行う実施の形態３におけるアプリケーション試験方法のフローチャートである。図１１は図９および図１０に示したアプリケーション試験方法にて用いられる試験要領書を示した図である。
【００５０】
次に実施の形態３のアプリケーション試験方法について図９および図１０に基づいて説明する。本実施の形態３におけるアプリケーション試験方法は、ＣＰＵコアが余っている場合には、一階層上の独立した試験項目を一緒に並列処理して実行することで、同時実行数を増やした方法であり、以下にて詳細に説明する。
【００５１】
まず、試験を開始すると、試験制御部２００の試験実行部２０３は試験要領書２０５を読み込む（図９のステップＳＴ６０１）。次に、カレントを手順１に設定する（図９のステップＳＴ６０２）。次に、手順１を実施する（図９のステップＳＴ６０３）。次に、スナップショットを保存する（図９のステップＳＴ６２０）。次に、ステップＳＴ６２０が終了すると、以下、並列処理を行う。まず、１つめの並列処理としては、カレントと同階層の手順が残っているか否かを判断する（図９のステップＳＴ６２１）。そして、残っていない場合（Ｎｏ）には、１つめの並列処理は終了して、次の処理に移る（図１０の（Ａ））。
【００５２】
また、残っている場合（Ｙｅｓ）には、一階層上で保存したスナップショット１４０を元にＶＭ２１２を起動する（図９のステップＳＴ６２２）。但し、最上層の場合には、一階層上が存在しないため初期状態としてＶＭ２１２を起動する。よって、ここでは、手順１であり、一階層上が存在しないため初期状態にてＶＭ２１２を起動する。次に、カレントを次の手順に進める（図９のステップＳＴ６２３）。ここでは、手順１と同階層の手順である手順９を設定する。そして、１つめの並列処理は終了して、次の処理に移る（図１０の（Ａ））。
【００５３】
次に、２つめの並列処理としては、カレントを次の手順に進める（図９のステップＳＴ６０４）。ここでは、カレントが次の手順２に設定される。次に、カレントが最下層かつカレントの同階層に他の手順が残っているか否かを判断する（図９のステップＳＴ６０５）。そして、最下層でない場合（Ｎｏ）、また、最下層であって同階層に他の手順が残っていない場合（Ｎｏ）には、２つめの並列処理は終了して、次の処理に移る（図１０の（Ａ））。ここでは、カレントが手順２であり、最下層でないため、次の処理に移る。また、最下層かつ同階層に他の手順が残っている場合（Ｙｅｓ）には、一階層上で保存したスナップショット１４０を元にＶＭ２１２を起動する（図９のステップＳＴ６０６）。
【００５４】
次に、カレントを次の手順に設定する（図９のステップＳＴ６０７）。そして、未使用のコアが存在するまで、最下層かつ同階層にある手順を、一階層上で保存したスナップショット１４０に基づいて、未使用のコアにＶＭ２１２を割り付けて起動し、起動した各ＶＭ２１２に試験手順を割り当てる処理を繰り返し（図９のステップＳＴ６０６〜図９のステップＳＴ６０８）、２つめの並行処理は終了して、次の処理に移る（図１０の（Ａ））。
【００５５】
次に、各ＶＭ２１２に割り当てたカレントの手順を実施する（図１０のステップＳＴ６１３）。次に、カレントから下位の手順が存在するか否かを判断する（図１０のステップＳＴ６１５）。そして、カレントから下位の手順が存在しない場合（Ｎｏ）には、得られた結果と試験要領書２０５の確認項目とを比較して、試験結果の合否を判定する（図１０のステップＳＴ６１４）。
【００５６】
また、カレントから下位の手順が存在する場合（Ｙｅｓ）、ここでは手順２および手順９が実施されるためＹｅｓとなる。そして、各ＶＭ２１２のスナップショット１４０を保存する（図１０のステップＳＴ６１６）。次に、最後の手順に辿り着いたか否かを判断する（図１０のステップＳＴ６１７）。そして、最後の手順が終了している場合（Ｙｅｓ）には、試験を終了する。また、最後の手順が終了していない場合（Ｎｏ）には、上記に示した並列処理に移り（図９の（Ｂ））、上記に示した動作を繰り返す。
【００５７】
具体的にここでは、手順２および手順９が終了したため、再び、並列処理に移る。そして、ステップＳＴ６２１側の並列処理では、手順２の同階層の手順６、および、手順９と同階層の手順１５が設定される。また、ステップＳＴ６０４側の並列処理では、手順２から次の手順３に移り、手順３が最下層であるため手順４および手順５も合わせて設定される。手順９から次の手順１０に移り設定される。
【００５８】
そして、手順３、手順４、手順５、手順６および手順１５が、ステップＳＴ６１３にて実施され、手順３、手順４、手順５は試験結果が判定される。また、手順６および手順１５は再び並列処理に移る。
【００５９】
そして、ステップＳＴ６２１側の並列処理では、手順６および手順１５と同階層の手順は存在せず、手順１０と同階層の手順１３が設定される。また、ステップＳＴ６０４側の並列処理では、手順６から手順７に移り、手順７が最下層であるため手順８が合わせて設定される。また、手順１０から次の手順１１に移り、手順１１が最下層であるため手順１２が合わせて設定される。また、手順１５から手順１６に移り設定される。そして、手順７、手順８、手順１１、手順１２、手順１３および手順１６が、ステップＳＴ６１３にて実施され、手順順７、手順８、手順１１、手順１２は試験結果が判定される。このようにして順次処理を行う。
【００６０】
上記のように構成された実施の形態３のアプリケーション試験方法によれば、上記各実施の形態と同様の効果を奏するのはもちろんのこと、並列的に処理を行うため、ＣＰＵコア数が多い場合に有効的である。また、スナップショットの保存および復元回数が減るため、処理が高速となる。
【００６１】
尚、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００６２】
１０１  マルチコアＣＰＵ、１０２  第一コア、１０３  第二コア、
１０ｎ  第ｎコア、１２０  ＨＤＤ、１２１  第一仮想ＨＤＤ、
１２２  第二仮想ＨＤＤ、１２ｎ  第ｎ仮想ＨＤＤ、１３０  メモリ、
１３１  第一メモリ、１３２  第二メモリ、１３ｎ  第ｎメモリ、
１４０  スナップショット、２００  試験制御部、２０１  ＶＭ起動終了部、
２０２  信号送受信部、２０３  試験実行部、２０４  スナップショット実行部、
２０５  試験要領書、２１０  第一仮想環境、２２０  第二仮想環境、２１２  ＶＭ、
２１３  ゲストＯＳ、２１４  試験対象アプリ、２３０  ホストＯＳ。
【図１】
2016045764.tif 000003
【図２】
2016045764.tif 000004
【図３】
2016045764.tif 000005
【図４】
2016045764.tif 000006
【図５】
2016045764.tif 000007
【図６】
2016045764.tif 000008
【図７】
2016045764.tif 000009
【図８】
2016045764.tif 000010
【図９】
2016045764.tif 000011
【図１０】
2016045764.tif 000012
【図１１】
2016045764.tif 000013