JPWO2018066040A1 - 管理計算機及びテスト環境決定方法 - Google Patents
管理計算機及びテスト環境決定方法 Download PDFInfo
- Publication number
- JPWO2018066040A1 JPWO2018066040A1 JP2018543496A JP2018543496A JPWO2018066040A1 JP WO2018066040 A1 JPWO2018066040 A1 JP WO2018066040A1 JP 2018543496 A JP2018543496 A JP 2018543496A JP 2018543496 A JP2018543496 A JP 2018543496A JP WO2018066040 A1 JPWO2018066040 A1 JP WO2018066040A1
- Authority
- JP
- Japan
- Prior art keywords
- test
- test environment
- environment
- information
- test case
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
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)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一つ以上のテストケースを含むテストケースグループを実行する複数のテスト環境が構築された計算機システムと接続する管理計算機であって、管理計算機は、テストケースグループの識別情報、及びテストケースグループに含まれるテストケースの特性に基づいて決定された候補テスト環境の識別情報から構成されるエントリを含むグループ情報と、テスト環境の状態に関する条件である動的条件を含む条件情報と、を保持し、第1のテストケースグループの実行契機を検出した場合、グループ情報を参照して第1のテストケースグループの候補テスト環境を特定し、候補テスト環境の状態を示す状態情報を取得し、条件情報及び前記状態情報に基づいて、候補テスト環境の中から第1のテストケースグループを実行するテスト環境を決定する。
Description
本発明は、一つ以上のテストケースによって定義されたテストを行うテスト環境の管理技術に関する。
DevOps等のシステム開発では、ウォータフォール型開発と異なり、迅速かつ継続的なアプリケーションのリリースが要求されることから、複数のテスト環境を用いて膨大な量の回帰テストが実行される。
仮想化技術及びクラウドコンピューティングの普及に伴って、オンプレミス型システムだけではなく、クラウドサービス上の仮想マシン(VM)等のリソースから構成されるテスト環境も利用されている。
効率的なシステム開発の要求に対して、特許文献1に記載の技術が知られている。特許文献1には、「プログラムのテスト網羅性を判断するための再テスト方法において、モジュール修正時の再テスト範囲を、テストデータとテスト対象モジュールの関連情報を基に抽出し、該抽出したテストデータを再実行し、該テストデータについての実行済みテスト結果と今回のテスト結果とを比較し検証する」ことが記載されている。
システム開発では複数のテスト環境を用いてテストが行われるため、システム開発の実行コストを削減したいというユーザ要求が存在する。ここで、システム開発の実行コストは、使用料金等の運用コスト、ユーザ操作等の管理コスト、及びテストケースの実行時の計算機の負荷等の処理コスト等を含む。前述したユーザ要求を解決するためには、テストケースで定義されるテストの内容、テスト環境の状態、及びシステム開発の実行コスト等を考慮してテスト環境を決定する必要がある。
例えば、運用コストに着目した場合、以下のような問題がある。商用ソフトウェアを用いるテスト環境を用いてテストケースを実行する場合、本番環境と同等の料金を支払う必要があり、運用コストが増大する。前述の問題の解決方法として、OSS(Open Source Software)を用いたテスト環境を利用する方法が考えられる。しかし、テストケースで定義されるテストの内容によっては、OSSを利用できない場合がある。また、テストケースの実行時にOSSを用いたテスト環境のリソースが不足しているため、当該テスト環境を利用できない可能性がある。
テストの内容及びテスト環境の状態の組み合わせは膨大であり、ユーザ要求に合致したテスト環境を決定するためにはユーザの負担が大きい。そのため、管理コストも増大するという問題がある。また、ラウンドロビン方式でテストケースを実行するテスト環境を決定する場合、負荷の高いテストケースが一つのテスト環境に集中し、処理コストが増大するという問題もある。
本発明は、テストの内容及びテスト環境の状態を考慮して、ユーザ要求に合致したテスト環境を自動的に決定するシステム及び方法を実現する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、一つ以上のテストケースを含むテストケースグループを実行する複数のテスト環境が構築された計算機システムと接続する管理計算機であって、前記計算機システムは、複数の計算機を含み、前記管理計算機は、プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有し、前記テストケースグループの識別情報、及び前記テストケースグループに含まれるテストケースの特性に基づいて決定された候補テスト環境の識別情報から構成されるエントリを含むグループ情報と、前記テスト環境の状態に関する条件である動的条件を含む条件情報と、を保持し、前記プロセッサは、第1のテストケースグループの実行契機を検出した場合、前記グループ情報を参照して前記第1のテストケースグループの候補テスト環境を特定し、前記候補テスト環境の状態を示す状態情報を取得し、前記条件情報及び前記状態情報に基づいて、前記候補テスト環境の中から前記第1のテストケースグループを実行する実行テスト環境を決定することを特徴とする。
本発明によれば、ユーザ要求に合致したテスト環境を自動的に決定することができる。これによって、システム開発の実行コストを削減することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
以下、本発明の実施例について添付図面を用いて説明する。実施例で用いるテーブルに使用する識別情報は、当該テーブルに一つ以上のカラムを用いてテーブルのエントリを特定できる場合、識別情報のカラムを省略することもできる。また、識別情報は昇順となる識別番号を自動的に割り当てられてもよい。各図において共通の構成については同一の参照符号が付されている。
実施例1では、ユーザ要求が運用コストの削減である場合の構成及び処理について説明する。クラウド型システム上のテスト環境を使用する場合、使用料金の低いテスト環境を使用し、又は、テスト環境の使用時間を短くすることによって、運用コストを削減できる。ここでは、使用料金の低いテスト環境を使用することによって運用コストの削減を実現する方法及びシステムについて説明する。なお、他のユーザ要求についても同様の構成で同様の機能及び効果を実現できる。
図1は、実施例1の計算機システムの一例を示すブロック図である。
実施例1の計算機システムは、管理サーバ100、オンプレミス型システム101、及びクラウド型システム102から構成され、管理ネットワーク103を介して互いに接続される。なお、管理ネットワーク103は、オンプレミス型システム101に接続するネットワーク及びクラウド型システム102に接続するネットワークに分けてもよい。
本実施例では、テスト環境が一つ以上のテストケースを実行することによって、テストが行われる。ここで、テストケースとは、実行前条件、入力値、期待される結果、及び実行後条件等を含むテストの内容を定義した情報である。また、テスト環境とは、テストを行うための環境である。
オンプレミス型システム101及びクラウド型システム102は、テスト環境を実現するシステムである。本実施例では、ステージング環境及び代替環境の二つ種類のテスト環境が各システム上に構築される。ステージング環境は商用ソフトウェアを利用する環境であって、本番環境と同等の環境である。また、代替環境はOSSを利用する環境である。なお、本番環境は、実際にシステムが稼働する環境である。
オンプレミス型システム101は、システム開発者が所属する会社が運用するシステムである。クラウド型システム102は、クラウドサービスの提供者が運用するシステムである。オンプレミス型システム101及びクラウド型システム102は、それぞれ、複数の計算機、複数のストレージ装置、及び複数のネットワーク装置等を含む。テスト環境は、物理的な装置そのものをリソースとして用いるテスト環境でもよいし、仮想的な装置をリソースとして用いるテスト環境でもよい。実施例1では、クラウド型システム102上に構築されたテスト環境を対象とした処理について説明する。二つのシステム上に構築されたテスト環境を対象とした処理については実施例2で説明する。
管理サーバ100は、テストケースを実行するテスト環境を決定する。ここで、管理サーバ100のハードウェア構成及びソフトウェア構成について説明する。
管理サーバ100は、CPU(Central Processing Unit)111、メモリ112、ネットワークインタフェース113、及びIOインタフェース114を有する。前述した各ハードウェアは、内部バスを介して互いに接続される。
CPU111は、メモリ112に格納されるプログラムを実行する。CPU111は、メモリ112に格納されるプログラムにしたがって動作することによって、所定の機能を実現するモジュールとして動作する。例えば、CPU111は、情報取得プログラムにしたがって動作することで情報取得モジュール126として機能する。他のプログラムについても同様である。
メモリ112は、CPU111が実行するプログラム及び情報を格納する。また、メモリ112は、プログラムが一時的に使用するワークエリアを含む。メモリ112に含まれるプログラム及び情報は後述する。
ネットワークインタフェース113は、IPネットワーク等を介して外部の装置と通信するためのインタフェースである。IOインタフェース114は、入力装置104及び表示装置105と接続するインタフェースである。なお、IOインタフェース114は、USBメモリ及び外部ストレージ装置等、外部の記憶媒体に接続してもよい。
ここで、入力装置104は、管理サーバ100にデータを入力するための装置である。キーボード、マウス、及びタッチパネル等を入力装置104として用いることができる。表示装置105は、管理サーバ100の処理結果等を表示するための装置である。ディスプレイ及びタッチパネル等を表示装置105として用いることができる。
図1では、各ハードウェアの数はそれぞれ一つであるが二つ以上であってもよい。例えば、管理サーバ100が複数のネットワークと接続する場合、管理サーバ100は、各ネットワークと接続する複数のネットワークインタフェース113を有してもよい。
ここで、メモリ112に格納されるプログラム及び情報について説明する。メモリ112は、制御モジュール120を実現するプログラム及び管理情報群130を格納する。
制御モジュール120は、管理サーバ100全体を制御するモジュールであり、複数のモジュールを含む。具体的には、制御モジュール120は、テスト実行モジュール121、静的分類モジュール122、動的分類モジュール123、グループ生成モジュール124、グループ評価モジュール125、情報取得モジュール126、及びコスト算出モジュール127を含む。
テスト実行モジュール121は、各モジュールと連携して、決定されたテスト環境にテストケースを実行させる。静的分類モジュール122は、テストケースによって定義されたテストの内容及び条件情報132に基づいて、各テストケースを実行するテスト環境の候補を選択する。動的分類モジュール123は、テスト環境の稼働状態等、テスト環境の状態及び条件情報132に基づいてテストケースを実行するテスト環境を決定する。以下の説明では、テストケースによって定義されたテストの内容をテストケース特性と記載する。
グループ生成モジュール124は、一つ以上のテストケースから構成されるテストケースグループを生成する。本実施例では、テストケースグループ単位でテストが行われる。グループ評価モジュール125は、静的分類モジュール122の処理結果に基づいて、テストケースグループを実行するテスト環境の候補を選択する。以下の説明では、テストケースグループを実行するテスト環境の候補を候補テスト環境と記載する。
情報取得モジュール126は、テスト環境の状態を示す状態情報を取得する。コスト算出モジュール127は、システム開発の実行コストを算出する。本実施例では、コスト算出モジュール127は、テスト環境の使用料金を算出する。
管理情報群130は、テストケース情報131、条件情報132、テスト環境情報133、ライセンス情報134、グループ情報135、及びテスト実行キュー情報136を含む。各情報の詳細は、図2から図7を用いて説明する。
なお、メモリ112に格納されるプログラム及び情報は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、不揮発性メモリ、ICカード、SDカード、DVD等の計算機が読み取り可能な非一時的記憶媒体、又は、外部ストレージ装置に格納されてもよい。この場合、CPU111は、外部ストレージ装置等からプログラム及び情報を読み出し、メモリ112にプログラム及び情報をロードする。
図2は、実施例1のテストケース情報131の一例を示す図である。なお、図2では、図面のスペースを考慮してテストケース情報131を二つのテーブルに分けているが、実際は一つのテーブルとして管理される。
テストケース情報131は、テストケースを管理する情報であり、テストケースID201、自動化202、性能203、独自機能204、重要度205、前提条件206、代替環境207、実行環境208、エラー209、予測時間210、システムID211、ユースケース/機能212、及びグルーピング213から構成されるエントリを含む。なお、エントリには、前述した以外のカラムが含まれてもよい。
テストケースID201は、テストケースを識別するための識別情報を格納する。テストケースID201は、テストケース情報131のエントリを識別するための識別情報としても用いられる。
自動化202は、テストケースが自動化できるか否かを示す情報を格納する。自動化202には、「可能」及び「不可能」のいずれかが格納される。
性能203は、テストケースで定義されたテストが性能テストであるか否かを示す情報を格納する。性能203には、「YES」及び「NO」のいずれかが格納される。性能テストは、本番環境におけるシステムの性能等を計測することを目的として行われる。そのため、性能テストは、本番環境と同等のステージング環境で行われる必要がある。なお、ステージング環境を用いる必要があるテストとしては、セキュリティの確認を目的としてテスト等が考えられる。
独自機能204は、テストケースで定義されたテストが商用ソフトウェアの独自機能を確認するテストであるか否かを示す情報を格納する。独自機能204には、「YES」及び「NO」のいずれかが格納される。
重要度205は、テストケースの実行順番(テストの実行順番)等を示す重要度を格納する。重要度は、バグの発生率の高さ又はシステム全体の影響度等を表すものである。重要度205には、「1」以上の整数が格納される。本実施例では、値が1に近いほど重要度が高いことを示す。ユーザが設定した値を重要度205に設定してもよいし、テストケース間の依存関係に基づいて算出された値を重要度205に設定してもよい。例えば、前提条件206に登録される数に基づいて値を設定する方法が考えられる。
前提条件206は、エントリに対応するテストケースを実行する前に実行する必要があるテストケースの識別情報を格納する。なお、事前に実行する必要があるテストケースが存在しない場合、前提条件206は空欄となる。例えば、データベースのレコードを追加するテストを定義する第1のテストケース、及び第1のテストケースにおいて追加されたレコードを削除するテストを定義する第2のテストケースがあった場合、第2のテストケースは、第1のテストケースが前提条件となる。したがって、第2のテストケースに対応するエントリの前提条件206には第1のテストケースの識別情報が格納される。
代替環境207は、テストケースを代替環境207で実行できるか否かを示す情報を格納する。代替環境207には、「可能」及び「不可能」のいずれかが格納される。
実行環境208は、前回、テストケースを実行したテスト環境の識別情報を格納する。実行環境208には、後述するテスト環境ID401(図4参照)に設定された識別情報が格納される。
エラー209は、テスト結果がテストケースにおいて期待された結果であるか否かを示す情報を格納する。テスト結果がテストケースにおいて期待された結果でない場合、エラー209には「エラー」が格納され、テスト結果がテストケースにおいて期待された結果である場合、エラー209は空欄である。
予測時間210は、テストケースによって定義されたテストの実行時間の予測値を格納する。前回、実行されたテストの実行時間が予測時間210に格納されてもよいし、また、これまで実行したテストの実行時間の統計値が予測時間210に格納されてもよい。ここで、統計値は、平均値、最高値、及び中央値等を示す。
システムID211は、テストケースで定義されたテストの対象となるシステム又はソフトウェアの識別情報を格納する。
ユースケース/機能212は、テストケースで定義されたテストの対象となる具体的な機能等の識別情報を格納する。
グルーピング213は、グループ生成モジュール124によって処理されたエントリであるか否かを示す情報を格納する。グルーピング213には、「実行済」及び「未実行」のいずれかが格納される。
本実施例では、自動化202、性能203、独自機能204、重要度205、及び前提条件206が、テストケース特性として用いられる。
図3は、実施例1の条件情報132の一例を示す図である。
条件情報132は、テストケースグループを実行するテスト環境を決定するための条件を管理する情報であり、条件ID301、条件種別302、項目303、及び条件304から構成されるエントリを含む。なお、エントリには、前述した以外のカラムが含まれてもよい。
条件ID301は、条件を一意に識別するための識別情報を格納する。
条件種別302は、条件の種別を示す情報を格納する。条件種別302には「静的」及び「動的」のいずれかが格納される。「静的」は静的分類モジュール122によって使用される条件であり、「動的」は動的分類モジュール123によって使用される条件である。以下の説明では、条件種別302に「静的」が設定されたエントリに対応する条件を静的条件と記載し、また、条件種別302に「動的」が設定されたエントリに対応する条件を静的条件と記載する。静的条件は、時間に依存しないパラメータ等の条件である。テストケース特性に関する条件が、主に、静的条件として設定される。また、動的条件は、時間に依存するパラメータ等の条件である。テスト環境の状態に関する条件が、主に、動的条件として設定される。
項目303は、条件の名称及び種別等を示す情報を格納する。項目303は、ユーザがユーザ要求を入力するためのGUI等に表示される。
条件304は、具体的な条件の内容を格納する。なお、本実施例では、説明のため文字列として条件を記載しているが、条件式等、文字列以外のデータが格納されてもよい。なお、条件304に設定する数値は、ユーザが決定してもよい。
図4は、実施例1のテスト環境情報133の一例を示す図である。
テスト環境情報133は、テスト環境の構成及びテスト環境の状態等を管理する情報であり、テスト環境ID401、テスト環境種別402、構成403、代替対象ソフトウェア404、CPU使用率405、及びメモリ使用率406から構成されるエントリを含む。なお、エントリには、前述した以外のカラムが含まれてもよい。
テスト環境ID401は、テスト環境を一意に識別する識別情報を格納する。
テスト環境種別402は、テスト環境の種別を示す情報を格納する。本実施例のテスト環境種別402には、「ステージング」及び「代替」のいずれかが格納される。
構成403は、テスト環境の構成情報を格納する。本実施例では、テスト環境において稼働するOS(Operating System)の種別が構成403に格納される。なお、構成403には、テスト環境のハードウェア構成及びソフトウェア構成等が格納されてもよい。
代替対象ソフトウェア404は、OSSと置き換える商用ソフトウェア又はOSSの識別情報を格納する。エントリのテスト環境種別402が「ステージング」の場合、代替対象ソフトウェア404には、OSSと置き換える商用ソフトウェアの識別情報が格納される。エントリのテスト環境種別402が「代替」の場合、代替対象ソフトウェア404には、OSSの識別情報が格納される。
CPU使用率405は、テスト環境を構成するサーバ等が有するCPUの使用率を格納する。例えば、サーバが物理サーバの場合、物理CPUの使用率がCPU使用率405に格納され、サーバがVMの場合、仮想CPUの使用率がCPU使用率405に格納される。
メモリ使用率406は、テスト環境を構成するサーバ等が有するメモリの使用率を格納する。例えば、サーバが物理サーバの場合、物理メモリの使用率がメモリ使用率406に格納され、サーバがVMの場合、仮想メモリの使用率がメモリ使用率406に格納される。
図5は、実施例1のライセンス情報134の一例を示す図である。
ライセンス情報134は、テスト環境において使用するソフトウェアのライセンス料を管理する情報であり、ライセンスID501、ソフトウェア502、使用状態503、テスト環境ID504、及び料金505から構成されるエントリを含む。なお、エントリには、前述した以外のカラムが含まれてもよい。
ライセンスID501は、ライセンスを一意に識別するための識別情報を格納する。
ソフトウェア502は、ライセンス対象のテスト環境に含まれるソフトウェアの識別情報を格納する。なお、クラウド型システム102のオプションサービスとしてソフトウェアが提供される場合、ソフトウェア502にはサービスの識別情報が格納される。
使用状態503は、ライセンスを使用しているか否かを示す情報を格納する。使用状態503には、「使用中」及び「未使用」のいずれかが格納される。
テスト環境ID504は、ライセンスを対象のテスト環境の識別情報を格納する。テスト環境ID504には、テスト環境ID401に設定された識別情報が格納される。
料金505は、ライセンス対象のテスト環境の使用料金を格納する。
図6は、実施例1のグループ情報135の一例を示す図である。
グループ情報135は、グループ生成モジュール124によって生成されるテストケースグループを管理する情報であり、グループID601、グループ重要度602、代替環境603、及びテストケース604から構成されるエントリを含む。なお、エントリには、前述した以外のカラムが含まれてもよい。
グループID601は、テストケースグループを一意に識別するための識別情報を格納する。
グループ重要度602は、テストケースグループの重要度を格納する。グループ重要度602は、テストケースグループ間の実行順番を決定するために用いられる。
代替環境603は、テストケースグループとして代替環境を使用できるか否を示す情報を格納する。代替環境603には「可能」及び「不可能」のいずれかが格納される。なお、代替環境603に設定する値は、テストケースグループに含まれるテストケースの代替環境207に基づいて決定される。本実施例では、候補テスト環境を特定する情報としてテスト環境の種別を用いているため、エントリは代替環境603を含む。
テストケース604は、テストケースグループを構成するテストケースの識別情報を格納する。テストケース604には、テストケースグループに含まれるテストケースの数だけ列が存在する。テストケース604の各列には、テストケースID201に設定された識別情報が格納される。本実施例では、テストケース604の左から順にテストケースが実行される。
図7は、実施例1のテスト実行キュー情報136の一例を示す図である。
テスト実行キュー情報136は、テストケースを登録するテスト実行キューを管理する情報であり、キューID701、テストケースID702、グループID703、及び実行環境ID704から構成されるエントリを含む。なお、エントリには、前述した以外のカラムが含まれてもよい。
キューID701は、キューを一意に識別するための識別情報を格納する。
テストケースID702は、キューに投入されたテストケースの識別情報を格納する。テストケースID702には、テストケースID201に設定された識別情報が格納される。
グループID703は、キューに投入されたテストケースが属するテストケースグループの識別情報を格納する。グループID703には、グループID601に設定された識別情報が格納される。
実行環境ID704は、テストケースに対応するテストを実行するテスト環境の識別情報を格納する。実行環境ID704には、テスト環境ID401に設定された識別情報が格納される。
図8A及び図8Bは、実施例1の管理サーバ100が実行する処理の流れを説明するシーケンス図である。
テスト実行モジュール121は、テスト(テストケースグループ)の開始契機を検出した場合(ステップS801)、静的分類モジュール122に開始命令を送信する(ステップS802)。また、テスト実行モジュール121は、ユーザに予算の入力するための画面を表示し、予算の入力を受け付ける。
テスト実行モジュール121は、ユーザが入力したテスト開始指示をテストの開始契機として検出してもよい。また、テスト実行モジュール121は、実行スケジュールに設定された時間を経過した場合、又は、テスト対象となるシステムがバージョン管理ソフトに対してソースをコミットした場合、テストが開始されたと判定してもよい。
なお、管理サーバ100が予算を管理する情報を保持している場合、予算を入力する画面が表示されなくてもよい。
静的分類モジュール122は、テスト実行モジュール121から開始命令を受信した場合、静的分類処理を実行する(ステップS803)。静的分類処理では、静的分類モジュール122は、テストケース特性に基づいて、各テストケースについて実行可能なテスト環境を選択する。静的分類処理の詳細は、図9を用いて説明する。
静的分類モジュール122は、静的分類処理が終了した後、テスト実行モジュール121に完了通知を送信する(ステップS804)。
テスト実行モジュール121は、静的分類モジュール122から完了通知を受信した場合、グループ生成モジュール124に開始命令を送信する(ステップS805)。
グループ生成モジュール124は、テスト実行モジュール121から開始命令を受信した場合、グループ生成処理を実行する(ステップS806)。グループ生成処理では、グループ生成モジュール124は、テストケースグループを生成する。グループ生成処理の詳細は、図10を用いて説明する。
グループ生成モジュール124は、グループ生成処理が終了した後、テスト実行モジュール121に完了通知を送信する(ステップS807)。
テスト実行モジュール121は、グループ生成モジュール124から完了通知を受信した場合、グループ評価モジュール125に開始命令を送信する(ステップS808)。
グループ評価モジュール125は、テスト実行モジュール121から開始命令を受信した場合、グループ評価処理を実行する(ステップS809)。グループ評価処理では、グループ評価モジュール125は、候補テスト環境を選択する。グループ評価処理の詳細は、図11を用いて説明する。
グループ評価モジュール125は、グループ評価処理が終了した後、テスト実行モジュール121に完了通知を送信する(ステップS810)。
テスト実行モジュール121は、グループ評価モジュール125から完了通知を受信した場合、動的分類モジュール123に開始命令を送信する(ステップS811)。
動的分類モジュール123は、テスト実行モジュール121から開始命令を受信した場合、動的分類処理を実行する(ステップS812)。動的分類処理では、動的分類モジュール123は、候補テスト環境の状態に基づいて、テストケースグループを実行するテスト環境を決定する。また、動的分類モジュール123は、テストケースグループに含まれるテストケースをテスト実行キューに登録する。動的分類処理の詳細は、図12A及び図12Bを用いて説明する。
動的分類モジュール123は、動的分類処理が終了した後、テスト実行モジュール121に完了通知を送信する(ステップS813)。
テスト実行モジュール121は、テスト実行キュー情報136を参照し、テスト実行キューに投入されたテストケースを実行する(ステップS814)。
以上の処理によって、テストケースグループを適切なテスト環境で実行させることができる。
図9は、実施例1の静的分類モジュール122が実行する静的分類処理の一例を説明するフローチャートである。
静的分類モジュール122は、テストケースのループ処理を開始する(ステップS901)。
具体的には、静的分類モジュール122は、テストケース情報131を参照し、ターゲットテストケースを一つ選択する。また、静的分類モジュール122は、条件情報132から条件種別302に「静的」が設定されたエントリを取得する。
なお、ループ処理では、テストケース情報131に登録された全てのテストケースの中からターゲットテストケースを選択してもよいし、変更したソフトウェアに関連するテストケースの中からターゲットテストケースを選択してもよい。変更したソフトウェアに関連するテストケースだけに絞り込むことによって処理負荷を低減できる。
ステップS903からステップS909までの処理では、静的分類モジュール122は、静的条件に基づいて、ターゲットテストケースを実行可能なテスト環境を選択する。
まず、静的分類モジュール122は、テストケース情報131を参照し、ターゲットテストケースに対応するエントリの自動化202が「可能」であるか否かを判定する(ステップS902)。
ターゲットテストケースに対応するエントリの自動化202が「不可能」であると判定された場合、静的分類モジュール122は、ステップS910に進む。この場合、当該エントリの代替環境207は「不可能」が設定される。
ターゲットテストケースに対応するエントリの自動化202が「可能」であると判定された場合、静的分類モジュール122は、代替環境でターゲットテストケースを実行できるか否かを判定する(ステップS903)。具体的には、以下のような処理が実行される。
静的分類モジュール122は、ターゲットテストケースに対応するエントリの性能203が「YES」であるか否かを判定する。
エントリの性能203が「YES」であると判定された場合、静的分類モジュール122は、代替環境でターゲットテストケースを実行できないと判定する。エントリの性能203が「NO」であると判定された場合、静的分類モジュール122は、エントリの独自機能204が「YES」であるか否かを判定する。
エントリの独自機能204が「YES」であると判定された場合、静的分類モジュール122は、代替環境でターゲットテストケースを実行できないと判定する。エントリの独自機能204が「NO」であると判定された場合、静的分類モジュール122は、代替環境でターゲットテストケースを実行できると判定する。以上がステップS903の処理の説明である。
代替環境でターゲットテストケースを実行できないと判定された場合、静的分類モジュール122は、ターゲットテストケースに対応するエントリの代替環境207に「不可能」を設定する(ステップS909)。その後、静的分類モジュール122は、ステップS910に進む。
代替環境でターゲットテストケースを実行できると判定された場合、静的分類モジュール122は、ステージング環境及び代替環境のそれぞれでテストケースを実行する(ステップS904)。静的分類モジュール122は、ステージング環境及び代替環境からテスト結果が出力されるまで待ち状態に移行する。
静的分類モジュール122は、ステージング環境及び代替環境からテスト結果が出力された場合、当該テスト結果に基づいて、テストケースを見直す必要があるか否かを判定する(ステップS905)。
具体的には、静的分類モジュール122は、テストケースにおいて期待された結果が出力されたか否かを判定する。
テストケースを見直す必要があると判定された場合、静的分類モジュール122は、ステップS910に進む。この場合、当該エントリの代替環境207には特に値が設定されなくてもよい。
テストケースを見直す必要がないと判定された場合、静的分類モジュール122は、ステージング環境及び代替環境のテスト結果が一致するか否かを判定する(ステップS906)。なお、テスト結果の一致は、完全一致でなくてもよく、類似する結果であればよい。
ステージング環境及び代替環境のテスト結果が一致しないと判定された場合、静的分類モジュール122は、エントリの代替環境207に「不可能」を設定する(ステップS909)。その後、静的分類モジュール122は、ステップS910に進む。
ステージング環境及び代替環境のテスト結果が一致すると判定された場合、静的分類モジュール122は、エントリの代替環境207に「可能」を設定する(ステップS907)。その後、静的分類モジュール122は、ステップS910に進む。
ステップS910では、静的分類モジュール122は、選択可能な全てのテストケースについて処理が完了したか否かを判定する(ステップS910)。
選択可能な全てのテストケースについて処理が完了していないと判定された場合、静的分類モジュール122は、ステップS901に戻り、新たなターゲットテストケースを選択し、同様の処理を実行する。
選択可能な全てのテストケースについて処理が完了したと判定された場合、静的分類モジュール122は、テストケースのループ処理を終了し、テスト実行モジュール121に完了通知を送信する(ステップS911)。その後、静的分類モジュール122は、静的分類処理を終了する。
以上の通り、静的分類モジュール122では、テストケース特性に基づいて、テストケースを実行可能なテスト環境を選択する。本実施例では、静的分類モジュール122は、代替環境が優先的に選択されるように制御する。これによって、テストケースの運用コストを低くできる。
なお、図9では、静的分類モジュール122は、ステージング環境及び代替環境のいずれかを選択しているが、これに限定されない。条件情報132に設定する条件を変更することによって、静的分類モジュール122は、様々な観点に基づいて、テスト環境を選択できる。
図10は、実施例1のグループ生成モジュール124が実行するグループ生成処理の一例を説明するフローチャートである。
グループ生成モジュール124は、テストケース情報131の全てのエントリのグルーピング213に「未実行」を設定する(ステップS1001)。
次に、グループ生成モジュール124は、前提条件206に登録されていないテストケースを特定する(ステップS1002)。
具体的には、グループ生成モジュール124は、各エントリの前提条件206を参照し、いずれのエントリの前提条件206にも登録されていないテストケースを特定する。前提条件206に登録されていないテストケースは、テストケースグループにおいて最後に実行されるテストケースに対応する。
次に、グループ生成モジュール124は、特定されたテストケースのループ処理を開始する(ステップS1003)。
具体的には、グループ生成モジュール124は、特定されたテストケースの中から一つのテストケースを選択し、ステップS1004からステップS1011までの処理を実行する。
グループ生成モジュール124は、選択されたテストケースをターゲットテストケースに設定し(ステップS1004)、また、ターゲットテストケースを含むテストケースグループを生成する(ステップS1005)。
具体的には、グループ生成モジュール124は、グループ情報135にエントリを追加し、追加されたエントリのグループID601に識別情報を設定する。グループ生成モジュール124は、テストケース604に列を追加し、ターゲットテストケースの識別情報を設定する。また、グループ生成モジュール124は、テストケース情報131を参照して、ターゲットテストケースのエントリのグルーピング213に「実行済」を設定する。
次に、グループ生成モジュール124は、ターゲットテストケースと依存関係があるテストケースが存在するか否かを判定する(ステップS1006)。
具体的には、グループ生成モジュール124は、前提条件206にターゲットテストケースの識別情報が格納されるエントリを検索する。当該エントリが存在しない場合、グループ生成モジュール124は、ターゲットテストケースと依存関係があるテストケースが存在しないと判定する。
ターゲットテストケースと依存関係があるテストケースが存在すると判定された場合、グループ生成モジュール124は、検索されたテストケースをテストケースグループに追加する(ステップS1007)。
具体的には、グループ生成モジュール124は、テストケース情報131からステップS1006において検索されたテストケースの識別情報を取得する。グループ生成モジュール124は、ステップS1005においてグループ情報135に追加されたエントリのテストケース604に取得されたテストケースの識別情報を追加する。なお、テストケースの識別情報は、右から順に設定される。すなわち、新たに設定されるテストケースの識別情報が最も右側になるように設定される。
次に、グループ生成モジュール124は、テストケース情報131を参照して、ターゲットテストケースのエントリのグルーピング213に「実行済」を設定する(ステップS1008)。なお、既にグルーピング213が「実行済」である場合、当該ステップを省略できる。
次に、グループ生成モジュール124は、ステップS1007において検索されたテストケースを新たなターゲットテストケースに設定する(ステップS1009)。その後、グループ生成モジュール124は、ステップS1006に戻り、同様の処理を実行する。
ステップS1006において、ターゲットテストケースと依存関係があるテストケースが存在しないと判定された場合、グループ生成モジュール124は、テストケース情報131を参照して、ターゲットテストケースのエントリのグルーピング213に「実行済」を設定する(ステップS1010)。なお、既にグルーピング213が「実行済」である場合、当該ステップを省略できる。
次に、グループ生成モジュール124は、ステップS1005において生成されたテストケースグループの重要度を算出する(ステップS1011)。具体的には、以下のような処理が実行される。
グループ生成モジュール124は、グループ情報135に追加されたエントリのテストケース604からテストケースグループに含まれるテストケースの識別情報を取得する。
グループ生成モジュール124は、テストケース情報131を参照して、テストケースID201が取得されたテストケースの識別情報に一致するエントリを検索し、検索されたエントリの重要度205から値を取得する。グループ生成モジュール124は、取得された値を用いてテストケースグループの重要度を算出する。例えば、テストケースの重要度の合計値、平均値、最大値、及び最小値等がテストケースグループの重要度として算出される。
グループ生成モジュール124は、グループ情報135に追加されたエントリのグループ重要度602に算出された重要度を設定する。以上がステップS1011の処理の説明である。
次に、グループ生成モジュール124は、ステップS1002において特定された全てのテストケースについて処理が完了したか否かを判定する(ステップS1012)。
ステップS1002において特定された全てのテストケースについて処理が完了していないと判定された場合、グループ生成モジュール124は、ステップS1003に戻り、特定されたテストケースの中から新たなテストケースを選択し、同様の処理を実行する。
ステップS1002において特定された全てのテストケースについて処理が完了したと判定された場合、グループ生成モジュール124は、テストケースのループ処理を終了し、テスト実行モジュール121に完了通知を送信する(ステップS1013)。その後、グループ生成モジュール124は、グループ生成処理を終了する。
図2に示すテストケース情報131の場合、ステップS1002において、「TC2」、「TC3」、及び「TC5」が特定される。「TC2」のテストケースグループは「TC2」及び「TC1」を含み、「TC3」のテストケースグループは「TC3」のみを含み、「TC5」のテストケースグループは「TC1」、「TC4」、及び「TC5」を含む。「TC1」は二つのテストケースグループに含まれる。
なお、グループ生成モジュール124は、変更したソフトウェアに関するテストケースのエントリのみについて、グルーピング213を「未実行」に設定してもよい。
以上の通り、グループ生成モジュール124は、テストケース間の依存関係に基づいて、一つ以上のテストケースを含むテストケースグループを生成できる。
図11は、実施例1のグループ評価モジュール125が実行するグループ評価処理の一例を説明するフローチャートである。
グループ評価モジュール125は、テストケースグループのループ処理を開始する(ステップS1101)。
具体的には、グループ評価モジュール125は、グループ情報135を参照し、ターゲットテストケースグループを一つ選択する。
次に、グループ評価モジュール125は、ステージング環境でのみ実行可能なテストケースがターゲットテストケースグループに含まれるか否かを判定する(ステップS1102)。具体的には、以下のような処理が実行される。
グループ評価モジュール125は、グループ情報135を参照し、ターゲットテストケースグループのエントリのテストケース604からテストケースの識別情報を取得する。グループ評価モジュール125は、テストケース情報131を参照し、テストケースID201が取得されたテストケースの識別情報と一致するエントリを検索する。
グループ評価モジュール125は、検索されたエントリの代替環境207を参照し、代替環境207が「不可能」であるエントリが存在するか否かを判定する。代替環境207が「不可能」であるエントリが存在する場合、グループ評価モジュール125は、ステージング環境でのみ実行可能なテストケースがターゲットテストケースグループに含まれると判定する。以上がステップS1102の処理の説明である。
ステージング環境でのみ実行可能なテストケースがターゲットテストケースグループに含まれないと判定された場合、グループ評価モジュール125は、グループ情報135を参照し、ターゲットテストケースグループのエントリの代替環境603に「可能」を設定する(ステップS1103)。すなわち、代替環境がターゲットテストケースグループの候補テスト環境として選択される。その後、グループ評価モジュール125は、ステップS1105に進む。
ステージング環境でのみ実行可能なテストケースがターゲットテストケースグループに含まれると判定された場合、グループ評価モジュール125は、グループ情報135を参照し、ターゲットテストケースグループのエントリの代替環境603に「不可能」を設定する(ステップS1104)。すなわち、ステージング環境がターゲットテストケースグループの候補テスト環境として選択される。その後、グループ評価モジュール125は、ステップS1105に進む。
ステップS1105では、グループ評価モジュール125は、全てのテストケースグループについて処理が完了したか否かを判定する(ステップS1105)。
全てのテストケースグループについて処理が完了していないと判定された場合、グループ評価モジュール125は、ステップS1101に戻り、新たなターゲットテストケースグループを選択し、同様の処理を実行する。
全てのテストケースグループについて処理が完了したと判定された場合、グループ評価モジュール125は、テストケースグループのループ処理を終了し、テスト実行モジュール121に完了通知を送信する(ステップS1106)。その後、グループ評価モジュール125は、グループ評価処理を終了する。
図12A及び図12Bは、実施例1の動的分類モジュール123が実行する動的分類処理の一例を説明するフローチャートである。
動的分類モジュール123は、グループ情報135のエントリをグループ重要度の高い順に並び替える(ステップS1201)。本実施例では、値が小さいほど重要度が高いことから、グループ重要度602の値が小さい順にエントリが並び替えられる。ステップS1201の処理は、重要度の高いテストケースを優先的に実行するための処理である。
次に、動的分類モジュール123は、テストケースグループのループ処理を開始する(ステップS1202)。
具体的には、動的分類モジュール123は、グループ情報135を参照し、ターゲットテストケースを一つ選択する。また、動的分類モジュール123は、条件情報132から条件種別302に「動的」が設定されたエントリを取得する。
ステップS1203からステップS1212では、動的分類モジュール123は、動的条件に基づいて、選択されたテストケースグループを実行するテスト環境を決定する。
次に、動的分類モジュール123は、グループ情報135を参照し、ターゲットテストケースグループに対応するエントリの代替環境603が「可能」であるか否かを判定する(ステップS1203)。すなわち、代替環境が候補テスト環境であるか否かが判定される。当該処理は、候補テスト環境を特定するための処理である。
ターゲットテストケースグループに対応するエントリの代替環境603が「不可能」であると判定された場合、動的分類モジュール123は、テスト環境情報133を参照し、ターゲットテストケースグループを実行するステージング環境を決定する(ステップS1205)。その後、動的分類モジュール123は、ステップS1211に進む。具体的には、以下のような処理が実行される。
動的分類モジュール123は、テスト環境情報133を参照し、テスト環境種別402が「ステージング」であるエントリを検索する。動的分類モジュール123は、検索されたエントリのCPU使用率405及びメモリ使用率406を取得する。動的分類モジュール123は、取得されたCPU使用率及びメモリ使用率に基づいて、項目303が「稼働状態」である動的条件を満たすステージング環境を特定する。
動的分類モジュール123は、特定されたステージング環境の中からCPU使用率が最も小さいステージング環境を選択する。動的分類モジュール123は、選択されたステージング環境を、選択されたテストケースグループを実行するステージング環境に決定する。なお、前述した処理は一例であってこれに限定されない。以上がステップS1205の処理の説明である。
ターゲットテストケースグループに対応するエントリの代替環境603が「可能」であると判定された場合、動的分類モジュール123は、代替環境を使用できるか否かを判定する(ステップS1204)。
具体的には、動的分類モジュール123は、条件情報132を参照し、条件種別302が「動的」かつ項目303が「スケジュール」であるエントリの条件304に設定されたスケジュールに基づいて、代替環境を使用できるか否かを判定する。例えば、動的分類モジュール123は、現在時刻又はテストケースグループの開始予定時刻と、スケジュールとを比較することによって、代替環境を使用できるか否かを判定できる。
代替環境を使用できないと判定された場合、動的分類モジュール123は、ステップS1205に進む。
代替環境を使用できると判定された場合、動的分類モジュール123は、ターゲットテストケースグループを実行する代替環境を決定する(ステップS1206)。
具体的には、動的分類モジュール123は、テスト環境情報133を参照し、テスト環境種別402が「代替」であるエントリを検索する。動的分類モジュール123は、検索されたエントリのCPU使用率405又はメモリ使用率406の値が最も小さい代替環境を選択する。動的分類モジュール123は、選択された代替環境を、ターゲットテストケースグループを実行する代替環境に決定する。以上がステップS1206の処理の説明である。
次に、動的分類モジュール123は、決定された代替環境にテストに必要なリソースが存在するか否かを判定する(ステップS1207)。
具体的には、動的分類モジュール123は、テスト環境情報133を参照し、決定された代替環境に対応するエントリのCPU使用率405及びメモリ使用率406の値を取得する。動的分類モジュール123は、取得されたCPU使用率及びメモリ使用率に基づいて、項目303が「稼働状態」である動的条件を満たすか否かを判定する。項目303が「稼働状態」である動的条件を満たさない場合、動的分類モジュール123は、決定された代替環境にテストに必要なリソースが存在しないと判定する。
決定された代替環境にテストに必要なリソースが存在すると判定された場合、動的分類モジュール123は、ステップS1211に進む。
決定された代替環境にテストに必要なリソースが存在しないと判定された場合、動的分類モジュール123は、コスト算出モジュール127を呼び出す(ステップS1208)。このとき、動的分類モジュール123は、ターゲットテストケースグループの識別情報をコスト算出モジュール127に入力する。動的分類モジュール123は、コスト算出モジュール127から使用料金を含む応答を受信するまで待ち状態に移行する。コスト算出モジュール127が実行する処理は、図14を用いて説明する。
動的分類モジュール123は、コスト算出モジュール127から使用料金を含む応答を受信した場合、予算内で代替環境の構成を追加できるか否かを判定する(ステップS1209)。
具体的には、動的分類モジュール123は、使用料金が予算以下であるか否かを判定する。使用料金が予算以下である場合、動的分類モジュール123は、予算内で代替環境を追加できると判定する。
予算内で代替環境を追加できないと判定された場合、動的分類モジュール123は、ステップS1211に進む。
予算内で代替環境を追加できると判定された場合、動的分類モジュール123は、テスト環境を追加し(ステップS1210)、追加されたテスト環境を、選択されたテストケースグループを実行するテスト環境に決定する。その後、動的分類モジュール123は、ステップS1211に進む。テスト環境の追加方法は公知の技術を用いればよいため説明を省略する。
なお、本実施例では、代替環境の使用料金はステージング環境より使用料金が低いため、通常、ステップS1210では代替環境が生成される。
ステップS1203からステップS1210に示すように、動的分類モジュール123は、動的条件に基づいてテストケースグループを実行するテスト環境を決定する。
ステップS1211では、動的分類モジュール123は、ターゲットテストケースグループに含まれるテストケースのループ処理を開始する(ステップS1211)。
具体的には、動的分類モジュール123は、グループ情報135を参照し、ターゲットテストケースグループのエントリのテストケース604に設定されたテストケースの識別情報(ターゲットテストケース)を一つ選択する。このとき、動的分類モジュール123は、テストケースの実行順にテストケースの識別情報を選択する。すなわち、左から順にテストケースの識別情報が選択される。テストケース604には、テストケースの実行順とは逆の順番でテストケースが設定されているためである。
次に、動的分類モジュール123は、ターゲットテストケースをテスト実行キュー情報136に登録する(ステップS1212)。
具体的には、動的分類モジュール123は、テスト実行キュー情報136にエントリを追加し、追加されたエントリのキューID701に識別情報を設定する。また、動的分類モジュール123は、テストケースID702にターゲットテストケースの識別情報を設定し、グループID703にターゲットテストケースグループの識別情報を設定する。さらに、動的分類モジュール123は、追加されたエントリの実行環境ID704に決定されたテスト環境の識別情報を設定する。
次に、動的分類モジュール123は、ターゲットテストケースグループに含まれる全てのテストケースについて処理が完了したか否かを判定する(ステップS1213)。
ターゲットテストケースグループに含まれる全てのテストケースについて処理が完了していないと判定された場合、動的分類モジュール123は、ステップS1211に戻り、新たなターゲットテストケースを選択し、同様の処理を実行する。
ターゲットテストケースグループに含まれる全てのテストケースについて処理が完了したと判定された場合、動的分類モジュール123は、全てのテストケースグループについて処理が完了したか否かを判定する(ステップS1214)。
全てのテストケースグループについて処理が完了していないと判定された場合、動的分類モジュール123は、ステップS1202に戻り、新たにターゲットテストケースグループを選択し、同様の処理を実行する。
全てのテストケースグループについて処理が完了したと判定された場合、動的分類モジュール123は、テスト実行モジュール121に完了通知を送信する(ステップS1216)。その後、動的分類モジュール123は、動的分類処理を終了する。
以上の通り、動的分類モジュール123は、動的条件に基づいて、実際にテストケースグループを実行するテスト環境を決定できる。
図13は、実施例1の情報取得モジュール126が実行する処理の一例を説明するフローチャートである。
情報取得モジュール126は、周期的に、又は、テスト実行モジュール121から開始命令を受け付けた場合に、以下で説明する処理を開始する。
情報取得モジュール126は、テスト環境のループ処理を開始する(ステップS1301)。
具体的には、情報取得モジュール126は、テスト環境情報133を参照し、ターゲットテスト環境を一つ選択する。
情報取得モジュール126は、ターゲットテスト環境から、当該テスト環境の稼働状態を示す状態情報を取得する(ステップS1302)。
テスト環境の状態とは、CPU使用率、メモリ使用率、ネットワーク帯域、IO性能等を示す。なお、状態情報を取得する方法は公知であるため詳細な説明を省略する。
次に、情報取得モジュール126は、取得された状態情報をテスト環境情報133に登録する(ステップS1303)。本実施例では、ターゲットテスト環境のエントリのCPU使用率405及びメモリ使用率406に値が設定される。
次に、情報取得モジュール126は、全てのテスト環境について処理が完了したか否かを判定する(ステップS1304)。
全てのテスト環境について処理が完了していないと判定された場合、情報取得モジュール126は、ステップS1301に戻り、新たなターゲットテスト環境を選択し、同様の処理を実行する。
全てのテスト環境について処理が完了したと判定された場合、情報取得モジュール126は、処理を終了する。
以上の通り、情報取得モジュール126は、テスト環境の状態情報を取得できる。
図14は、実施例1のコスト算出モジュール127が実行する処理の一例を説明するフローチャートである。
コスト算出モジュール127は、ステップS1202において選択されたターゲットテストケースグループを実行する代替環境の利用料金(運用コスト)を算出する(ステップS1401)。具体的には、以下のような処理が実行される。
コスト算出モジュール127は、グループ情報135を参照し、ステップS1202において選択されたテストケースグループのエントリのテストケース604からテストケースの識別情報を取得する。
コスト算出モジュール127は、テストケース情報131を参照し、テストケースID201が取得されたテストケースの識別情報と一致するエントリの予測時間210の値を取得する。コスト算出モジュール127は、取得された値を合計することによってテストケースグループの予測時間を算出する。
コスト算出モジュール127は、ライセンス情報134を参照し、各エントリの料金505の値を取得する。コスト算出モジュール127は、単位時間当たりの料金に予測時間を乗算することによって、各テスト環境の使用料金を算出する。以上がステップS1401の処理の説明である。
コスト算出モジュール127は、使用料金が最も低いテスト環境を選択し、動的分類モジュール123に選択されたテスト環境の識別情報及び使用料金を出力する(ステップS1402)。その後、コスト算出モジュール127は、処理を終了する。
動的分類モジュール123は、テスト環境の識別情報に基づいて、決定されたテスト環境と同等の構成のテスト環境を追加することができる。
実施例1では、ユーザが運用コストの削減を要求した場合のテスト環境の決定方法について説明した。なお、管理サーバ100は、ユーザ要求に応じて決定するテスト環境を変更できる。一般化した場合の情報及び処理の内容について説明する。
テストケース情報131の代替環境207は、選択テスト環境IDに置き換えられる。選択テスト環境IDには、テストケースを実行できるテスト環境の識別情報が格納さる。グループ情報135の代替環境603は、候補テスト環境IDに置き換えられる。候補テスト環境IDには、具体的なテスト環境の識別情報又はテスト環境の種別が格納される。
グループ評価モジュール125は、ステップS1102からステップS1104の代わりに、選択テスト環境IDに設定されたテスト環境の中から候補テスト環境を選択する。また、グループ評価モジュール125は、グループ情報135の候補テスト環境IDに選択された候補テスト環境の識別情報を設定する。例えば、処理コストの削減を目的としたユーザ要求の場合、全てのテストケースを実行可能なテスト環境であり、かつ、CPU使用率が最も小さいテスト環境が選択される。
動的分類モジュール123は、ステップS1203において、グループ情報135を参照し、候補テスト環境を特定する。動的分類モジュール123は、ステップS1206において、候補テスト環境以外のテスト環境の中から動的条件に基づいて、テスト環境を検索し、検索されたテスト環境の中から実行テスト環境を決定する。
ここで、実施例1で説明した以外のユーザ要求の処理例について説明する。例えば、テスト時間の削減(処理コストの削減)を目的とする場合、静的条件は変更せず、動的条件を「CPU使用率<30%かつメモリ使用率30%」、「テスト環境=2」と設定する方法が考えられる。前述した条件の場合、管理サーバ100は、代替環境を候補テスト環境に設定し、当該候補テスト環境の中から使用するリソース量が低い代替環境を二つ選択する。
また、静的条件としてソフトウェアの名称又は機能の種別等を設定してもよい。これによって、指定されたソフトウェア又は機能を有するテスト環境を候補テスト環境に設定できる。
実施例1によれば、管理サーバ100は、テストの内容に基づいてテストケースグループを実行する候補テスト環境を選択し、さらに、テスト環境の状態及びユーザ要求に基づいてテストケースグループを実行するテスト環境を決定できる。
予め候補テスト環境が決定されているため、管理サーバ100は、テスト環境を迅速に決定できる。また、管理サーバ100は、テスト環境の状態に応じて、ユーザ要求に合致したテスト環境を決定できる。
例えば、ユーザが運用コストの削減を要求している場合、管理サーバ100は、代替環境を選択する。ユーザがテスト時間の削減を要求している場合、管理サーバ100は、使用リソース量が少ないテスト環境、又は、負荷が低いテスト環境を選択する。
実施例2では、オンプレミス型システム101及びクラウド型システム102のそれぞれにテスト環境が生成される点が異なる。
実施例2の計算機システムの構成及び管理サーバ100の構成は実施例1と同一である。テストケース情報131、ライセンス情報134、グループ情報135、及びテスト実行キュー情報136は実施例1と同一である。実施例2では、条件情報132及びテスト環境情報133が異なる。
実施例2では、テスト環境情報133にシステム種別のカラムが新たに追加される。当該カラムには、例えば、「オンプレミス」及び「クラウド」のいずれかが格納される。これによって、どのシステム上に生成されたテスト環境であるかを識別できる。
実施例2では、テストに要する使用料金の削減を目的とする場合、条件情報132には静的条件として「オンプレミス」が設定される。オンプレミス型システム101を使用した方が料金を削減できるためである。
実施例2の各モジュールが実行する処理の流れは実施例1と同一である。ただし、静的分類モジュール122及び動的分類モジュール123が実行する処理が一部異なる。
具体的には、静的分類モジュール122は、オンプレミス型システム101上のテスト環境を候補テスト環境に選択する。また、動的分類モジュール123は、オンプレミス型システム101上のテスト環境の中からテストケースグループを実行するテスト環境を決定する。オンプレミス型システム101上のテスト環境が不足している場合、動的分類モジュール123は、クラウド型システム102上のテスト環境の中からテストケースグループを実行するテスト環境を決定する。
前述した制御を実現するためには、例えば、ステップS1208において、動的分類モジュール123は、オンプレミス型システム101に項目303が「稼働状態」である動的条件を満たすテスト環境を生成できるか否かを判定する。
当該判定結果がYESの場合、動的分類モジュール123は、ステップS1211に進む。当該判定結果がNOの場合、動的分類モジュール123は、ステップS1209に進む。このとき、動的分類モジュール123は、システム種別「クラウド」をコスト算出モジュール127に入力する。
実施例2も実施例1と同様の効果を有する。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
Claims (14)
- 一つ以上のテストケースを含むテストケースグループを実行する複数のテスト環境が構築された計算機システムと接続する管理計算機であって、
前記計算機システムは、複数の計算機を含み、
前記管理計算機は、
プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有し、
前記テストケースグループの識別情報、及び前記テストケースグループに含まれるテストケースの特性に基づいて決定された候補テスト環境の識別情報から構成されるエントリを含むグループ情報と、前記テスト環境の状態に関する条件である動的条件を含む条件情報と、を保持し、
前記プロセッサは、
第1のテストケースグループの実行契機を検出した場合、前記グループ情報を参照して前記第1のテストケースグループの候補テスト環境を特定し、
前記候補テスト環境の状態を示す状態情報を取得し、
前記条件情報及び前記状態情報に基づいて、前記候補テスト環境の中から前記第1のテストケースグループを実行する実行テスト環境を決定することを特徴とする管理計算機。 - 請求項1に記載の管理計算機であって、
前記管理計算機は、前記テスト環境の構成及び状態を管理するテスト環境情報を保持し、
前記プロセッサは、
前記テスト環境情報を参照して、前記動的条件を満たす前記候補テスト環境が存在するか否かを判定し、
前記動的条件を満たす前記候補テスト環境が存在すると判定された場合、前記動的条件を満たす前記候補テスト環境の中から前記実行テスト環境を決定することを特徴とする管理計算機。 - 請求項2に記載の管理計算機であって、
前記プロセッサは、
前記動的条件を満たす前記候補テスト環境が存在しないと判定された場合、前記候補テスト環境の構成及び前記動的条件に基づいて、前記動的条件を満たすテスト環境を生成し、
前記生成されたテスト環境を前記実行テスト環境に決定することを特徴とすることを特徴とする管理計算機。 - 請求項3に記載の管理計算機であって、
前記第1のテストケースグループは、複数のテストケースを含み、
前記条件情報は、前記テストケースの特性に関する条件である静的条件を含み、
前記プロセッサは、
前記第1のテストケースグループに含まれる各テストケースの特性を解析し、
前記解析の結果及び前記静的条件に基づいて前記候補テスト環境を選択し、
前記第1のテストケースグループの識別情報、及び前記選択された候補テスト環境の識別情報から構成されるエントリを前記グループ情報に登録することを特徴とする管理計算機。 - 請求項4に記載の管理計算機であって、
前記管理計算機は、前記テストケースの識別情報、前記テストケース間の依存関係、及び前記テストケースを実行可能なテスト環境の識別情報から構成されるエントリを含むテストケース情報を保持し、
前記プロセッサは、
前記テストケース情報によって管理される複数のテストケースの各々について、前記静的条件を満たすテスト環境を特定し、
前記テストケース間の依存関係に基づいて前記第1のテストケースグループを生成し、
前記第1のテストケースグループに含まれる各テストケースの前記静的条件を満たすテスト環境の中から前記候補テスト環境を選択し、
前記テストケースグループの識別情報、及び前記候補テスト環境の識別情報から構成されるエントリを前記グループ情報に登録することを特徴とする管理計算機。 - 請求項3に記載の管理計算機であって、
前記管理計算機は、前記テスト環境の利用料金を算出するためのコスト情報を保持し、
前記動的条件は、前記テスト環境のリソースの使用率を指定する条件を含み、
前記複数のテスト環境は、第1のテスト環境、及び前記第1のテスト環境より前記テストケースの実行に要するコストが低い第2のテスト環境を含み、
前記プロセッサは、
前記第1のテストケースグループの前記候補テスト環境が前記第2のテスト環境である場合、前記第2のテスト環境の状態を示す状態情報を取得し、
前記状態情報及び前記動的条件に基づいて、前記第2のテスト環境を用いて前記第1のテストケースグループを実行できるか否かを判定し、
前記第2のテスト環境を用いて前記第1のテストケースグループを実行できないと判定された場合、前記コスト情報に基づいて前記候補テスト環境と同一のテスト環境を追加するためのコストを算出し、
前記コストが閾値以下であると判定された場合、新たに第2のテスト環境を追加し、当該第2のテスト環境を前記実行テスト環境に決定することを特徴とする管理計算機。 - 請求項6に記載の管理計算機であって、
前記動的条件は、前記第2のテスト環境が使用可能な時間を示す条件を含み、
前記プロセッサは、
前記第1のテストケースグループの前記候補テスト環境が前記第2のテスト環境である場合、前記第2のテスト環境を使用できる時間帯であるか否かを判定し、
前記第2のテスト環境を使用できる時間帯であると判定された場合、前記第2のテスト環境を前記実行テスト環境に決定し、
前記第2のテスト環境を使用できる時間帯でないと判定された場合、前記第1のテスト環境を前記実行テスト環境に決定することを特徴とする管理計算機。 - 一つ以上のテストケースを含むテストケースグループを実行する複数のテスト環境が構築された計算機システムと接続する管理計算機におけるテスト環境決定方法であって、
前記計算機システムは、複数の計算機を含み、
前記管理計算機は、
プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有し、
前記テストケースグループの識別情報、及び前記テストケースグループに含まれるテストケースの特性に基づいて決定された候補テスト環境の識別情報から構成されるエントリを含むグループ情報と、前記テスト環境の状態に関する条件である動的条件を含む条件情報と、を保持し、
前記テスト環境決定方法は、
前記プロセッサが、第1のテストケースグループの実行契機を検出した場合、前記グループ情報を参照して前記第1のテストケースグループの候補テスト環境を特定する第1のステップと、
前記プロセッサが、前記候補テスト環境の状態を示す状態情報を取得する第2のステップと、
前記プロセッサが、前記条件情報及び前記状態情報に基づいて、前記候補テスト環境の中から前記第1のテストケースグループを実行する実行テスト環境を決定する第3のステップと、を含むことを特徴とするテスト環境決定方法。 - 請求項8に記載のテスト環境決定方法であって、
前記管理計算機は、前記テスト環境の構成及び状態を管理するテスト環境情報を保持し、
前記第3のステップは、
前記プロセッサが、前記テスト環境情報を参照して、前記動的条件を満たす前記候補テスト環境が存在するか否かを判定するステップと、
前記動的条件を満たす前記候補テスト環境が存在すると判定された場合、前記プロセッサが、前記動的条件を満たす前記候補テスト環境の中から前記実行テスト環境を決定するステップと、を含むことを特徴とするテスト環境決定方法。 - 請求項9に記載のテスト環境決定方法であって、
前記第3のステップは、
前記動的条件を満たす前記候補テスト環境が存在しないと判定された場合、前記プロセッサが、前記候補テスト環境の構成及び前記動的条件に基づいて、前記動的条件を満たすテスト環境を生成するステップと、
前記プロセッサが、前記生成されたテスト環境を前記実行テスト環境に決定するステップと、を含むことを特徴とすることを特徴とするテスト環境決定方法。 - 請求項10に記載のテスト環境決定方法であって、
前記第1のテストケースグループは、複数のテストケースを含み、
前記条件情報は、前記テストケースの特性に関する条件である静的条件を含み、
前記テスト環境決定方法は、
前記プロセッサが、前記第1のテストケースグループに含まれる各テストケースの特性を解析するステップと、
前記プロセッサが、前記解析の結果及び前記静的条件に基づいて前記候補テスト環境を選択するステップと、
前記プロセッサが、前記第1のテストケースグループの識別情報、及び前記選択された候補テスト環境の識別情報から構成されるエントリを前記グループ情報に登録するステップと、を含むことを特徴とするテスト環境決定方法。 - 請求項11に記載のテスト環境決定方法であって、
前記管理計算機は、前記テストケースの識別情報、前記テストケース間の依存関係、及び前記テストケースを実行可能なテスト環境の識別情報から構成されるエントリを含むテストケース情報を保持し、
前記テスト環境決定方法は、
前記プロセッサが、前記テストケース情報によって管理される複数のテストケースの各々について、前記静的条件を満たすテスト環境を特定するステップと、
前記プロセッサが、前記テストケース間の依存関係に基づいて前記第1のテストケースグループを生成するステップと、
前記プロセッサが、前記第1のテストケースグループに含まれる各テストケースの前記静的条件を満たすテスト環境の中から前記候補テスト環境を選択するステップと、
前記プロセッサが、前記テストケースグループの識別情報、及び前記候補テスト環境の識別情報から構成されるエントリを前記グループ情報に登録するステップと、を含むことを特徴とするテスト環境決定方法。 - 請求項10に記載のテスト環境決定方法であって、
前記管理計算機は、前記テスト環境の利用料金を算出するためのコスト情報を保持し、
前記動的条件は、前記テスト環境のリソースの使用率を指定する条件を含み、
前記複数のテスト環境は、第1のテスト環境、及び前記第1のテスト環境より前記テストケースの実行に要するコストが低い第2のテスト環境を含み、
前記第2のステップは、前記プロセッサが、前記第1のテストケースグループの前記候補テスト環境が前記第2のテスト環境である場合、前記第2のテスト環境の状態を示す状態情報を取得するステップを含み、
前記第3のステップは、
前記プロセッサが、前記状態情報及び前記動的条件に基づいて、前記第2のテスト環境を用いて前記第1のテストケースグループを実行できるか否かを判定するステップと、
前記第2のテスト環境を用いて前記第1のテストケースグループを実行できないと判定された場合、前記プロセッサが、前記コスト情報に基づいて前記候補テスト環境と同一のテスト環境を追加するためのコストを算出するステップと、
前記コストが閾値以下であると判定された場合、前記プロセッサが、新たに第2のテスト環境を追加し、当該第2のテスト環境を前記実行テスト環境に決定するステップと、を含むことを特徴とするテスト環境決定方法。 - 請求項13に記載のテスト環境決定方法であって、
前記動的条件は、前記第2のテスト環境が使用可能な時間を示す条件を含み、
前記第3のステップは、
前記プロセッサが、前記第1のテストケースグループの前記候補テスト環境が前記第2のテスト環境である場合、前記第2のテスト環境を使用できる時間帯であるか否かを判定するステップと、
前記第2のテスト環境を使用できる時間帯であると判定された場合、前記プロセッサが、前記第2のテスト環境を前記実行テスト環境に決定するステップと、
前記第2のテスト環境を使用できる時間帯でないと判定された場合、前記プロセッサが、前記第1のテスト環境を前記実行テスト環境に決定するステップと、を含むことを特徴とするテスト環境決定方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/079330 WO2018066040A1 (ja) | 2016-10-03 | 2016-10-03 | 管理計算機及びテスト環境決定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018066040A1 true JPWO2018066040A1 (ja) | 2019-07-11 |
JP6695437B2 JP6695437B2 (ja) | 2020-05-20 |
Family
ID=61832054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018543496A Active JP6695437B2 (ja) | 2016-10-03 | 2016-10-03 | 管理計算機及びテスト環境決定方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6695437B2 (ja) |
WO (1) | WO2018066040A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7200659B2 (ja) * | 2018-12-21 | 2023-01-10 | 富士通株式会社 | 決定方法、決定装置及び決定プログラム |
JP7161936B2 (ja) * | 2018-12-27 | 2022-10-27 | 日立Astemo株式会社 | テスト環境決定装置及びテスト環境決定方法 |
CN110333999B (zh) * | 2019-05-06 | 2021-02-23 | 盛威时代科技集团有限公司 | 一种用于手机客户端进行测试环境切换的方法 |
CN110347584B (zh) * | 2019-05-27 | 2023-11-07 | 平安银行股份有限公司 | 信用卡策略包的测试调整方法、装置、电子设备及介质 |
CN110413528B (zh) * | 2019-07-31 | 2023-12-22 | 中国工商银行股份有限公司 | 测试环境智能配置方法及系统 |
CN110569188A (zh) * | 2019-08-14 | 2019-12-13 | 平安普惠企业管理有限公司 | 自动切换测试环境的方法、装置、计算机设备及存储介质 |
CN113596871A (zh) * | 2021-07-05 | 2021-11-02 | 哲库科技(上海)有限公司 | 一种测试方法、服务器及计算机存储介质 |
WO2023162272A1 (ja) * | 2022-02-28 | 2023-08-31 | 日本電気株式会社 | テスト支援装置、システム、及び、方法、並びに、コンピュータ可読媒体 |
CN114637691A (zh) * | 2022-05-17 | 2022-06-17 | 云账户技术(天津)有限公司 | 一种测试用例的管理方法及装置 |
US20240253644A1 (en) * | 2023-02-01 | 2024-08-01 | Hitachi, Ltd. | Detecting anomalies in vehicle artificial intelligence systems |
CN116225944B (zh) * | 2023-03-09 | 2024-05-07 | 矩阵时光数字科技有限公司 | 一种预置组网环境的软件测试系统和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1069402A (ja) * | 1996-08-29 | 1998-03-10 | Nippon Telegr & Teleph Corp <Ntt> | ソフトウェアの自動試験制御方法 |
US20070168970A1 (en) * | 2005-11-07 | 2007-07-19 | Red Hat, Inc. | Method and system for automated distributed software testing |
US20120144370A1 (en) * | 2010-12-01 | 2012-06-07 | Sap Ag | System and method for reversibility categories and characteristics |
WO2013073504A1 (ja) * | 2011-11-15 | 2013-05-23 | 独立行政法人科学技術振興機構 | プログラム解析・検証サービス提供システム、その制御方法、制御プログラム、コンピュータを機能させるための制御プログラム、プログラム解析・検証装置、プログラム解析・検証ツール管理装置 |
-
2016
- 2016-10-03 JP JP2018543496A patent/JP6695437B2/ja active Active
- 2016-10-03 WO PCT/JP2016/079330 patent/WO2018066040A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1069402A (ja) * | 1996-08-29 | 1998-03-10 | Nippon Telegr & Teleph Corp <Ntt> | ソフトウェアの自動試験制御方法 |
US20070168970A1 (en) * | 2005-11-07 | 2007-07-19 | Red Hat, Inc. | Method and system for automated distributed software testing |
US20120144370A1 (en) * | 2010-12-01 | 2012-06-07 | Sap Ag | System and method for reversibility categories and characteristics |
WO2013073504A1 (ja) * | 2011-11-15 | 2013-05-23 | 独立行政法人科学技術振興機構 | プログラム解析・検証サービス提供システム、その制御方法、制御プログラム、コンピュータを機能させるための制御プログラム、プログラム解析・検証装置、プログラム解析・検証ツール管理装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2018066040A1 (ja) | 2018-04-12 |
JP6695437B2 (ja) | 2020-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6695437B2 (ja) | 管理計算機及びテスト環境決定方法 | |
US11442764B2 (en) | Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment | |
JP6939132B2 (ja) | アプリケーション・プロファイリング・ジョブ管理システム、プログラム、及び方法 | |
Yadwadkar et al. | Selecting the best vm across multiple public clouds: A data-driven performance modeling approach | |
US10922654B2 (en) | Software assurance and trust in a distributed delivery environment | |
Bux et al. | DynamicCloudSim: Simulating heterogeneity in computational clouds | |
US20170031712A1 (en) | Data-aware workload scheduling and execution in heterogeneous environments | |
US8386636B2 (en) | Business process system management method | |
US11675575B2 (en) | Checking source code validity at time of code update | |
US11188348B2 (en) | Hybrid computing device selection analysis | |
US9582270B2 (en) | Effective feature location in large legacy systems | |
US9898258B2 (en) | Versioning of build environment information | |
US10521272B1 (en) | Testing in grid computing systems | |
US10248554B2 (en) | Embedding profile tests into profile driven feedback generated binaries | |
Albonico et al. | A DSL-based approach for elasticity testing of cloud systems | |
US11947966B2 (en) | Identifying computer instructions enclosed by macros and conflicting macros at build time | |
Danciu et al. | Performance awareness in Java EE development environments | |
JP7410269B2 (ja) | テスト・ベクタを使用した高水準コンストラクトの最適化の自動検証 | |
JP2024515023A (ja) | ニューラル・ネットワークのパフォーマンス・ホット・スポットの特定 | |
JP2018055249A (ja) | システム構築支援装置、システム構築支援方法、および、システム構築支援プログラム | |
JP4997144B2 (ja) | マルチタスク処理装置およびその方法 | |
Cecowski et al. | Cloud computing applications | |
Wittern et al. | Feature-based configuration of vendor-independent deployments on iaas | |
US11456933B2 (en) | Generating and updating a performance report | |
US11681934B2 (en) | System and method for differential testing of evolving rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190212 |
|
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: 20200331 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200421 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6695437 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |