(57)【要約】【課題】検証対象システムのプログラムの変更による影響範囲およびその変更により実行すべきテストプログラムの影響範囲を分析できる影響範囲分析システムを提供する【解決手段】変更監視手段８１は、試験対象システムのプログラムまたは試験対象システムのテストプログラムにおける変更を検出する。依存関係モデル管理手段８２は、試験対象システムのプログラムおよびテストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行う。依存関係モデル記憶手段８３は、生成または変更が行われた依存関係モデルを記憶する。影響範囲特定手段８４は、依存関係モデルに基づいて、変更によるテスト項目への影響範囲を特定する。【選択図】図６
2015011661.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの変更に伴う影響範囲を分析する影響範囲分析システムであって、
試験対象システムのプログラムまたは前記試験対象システムのテストプログラムにおける変更を検出する変更監視手段と、
前記試験対象システムのプログラムおよび前記テストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行う依存関係モデル管理手段と、
生成または変更が行われた依存関係モデルを記憶する依存関係モデル記憶手段と、
前記依存関係モデルに基づいて、前記変更によるテスト項目への影響範囲を特定する影響範囲特定手段とを備えた
ことを特徴とする影響範囲分析システム。
【請求項２】
依存関係モデル管理手段は、要素間の依存関係を当該要素間のリンクで表わした依存関係モデルの生成または変更を行い、
影響範囲特定手段は、前記依存関係モデルにおいて変更が発生した箇所から前記リンクを辿って到達可能な要素を影響箇所と特定する
請求項１記載の影響範囲分析システム。
【請求項３】
依存関係モデル管理手段は、要素間の依存関係を木構造で表わした依存関係モデルの生成または変更を行い、
影響範囲特定手段は、前記依存関係モデルにおいて変更が発生した箇所の親ノードまたは子ノードを辿って到達可能な要素を影響箇所と特定する
請求項１または請求項２記載の影響範囲分析システム。
【請求項４】
テスト項目と、当該テスト項目の実行状態を示す状態フラグと、依存関係モデルにおいて当該テスト項目から到達可能な要素の集合を表わす影響範囲とを含むテスト項目情報を記憶するテスト項目記憶手段を備え、
影響範囲特定手段は、前記変更によって特定したテスト項目への影響範囲および当該変更によるテスト項目の実行状態を前記テスト項目記憶手段に記憶する
請求項１から請求項３のうちのいずれか１項に記載の影響範囲分析システム。
【請求項５】
テスト項目を実行するテスト項目実行手段を備え、
テスト項目記憶手段は、テスト項目を再実行する必要があるか、または、テスト項目の実行が完了したかを示す状態フラグを記憶し、
前記テスト項目実行手段は、前記テスト項目記憶手段における状態フラグを参照し、再実行する必要があるテスト項目を実行する
請求項４記載の影響範囲分析システム。
【請求項６】
プログラムの変更に伴う影響範囲を分析する影響範囲分析方法であって、
試験対象システムのプログラムまたは前記試験対象システムのテストプログラムにおける変更を検出し、
前記試験対象システムのプログラムおよび前記テストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行い、
生成または変更が行われた依存関係モデルに基づいて、前記変更によるテスト項目への影響範囲を特定する
ことを特徴とする影響範囲分析方法。
【請求項７】
要素間の依存関係を当該要素間のリンクで表わした依存関係モデルの生成または変更を行い、
前記依存関係モデルにおいて変更が発生した箇所から前記リンクを辿って到達可能な要素を影響箇所と特定する
請求項６記載の影響範囲分析方法。
【請求項８】
プログラムの変更に伴う影響範囲を分析するコンピュータに適用される影響範囲分析プログラムであって、
前記コンピュータに、
試験対象システムのプログラムまたは前記試験対象システムのテストプログラムにおける変更を検出する変更監視処理、
前記試験対象システムのプログラムおよび前記テストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行う依存関係モデル管理処理、および、
生成または変更が行われた依存関係モデルに基づいて、前記変更によるテスト項目への影響範囲を特定する影響範囲特定処理
を実行させるための影響範囲分析プログラム。
【請求項９】
コンピュータに、
依存関係モデル管理処理で、要素間の依存関係を当該要素間のリンクで表わした依存関係モデルの生成または変更を行わせ、
影響範囲特定処理で、前記依存関係モデルにおいて変更が発生した箇所から前記リンクを辿って到達可能な要素を影響箇所と特定させる
請求項８記載の影響範囲分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに用いられるソフトウェアの変更に伴う影響範囲を分析する影響範囲分析システム、影響範囲分析方法および影響範囲分析プログラムに関する。
【背景技術】
【０００２】
テストは、テストファーストアジャイル開発手法、例えば、テスト駆動開発（ＴＤＤ：test-driven development）や、ビヘイビア駆動開発（ＢＤＤ：behavior-driven development）に不可欠なプロセスである。テストファーストアジャイル法は、最初にテストを作成し、反復してテストを実行することで、段階的、継続的に開発を推進する方法である。
【０００３】
特許文献１には、テストに関する情報を一元管理して、テスト支援機能間で活用するソフトウェアテスト管理装置が記載されている。特許文献１に記載されたテスト管理装置は、設計モデルに対応したテストモデルを作成し、それらのモデルの間の対応関係を登録する。同様に、特許文献１に記載されたテスト管理装置は、テストケースに従ってソースコードを実行し、得られた実行トレースとテストモデルの間の対応関係を登録する。
【０００４】
特許文献２には、前提条件の変更が影響するソースコードの範囲のみを検証するソースコード検証方法が記載されている。特許文献２に記載された検証方法では、前提条件の変更によって影響を受ける関数群を検出し、その関数群において基点となる基点関数をリスト化した基点関数リストを生成する。また、各基点関数について、その基点関数以下の関数呼び出し階層に位置する関数群を含むソールファイルを、その基点関数の検証に必要なソースコードの範囲と判断する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１３３８００号公報
【特許文献２】特開２００８−１９１９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
テストを行うことにより開発を推進するため、テストプログラムは、非常に頻繁に実行される。システムは、反復してテストが行われるたびに、ますます多くの機能を含むようになるため、通常、テスト項目の数は、システムが成長するにつれてより多くなる。このとき、テスト項目の集合全体が連続して実行されると、不必要なテスト項目も複数回実行される。その結果、テスト実行に長い時間を要するため、このテスト実行が、開発のライフサイクルを遅くしてしまう。
【０００７】
テスト項目が不要に実行されることを抑制し、テストの実行時間のスピードを上げるためには、プログラムコードに加えられた変更による影響範囲を決定する必要がある。しかし、その変更によってどのテスト項目が影響を受けるか特定することは難しい。さらに、全てのテスト項目が再実行を必要とするか否かについて、その全てのテスト項目を把握することも困難である。
【０００８】
これは、テスト項目がプログラムコードのどの部分に依存しているか決定するには、複雑な依存関係の分析を必要とするからである。一般的に依存関係の分析は、粒度の荒いソフトウェアモジュール（例えば、パッケージやライブラリ）またはソースファイルに対して行われる。依存関係を維持し続けることは困難である。典型的な例として、手動で維持されるように構築された依存関係のルールが挙げられる。しかし、これには、複雑な依存関係の分析および洗練されたデータ構造が必要である。
【０００９】
特許文献１に記載されたテスト管理装置では、各フェーズで生成されるモデル間の対応関係は特定されるため、一方のフェーズの変更により、他のフェーズで生成されるモデルの影響範囲を特定することは可能である。しかし、特許文献１に記載されたテスト管理装置は、プログラム間の影響範囲については考慮されておらず、プログラムに変更が生じた場合に影響する他のプログラムを特定することは困難である。すなわち、プログラムの変更による影響範囲を分析することが困難であるため、プログラムの変更により再実行すべきテストを特定することも困難である。
【００１０】
また、特許文献２に記載された検証方法により、変更によって影響するソースコードの範囲を検証することは可能である。しかし、影響するソースコードの範囲を特定しただけでは、どのテストによってそれらのソースコードを検証したらよいか判断することは困難である。そのため、ソースコードの範囲を特定するだけでなく、そのソースコードの変更により実行すべきテストを特定できることが好ましい。
【００１１】
そこで、本発明は、検証対象システムのプログラムの変更による影響範囲およびその変更により実行すべきテストプログラムの影響範囲を分析できる影響範囲分析システム、影響範囲分析方法および影響範囲分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明による影響範囲分析システムは、プログラムの変更に伴う影響範囲を分析する影響範囲分析システムであって、試験対象システムのプログラムまたは試験対象システムのテストプログラムにおける変更を検出する変更監視手段と、試験対象システムのプログラムおよびテストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行う依存関係モデル管理手段と、生成または変更が行われた依存関係モデルを記憶する依存関係モデル記憶手段と、依存関係モデルに基づいて、変更によるテスト項目への影響範囲を特定する影響範囲特定手段とを備えたことを特徴とする。
【００１３】
本発明による影響範囲分析方法は、プログラムの変更に伴う影響範囲を分析する影響範囲分析方法であって、試験対象システムのプログラムまたは試験対象システムのテストプログラムにおける変更を検出し、試験対象システムのプログラムおよびテストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行い、生成または変更が行われた依存関係モデルに基づいて、変更によるテスト項目への影響範囲を特定することを特徴とする。
【００１４】
本発明による影響範囲分析プログラムは、プログラムの変更に伴う影響範囲を分析するコンピュータに適用される影響範囲分析プログラムであって、コンピュータに、試験対象システムのプログラムまたは試験対象システムのテストプログラムにおける変更を検出する変更監視処理、試験対象システムのプログラムおよびテストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行う依存関係モデル管理処理、および、生成または変更が行われた依存関係モデルに基づいて、変更によるテスト項目への影響範囲を特定する影響範囲特定処理を実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、検証対象システムのプログラムの変更による影響範囲およびその変更により実行すべきテストプログラムの影響範囲を分析できる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態の影響範囲分析システムの一実施形態を示すブロック図である。
【図２】依存関係モデルの例を示す説明図である。
【図３】テスト項目テーブルの一例を示す説明図である。
【図４】本実施形態の影響範囲分析システムの動作例を示すフローチャートである。
【図５】依存関係モデルを更新する処理の例を示す説明図である。
【図６】本発明の概要を示すブロック図である。
【発明を実施するための形態】
【００１７】
本発明は、様々な変更および代替形態が可能であるが、好ましい実施形態では、これらは例として図面に示され、詳細に説明される。しかし、そのことは、開示された特定の形態に本発明を限定することを意図するものではない。反対に、本発明は、特許請求の範囲によって定義される本発明の主旨および範囲内にある全ての変更、均等物、及び代替物を包含するものである。
【００１８】
以下、本発明の実施形態を図面を参照して説明する。図１は、本実施形態の影響範囲分析システムの一実施形態を示すブロック図である。本実施形態の影響範囲分析システムは、依存関係をモデル化しテスト項目の影響範囲を分析するシステムである。
【００１９】
本実施形態の影響範囲分析システム１００は、変更監視モジュール１０２と、テストプログラム記憶部１０４と、試験対象システム記憶部１０６と、依存関係モデル管理モジュール１０８と、依存関係モデル記憶部１１０と、影響範囲分析モジュール１１２と、テスト項目記憶部１１４と、テスト実行モジュール１１６とを備えている。
【００２０】
変更監視モジュール１０２は、試験対象システム（以下、ＳＵＴ（System under test ）と記すこともある。）のプログラムまたはＳＵＴをテストするためのテストプログラムにおける変更を検出するモジュールである。
【００２１】
本実施形態では、試験対象システム（ＳＵＴ）が、テストに合格するように実装されたアプリケーションのプログラムコードを意味することもある。すなわち、試験対象システム（ＳＵＴ）は、テストプログラムによってテストされる対象である。試験対象システム記憶部１０６は、試験対象システム（ＳＵＴ）を記憶する。
【００２２】
依存関係モデル管理モジュール１０８は、ＳＵＴのプログラムおよびテストプログラムを分析して依存関係モデルを作成する。依存関係モデル記憶部１１０は、作成された依存関係モデルを記憶する。
【００２３】
依存関係モデルは、試験対象システムのプログラムおよびテストプログラムに含まれる各要素の依存関係を表わすメタモデルであり、グラフ形式で表わされる。この依存関係は、それぞれのプログラムに含まれる各要素の構造の他、ＳＵＴとテストプログラムとの間の呼び出し関係も表わす。各プログラムに含まれる要素として、例えば、オブジェクト、文（ステートメント）、メソッド、メソッドにおける仮引数や実引数が挙げられる。すなわち、依存関係モデルは、プログラムの変数や構造、ＳＵＴの構造、および、プログラムとＳＵＴの関係などを示すメタ情報に相当すると言える。
【００２４】
本実施形態では、依存関係モデルが、プログラムのステートメントと他のステートメントの依存関係を記述したグラフで表わされる場合を例に説明する。依存関係モデルは、要素間の依存関係を要素間のリンクで表わしている。したがって、リンクで結ばれた要素間は、相互に依存すると言える。
【００２５】
依存関係モデル管理モジュール１０８は、各プログラム（ＳＵＴ、テストプログラム）内のオブジェクトやステートメント、メソッド等を参照して、各要素の依存関係を特定し、その依存関係を依存関係モデルとして表わす。
【００２６】
図２は、依存関係モデルの例を示す説明図である。図２（ａ）に示す例は、テスト項目１と、試験対象システム（ＳＵＴ）との依存関係を示している。図２（ａ）に例示するテスト項目１は、３つの要素（オブジェクト、メソッド呼び出し、パラメータ）を含んでおり、ＳＵＴにおけるオブジェクトおよびパラメータが、テストプログラム内の要素との依存関係を有することを示している。また、図２（ａ）に例示するテスト項目１で用いられるメソッドが試験対象システム内の要素（Ａｃｃｏｕｎｔ．ｃｒｅｄｉｔ）を呼び出しており、両者が依存関係を有することを示している。
【００２７】
また、図２（ｂ）に示す例は、テスト項目２と、試験対象システム（ＳＵＴ）との依存関係を示している。図２（ｂ）に例示するテスト項目２は、４つの要素（２つのパラメータ、オブジェクト、メソッド呼び出し）を含んでおり、ＳＵＴにおけるオブジェクトおよびパラメータが、テストプログラム内の要素との依存関係を有することを示している。また、図２（ｂ）に例示するテスト項目２で用いられるメソッドが試験対象システム内の要素（Ｔｅｌｌｅｒ．ｗｉｔｈｄｒａｗ．ｆｒｏｍ）呼び出しており、両者が依存関係を有することを示している。
【００２８】
このように、依存関係モデル管理モジュール１０８が、試験対象システムのプログラム内の依存関係だけでなく、ＳＵＴとテストプログラムとの関係まで含めた依存関係を依存関係モデルとして生成する。そのため、プログラムに変更が生じた場合に影響するテストを特定することが可能になる。
【００２９】
影響範囲分析モジュール１１２は、依存関係モデルに基づいて、プログラムの変更によるテスト項目への影響範囲を特定する。影響範囲分析モジュール１１２は、例えば、依存関係モデル記憶部１１０に記憶された依存関係モデルに基づいて、ステートメントごとにプログラムコード中の依存関係を分析する。
【００３０】
依存関係モデルがグラフで表わされている場合、各テスト項目の影響範囲は、依存関係モデルにおけるリンクで各要素に到達可能か否かを分析することにより決定される。具体的には、影響範囲分析モジュール１１２は、依存関係モデルにおいて変更が発生した箇所からリンクで結ばれている要素を影響箇所と特定してもよい。
【００３１】
また、例えば、依存関係モデルが木構造で表わされる場合、影響範囲分析モジュール１１２は、依存関係モデルにおいて変更が発生した箇所の親ノードまたは子ノードを辿って到達可能な要素を影響箇所と特定してもよい。
【００３２】
このように特定される要素は、各テスト項目について再実行が必要な要素である。一方、特定された要素以外の要素については、変更による影響が及ばないことが分かる。すなわち、影響範囲分析モジュール１１２が、各テスト項目について、依存関係モデルから再実行を要求する影響範囲を決定することにより、例えば、プログラムのステートメント単位のきめ細かい判断が可能になる。
【００３３】
影響範囲分析モジュール１１２は、分析結果をテスト項目記憶部１１４に記憶する。なお、分析結果の内容は後述する。
【００３４】
テスト項目記憶部１１４は、影響範囲分析モジュール１１２による分析結果を記憶する。具体的には、テスト項目記憶部１１４は、分析結果を、テスト項目を維持するためのデータ構造を有するテスト項目テーブルの形式で記憶する。すなわち、影響範囲の分析結果は、テスト項目テーブルに記憶される。
【００３５】
テスト項目テーブルのデータ構造は、テスト項目を実行するための情報（以下、テスト実行情報と記すこともある。）を維持するため、テスト項目、状態フラグおよび影響範囲を示す情報を含む。具体的には、テスト項目テーブルは、テスト項目ごとに、プログラムの要素の参照集合として、影響範囲を含む。
【００３６】
影響範囲は、依存関係モデルにおいてテスト項目から到達可能なノードで設定される。テストの実行状態を示す状態フラグは、テスト項目が再実行する必要があるか、または、テスト項目が完了したことを示す。この情報は、テスト項目の状態を維持するために使用され、この情報により不要なテスト実行を抑制できる。
【００３７】
図３は、テスト項目テーブルの一例を示す説明図である。図３に例示するテスト項目テーブルは、２つのテスト項目（Ｔｅｓｔ１，Ｔｅｓｔ２）を含み、それぞれの影響範囲および状態フラグを含む。例えば、図３に例示するＴｅｓｔ１は、３つの要素（ｍｙ＿ａｃｃｏｕｎｔ，Ａｃｃｏｕｎｔ．ｃｒｅｄｉｔ，ａｍｏｕｎｔ）による影響を受け、既にテストが完了していることを示す。一方、図３に例示するＴｅｓｔ２は、図示する影響範囲の変更により、再実行すべきテストであることを示す。
【００３８】
テスト実行モジュール１１６は、テスト項目テーブルの情報を参照することにより、テスト項目（テストプログラム）を実行するモジュールである。テスト項目テーブルのフラグが、テスト項目は実行する必要があることを示している場合、そのテスト項目は実行され、それ以外の場合、そのテスト項目は無視される。
【００３９】
このように、影響範囲分析モジュール１１２が影響範囲をテスト項目記憶部１１４に記憶することで、テスト実行モジュール１１６が、その情報を基に実行の要否を判断できるため、テスト実行を自動化することが可能になる。
【００４０】
変更監視モジュール１０２と、依存関係モデル管理モジュール１０８と、影響範囲分析モジュール１１２と、テスト実行モジュール１１６とは、プログラム（影響範囲分析プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、影響範囲分析システム１００を構成する装置の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、変更監視モジュール１０２、依存関係モデル管理モジュール１０８、影響範囲分析モジュール１１２およびテスト実行モジュール１１６として動作してもよい。
【００４１】
また、変更監視モジュール１０２と、依存関係モデル管理モジュール１０８と、影響範囲分析モジュール１１２と、テスト実行モジュール１１６とは、それぞれが専用のハードウェアで実現されていてもよい。
【００４２】
また、テストプログラム記憶部１０４と、試験対象システム記憶部１０６と、依存関係モデル記憶部１１０と、テスト項目記憶部１１４とは、例えば、磁気ディスク等により実現される。
【００４３】
次に、本実施形態の動作を説明する。図４は、本実施形態の影響範囲分析システムの動作例を示すフローチャートである。図４では、依存関係モデルを分析してテスト項目を実行するまでの動作例を示している。
【００４４】
変更監視モジュール１０２は、ＳＵＴのプログラムまたはＳＵＴのテストプログラムにおける変更を検出すると（ステップＳ２０２）、依存関係モデル管理モジュール１０８に依存関係モデルを更新するように通知する（ステップＳ２０４）。
【００４５】
依存関係モデル管理モジュール１０８は、ＳＵＴのプログラムコードおよびテストプログラムを解析し（ステップＳ２０６）、依存関係モデルを生成または更新する（ステップＳ２０８）。
【００４６】
図５は、依存関係モデルを更新する処理の例を示す説明図である。図５に示す例では、試験対象システムのプログラムコード（ｃｌａｓｓ  Ｔｅｌｌｅｒ）に含まれるメソッドａｃｃｏｕｎｔ．ｄｅｂｉｔが、ａｃｃｏｕｎｔ．ｄｅｂｉｔ２に変更されている。そのため、変更監視モジュール１０２は、この変更を依存関係モデル管理モジュール１０８に通知する。
【００４７】
依存関係モデル管理モジュール１０８は、この通知に基づいて、Ｔｅｌｌｅｒ．ｗｉｔｈｄｒａｗ＿ｆｒｏｍに含まれるＡｃｃｏｕｎｔ．ｄｅｂｉｔを、Ａｃｃｏｕｎｔ．ｄｅｂｉｔ２に更新した依存関係モデルを生成する。
【００４８】
影響範囲分析モジュール１１２は、依存関係モデルの更新に伴い、変更による影響範囲を分析し（ステップＳ２１０）、影響範囲を示す分析結果をテスト項目テーブルに記録する（ステップＳ２１２）。テスト実行モジュール１１６は、テスト項目テーブルの内容を参照して、未完了のテストを実行する（ステップＳ２１４）。
【００４９】
以上のように、本実施形態によれば、変更監視モジュール１０２が、試験対象システムのプログラムまたは試験対象システムのテストプログラムにおける変更を検出する。そして、依存関係モデル管理モジュール１０８が、試験対象システムのプログラムおよびテストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行い、影響範囲分析モジュール１１２が、その依存関係モデルに基づいて、変更によるテスト項目への影響範囲を特定する。よって、検証対象システムのプログラムの変更による影響範囲およびその変更により実行すべきテストプログラムの影響範囲を分析できる。
【００５０】
すなわち、本実施形態では、依存関係モデル管理モジュール１０８がプログラムにおける要素の依存関係を記述した依存関係モデルを作成し、影響範囲分析モジュール１１２が依存関係モデルを用いて各テスト項目の影響範囲を分析する。よって、ソフトウェアテストの実行時間を短縮でき、システム開発のライフサイクルを短縮できる。その理由は、本発明がコンピュータプログラムに行われた変更から影響範囲を決定できるようにするからである。したがって、本実施形態によれば、変更によって影響を受けるテスト項目だけ実行することが可能であり、影響を受けないテスト項目の不要な実行を抑制できる。
【００５１】
次に、本発明の概要を説明する。図６は、本発明の影響範囲分析システムの概要を示すブロック図である。本発明の影響範囲分析システムは、プログラムの変更に伴う影響範囲を分析する影響範囲分析システム（例えば、影響範囲分析システム１００）であって、試験対象システム（例えば、ＳＵＴ）のプログラムまたは試験対象システムのテストプログラムにおける変更を検出する変更監視手段８１（例えば、変更監視モジュール１０２）と、試験対象システムのプログラムおよびテストプログラムに含まれる各要素の依存関係を表わす依存関係モデルの生成または変更を行う依存関係モデル管理手段８２（例えば、依存関係モデル管理モジュール１０８）と、生成または変更が行われた依存関係モデルを記憶する依存関係モデル記憶手段８３（例えば、依存関係モデル記憶部１１０）と、依存関係モデルに基づいて、変更によるテスト項目への影響範囲を特定する影響範囲特定手段８４（例えば、影響範囲分析モジュール１１２）とを備えている。
【００５２】
そのような構成により、検証対象システムのプログラムの変更による影響範囲およびその変更により実行すべきテストプログラムの影響範囲を分析できる。
【００５３】
また、依存関係モデル管理手段８２は、要素間の依存関係をその要素間のリンクで表わした依存関係モデルの生成または変更を行ってもよい。そして、影響範囲特定手段８４は、依存関係モデルにおいて変更が発生した箇所からリンクを辿って到達可能な要素を影響箇所と特定してもよい。
【００５４】
また、依存関係モデル管理手段８２は、要素間の依存関係を木構造で表わした依存関係モデルの生成または変更を行ってもよい。そして、影響範囲特定手段８４は、依存関係モデルにおいて変更が発生した箇所の親ノードまたは子ノードを辿って到達可能な要素を影響箇所と特定してもよい。
【００５５】
また、テスト項目と、そのテスト項目の実行状態を示す状態フラグと、依存関係モデルにおいてそのテスト項目から到達可能な要素の集合を表わす影響範囲とを含むテスト項目情報を記憶するテスト項目記憶手段（例えば、テスト項目記憶部１１４）を備えていてもよい。そして、影響範囲特定手段８４は、変更によって特定したテスト項目への影響範囲およびその変更によるテスト項目の実行状態をテスト項目記憶手段に記憶してもよい。
【００５６】
さらに、影響範囲分析システムは、テスト項目を実行するテスト項目実行手段（例えば、テスト実行モジュール１１６）を備えていてもよい。そして、テスト項目記憶手段は、テスト項目を再実行する必要があるか、または、テスト項目の実行が完了したかを示す状態フラグを記憶し、テスト項目実行手段は、テスト項目記憶手段における状態フラグを参照し、再実行する必要があるテスト項目を実行してもよい。
【００５７】
そのような構成により、テスト項目実行手段が状態フラグの内容を基にテスト実行の要否を判断できるため、テスト実行を自動化することが可能になる。
【産業上の利用可能性】
【００５８】
本発明を、コンピュータプログラムの自動化されたテストに使用することができる。また、本発明を、コンピュータソフトウェアの開発を支援するための統合開発環境（ＩＤＥ）で使用することができる。また、本発明を、システム構築を自動化するソフトウェアテスト管理ツールで使用することができる。
【符号の説明】
【００５９】
１００  影響範囲分析システム
１０２  変更監視モジュール
１０４  テストプログラム記憶部
１０６  試験対象システム記憶部
１０８  依存関係モデル管理モジュール
１１０  依存関係モデル記憶部
１１２  影響範囲分析モジュール
１１４  テスト項目記憶部
１１６  テスト実行モジュール
【図１】
2015011661.tif 000003
【図２】
2015011661.tif 000004
【図３】
2015011661.tif 000005
【図４】
2015011661.tif 000006
【図５】
2015011661.tif 000007
【図６】
2015011661.tif 000008