(57)【要約】  特定のシステム構成部品を含むシステムの全ての構成の検証を網羅的かつ迅速に実施する。  テスト支援装置（１００）は、記憶部（１０２）、及び、抽出処理部（１０１）を含む。ここで、システムの構成は、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される。記憶部（１０２）は、１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す構成部品関連情報（２０１）を記憶する。抽出処理部（１０１）は、機能性、または、プログラムが指定された場合に、構成部品関連情報（２０１）をもとに、指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する。
2014091732.tif 000002
【特許請求の範囲】
【請求項１】
システムの構成が、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される場合に、
１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す関連情報を記憶する記憶手段と、
機能性、または、プログラムが指定された場合に、前記関連情報をもとに、前記指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する抽出手段と、
を備えるテスト支援装置。
【請求項２】
前記記憶手段は、さらに、各システム、各機能性、及び、各プログラムに係るテストケースの識別子を含むテストケース情報を記憶し、
前記抽出手段は、前記テストケース情報を参照し、前記抽出されたシステムに係るテストケース、及び、前記抽出されたシステムの構成に含まれる、各機能性、及び、各プログラムに係るテストケースの識別子を、前記抽出されたシステムの構成とともに出力する、
請求項１に記載のテスト支援装置。
【請求項３】
前記抽出手段は、プログラムが指定された場合に、
前記指定されたプログラムが実現する機能性を特定し、
前記特定された機能性を保持すべき全てのシステムを抽出し、
前記抽出された全てのシステムの各々について、当該システムが保持すべき複数の機能性を抽出し、前記抽出された複数の機能性の内、前記指定されたプログラムが実現する機能性については、前記指定されたプログラムからなる集合を生成し、前記指定されたプログラムが実現する機能性以外の各機能性については、当該機能性を実現可能な１以上のプログラムからなる集合を生成し、前記抽出された複数の機能性について生成された全ての集合の直積により、前記抽出された複数の機能性の各々を実現するプログラムの組を抽出することにより、システムの構成を抽出する、
請求項１または２に記載のテスト支援装置。
【請求項４】
前記機能性について、上位の機能性と当該上位の機能性を実現する下位の機能性との１以上の繰り返しが定義可能な場合、
前記関連情報は、さらに、各機能性を実現可能な１以上の下位の機能性を示し、
前記抽出手段は、
前記指定されたプログラムが実現する機能性を特定する場合、前記指定されたプログラムが実現する機能性が実現する上位の機能性を再帰的に特定し、
前記抽出された複数の機能性の各々を実現するプログラムの組を抽出する場合、前記抽出された複数の機能性の内、前記指定されたプログラムから再帰的に特定された機能性については、当該機能性を実現する下位の機能性を、前記指定されたプログラムが実現する機能性まで再帰的に抽出し、前記指定されたプログラムからなる集合を生成し、前記指定されたプログラムから再帰的に特定された機能性以外の機能性については、当該機能性を実現可能な下位の機能性を再帰的に抽出し、前記再帰的に抽出された各機能性を実現可能な１以上のプログラムからなる集合を生成する、
請求項３に記載のテスト支援装置。
【請求項５】
前記システムについて、上位のシステムと当該上位のシステムが保持すべき下位のシステムとの１以上の繰り返しが定義可能な場合に、
前記関連情報は、さらに、各システムが保持すべき１以上の下位のシステムを示し、
前記抽出手段は、
前記特定された機能性を保持すべき全てのシステムを抽出する場合、前記特定された機能性を保持すべきシステムの各々を保持すべき上位のシステムを再帰的に抽出し、
前記抽出された各システムが保持すべき複数の機能性を抽出する場合、当該システムが保持すべき下位のシステムを再帰的に抽出し、当該再帰的に抽出された全てのシステムの各々が保持すべき複数の機能性を抽出する、
請求項３に記載のテスト支援装置。
【請求項６】
前記抽出手段は、機能性が指定された場合に、
前記指定された機能性を保持すべきシステムを抽出し、
前記抽出されたシステムが保持すべき複数の機能性を抽出し、
前記抽出された複数の機能性の各々について、当該機能性を実現可能な１以上のプログラムからなる集合を生成し、
前記抽出された複数の機能性について生成された全ての集合の直積により、前記抽出された複数の機能性の各々を実現するプログラムの組を抽出する、
請求項１または２に記載のテスト支援装置。
【請求項７】
前記抽出手段は、さらに、システムが指定された場合に、
前記指定されたステムが保持すべき複数の機能性を抽出し、
前記抽出された複数の前記機能性の各々について、当該機能性を実現可能な１以上の前記プログラムの集合を生成し、
前記抽出された複数の機能性について生成された全ての集合の直積により、前記抽出された複数の機能性の各々を実現するプログラムの組を抽出する、
請求項１または２に記載のテスト支援装置。
【請求項８】
前記抽出手段は、
前記１以上のシステムの各々について、当該システムが保持すべき複数の機能性を抽出し、前記抽出された複数の機能性の各々について、当該機能性を実現可能な１以上のプログラムからなる集合を生成し、前記抽出された複数の機能性について生成された全ての集合の直積により、前記抽出された複数の機能性の各々を実現するプログラムの組を抽出することにより、システムの構成を生成し、
前記１以上のシステムについて生成されたシステムの構成の内、前記機能性、または、前記プログラムを含む構成を抽出する、
請求項１または２に記載のテスト支援装置。
【請求項９】
システムの構成が、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される場合に、
１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す関連情報を記憶し、
機能性、または、プログラムが指定された場合に、前記関連情報をもとに、前記指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する、
テスト支援方法。
【請求項１０】
システムの構成が、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される場合に、
１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す関連情報を記憶し、
機能性、または、プログラムが指定された場合に、前記関連情報をもとに、前記指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する、
処理をコンピュータに実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト支援装置、及び、テスト支援方法に関する。
【背景技術】
【０００２】
一般に、ソフトウェア・システムの構築とは、異なる複数のミドルウェアのインストールや設定を行うことにより、これら複数のミドルウェアが協調して動作する環境を整えることである。【０００３】
ソフトウェア開発の分野において、このような複数のミドルウェアを協調動作させる環境を効率的に構築するための仕組みとして、ソフトウェアの部品化や結合を行う手法が知られている。このような手法として、オブジェクト指向やコンポネント指向などの技術がある。このような手法を、複数のミドルウェアからなるシステムの構築に応用する技術が、例えば、非特許文献１に開示されている。【０００４】
非特許文献１に開示される技術においては、システムのモデル（pattern）が、いくつかの機能性を実現するシステム構成部品であるプロダクト（component）の組み合わせで定義される。例えば、モデル"Web3Tier"は、機能性"RDB"を実現するプロダクト"MySQL"または"PostgreSQL"、及び、機能性"AP-Server"を実現するプロダクト"Tomcat"または"Jetty"を用いて構築される。すなわち、モデル"Web3Tier"を構成するプロダクトの組み合わせとして、"MySQL"と"Tomcat"、"MySQL"と"Jetty"、"PostgreSQL"と"Tomcat"、"PostgreSQL"と"Jetty"という４パターンが存在する。【０００５】
また、このような、システム構成部品を組み合せて構成されるシステムの検証（テスト）を効率的に実施する技術が、例えば、特許文献１に開示されている。特許文献１に開示される技術においては、構成部品毎に動作を検証するテストケースが用意され、システムを構成する構成部品毎のテストケースが、当該システムの検証に必要なテストケースとして、まとめて提示される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１１８６３７号公報
【非特許文献】
【０００７】
【非特許文献１】"IBM Workload Deployer"、International Business Machines Corporation、［online］、［平成24年11月27日検索］、インターネット〈URL：http://www.redbooks.ibm.com/redbooks/SG248011/wwhelp/wwhimpl/js/html/wwhelp.htm〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述の特許文献１に記載の技術は、利用者等により指定された構成に係るテストケースを提示するものであり、例えば、特定のシステム構成部品の開発時に、当該構成部品に係るシステムの全ての構成の検証を網羅的に実施することはできない。【０００９】
このため、例えば、上述のモデル"Web3Tier"を構成するプロダクトの組み合わせの内、検証が行われた"MySQL"と"Tomcat"の組み合わせでは、システムが正しく機能するが、検証が行われていない"MySQL"と"Jetty"の組み合わせでは、システムに問題が発生する可能性がある。【００１０】
一般に、開発したシステム構成部品に係る検証は、当該構成部品の開発時にできる限り速やかに実施されることが望ましい。その理由は、開発した構成部品の問題の発見時期が遅れるほど、周辺の構成部品との間の依存性の増加に伴い、開発した構成部品について考慮すべき事項が増加するためである。また、他の理由は、開発者が開発した構成部品の内容を忘れたりすることにより、開発した構成部品の修正が困難になるためである。【００１１】
また、開発したシステム構成部品に係る検証は、開発した構成部品に係る全ての構成について、網羅的に実行されることが望ましい。その理由は、選択される可能性が低い構成の検証が行われなかった場合、当該構成の問題の発見が遅れ、上述のように、開発した構成部品の修正が困難になるためである。【００１２】
本発明の目的は上述の課題を解決し、特定のシステム構成部品を含むシステムの全ての構成の検証を網羅的かつ迅速に実施できる、テスト支援装置、及び、テスト支援方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一態様におけるテスト支援装置は、システムの構成が、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される場合に、１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す関連情報を記憶する記憶手段と、機能性、または、プログラムが指定された場合に、前記関連情報をもとに、前記指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する抽出手段と、を備える。【００１４】
本発明の一態様におけるテスト支援方法は、システムの構成が、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される場合に、１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す関連情報を記憶し、機能性、または、プログラムが指定された場合に、前記関連情報をもとに、前記指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する。【００１５】
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、システムの構成が、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される場合に、１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す関連情報を記憶し、機能性、または、プログラムが指定された場合に、前記関連情報をもとに、前記指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する、処理をコンピュータに実行させるプログラムを格納する。
【発明の効果】
【００１６】
本発明の効果は、特定のシステム構成部品を含むシステムの全ての構成の検証を網羅的かつ迅速に実施できることである。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、テスト支援装置１００の構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、テスト支援装置１００の処理を示すフローチャートである。
【図４】本発明の第１の実施の形態における、プロダクトに対するシステム構成抽出処理（ステップＳ１０４）の詳細を示すフローチャートである。
【図５】本発明の第１の実施の形態における、機能性に対するシステム構成抽出処理（ステップＳ１０５）の詳細を示すフローチャートである。
【図６】本発明の第１の実施の形態における、モデルに対するシステム構成抽出処理（ステップＳ１０６）の詳細を示すフローチャートである。
【図７】本発明の第１の実施の形態における、構成部品関連情報２０１の例を示す図である。
【図８】本発明の第１の実施の形態における、構成部品情報２０２の例を示す図である。
【図９】本発明の第１の実施の形態における、テストケース情報３０１の例を示す図である。
【図１０】本発明の第１の実施の形態における、機能性実現情報４０１の例を示す図である。
【図１１】本発明の第１の実施の形態における、システム構成情報５０１の例を示す図である。
【図１２】本発明の第１の実施の形態における、機能性実現情報４０１の他の例を示す図である。
【図１３】本発明の第１の実施の形態における、システム構成情報５０１の他の例を示す図である。
【図１４】本発明の第１の実施の形態における、機能性実現情報４０１の他の例を示す図である。
【図１５】本発明の第１の実施の形態における、システム構成情報５０１の他の例を示す図である。
【図１６】本発明の第１の実施の形態における、機能性実現情報４０１の他の例を示す図である。
【図１７】本発明の第１の実施の形態における、システム構成情報５０１の他の例を示す図である。
【図１８】本発明の第２の実施の形態における、テスト支援装置１００の処理を示すフローチャートである。
【図１９】本発明の第２の実施の形態における、システム構成抽出処理（ステップＳ２０３）の詳細を示すフローチャートである。
【図２０】本発明の第２の実施の形態における、機能性実現情報４０１の例を示す図である。
【図２１】本発明の第２の実施の形態における、システム構成情報５０１の例を示す図である。
【発明を実施するための形態】
【００１８】
（第１の実施の形態）
次に、本発明の第１の実施の形態について説明する。
【００１９】
はじめに、本発明の第１の実施の形態の構成について説明する。図２は、本発明の第１の実施の形態における、テスト支援装置１００の構成を示すブロック図である。
【００２０】
図２を参照すると、本発明の第１の実施の形態のテスト支援装置１００は、抽出処理部（または、抽出部）１０１、及び、記憶部１０２を含む。テスト支援装置１００は、利用者が情報の入出力に用いる入出力装置１１０と、ネットワーク等により通信可能に接続される。
【００２１】
抽出処理部１０１は、入出力装置１１０を介して、利用者から、システム構成の抽出要求を受け付ける。抽出要求は、追加や更新されたシステム構成部品等、他の構成部品への影響をテストする対象である構成部品（対象部品）の指定を含む。そして、抽出処理部１０１は、対象部品を含むシステム構成を抽出し、入出力装置１１０を介して、利用者へ出力する。
【００２２】
記憶部１０２は、構成部品関連情報（または、関連情報）２０１、及び、テストケース情報３０１を記憶する。ここで、構成部品関連情報２０１は、各システム構成部品と他のシステム構成部品との間の関連を示す。テストケース情報３０１は、各システム構成部品に係るテストケースを示す。
【００２３】
本発明の第１の実施の形態においては、システム構成部品として、プロダクト、機能性、及び、モデルが定義される。ここで、プロダクトは、ミドルウェアの実装（プログラム）を示す構成部品である。機能性は、ミドルウェアを抽象化した概念を定義する構成部品である。モデルは、ミドルウェアを組み合せたシステムを抽象的に定義する構成部品である。モデルのシステム構成は、当該モデルが保持すべき機能性と、各機能性を実現するプロダクトの組とにより、決定される。
【００２４】
なお、各システム構成部品（プロダクト、機能性、モデル）には、当該構成部品を一意に識別するための識別子（プロダクトｉｄｅｎｔｉｆｉｅｒ（以下、ＩＤと記載する）、機能性ＩＤ、モデルＩＤ）が付与される。
【００２５】
図７は、本発明の第１の実施の形態における、構成部品関連情報２０１の例を示す図である。図７において、四角はモデル、太線の円は機能性、細線の円はプロダクトを示す。また、実線の矢印は、始点のモデルが終点の機能性、または、モデルを保持すべきであることを示す。また、点線の矢印は、始点のプロダクト、または、機能性が終点の機能性を実現可能であることを示す。
【００２６】
ここで、機能性への点線の矢印の始点のプロダクトを、当該機能性の（直接的な）実現プロダクトと呼ぶ。例えば、図７の構成部品関連情報２０１において、プロダクト"mysql"は、機能性"rdb"の実現プロダクトである。プロダクトは複数の異なる機能性の実現プロダクトでもよい。同一の機能性が、複数の異なる実現プロダクトを有していてもよい。
【００２７】
また、機能性への点線の矢印の始点の他の機能性を、当該機能性の（直接的な）実現機能性と呼ぶ。例えば、図７の構成部品関連情報２０１において、機能性"rdb"は"db"の実現機能性である。機能性は複数の異なる他の機能性の実現機能性でもよい。同一の機能性が、複数の異なる実現機能性を有していてもよい。
【００２８】
また、ある機能性の実現機能性の実現プロダクトは、当該機能性の（間接的な）実現プロダクトでもある。例えば、図７の構成部品関連情報２０１において、プロダクト"mysql"は"rdb"の実現プロダクトであると同時に、"db"の実現プロダクトでもある。
【００２９】
また、モデルからの実線の矢印の終点の機能性を、当該モデルの（直接的な）要求機能性と呼ぶ。例えば、図７の構成部品関連情報２０１において、機能性"rdb"は、モデル"web3tier"の要求機能性である。同一の機能性が、複数の異なるモデルの要求機能性でもよい。同一のモデルが、複数の異なる要求機能性を有していてもよい。
【００３０】
また、モデルからの実線の矢印の終点の他のモデルを、当該モデルの（直接的な）要求モデルと呼ぶ。例えば、図７の構成部品関連情報２０１において、モデル"web3tier"はモデル"mail_web3tier"の要求モデルである。同一のモデルが、複数の異なるモデルの要求モデルでもよい。同一のモデルが、複数の異なる要求モデルを有していてもよい。
【００３１】
また、あるモデルの要求モデルの要求機能性は、当該モデルの（間接的な）要求機能性でもある。例えば、図７の構成部品関連情報２０１において、機能性"rdb"はモデル"web3tier"の要求機能性であると同時に、"mail_web3tier"の要求機能性でもある。
【００３２】
また、あるモデルの要求モデルの要求モデルは、当該モデルの（間接的な）要求モデルでもある。
【００３３】
モデルのシステム構成は、構成部品関連情報２０１において、当該モデルの全ての要求機能性の各々について、実現プロダクトの内のいずれかを選択することで決定される。
【００３４】
例えば、モデル"mail_web3tier"のシステム構成は、機能性"rdb"について、プロダクト"mysql"か"c"、機能性"ap-svr(server)"について、プロダクト"d"か"e"、機能性"mail-svr(server)"について、プロダクト"f"を選択することで決定される。同様に、モデル"batch"のシステム構成は、機能性"cache-svr(server)"について、プロダクト"a"、機能性"db"について、プロダクト"b"か"mysql"か"c"を選択することで決定される。
【００３５】
構成部品関連情報２０１は、各構成部品に係る構成部品情報２０２の集合で表されてもよい。
【００３６】
図８は、本発明の第１の実施の形態における、構成部品情報２０２の例を示す図である。
【００３７】
構成部品情報２０２は、構成部品の種別（プロダクト、機能性、モデル）を示す構成部品種別を含む。
【００３８】
図８において、構成部品情報２０２ａ、２０２ｂ、２０２ｃは、それぞれ、プロダクト、機能性、モデルに係る構成部品情報２０２の例である。
【００３９】
プロダクトに係る構成部品情報２０２ａは、プロダクトＩＤ、及び、当該プロダクトを（直接的な）実現プロダクトとする機能性の機能性ＩＤを含む。また、プロダクトや、当該プロダクトのインストールや設定などを行うためのドライバ等が、プロダクトＩＤに対応付けて、図示しない外部の記憶部に記憶されていてもよい。図８の例では、構成部品情報２０２ａは、プロダクト"mysql"が、機能性"rdb"の実現プロダクトであることを示している。
【００４０】
機能性に係る構成部品情報２０２ｂは、機能性ＩＤを含む。構成部品情報２０２ｂは、当該機能性を（直接的な）実現機能性とする他の機能性の機能性ＩＤを含んでいてもよい。また、機能性を実現するプロダクトの抽象化、すなわちプロダクト毎の差異の吸収を行うドライバ等が、機能性ＩＤに対応付けて、図示しない外部の記憶部に記憶されていてもよい。図８の例では、構成部品情報２０２ｂは、機能性"rdb"が、機能性"db"の実現機能性であることを示している。
【００４１】
モデルに係る構成部品情報２０２ｃは、モデルＩＤ、及び、当該モデルの（直接的な）要求機能性の機能性ＩＤを含む。また、構成部品情報２０２ｃは、当該モデルの（直接的な）要求モデルのモデルＩＤを含んでいてもよい。また、モデルの複数の要求機能性を実現するプロダクト間の協調動作を調整するドライバ等が、モデルＩＤに対応付けて、図示しない外部の記憶部に記憶されていてもよい。図８の例では、構成部品情報２０２ｃは、モデル"web3tier"の要求機能性が、機能性"rdb"と"ap-svr"であることを示している。
【００４２】
図９は、本発明の第１の実施の形態における、テストケース情報３０１の例を示す図である。
【００４３】
テストケース情報３０１は、テストケースの識別子（テストケースＩＤ）、及び、当該テストケースがテストを行う構成部品（プロダクト、機能性、モデル）の識別子を示すテスト対象を含む。テストケース情報３０１は、さらに、テスト内容として、プロダクトの正常なインストールを確認するためのコマンドや判定条件、機能性やモデルの正常性を確認するためのサンプルプログラムのインストールやそのコマンド、判定条件を含んでいてもよい。図９の例では、テストケース"mysql_test"が、プロダクト"mysql"のテストを行うためのテストケースであることを示している。また、テスト内容として、コマンド"aptitude show mysql"を実行すること、及び、コマンドの応答が"OK"の場合、テスト結果を正常と判定することを示している。
【００４４】
記憶部１０２は、各システム構成部品（プロダクト、機能性、モデル）について、テストケース情報３０１を記憶する。
【００４５】
なお、構成部品情報２０２やテストケース情報３０１は、Ｅｘｔｅｎｓｉｂｌｅ Markup Language（以下、ＸＭＬと記載する）形式で表現されていてもよい。
【００４６】
また、構成部品関連情報２０１やテストケース情報３０１は、図示しない外部の記憶部に記憶されており、図示しない取得部が、構成部品関連情報２０１やテストケース情報３０１を外部の記憶部から取得してもよい。
【００４７】
また、テスト支援装置１００はＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。
【００４８】
また、テスト支援装置１００は、さらに、テスト支援装置１００が出力するシステム構成に従って、コンピュータ上にシステムを構築するシステム構築装置（図示せず）、及び、テスト支援装置１００が出力するテストケースに従って、システムのテストを行うテスト実行装置（図示せず）と接続されていてもよい。
【００４９】
次に、本発明の第１の実施の形態におけるテスト支援装置１００の動作について説明する。図３は、本発明の第１の実施の形態における、テスト支援装置１００の処理を示すフローチャートである。
【００５０】
ここでは、記憶部１０２に、図７の構成部品関連情報２０１が記憶されている場合を例に、動作を説明する。
【００５１】
はじめに、抽出処理部１０１は、入出力装置１１０を介して、利用者からシステム構成の抽出要求を受け付ける（ステップＳ１０１）。ここで、抽出要求は、追加や更新されたシステム構成部品（対象部品）の識別子を含む。
【００５２】
抽出処理部１０１は、記憶部１０２から、抽出要求で指定された対象部品に係る構成部品情報２０２を取得する（ステップＳ１０２）。
【００５３】
抽出処理部１０１は、取得したシステム構成部品情報２０２の構成部品種別により、対象部品の種別を確認する（ステップＳ１０３）。
【００５４】
対象部品の種別がプロダクトの場合（ステップＳ１０３／プロダクト）、抽出処理部１０１は、後述する、プロダクトに対するシステム構成抽出処理を実行する（ステップＳ１０４）。
【００５５】
対象部品の種別が機能性の場合（ステップＳ１０３／機能性）、抽出処理部１０１は、後述する、機能性に対するシステム構成抽出処理を実行する（ステップＳ１０５）。
【００５６】
対象部品の種別がモデルの場合（ステップＳ１０３／モデル）、抽出処理部１０１は、後述する、モデルに対するシステム構成抽出処理を実行する（ステップＳ１０６）。
【００５７】
ステップＳ１０４〜Ｓ１０６のシステム構成抽出処理により、対象部品を含むシステム構成を示すシステム構成情報５０１が生成される。
【００５８】
抽出処理部１０１は、テストケース情報３０１をもとに、システム構成情報５０１に含まれる、各システム構成の各構成部品について、当該構成部品をテスト対象とするテストケースを取得し、システム構成情報５０１に設定する（ステップＳ１０７）。
【００５９】
抽出処理部１０１は、システム構成情報５０１を、入出力装置１１０を介して、利用者へ出力する（ステップＳ１０８）。
【００６０】
次に、ステップＳ１０４〜Ｓ１０６のシステム構成抽出処理の詳細を説明する。
【００６１】
＜プロダクトに対するシステム構成抽出処理＞
はじめに、プロダクトに対するシステム構成抽出処理（ステップＳ１０４）の詳細を説明する。
【００６２】
図４は、本発明の第１の実施の形態における、プロダクトに対するシステム構成抽出処理（ステップＳ１０４）の詳細を示すフローチャートである。
【００６３】
プロダクトに対するシステム構成抽出処理では、対象部品であるプロダクト（対象プロダクト）が影響を及ぼす機能性及びモデルが抽出される。そして、抽出されたモデルについて、対象プロダクトを含むシステム構成が抽出される。
【００６４】
はじめに、抽出処理部１０１は、構成部品関連情報２０１をもとに、対象プロダクトを実現プロダクトとする機能性を特定する。ここで、抽出処理部１０１は、構成部品関連情報２０１において、対象プロダクトからの点線の矢印を順方向に再帰的に辿って得られる全ての経路上の機能性を探索することにより、対象プロダクトを実現プロダクトとする機能性を特定する（ステップＳ１０４１）。
【００６５】
例えば、対象プロダクトとして、図７の構成部品関連情報２０１における、プロダクト"mysql"が指定された場合、抽出処理部１０１は、プロダクト"mysql"を実現プロダクトとする機能性として、機能性"rdb"、"db"を特定する。
【００６６】
次に、抽出処理部１０１は、構成部品関連情報２０１をもとに、ステップＳ１０４１にて特定した機能性の各々について、当該機能性を要求機能性とするモデルを抽出する。ここで、抽出処理部１０１は、構成部品関連情報２０１において、抽出したモデルへの実線の矢印を逆方向に再帰的に辿って得られる全ての経路上のモデルを探索することにより、特定した各機能性を要求機能性とするモデルを抽出する（ステップＳ１０４２）。
【００６７】
例えば、抽出処理部１０１は、機能性"rdb"を要求機能性とするモデルとして、"web3tier"、"mail_web3tier"を抽出する。また、抽出処理部１０１は、機能性"db"を要求機能性とするモデルとして、"batch"を抽出する。
【００６８】
次に、抽出処理部１０１は、ステップＳ１０４２で抽出したモデルの内の１つを選択する（ステップＳ１０４３）。ここで、抽出処理部１０１は、構成部品関連情報２０１において、ステップＳ１０４１で特定された機能性に近いモデルから先に選択してもよい。
【００６９】
抽出処理部１０１は、構成部品関連情報２０１をもとに、ステップＳ１０４３で選択したモデルの要求機能性を抽出する。ここで、抽出処理部１０１は、構成部品関連情報２０１において、選択したモデルからの実線の矢印を順方向に再帰的に辿って得られる全ての経路上の要求モデルを探索することにより、選択したモデルの要求モデルを抽出する。そして、選択したモデル、及び、抽出した各要求モデルの要求機能性を抽出する（ステップＳ１０４４）。
【００７０】
例えば、ステップＳ１０４３でモデル"web3tier"が選択された場合、抽出処理部１０１は、モデル"web3tier"の要求機能性として、機能性"rdb"、"ap-svr"を抽出する。
【００７１】
次に、抽出処理部１０１は、ステップＳ１０４４で抽出した各要求機能性について、当該要求機能性の実現プロダクトの集合を抽出する。ここで、抽出処理部１０１は、構成部品関連情報２０１において、抽出した要求機能性への点線の矢印を逆方向に再帰的に辿って得られる全ての経路上の機能性を探索し、抽出した各要求機能性の実現機能性を抽出する。そして、抽出した要求機能性、及び、抽出した実現機能性の実現プロダクトを抽出する。そして、抽出処理部１０１は、モデルに適用可能な実現プロダクトを示す機能性実現情報４０１を生成する（ステップＳ１０４５）。
【００７２】
なお、ステップＳ１０４４で抽出した要求機能性が、ステップＳ１０４１で特定された対象プロダクトを実現プロダクトとする機能性の場合、抽出処理部１０１は、構成部品関連情報２０１において、次のように、実現機能性を抽出する。すなわち、抽出処理部１０１は、抽出した要求機能性への点線の矢印を逆方向に再帰的に辿って得られる経路の内、抽出した要求機能性と対象プロダクトとの間の経路上の機能性のみを探索し、実現機能性を抽出する。この場合、抽出処理部１０１は、実現プロダクトとして、対象プロダクトのみを抽出する。
【００７３】
図１０、図１２、図１４、図１６は、本発明の第１の実施の形態における、機能性実現情報４０１の例を示す図である。機能性実現情報４０１は、モデルについて抽出された要求モデルのモデルＩＤと要求機能性の機能性ＩＤ、及び、当該要求機能性について抽出された実現機能性の機能性ＩＤと実現プロダクトのプロダクトＩＤの集合を含む。
【００７４】
例えば、抽出した要求機能性の内、機能性"rdb"は、対象プロダクト"mysql"を実現プロダクトとする機能性であるため、抽出処理部１０１は、機能性"rdb"について、実現プロダクト"mysql"を抽出する。また、抽出処理部１０１は、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。この結果、抽出処理部１０１は、モデル"web3tier"に対して、図１０の機能性実現情報４０１ａを生成する。
【００７５】
なお、抽出処理部１０１は、ステップＳ１０４３で選択したモデルの要求モデルについて、機能性実現情報４０１が既に生成されている場合は、当該生成済みの機能性実現情報４０１の内容を利用してもよい。
【００７６】
次に、抽出処理部１０１は、ステップＳ１０４５で抽出された、各要求機能性についての実現プロダクトの集合をもとに、モデルに適用可能なシステム構成を抽出する。ここで、抽出処理部１０１は、各要求機能性の実現プロダクトの集合の直積を求め、実現プロダクトの組み合わせを取得することにより、システム構成を抽出する。そして、抽出処理部１０１は、得られたシステム構成をシステム構成情報５０１に設定する（ステップＳ１０４６）。
【００７７】
図１１、図１３、図１５、図１７は、本発明の第１の実施の形態における、システム構成情報５０１の例を示す図である。システム構成情報５０１は、システム構成を識別するための識別子（構成ＩＤ）、モデルのモデルＩＤ、当該モデルについて抽出された要求モデルのモデルＩＤと要求機能性の機能性ＩＤを含む。さらに、システム構成情報５０１は、当該要求機能性について抽出された実現機能性の機能性ＩＤと実現プロダクトのプロダクトＩＤ、及び、当該実現プロダクトのテストを行うためのテストケースのテストケースＩＤを含む。
【００７８】
例えば、抽出処理部１０１は、要求機能性"rdb"の実現プロダクトの集合{"mysql"}と要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}との直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d"}、{"mysql","e"}となる。抽出処理部１０１は、これらの組み合わせについて、図１０の機能性実現情報４０１から、モデルと要求モデルのモデルＩＤ、要求機能性と実現機能性の機能性ＩＤ、及び、実現プロダクトのプロダクトＩＤを取得し、図１１のシステム構成情報５０１ａにおける、構成ＩＤ"1"、"2"のように、システム構成を設定する。
【００７９】
抽出処理部１０１は、ステップＳ１０４２で抽出した全てのモデルについて、ステップＳ１０４３〜Ｓ１０４６を繰り返す（ステップＳ１０４７）。
【００８０】
例えば、ステップＳ１０４３でモデル"mail_web3tier"が選択された場合、抽出処理部１０１は、モデル"mail_web3tier"の要求モデル、要求機能性として、モデル"web3tier"、機能性"rdb"、"ap-svr"、及び、機能性"mail-svr"を抽出する。
【００８１】
そして、抽出処理部１０１は、上述と同様に、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"を、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。さらに、抽出処理部１０１は、機能性"mail-svr"について、実現プロダクト"f"を抽出する。この結果、抽出処理部１０１は、モデル"mail_web3tier"に対して、図１０の機能性実現情報４０１ｂを生成する。
【００８２】
抽出処理部１０１は、要求機能性"rdb"の実現プロダクトの集合{"mysql"}、要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}、及び、要求機能性"mail-svr"の実現プロダクトの集合{"f"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d","f"}、{"mysql","e","f"}となる。抽出処理部１０１は、これらの組み合わせについて、図１１のシステム構成情報５０１ａにおける、構成ＩＤ"3"、"4"のように、システム構成を設定する。
【００８３】
また、ステップＳ１０４３でモデル"batch"が選択された場合、抽出処理部１０１は、モデル"batch"の要求機能性として、機能性"cache-svr"、"db"を抽出する。
【００８４】
そして、抽出処理部１０１は、抽出した要求機能性の内、機能性"cache-svr"について、実現プロダクト"a"を抽出する。また、機能性"db"は、対象プロダクト"mysql"を実現プロダクトとする機能性であるため、抽出処理部１０１は、機能性"mail-svr"について、実現機能性"rdb"、実現プロダクト"mysql"を抽出する。この結果、抽出処理部１０１は、モデル"batch"に対して、図１０の機能性実現情報４０１ｃを生成する。
【００８５】
抽出処理部１０１は、要求機能性"cache-svr"の実現プロダクトの集合{"a"}と要求機能性"db"の実現プロダクトの集合{"mysql"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"a","mysql"}となる。抽出処理部１０１は、これらの組み合わせについて、図１１のシステム構成情報５０１ａにおける、構成ＩＤ"5"のように、システム構成を設定する。
【００８６】
そして、抽出処理部１０１は、図９のテストケース情報３０１をもとに、図１１のシステム構成情報５０１ａにおける実現プロダクト"mysql"のテストケースとして、テストケース"mysql_test"を設定する。抽出処理部１０１は、他の実現プロダクトについても、図１１に示すように、テストケースを設定する。
【００８７】
また、他の例として、例えば、対象プロダクトとして、図７の構成部品関連情報２０１における、プロダクト"a"が指定された場合、抽出処理部１０１は、プロダクト"a"を実現プロダクトとする機能性として、機能性"cache-svr"を特定する。
【００８８】
抽出処理部１０１は、機能性"cache-svr"を要求機能性とするモデルとして、"batch"を抽出する。
【００８９】
抽出処理部１０１は、モデル"batch"の要求機能性として、機能性"cache-svr"、"db"を抽出する。
【００９０】
抽出処理部１０１は、抽出した要求機能性の内、機能性"cache-svr"は、対象プロダクト"a"を実現プロダクトとする機能性であるため、抽出処理部１０１は、機能性"cache-svr"について、実現プロダクト"a"を抽出する。また、抽出処理部１０１は、機能性"db"について、実現プロダクト"b"、及び、実現機能性"rdb"、実現プロダクト"mysql"、"c"を抽出する。この結果、抽出処理部１０１は、モデル"batch"に対して、図１２の機能性実現情報４０１ｄを生成する。
【００９１】
抽出処理部１０１は、要求機能性"cache-svr"の実現プロダクトの集合{"a"}と要求機能性"db"の実現プロダクトの集合{"b","mysql","c"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"a","b"}、{"a","mysql"}、{"a","c"}となる。抽出処理部１０１は、これらの組み合わせについて、図１３のシステム構成情報５０１ｂにおける、構成ＩＤ"1"、"2"、"3"のように、システム構成を設定する。
【００９２】
＜機能性に対するシステム構成抽出処理＞
次に、機能性に対するシステム構成抽出処理（ステップＳ１０５）の詳細を説明する。
【００９３】
図５は、本発明の第１の実施の形態における、機能性に対するシステム構成抽出処理（ステップＳ１０５）の詳細を示すフローチャートである。
【００９４】
機能性に対するシステム構成抽出処理では、対象部品である機能性（対象機能性）が影響を及ぼす機能性およびモデルが抽出される。そして、抽出されたモデルについて、対象機能性を含むシステム構成が抽出される。
【００９５】
はじめに、抽出処理部１０１は、構成部品関連情報２０１をもとに、対象機能性を実現機能性とする機能性を特定する。ここで、抽出処理部１０１は、構成部品関連情報２０１において、対象機能性からの点線の矢印を順方向に再帰的に辿って得られる全ての経路上の機能性を探索することにより、対象機能性を実現機能性とする機能性を特定する（ステップＳ１０５１）。
【００９６】
例えば、対象機能性として、図７の構成部品関連情報２０１における、機能性"rdb"が指定された場合、抽出処理部１０１は、機能性"rdb"を実現機能性とする機能性として、機能性"db"を特定する。
【００９７】
次に、抽出処理部１０１は、ステップＳ１０４２と同様に、対象機能性、及び、ステップＳ１０５１にて特定した機能性の各々について、当該機能性を要求機能性とするモデルを抽出する（ステップＳ１０５２）。
【００９８】
例えば、抽出処理部１０１は、機能性"rdb"を要求機能性とするモデルとして、"web3tier"、"mail_web3tier"を抽出する。また、抽出処理部１０１は、機能性"db"を要求機能性とするモデルとして、"batch"を抽出する。
【００９９】
次に、抽出処理部１０１は、ステップＳ１０５２で抽出したモデルの内の１つを選択する（ステップＳ１０５３）。
【０１００】
抽出処理部１０１は、ステップＳ１０４４と同様に、ステップＳ１０５３で選択したモデルの要求機能性を抽出する（ステップＳ１０５４）。
【０１０１】
例えば、ステップＳ１０４３でモデル"web3tier"が選択された場合、抽出処理部１０１は、モデル"web3tier"の要求機能性として、機能性"rdb"、"ap-svr"を抽出する。
【０１０２】
次に、抽出処理部１０１は、ステップＳ１０４５と同様に、ステップＳ１０５４で抽出した各要求機能性について、当該要求機能性の実現プロダクトの集合を抽出する（ステップＳ１０５５）。
【０１０３】
なお、ステップＳ１０５４で抽出した要求機能性が、ステップＳ１０５１で特定された対象機能性を実現機能性とする機能性の場合、抽出処理部１０１は、構成部品関連情報２０１において、以下のように、実現機能性を抽出する。すなわち、抽出処理部１０１は、抽出した要求機能性への点線の矢印を逆方向に再帰的に辿って得られる経路の内、抽出した要求機能性と対象機能性との間の経路を含む経路上の機能性のみを探索し、実現機能性を抽出する。
【０１０４】
例えば、抽出処理部１０１は、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を抽出する。同様に、抽出処理部１０１は、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。この結果、抽出処理部１０１は、モデル"web3tier"に対して、図１４の機能性実現情報４０１ｅを生成する。
【０１０５】
次に、抽出処理部１０１は、ステップＳ１０４６と同様に、モデルに適用可能なシステム構成を抽出する（ステップＳ１０５６）。
【０１０６】
例えば、抽出処理部１０１は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}と要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}との直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d"}、{"mysql","e"}、{"c","d"}、{"c","e"}となる。抽出処理部１０１は、これらの組み合わせについて、図１５のシステム構成情報５０１ｃにおける、構成ＩＤ"1"、"2"、"3"、"4"のように、システム構成を設定する。
【０１０７】
抽出処理部１０１は、ステップＳ１０５２で抽出した全てのモデルについて、ステップＳ１０５３〜Ｓ１０５６を繰り返す（ステップＳ１０５７）。
【０１０８】
例えば、ステップＳ１０５３でモデル"mail_web3tier"が選択された場合、抽出処理部１０１は、モデル"mail_web3tier"の要求モデル、要求機能性として、モデル"web3tier"、機能性"rdb"、"ap-svr"、及び、機能性"mail-svr"を抽出する。
【０１０９】
そして、抽出処理部１０１は、上述と同様に、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。また、抽出処理部１０１は、機能性"mail-svr"について、実現プロダクト"f"を抽出する。この結果、抽出処理部１０１は、モデル"mail_web3tier"に対して、図１４の機能性実現情報４０１ｆを生成する。
【０１１０】
抽出処理部１０１は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}、要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}、及び、要求機能性"mail-svr"の実現プロダクトの集合{"f"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d","f"}、{"mysql","e","f"}、{"c","d","f"}、{"c","e","f"}となる。抽出処理部１０１は、これらの組み合わせについて、図１５のシステム構成情報５０１ｃにおける、構成ＩＤ"5"、"6"、"7"、"8"のように、システム構成を設定する。
【０１１１】
また、ステップＳ１０５３でモデル"batch"が選択された場合、抽出処理部１０１は、モデル"batch"の要求機能性として、機能性"cache-svr"、"db"を抽出する。
【０１１２】
そして、抽出処理部１０１は、抽出した要求機能性の内、機能性"cache-svr"について、実現プロダクト"a"を抽出する。また、機能性"db"は、対象機能性"rdb"を実現機能性とする機能性であるため、抽出処理部１０１は、機能性"db"について、実現機能性"rdb"、実現プロダクト"mysql"、"c"を抽出する。この結果、抽出処理部１０１は、モデル"batch"に対して、図１４の機能性実現情報４０１ｇを生成する。
【０１１３】
抽出処理部１０１は、要求機能性"cache-svr"の実現プロダクトの集合{"a"}と要求機能性"db"の実現プロダクトの集合{"mysql","c"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"a","mysql"}、{"a","c"}となる。抽出処理部１０１は、これらの組み合わせについて、図１５のシステム構成情報５０１ｃにおける、構成ＩＤ"9"、"10"のように、システム構成を設定する。
【０１１４】
＜モデルに対するシステム構成抽出処理＞
次に、モデルに対するシステム構成抽出処理（ステップＳ１０６）の詳細を説明する。
【０１１５】
図６は、本発明の第１の実施の形態における、モデルに対するシステム構成抽出処理（ステップＳ１０６）の詳細を示すフローチャートである。
【０１１６】
モデルに対するシステム構成抽出処理では、対象部品であるモデル（対象モデル）が影響を及ぼす機能性及びモデルが抽出される。そして、抽出されたモデルについて、対象モデルを含むシステム構成が抽出される。
【０１１７】
はじめに、抽出処理部１０１は、構成部品関連情報２０１をもとに、対象モデルを要求モデルとするモデルを抽出する。ここで、抽出処理部１０１は、構成部品関連情報２０１において、対象モデルへの実線の矢印を逆方向に再帰的に辿って得られる全ての経路上のモデルを探索することにより、対象モデルを要求モデルとするモデルを抽出する（ステップＳ１０６２）。
【０１１８】
例えば、対象モデルとして、図７の構成部品関連情報２０１における、モデル"web3tier"が指定された場合、抽出処理部１０１は、モデル"web3tier"を要求モデルとするモデルとして、"mail_web3tier"を抽出する。
【０１１９】
次に、抽出処理部１０１は、対象モデル、及び、ステップＳ１０６２で抽出したモデルの内の１つを選択する（ステップＳ１０６３）。
【０１２０】
抽出処理部１０１は、ステップＳ１０４４と同様に、ステップＳ１０６３で選択したモデルの要求機能性を抽出する（ステップＳ１０６４）。
【０１２１】
例えば、ステップＳ１０４３でモデル"web3tier"が選択された場合、抽出処理部１０１は、モデル"web3tier"の要求機能性として、機能性"rdb"、"ap-svr"を抽出する。
【０１２２】
次に、抽出処理部１０１は、ステップＳ１０４５と同様に、ステップＳ１０６４で抽出した各要求機能性について、当該要求機能性の実現プロダクトの集合を抽出する（ステップＳ１０６５）。
【０１２３】
例えば、抽出処理部１０１は、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を抽出する。同様に、抽出処理部１０１は、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。この結果、抽出処理部１０１は、モデル"web3tier"に対して、図１６の機能性実現情報４０１ｈを生成する。
【０１２４】
次に、抽出処理部１０１は、ステップＳ１０４６と同様に、モデルに適用可能なシステム構成を抽出する（ステップＳ１０６６）。
【０１２５】
例えば、抽出処理部１０１は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}と要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}との直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d"}、{"mysql","e"}、{"c","d"}、{"c","e"}となる。抽出処理部１０１は、これらの組み合わせについて、図１７のシステム構成情報５０１ｄにおける、構成ＩＤ"1"、"2"、"3"、"4"のように、システム構成を設定する。
【０１２６】
抽出処理部１０１は、対象モデル、及び、ステップＳ１０６２で抽出したモデルの全てについて、ステップＳ１０６３〜Ｓ１０６６を繰り返す（ステップＳ１０６７）。
【０１２７】
例えば、ステップＳ１０６３でモデル"mail_web3tier"が選択された場合、抽出処理部１０１は、モデル"mail_web3tier"の要求モデル、要求機能性として、モデル"web3tier"、機能性"rdb"、"ap-svr"、及び、機能性"mail-svr"を抽出する。
【０１２８】
そして、抽出処理部１０１は、上述と同様に、抽出した要求機能性の内、機能性"rdb"について、実現プロダクト"mysql"、"c"を、機能性"ap-svr"について、実現プロダクト"d"、"e"を抽出する。また、抽出処理部１０１は、機能性"mail-svr"について、実現プロダクト"f"を抽出する。この結果、抽出処理部１０１は、モデル"mail_web3tier"に対して、図１６の機能性実現情報４０１ｉを生成する。
【０１２９】
抽出処理部１０１は、要求機能性"rdb"の実現プロダクトの集合{"mysql","c"}、要求機能性"ap-svr"の実現プロダクトの集合{"d","e"}、及び、要求機能性"mail-svr"の実現プロダクトの集合{"f"}の直積を算出する。直積の算出結果が、実現プロダクトの組み合わせ{"mysql","d","f"}、{"mysql","e","f"}、{"c","d","f"}、{"c","e","f"}となる。抽出処理部１０１は、これらの組み合わせについて、図１７のシステム構成情報５０１ｄにおける、構成ＩＤ"5"、"6"、"7"、"8"のように、システム構成を設定する。
【０１３０】
以上により、本発明の第１の実施の形態の動作が完了する。
【０１３１】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【０１３２】
図１を参照すると、テスト支援装置１００は、記憶部１０２、及び、抽出処理部１０１を含む。ここで、システムの構成は、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される。記憶部１０２は、１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す構成部品関連情報２０１を記憶する。抽出処理部１０１は、機能性、または、プログラムが指定された場合に、構成部品関連情報２０１をもとに、指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する。
【０１３３】
本発明の第１の実施の形態によれば、特定のシステム構成部品を含むシステムの全ての構成の検証を網羅的かつ迅速に実施できる。その理由は、抽出処理部１０１が、機能性、または、プログラムが指定された場合に、構成部品関連情報２０１をもとに、指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力するためである。これにより、システム構成部品の追加や更新に伴う、検証のための工数を低減するとともに、追加や更新のあるシステムの構成を、もれなく検証できる。
【０１３４】
また、本発明の第１の実施の形態によれば、特定のシステム構成部品を含むシステムの全ての構成の検証に必要なテストケースを、容易に取得できる。その理由は、抽出処理部１０１が、テストケース情報３０１から、抽出されたシステム構成に含まれる、各機能性、及び、各プログラムに係るテストケースの識別子を抽出し、出力するためである。
【０１３５】
また、本発明の第１の実施の形態によれば、特定のシステム構成部品を含むシステムの全ての構成の検証を自動化できる。その理由は、システム構築装置が、抽出処理部１０１により抽出されたシステムの構成に従って、システムを構築し、テスト実行装置が、抽出処理部１０１により抽出されたテストケースに従って、システムのテストを行えるためである。
【０１３６】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【０１３７】
本発明の第２の実施の形態においては、抽出処理部１０１が、構成部品関連情報２０１に含まれる全てのモデルについて適用可能なシステム構成を生成した後で、対象部品を含むシステム構成を抽出する点で、本発明の第１の実施の形態と異なる。
【０１３８】
本発明の第２の実施の形態における、テスト支援装置１００の構成は、本発明の第１の実施の形態の構成（図２）と同様である。
【０１３９】
次に、本発明の第２の実施の形態におけるテスト支援装置１００の動作について説明する。図１８は、本発明の第２の実施の形態における、テスト支援装置１００の処理を示すフローチャートである。
【０１４０】
ここでは、本発明の第１の実施の形態と同様に、記憶部１０２に、図７の構成部品関連情報２０１が記憶されている場合を例に、動作を説明する。
【０１４１】
図１８において、対象部品に係る構成部品情報２０２の取得までの処理とテストケースの取得以降の処理（ステップＳ２０１〜Ｓ２０２、Ｓ２０７〜Ｓ２０８）は、本発明の第１の実施の形態（ステップＳ１０１〜Ｓ１０２、Ｓ１０７〜Ｓ２０８）と同様である。
【０１４２】
抽出処理部１０１は、対象部品の種別によらず、後述するシステム構成抽出処理を実行する（ステップＳ２０３）。
【０１４３】
次に、ステップＳ２０３のシステム構成抽出処理の詳細を説明する。
【０１４４】
＜システム構成抽出処理＞
図１９は、本発明の第２の実施の形態における、システム構成抽出処理（ステップＳ２０３）の詳細を示すフローチャートである。
【０１４５】
本発明の第２の実施の形態におけるシステム構成抽出処理では、構成部品関連情報２０１に含まれる全てのモデルについて、適用可能なシステム構成が生成される。そして、抽出されたシステム構成の内、対象部品を含むシステム構成が抽出される。
【０１４６】
はじめに、抽出処理部１０１は、構成部品関連情報２０１に含まれる全てのモデルを抽出する（ステップＳ２０３２）。
【０１４７】
次に、抽出処理部１０１は、ステップＳ２０３２で抽出したモデルの内の１つを選択する（ステップＳ２０３３）。
【０１４８】
抽出処理部１０１は、ステップＳ１０４４と同様に、ステップＳ２０３３で選択したモデルの要求機能性を抽出する（ステップＳ２０３４）。
【０１４９】
次に、抽出処理部１０１は、ステップＳ１０４５と同様に、ステップＳ２０３４で抽出した要求機能性の各々について、当該要求機能性の実現プロダクトの集合を抽出する（ステップＳ２０３５）。
【０１５０】
次に、抽出処理部１０１は、ステップＳ１０４６と同様に、モデルに適用可能なシステム構成を設定する（ステップＳ２０３６）。
【０１５１】
抽出処理部１０１は、対象モデル、及び、ステップＳ２０３２で抽出したモデルの全てについて、ステップＳ２０３３〜Ｓ２０３６を繰り返す（ステップＳ２０３７）。
【０１５２】
図２０は、本発明の第２の実施の形態における、機能性実現情報４０１の例を示す図である。図２１は、本発明の第２の実施の形態における、システム構成情報５０１の例を示す図である。
【０１５３】
例えば、抽出処理部１０１は、図７の構成部品関連情報２０１に含まれるモデル"web3tier"、"mail_web3tier"、"batch"に対して、図２０の機能性実現情報４０１ｊ、４０１ｋ、４０１ｌを生成する。そして、抽出処理部１０１は、図２１のシステム構成情報５０１ｅのように、システム構成を設定する。
【０１５４】
最後に、抽出処理部１０１は、システム構成情報５０１に含まれるシステム構成の内、対象部品を含む構成のみを抽出する（ステップＳ２０３８）。
【０１５５】
例えば、対象部品として、図７の構成部品関連情報２０１における、プロダクト"mysql"が指定された場合、抽出処理部１０１は、図２１のシステム構成情報５０１ｅに含まれるシステム構成の内、プロダクト"mysql"を実現プロダクトに含む、構成ＩＤ"1"、"2"、"5"、"6"、"10"の構成を抽出する。
【０１５６】
以上により、本発明の第２の実施の形態の動作が完了する。
【０１５７】
本発明の第２の実施の形態によれば、本発明の第１の実施の形態と同様に、特定のシステム構成部品を含むシステムの全ての構成の検証を網羅的かつ迅速に実施できる。
【０１５８】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１５９】
この出願は、２０１２年１２月１１日に出願された日本出願特願２０１２−２７０３６４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１６０】
１００    テスト支援装置
１０１    抽出処理部
１０２    記憶部
１１０    入出力装置
２０１    構成部品関連情報
２０２    構成部品情報
３０１    テストケース情報
４０１    機能性実現情報
５０１    システム構成情報
【図１】
2014091732.tif 000003
【図２】
2014091732.tif 000004
【図３】
2014091732.tif 000005
【図４】
2014091732.tif 000006
【図５】
2014091732.tif 000007
【図６】
2014091732.tif 000008
【図７】
2014091732.tif 000009
【図８】
2014091732.tif 000010
【図９】
2014091732.tif 000011
【図１０】
2014091732.tif 000012
【図１１】
2014091732.tif 000013
【図１２】
2014091732.tif 000014
【図１３】
2014091732.tif 000015
【図１４】
2014091732.tif 000016
【図１５】
2014091732.tif 000017
【図１６】
2014091732.tif 000018
【図１７】
2014091732.tif 000019
【図１８】
2014091732.tif 000020
【図１９】
2014091732.tif 000021
【図２０】
2014091732.tif 000022
【図２１】
2014091732.tif 000023
【手続補正書】
【提出日】平成27年5月21日(2015.5.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
システムの構成が、システムが保持すべき複数の機能性、及び、各機能性を実現するプログラムの組により定義される場合に、
１以上のシステムの識別子、各システムが保持すべき複数の機能性の識別子、及び、各機能性を実現可能な１以上のプログラムの識別子を示す関連情報を記憶し、
機能性、または、プログラムが指定された場合に、前記関連情報をもとに、前記指定された機能性、または、プログラムを含むシステムの構成を抽出し、出力する、
処理をコンピュータに実行させるプログラム。
【国際調査報告】
2014091732.tif 000024
2014091732.tif 000025
2014091732.tif 000026
2014091732.tif 000027