(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
(第1の実施の形態)
次に、本発明の第1の実施の形態について説明する。
【0019】
はじめに、本発明の第1の実施の形態の構成について説明する。
図2は、本発明の第1の実施の形態における、テスト支援装置100の構成を示すブロック図である。
【0020】
図2を参照すると、本発明の第1の実施の形態のテスト支援装置100は、抽出処理部(または、抽出部)101、及び、記憶部102を含む。テスト支援装置100は、利用者が情報の入出力に用いる入出力装置110と、ネットワーク等により通信可能に接続される。
【0021】
抽出処理部101は、入出力装置110を介して、利用者から、システム構成の抽出要求を受け付ける。抽出要求は、追加や更新されたシステム構成部品等、他の構成部品への影響をテストする対象である構成部品(対象部品)の指定を含む。そして、抽出処理部101は、対象部品を含むシステム構成を抽出し、入出力装置110を介して、利用者へ出力する。
【0022】
記憶部102は、構成部品関連情報(または、関連情報)201、及び、テストケース情報301を記憶する。ここで、構成部品関連情報201は、各システム構成部品と他のシステム構成部品との間の関連を示す。テストケース情報301は、各システム構成部品に係るテストケースを示す。
【0023】
本発明の第1の実施の形態においては、システム構成部品として、プロダクト、機能性、及び、モデルが定義される。ここで、プロダクトは、ミドルウェアの実装(プログラム)を示す構成部品である。機能性は、ミドルウェアを抽象化した概念を定義する構成部品である。モデルは、ミドルウェアを組み合せたシステムを抽象的に定義する構成部品である。モデルのシステム構成は、当該モデルが保持すべき機能性と、各機能性を実現するプロダクトの組とにより、決定される。
【0024】
なお、各システム構成部品(プロダクト、機能性、モデル)には、当該構成部品を一意に識別するための識別子(プロダクトidentifier(以下、IDと記載する)、機能性ID、モデルID)が付与される。
【0025】
図7は、本発明の第1の実施の形態における、構成部品関連情報201の例を示す図である。
図7において、四角はモデル、太線の円は機能性、細線の円はプロダクトを示す。また、実線の矢印は、始点のモデルが終点の機能性、または、モデルを保持すべきであることを示す。また、点線の矢印は、始点のプロダクト、または、機能性が終点の機能性を実現可能であることを示す。
【0026】
ここで、機能性への点線の矢印の始点のプロダクトを、当該機能性の(直接的な)実現プロダクトと呼ぶ。例えば、
図7の構成部品関連情報201において、プロダクト"mysql"は、機能性"rdb"の実現プロダクトである。プロダクトは複数の異なる機能性の実現プロダクトでもよい。同一の機能性が、複数の異なる実現プロダクトを有していてもよい。
【0027】
また、機能性への点線の矢印の始点の他の機能性を、当該機能性の(直接的な)実現機能性と呼ぶ。例えば、
図7の構成部品関連情報201において、機能性"rdb"は"db"の実現機能性である。機能性は複数の異なる他の機能性の実現機能性でもよい。同一の機能性が、複数の異なる実現機能性を有していてもよい。
【0028】
また、ある機能性の実現機能性の実現プロダクトは、当該機能性の(間接的な)実現プロダクトでもある。例えば、
図7の構成部品関連情報201において、プロダクト"mysql"は"rdb"の実現プロダクトであると同時に、"db"の実現プロダクトでもある。
【0029】
また、モデルからの実線の矢印の終点の機能性を、当該モデルの(直接的な)要求機能性と呼ぶ。例えば、
図7の構成部品関連情報201において、機能性"rdb"は、モデル"web3tier"の要求機能性である。同一の機能性が、複数の異なるモデルの要求機能性でもよい。同一のモデルが、複数の異なる要求機能性を有していてもよい。
【0030】
また、モデルからの実線の矢印の終点の他のモデルを、当該モデルの(直接的な)要求モデルと呼ぶ。例えば、
図7の構成部品関連情報201において、モデル"web3tier"はモデル"mail_web3tier"の要求モデルである。同一のモデルが、複数の異なるモデルの要求モデルでもよい。同一のモデルが、複数の異なる要求モデルを有していてもよい。
【0031】
また、あるモデルの要求モデルの要求機能性は、当該モデルの(間接的な)要求機能性でもある。例えば、
図7の構成部品関連情報201において、機能性"rdb"はモデル"web3tier"の要求機能性であると同時に、"mail_web3tier"の要求機能性でもある。
【0032】
また、あるモデルの要求モデルの要求モデルは、当該モデルの(間接的な)要求モデルでもある。
【0033】
モデルのシステム構成は、構成部品関連情報201において、当該モデルの全ての要求機能性の各々について、実現プロダクトの内のいずれかを選択することで決定される。
【0034】
例えば、モデル"mail_web3tier"のシステム構成は、機能性"rdb"について、プロダクト"mysql"か"c"、機能性"ap-svr(server)"について、プロダクト"d"か"e"、機能性"mail-svr(server)"について、プロダクト"f"を選択することで決定される。同様に、モデル"batch"のシステム構成は、機能性"cache-svr(server)"について、プロダクト"a"、機能性"db"について、プロダクト"b"か"mysql"か"c"を選択することで決定される。
【0035】
構成部品関連情報201は、各構成部品に係る構成部品情報202の集合で表されてもよい。
【0036】
図8は、本発明の第1の実施の形態における、構成部品情報202の例を示す図である。
【0037】
構成部品情報202は、構成部品の種別(プロダクト、機能性、モデル)を示す構成部品種別を含む。
【0038】
図8において、構成部品情報202a、202b、202cは、それぞれ、プロダクト、機能性、モデルに係る構成部品情報202の例である。
【0039】
プロダクトに係る構成部品情報202aは、プロダクトID、及び、当該プロダクトを(直接的な)実現プロダクトとする機能性の機能性IDを含む。また、プロダクトや、当該プロダクトのインストールや設定などを行うためのドライバ等が、プロダクトIDに対応付けて、図示しない外部の記憶部に記憶されていてもよい。
図8の例では、構成部品情報202aは、プロダクト"mysql"が、機能性"rdb"の実現プロダクトであることを示している。
【0040】
機能性に係る構成部品情報202bは、機能性IDを含む。構成部品情報202bは、当該機能性を(直接的な)実現機能性とする他の機能性の機能性IDを含んでいてもよい。また、機能性を実現するプロダクトの抽象化、すなわちプロダクト毎の差異の吸収を行うドライバ等が、機能性IDに対応付けて、図示しない外部の記憶部に記憶されていてもよい。
図8の例では、構成部品情報202bは、機能性"rdb"が、機能性"db"の実現機能性であることを示している。
【0041】
モデルに係る構成部品情報202cは、モデルID、及び、当該モデルの(直接的な)要求機能性の機能性IDを含む。また、構成部品情報202cは、当該モデルの(直接的な)要求モデルのモデルIDを含んでいてもよい。また、モデルの複数の要求機能性を実現するプロダクト間の協調動作を調整するドライバ等が、モデルIDに対応付けて、図示しない外部の記憶部に記憶されていてもよい。
図8の例では、構成部品情報202cは、モデル"web3tier"の要求機能性が、機能性"rdb"と"ap-svr"であることを示している。
【0042】
図9は、本発明の第1の実施の形態における、テストケース情報301の例を示す図である。
【0043】
テストケース情報301は、テストケースの識別子(テストケースID)、及び、当該テストケースがテストを行う構成部品(プロダクト、機能性、モデル)の識別子を示すテスト対象を含む。テストケース情報301は、さらに、テスト内容として、プロダクトの正常なインストールを確認するためのコマンドや判定条件、機能性やモデルの正常性を確認するためのサンプルプログラムのインストールやそのコマンド、判定条件を含んでいてもよい。
図9の例では、テストケース"mysql_test"が、プロダクト"mysql"のテストを行うためのテストケースであることを示している。また、テスト内容として、コマンド"aptitude show mysql"を実行すること、及び、コマンドの応答が"OK"の場合、テスト結果を正常と判定することを示している。
【0044】
記憶部102は、各システム構成部品(プロダクト、機能性、モデル)について、テストケース情報301を記憶する。
【0045】
なお、構成部品情報202やテストケース情報301は、Extensible Markup Language(以下、XMLと記載する)形式で表現されていてもよい。
【0046】
また、構成部品関連情報201やテストケース情報301は、図示しない外部の記憶部に記憶されており、図示しない取得部が、構成部品関連情報201やテストケース情報301を外部の記憶部から取得してもよい。
【0047】
また、テスト支援装置100はCPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。
【0048】
また、テスト支援装置100は、さらに、テスト支援装置100が出力するシステム構成に従って、コンピュータ上にシステムを構築するシステム構築装置(図示せず)、及び、テスト支援装置100が出力するテストケースに従って、システムのテストを行うテスト実行装置(図示せず)と接続されていてもよい。
【0049】
次に、本発明の第1の実施の形態におけるテスト支援装置100の動作について説明する。
図3は、本発明の第1の実施の形態における、テスト支援装置100の処理を示すフローチャートである。
【0050】
ここでは、記憶部102に、
図7の構成部品関連情報201が記憶されている場合を例に、動作を説明する。
【0051】
はじめに、抽出処理部101は、入出力装置110を介して、利用者からシステム構成の抽出要求を受け付ける(ステップS101)。ここで、抽出要求は、追加や更新されたシステム構成部品(対象部品)の識別子を含む。
【0052】
抽出処理部101は、記憶部102から、抽出要求で指定された対象部品に係る構成部品情報202を取得する(ステップS102)。
【0053】
抽出処理部101は、取得したシステム構成部品情報202の構成部品種別により、対象部品の種別を確認する(ステップS103)。
【0054】
対象部品の種別がプロダクトの場合(ステップS103/プロダクト)、抽出処理部101は、後述する、プロダクトに対するシステム構成抽出処理を実行する(ステップS104)。
【0055】
対象部品の種別が機能性の場合(ステップS103/機能性)、抽出処理部101は、後述する、機能性に対するシステム構成抽出処理を実行する(ステップS105)。
【0056】
対象部品の種別がモデルの場合(ステップS103/モデル)、抽出処理部101は、後述する、モデルに対するシステム構成抽出処理を実行する(ステップS106)。
【0057】
ステップS104〜S106のシステム構成抽出処理により、対象部品を含むシステム構成を示すシステム構成情報501が生成される。
【0058】
抽出処理部101は、テストケース情報301をもとに、システム構成情報501に含まれる、各システム構成の各構成部品について、当該構成部品をテスト対象とするテストケースを取得し、システム構成情報501に設定する(ステップS107)。
【0059】
抽出処理部101は、システム構成情報501を、入出力装置110を介して、利用者へ出力する(ステップS108)。
【0060】
次に、ステップS104〜S106のシステム構成抽出処理の詳細を説明する。
【0061】
<プロダクトに対するシステム構成抽出処理>
はじめに、プロダクトに対するシステム構成抽出処理(ステップS104)の詳細を説明する。
【0062】
図4は、本発明の第1の実施の形態における、プロダクトに対するシステム構成抽出処理(ステップS104)の詳細を示すフローチャートである。
【0063】
プロダクトに対するシステム構成抽出処理では、対象部品であるプロダクト(対象プロダクト)が影響を及ぼす機能性及びモデルが抽出される。そして、抽出されたモデルについて、対象プロダクトを含むシステム構成が抽出される。
【0064】
はじめに、抽出処理部101は、構成部品関連情報201をもとに、対象プロダクトを実現プロダクトとする機能性を特定する。ここで、抽出処理部101は、構成部品関連情報201において、対象プロダクトからの点線の矢印を順方向に再帰的に辿って得られる全ての経路上の機能性を探索することにより、対象プロダクトを実現プロダクトとする機能性を特定する(ステップS1041)。
【0065】
例えば、対象プロダクトとして、
図7の構成部品関連情報201における、プロダクト"mysql"が指定された場合、抽出処理部101は、プロダクト"mysql"を実現プロダクトとする機能性として、機能性"rdb"、"db"を特定する。
【0066】
次に、抽出処理部101は、構成部品関連情報201をもとに、ステップS1041にて特定した機能性の各々について、当該機能性を要求機能性とするモデルを抽出する。ここで、抽出処理部101は、構成部品関連情報201において、抽出したモデルへの実線の矢印を逆方向に再帰的に辿って得られる全ての経路上のモデルを探索することにより、特定した各機能性を要求機能性とするモデルを抽出する(ステップS1042)。
【0067】
例えば、抽出処理部101は、機能性"rdb"を要求機能性とするモデルとして、"web3tier"、"mail_web3tier"を抽出する。また、抽出処理部101は、機能性"db"を要求機能性とするモデルとして、"batch"を抽出する。
【0068】
次に、抽出処理部101は、ステップS1042で抽出したモデルの内の1つを選択する(ステップS1043)。ここで、抽出処理部101は、構成部品関連情報201において、ステップS1041で特定された機能性に近いモデルから先に選択してもよい。
【0069】
抽出処理部101は、構成部品関連情報201をもとに、ステップS1043で選択したモデルの要求機能性を抽出する。ここで、抽出処理部101は、構成部品関連情報201において、選択したモデルからの実線の矢印を順方向に再帰的に辿って得られる全ての経路上の要求モデルを探索することにより、選択したモデルの要求モデルを抽出する。そして、選択したモデル、及び、抽出した各要求モデルの要求機能性を抽出する(ステップS1044)。
【0070】
例えば、ステップS1043でモデル"web3tier"が選択された場合、抽出処理部101は、モデル"web3tier"の要求機能性として、機能性"rdb"、"ap-svr"を抽出する。
【0071】
次に、抽出処理部101は、ステップS1044で抽出した各要求機能性について、当該要求機能性の実現プロダクトの集合を抽出する。ここで、抽出処理部101は、構成部品関連情報201において、抽出した要求機能性への点線の矢印を逆方向に再帰的に辿って得られる全ての経路上の機能性を探索し、抽出した各要求機能性の実現機能性を抽出する。そして、抽出した要求機能性、及び、抽出した実現機能性の実現プロダクトを抽出する。そして、抽出処理部101は、モデルに適用可能な実現プロダクトを示す機能性実現情報401を生成する(ステップS1045)。
【0072】
なお、ステップS1044で抽出した要求機能性が、ステップS1041で特定された対象プロダクトを実現プロダクトとする機能性の場合、抽出処理部101は、構成部品関連情報201において、次のように、実現機能性を抽出する。すなわち、抽出処理部101は、抽出した要求機能性への点線の矢印を逆方向に再帰的に辿って得られる経路の内、抽出した要求機能性と対象プロダクトとの間の経路上の機能性のみを探索し、実現機能性を抽出する。この場合、抽出処理部101は、実現プロダクトとして、対象プロダクトのみを抽出する。
【0073】
図10、
図12、
図14、
図16は、本発明の第1の実施の形態における、機能性実現情報401の例を示す図である。機能性実現情報401は、モデルについて抽出された要求モデルのモデルIDと要求機能性の機能性ID、及び、当該要求機能性について抽出された実現機能性の機能性IDと実現プロダクトのプロダクトIDの集合を含む。
【0074】
例えば、抽出した要求機能性の内、機能性"rdb"は、対象プロダクト"mysql"を実現プロダクトとする機能性であるため、抽出処理部101は、機能性"rdb"について、実現プロダクト"mysql"を抽出する。また、抽出処理部101は、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。この結果、抽出処理部101は、モデル"web3tier"に対して、
図10の機能性実現情報401aを生成する。
【0075】
なお、抽出処理部101は、ステップS1043で選択したモデルの要求モデルについて、機能性実現情報401が既に生成されている場合は、当該生成済みの機能性実現情報401の内容を利用してもよい。
【0076】
次に、抽出処理部101は、ステップS1045で抽出された、各要求機能性についての実現プロダクトの集合をもとに、モデルに適用可能なシステム構成を抽出する。ここで、抽出処理部101は、各要求機能性の実現プロダクトの集合の直積を求め、実現プロダクトの組み合わせを取得することにより、システム構成を抽出する。そして、抽出処理部101は、得られたシステム構成をシステム構成情報501に設定する(ステップS1046)。
【0077】
図11、
図13、
図15、
図17は、本発明の第1の実施の形態における、システム構成情報501の例を示す図である。システム構成情報501は、システム構成を識別するための識別子(構成ID)、モデルのモデルID、当該モデルについて抽出された要求モデルのモデルIDと要求機能性の機能性IDを含む。さらに、システム構成情報501は、当該要求機能性について抽出された実現機能性の機能性IDと実現プロダクトのプロダクトID、及び、当該実現プロダクトのテストを行うためのテストケースのテストケースIDを含む。
【0078】
例えば、抽出処理部101は、要求機能性"rdb"の実現プロダクトの集合{"mysql"}と要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}との直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d"}、{"mysql","e"}となる。抽出処理部101は、これらの組み合わせについて、
図10の機能性実現情報401から、モデルと要求モデルのモデルID、要求機能性と実現機能性の機能性ID、及び、実現プロダクトのプロダクトIDを取得し、
図11のシステム構成情報501aにおける、構成ID"1"、"2"のように、システム構成を設定する。
【0079】
抽出処理部101は、ステップS1042で抽出した全てのモデルについて、ステップS1043〜S1046を繰り返す(ステップS1047)。
【0080】
例えば、ステップS1043でモデル"mail_web3tier"が選択された場合、抽出処理部101は、モデル"mail_web3tier"の要求モデル、要求機能性として、モデル"web3tier"、機能性"rdb"、"ap-svr"、及び、機能性"mail-svr"を抽出する。
【0081】
そして、抽出処理部101は、上述と同様に、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"を、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。さらに、抽出処理部101は、機能性"mail-svr"について、実現プロダクト"f"を抽出する。この結果、抽出処理部101は、モデル"mail_web3tier"に対して、
図10の機能性実現情報401bを生成する。
【0082】
抽出処理部101は、要求機能性"rdb"の実現プロダクトの集合{"mysql"}、要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}、及び、要求機能性"mail-svr"の実現プロダクトの集合{"f"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d","f"}、{"mysql","e","f"}となる。抽出処理部101は、これらの組み合わせについて、
図11のシステム構成情報501aにおける、構成ID"3"、"4"のように、システム構成を設定する。
【0083】
また、ステップS1043でモデル"batch"が選択された場合、抽出処理部101は、モデル"batch"の要求機能性として、機能性"cache-svr"、"db"を抽出する。
【0084】
そして、抽出処理部101は、抽出した要求機能性の内、機能性"cache-svr"について、実現プロダクト"a"を抽出する。また、機能性"db"は、対象プロダクト"mysql"を実現プロダクトとする機能性であるため、抽出処理部101は、機能性"mail-svr"について、実現機能性"rdb"、実現プロダクト"mysql"を抽出する。この結果、抽出処理部101は、モデル"batch"に対して、
図10の機能性実現情報401cを生成する。
【0085】
抽出処理部101は、要求機能性"cache-svr"の実現プロダクトの集合{"a"}と要求機能性"db"の実現プロダクトの集合{"mysql"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"a","mysql"}となる。抽出処理部101は、これらの組み合わせについて、
図11のシステム構成情報501aにおける、構成ID"5"のように、システム構成を設定する。
【0086】
そして、抽出処理部101は、
図9のテストケース情報301をもとに、
図11のシステム構成情報501aにおける実現プロダクト"mysql"のテストケースとして、テストケース"mysql_test"を設定する。抽出処理部101は、他の実現プロダクトについても、
図11に示すように、テストケースを設定する。
【0087】
また、他の例として、例えば、対象プロダクトとして、
図7の構成部品関連情報201における、プロダクト"a"が指定された場合、抽出処理部101は、プロダクト"a"を実現プロダクトとする機能性として、機能性"cache-svr"を特定する。
【0088】
抽出処理部101は、機能性"cache-svr"を要求機能性とするモデルとして、"batch"を抽出する。
【0089】
抽出処理部101は、モデル"batch"の要求機能性として、機能性"cache-svr"、"db"を抽出する。
【0090】
抽出処理部101は、抽出した要求機能性の内、機能性"cache-svr"は、対象プロダクト"a"を実現プロダクトとする機能性であるため、抽出処理部101は、機能性"cache-svr"について、実現プロダクト"a"を抽出する。また、抽出処理部101は、機能性"db"について、実現プロダクト"b"、及び、実現機能性"rdb"、実現プロダクト"mysql"、"c"を抽出する。この結果、抽出処理部101は、モデル"batch"に対して、
図12の機能性実現情報401dを生成する。
【0091】
抽出処理部101は、要求機能性"cache-svr"の実現プロダクトの集合{"a"}と要求機能性"db"の実現プロダクトの集合{"b","mysql","c"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"a","b"}、{"a","mysql"}、{"a","c"}となる。抽出処理部101は、これらの組み合わせについて、
図13のシステム構成情報501bにおける、構成ID"1"、"2"、"3"のように、システム構成を設定する。
【0092】
<機能性に対するシステム構成抽出処理>
次に、機能性に対するシステム構成抽出処理(ステップS105)の詳細を説明する。
【0093】
図5は、本発明の第1の実施の形態における、機能性に対するシステム構成抽出処理(ステップS105)の詳細を示すフローチャートである。
【0094】
機能性に対するシステム構成抽出処理では、対象部品である機能性(対象機能性)が影響を及ぼす機能性およびモデルが抽出される。そして、抽出されたモデルについて、対象機能性を含むシステム構成が抽出される。
【0095】
はじめに、抽出処理部101は、構成部品関連情報201をもとに、対象機能性を実現機能性とする機能性を特定する。ここで、抽出処理部101は、構成部品関連情報201において、対象機能性からの点線の矢印を順方向に再帰的に辿って得られる全ての経路上の機能性を探索することにより、対象機能性を実現機能性とする機能性を特定する(ステップS1051)。
【0096】
例えば、対象機能性として、
図7の構成部品関連情報201における、機能性"rdb"が指定された場合、抽出処理部101は、機能性"rdb"を実現機能性とする機能性として、機能性"db"を特定する。
【0097】
次に、抽出処理部101は、ステップS1042と同様に、対象機能性、及び、ステップS1051にて特定した機能性の各々について、当該機能性を要求機能性とするモデルを抽出する(ステップS1052)。
【0098】
例えば、抽出処理部101は、機能性"rdb"を要求機能性とするモデルとして、"web3tier"、"mail_web3tier"を抽出する。また、抽出処理部101は、機能性"db"を要求機能性とするモデルとして、"batch"を抽出する。
【0099】
次に、抽出処理部101は、ステップS1052で抽出したモデルの内の1つを選択する(ステップS1053)。
【0100】
抽出処理部101は、ステップS1044と同様に、ステップS1053で選択したモデルの要求機能性を抽出する(ステップS1054)。
【0101】
例えば、ステップS1043でモデル"web3tier"が選択された場合、抽出処理部101は、モデル"web3tier"の要求機能性として、機能性"rdb"、"ap-svr"を抽出する。
【0102】
次に、抽出処理部101は、ステップS1045と同様に、ステップS1054で抽出した各要求機能性について、当該要求機能性の実現プロダクトの集合を抽出する(ステップS1055)。
【0103】
なお、ステップS1054で抽出した要求機能性が、ステップS1051で特定された対象機能性を実現機能性とする機能性の場合、抽出処理部101は、構成部品関連情報201において、以下のように、実現機能性を抽出する。すなわち、抽出処理部101は、抽出した要求機能性への点線の矢印を逆方向に再帰的に辿って得られる経路の内、抽出した要求機能性と対象機能性との間の経路を含む経路上の機能性のみを探索し、実現機能性を抽出する。
【0104】
例えば、抽出処理部101は、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を抽出する。同様に、抽出処理部101は、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。この結果、抽出処理部101は、モデル"web3tier"に対して、
図14の機能性実現情報401eを生成する。
【0105】
次に、抽出処理部101は、ステップS1046と同様に、モデルに適用可能なシステム構成を抽出する(ステップS1056)。
【0106】
例えば、抽出処理部101は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}と要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}との直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d"}、{"mysql","e"}、{"c","d"}、{"c","e"}となる。抽出処理部101は、これらの組み合わせについて、
図15のシステム構成情報501cにおける、構成ID"1"、"2"、"3"、"4"のように、システム構成を設定する。
【0107】
抽出処理部101は、ステップS1052で抽出した全てのモデルについて、ステップS1053〜S1056を繰り返す(ステップS1057)。
【0108】
例えば、ステップS1053でモデル"mail_web3tier"が選択された場合、抽出処理部101は、モデル"mail_web3tier"の要求モデル、要求機能性として、モデル"web3tier"、機能性"rdb"、"ap-svr"、及び、機能性"mail-svr"を抽出する。
【0109】
そして、抽出処理部101は、上述と同様に、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。また、抽出処理部101は、機能性"mail-svr"について、実現プロダクト"f"を抽出する。この結果、抽出処理部101は、モデル"mail_web3tier"に対して、
図14の機能性実現情報401fを生成する。
【0110】
抽出処理部101は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}、要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}、及び、要求機能性"mail-svr"の実現プロダクトの集合{"f"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d","f"}、{"mysql","e","f"}、{"c","d","f"}、{"c","e","f"}となる。抽出処理部101は、これらの組み合わせについて、
図15のシステム構成情報501cにおける、構成ID"5"、"6"、"7"、"8"のように、システム構成を設定する。
【0111】
また、ステップS1053でモデル"batch"が選択された場合、抽出処理部101は、モデル"batch"の要求機能性として、機能性"cache-svr"、"db"を抽出する。
【0112】
そして、抽出処理部101は、抽出した要求機能性の内、機能性"cache-svr"について、実現プロダクト"a"を抽出する。また、機能性"db"は、対象機能性"rdb"を実現機能性とする機能性であるため、抽出処理部101は、機能性"db"について、実現機能性"rdb"、実現プロダクト"mysql"、"c"を抽出する。この結果、抽出処理部101は、モデル"batch"に対して、
図14の機能性実現情報401gを生成する。
【0113】
抽出処理部101は、要求機能性"cache-svr"の実現プロダクトの集合{"a"}と要求機能性"db"の実現プロダクトの集合{"mysql","c"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"a","mysql"}、{"a","c"}となる。抽出処理部101は、これらの組み合わせについて、
図15のシステム構成情報501cにおける、構成ID"9"、"10"のように、システム構成を設定する。
【0114】
<モデルに対するシステム構成抽出処理>
次に、モデルに対するシステム構成抽出処理(ステップS106)の詳細を説明する。
【0115】
図6は、本発明の第1の実施の形態における、モデルに対するシステム構成抽出処理(ステップS106)の詳細を示すフローチャートである。
【0116】
モデルに対するシステム構成抽出処理では、対象部品であるモデル(対象モデル)が影響を及ぼす機能性及びモデルが抽出される。そして、抽出されたモデルについて、対象モデルを含むシステム構成が抽出される。
【0117】
はじめに、抽出処理部101は、構成部品関連情報201をもとに、対象モデルを要求モデルとするモデルを抽出する。ここで、抽出処理部101は、構成部品関連情報201において、対象モデルへの実線の矢印を逆方向に再帰的に辿って得られる全ての経路上のモデルを探索することにより、対象モデルを要求モデルとするモデルを抽出する(ステップS1062)。
【0118】
例えば、対象モデルとして、
図7の構成部品関連情報201における、モデル"web3tier"が指定された場合、抽出処理部101は、モデル"web3tier"を要求モデルとするモデルとして、"mail_web3tier"を抽出する。
【0119】
次に、抽出処理部101は、対象モデル、及び、ステップS1062で抽出したモデルの内の1つを選択する(ステップS1063)。
【0120】
抽出処理部101は、ステップS1044と同様に、ステップS1063で選択したモデルの要求機能性を抽出する(ステップS1064)。
【0121】
例えば、ステップS1043でモデル"web3tier"が選択された場合、抽出処理部101は、モデル"web3tier"の要求機能性として、機能性"rdb"、"ap-svr"を抽出する。
【0122】
次に、抽出処理部101は、ステップS1045と同様に、ステップS1064で抽出した各要求機能性について、当該要求機能性の実現プロダクトの集合を抽出する(ステップS1065)。
【0123】
例えば、抽出処理部101は、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を抽出する。同様に、抽出処理部101は、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。この結果、抽出処理部101は、モデル"web3tier"に対して、
図16の機能性実現情報401hを生成する。
【0124】
次に、抽出処理部101は、ステップS1046と同様に、モデルに適用可能なシステム構成を抽出する(ステップS1066)。
【0125】
例えば、抽出処理部101は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}と要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}との直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d"}、{"mysql","e"}、{"c","d"}、{"c","e"}となる。抽出処理部101は、これらの組み合わせについて、
図17のシステム構成情報501dにおける、構成ID"1"、"2"、"3"、"4"のように、システム構成を設定する。
【0126】
抽出処理部101は、対象モデル、及び、ステップS1062で抽出したモデルの全てについて、ステップS1063〜S1066を繰り返す(ステップS1067)。
【0127】
例えば、ステップS1063でモデル"mail_web3tier"が選択された場合、抽出処理部101は、モデル"mail_web3tier"の要求モデル、要求機能性として、モデル"web3tier"、機能性"rdb"、"ap-svr"、及び、機能性"mail-svr"を抽出する。
【0128】
そして、抽出処理部101は、上述と同様に、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。また、抽出処理部101は、機能性"mail-svr"について、実現プロダクト"f"を抽出する。この結果、抽出処理部101は、モデル"mail_web3tier"に対して、
図16の機能性実現情報401iを生成する。
【0129】
抽出処理部101は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}、要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}、及び、要求機能性"mail-svr"の実現プロダクトの集合{"f"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d","f"}、{"mysql","e","f"}、{"c","d","f"}、{"c","e","f"}となる。抽出処理部101は、これらの組み合わせについて、
図17のシステム構成情報501dにおける、構成ID"5"、"6"、"7"、"8"のように、システム構成を設定する。
【0130】
以上により、本発明の第1の実施の形態の動作が完了する。
【0131】
次に、本発明の第1の実施の形態の特徴的な構成を説明する。
図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
【0132】
図1を参照すると、テスト支援装置100は、記憶部102、及び、抽出処理部101を含む。ここで、システムの構成は、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される。記憶部102は、1以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な1以上のプログラムの識別子を示す構成部品関連情報201を記憶する。抽出処理部101は、機能性、または、プログラムが指定された場合に、構成部品関連情報201をもとに、指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する。
【0133】
本発明の第1の実施の形態によれば、特定のシステム構成部品を含むシステムの全ての構成の検証を網羅的かつ迅速に実施できる。その理由は、抽出処理部101が、機能性、または、プログラムが指定された場合に、構成部品関連情報201をもとに、指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力するためである。これにより、システム構成部品の追加や更新に伴う、検証のための工数を低減するとともに、追加や更新のあるシステムの構成を、もれなく検証できる。
【0134】
また、本発明の第1の実施の形態によれば、特定のシステム構成部品を含むシステムの全ての構成の検証に必要なテストケースを、容易に取得できる。その理由は、抽出処理部101が、テストケース情報301から、抽出されたシステム構成に含まれる、各機能性、及び、各プログラムに係るテストケースの識別子を抽出し、出力するためである。
【0135】
また、本発明の第1の実施の形態によれば、特定のシステム構成部品を含むシステムの全ての構成の検証を自動化できる。その理由は、システム構築装置が、抽出処理部101により抽出されたシステムの構成に従って、システムを構築し、テスト実行装置が、抽出処理部101により抽出されたテストケースに従って、システムのテストを行えるためである。
【0136】
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
【0137】
本発明の第2の実施の形態においては、抽出処理部101が、構成部品関連情報201に含まれる全てのモデルについて適用可能なシステム構成を生成した後で、対象部品を含むシステム構成を抽出する点で、本発明の第1の実施の形態と異なる。
【0138】
本発明の第2の実施の形態における、テスト支援装置100の構成は、本発明の第1の実施の形態の構成(
図2)と同様である。
【0139】
次に、本発明の第2の実施の形態におけるテスト支援装置100の動作について説明する。
図18は、本発明の第2の実施の形態における、テスト支援装置100の処理を示すフローチャートである。
【0140】
ここでは、本発明の第1の実施の形態と同様に、記憶部102に、
図7の構成部品関連情報201が記憶されている場合を例に、動作を説明する。
【0141】
図18において、対象部品に係る構成部品情報202の取得までの処理とテストケースの取得以降の処理(ステップS201〜S202、S207〜S208)は、本発明の第1の実施の形態(ステップS101〜S102、S107〜S208)と同様である。
【0142】
抽出処理部101は、対象部品の種別によらず、後述するシステム構成抽出処理を実行する(ステップS203)。
【0143】
次に、ステップS203のシステム構成抽出処理の詳細を説明する。
【0144】
<システム構成抽出処理>
図19は、本発明の第2の実施の形態における、システム構成抽出処理(ステップS203)の詳細を示すフローチャートである。
【0145】
本発明の第2の実施の形態におけるシステム構成抽出処理では、構成部品関連情報201に含まれる全てのモデルについて、適用可能なシステム構成が生成される。そして、抽出されたシステム構成の内、対象部品を含むシステム構成が抽出される。
【0146】
はじめに、抽出処理部101は、構成部品関連情報201に含まれる全てのモデルを抽出する(ステップS2032)。
【0147】
次に、抽出処理部101は、ステップS2032で抽出したモデルの内の1つを選択する(ステップS2033)。
【0148】
抽出処理部101は、ステップS1044と同様に、ステップS2033で選択したモデルの要求機能性を抽出する(ステップS2034)。
【0149】
次に、抽出処理部101は、ステップS1045と同様に、ステップS2034で抽出した要求機能性の各々について、当該要求機能性の実現プロダクトの集合を抽出する(ステップS2035)。
【0150】
次に、抽出処理部101は、ステップS1046と同様に、モデルに適用可能なシステム構成を設定する(ステップS2036)。
【0151】
抽出処理部101は、対象モデル、及び、ステップS2032で抽出したモデルの全てについて、ステップS2033〜S2036を繰り返す(ステップS2037)。
【0152】
図20は、本発明の第2の実施の形態における、機能性実現情報401の例を示す図である。
図21は、本発明の第2の実施の形態における、システム構成情報501の例を示す図である。
【0153】
例えば、抽出処理部101は、
図7の構成部品関連情報201に含まれるモデル"web3tier"、"mail_web3tier"、"batch"に対して、
図20の機能性実現情報401j、401k、401lを生成する。そして、抽出処理部101は、
図21のシステム構成情報501eのように、システム構成を設定する。
【0154】
最後に、抽出処理部101は、システム構成情報501に含まれるシステム構成の内、対象部品を含む構成のみを抽出する(ステップS2038)。
【0155】
例えば、対象部品として、
図7の構成部品関連情報201における、プロダクト"mysql"が指定された場合、抽出処理部101は、
図21のシステム構成情報501eに含まれるシステム構成の内、プロダクト"mysql"を実現プロダクトに含む、構成ID"1"、"2"、"5"、"6"、"10"の構成を抽出する。
【0156】
以上により、本発明の第2の実施の形態の動作が完了する。
【0157】
本発明の第2の実施の形態によれば、本発明の第1の実施の形態と同様に、特定のシステム構成部品を含むシステムの全ての構成の検証を網羅的かつ迅速に実施できる。
【0158】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0159】
この出願は、2012年12月11日に出願された日本出願特願2012−270364を基礎とする優先権を主張し、その開示の全てをここに取り込む。