対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成手段と、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成手段と、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成手段と、を備えたことを特徴とする情報処理装置。プログラム構造の観点からのカバレッジ基準について、対象プログラムにカバレッジの測定対象の実行の有無を示すトラップを挿入して、トラップ入りプログラムを生成するトラップ挿入手段と、トラップ入りプログラムに対してソフトウェアモデル検査を行い、トラップで示すカバレッジを行うパスを反例として出力するソフトウェアモデル検査手段と、を更に備えることを特徴とする請求項1に記載の情報処理装置。前記スタブプログラム生成手段、テスト用対象プログラム生成手段及びドライバプログラム生成手段は、前記トラップ挿入手段によって挿入されたトラップ毎に、各種プログラムの生成を行なうことを特徴とする請求項1及び2に記載の情報処理装置。前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換をソースコードに対して行うことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードを解析して得られる抽象構文木に対して行うことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードを解析して得られる制御フローグラフに対して行うことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードをコンパイルして得られる中間コードに対して行うことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードをコンパイルして得られるバイナリコードに対して行うことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成ステップと、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成ステップと、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成ステップと、を備えたことを特徴とする情報処理方法。対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成ステップと、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成ステップと、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成ステップと、をコンピュータに実行させることを特徴とする情報処理プログラム。プログラムのテストにおいて、実行パスを決定するのは、対象プログラムへのテスト入力のみではない。対象プログラムから呼び出される外部プログラムによって更新される変数も実行パスに影響する。ソフトウェアモデル検査によって得た反例のパス情報から、変数の初期値を得て、テスト入力とできることが知られているが、テスト入力のみでは必ずしも反例どおりのパスを実行させることはできない。テスト対象プログラムから呼び出される外部プログラムについても、反例のパス情報どおりに振舞うようにする必要がある。さらに、構造カバレッジ基準を満たすようなテストを行うには、カバレッジの測定対象を実行するようなテスト入力と外部プログラムの振舞いが必要となる、すなわち、カバレッジの測定対象を実行し得るようなパス情報が必要となる。本発明の目的は、上述の課題を解決する技術を提供することにある。上記目的を達成するため、本発明に係る装置は、対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成手段と、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成手段と、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成手段と、を備えたことを特徴とする。上記目的を達成するため、本発明に係る方法は、対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成ステップと、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成ステップと、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成ステップと、を備えたことを特徴とする。上記目的を達成するため、本発明に係るプログラムは、対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成ステップと、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成ステップと、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成ステップと、をコンピュータに実行させることを特徴とする。本発明によれば、対象プログラムに対してモデル検査を行った結果得られる反例のパス情報どおりに実行可能なテストプログラムを効果的に生成することができる。以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。第1実施形態本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、テストの対象プログラムを静的に解析して、対象プログラムをテストするためのテストプログラムを生成する装置である。図1に示すように、情報処理装置100は、スタブプログラム生成部101とテスト用対象プログラム生成部102とドライバプログラム生成部103とを含む。このうち、スタブプログラム生成部101は、対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成する。テスト用対象プログラム生成部102は、対象プログラムにおける外部プログラムへの呼出しをスタブプログラムへの呼出しに置換したテスト用対象プログラムを生成する。ドライバプログラム生成部103は、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成する。本実施形態によれば、対象プログラムに対してモデル検査を行った結果得られる反例のパス情報どおりに実行可能なテストプログラム一式スタブプログラム、テスト用対象プログラム、ドライバプログラムを生成できる。第2実施形態次に本発明の第2実施形態に係るテストプログラム生成装置200について、図2乃至図9を用いて説明する。[装置構成]図2は、本実施形態としてのテストプログラム生成装置200の概略構成を示す図である。テストプログラム生成装置200は、情報処理部201とファイル格納部202とを含む。情報処理部201は、テストプログラム生成モジュール211を含む。テストプログラム生成モジュール211は、ファイル格納部から対象プログラムと対象プログラムに関するパス情報を読み込む。そして対象プログラムから呼び出される外部プログラムによって更新される変数について、パス情報に即して、どのように値が変るかを表したスタブプログラムの生成を行なう。対象プログラムにおける外部プログラムへの呼出しをスタブプログラムへの呼出しに置換したテスト用対象プログラムの生成を行なう。さらに、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成する。つまり、本実施形態のテストプログラム生成モジュール211は、図1で示した、スタブプログラム生成部101、テスト用対象プログラム生成部102、及びドライバプログラム生成部103として機能する。以降では、テストの対象プログラムがC言語で記述されている例について説明するが、本発明の適用はC言語に限るものではない。また、対象プログラムについて、外部プラグラムへの呼出しをスタブプログラムへの呼出しに置換する、あるいはトラップを挿入する、といった変換をソースコードに対して行う例について説明するが、本発明の適用はソースコードに限るものでもない。ソースコードを解析して得られる抽象構文木や制御フローグラフ、あるいはソースコードをコンパイルして得られる中間コードやバイナリコードに本発明を適用してもよい。[全体の処理の流れ]次に、図3のフローチャートとその他の図を参照して本実施形態の全体の動作について詳細に説明する。情報処理部201は、利用者から対象プログラムとパス情報の指定を受け付け、他のモジュールに図2で示す一連の処理を実行させる。テストプログラム生成モジュール211は、ファイル格納部202からパス情報を読み込み、パス情報を調べて、未処理のステップがあれば、当該ステップを処理対象ステップとして、一連のステップS302~S304の処理を繰り返すS301。ここでパス情報は複数のステップを含む。図5は、パス情報500について説明するための図である。パス情報500は、ステップの識別子501と、モデル検査により走査された対象プログラム上での位置情報ファイル502と行番号503の組と、その位置で実行され得るプログラム504とそのプログラムに含まれる式505とを含む。また、以降の説明を簡易にするために、図5では各式が、変数の初期化を表すのか、変数への値の代入を表すのか、分岐やループで成立した論理式を表すのか、を示す式区分506を記載している。式区分は位置情報と式から導出することができる。パス情報の処理対象ステップに関する一連の処理では、まず、処理対象ステップにおけるプログラム名が対象プログラム以外であるかを調べるS302。次に、対象プログラム以外であれば、処理対象ステップのプログラム504、位置情報502、503をそれぞれ外部プログラム名602、呼出し元の位置情報呼出し元ファイル603と呼出し元行番号604とする外部プログラム呼出し情報600を生成するS303。外部プログラム呼出し情報600は、識別子601と、外部プログラム名602と、呼出し元のプログラムが外部プログラムを呼び出す箇所の位置情報603、604と、同じ呼出し元プログラムの位置情報に関して何回目の呼出しかを示す呼出し回数605と、外部プログラムが更新する変数606と更新後の値607とを含む。外部プログラム名602と呼出し元の位置情報603、604の組と同一の項番が既にある場合、既存の項番における呼出し回数の最大値に1を加えた値を、新たに生成された項番の呼出し回数とする。それ以外の場合は、新たに生成された項番の呼出し回数を1とする。また、処理対象ステップの式の内容を調べ、更新される変数名と更新後の値をそれぞれ外部プログラム呼出し情報の変数名と値に設定する。最後に、処理対象ステップを処理済みとして、S301に戻るS304。パス情報に未処理のステップがなくなると、外部プログラム呼出し情報を調べて、未処理の項番があれば、当該項番を処理対象項番として、一連のステップS305~S306の処理を繰り返すS307。外部プログラム呼出し情報の処理対象項番に関する一連の処理では、まず、外部プログラム毎にスタブプログラムを作成するS305。図7は、上段に、スタブプログラムの雛形701を示している。<>で囲まれた部分は対象プログラムや外部プログラム呼出し情報を調べて具体的な文字列に置換する。<外部プログラムの戻り値の型>と<外部プログラムの引数リスト>は対象プログラムを調べて、置換に用いる文字列を得る。その他の<>で囲まれた部分は外部プログラム呼出し情報の同名の列から文字列を得る。図7は、また、下段に、対象プログラム図4と外部プログラム呼出し情報図6を用いて生成されるスタブプログラム702を示している。次に、処理対象項番を処理済みとしてS306、S307に進む。外部プログラム呼出し情報に未処理の項番がなくなると、生成したスタブプログラムを出力するS308。また、対象プログラムの外部プログラムの呼出しをスタブプログラムの呼出しに置き換えて、テスト用対象プログラムとして出力するS309。図8はテスト用対象プログラムの一例を示す図である。図4の対象プログラム400と図8のテスト用対象プログラム800とを見比べると、35行目において、外部プログラムexternalの呼出しがスタブプログラムの呼出しに置き換わっていることが分かる。次に、ステップS310において、パス情報の式区分が初期値であるステップの式の内容を元に、対象プログラムの実行に必要となる変数への初期値の設定と、テスト用対象プログラムの呼出しと、呼出し結果のチェックと、を行うドライバプログラムを生成する。パス情報に含まれていない変数について初期化が必要な場合、テストプログラム生成モジュール211は、ランダムに生成した値や固定値を用いて初期値を設定する。呼出し結果のチェックについては、具体的な内容を人手で記述してもよい。図9は、ドライバプログラムの一例を示す図である。図9のドライバプログラム900においては、図4の28行目に記された事後条件戻り値は10以上かつ10以下を用いて、C言語のassertマクロを用いたチェックを行っている8行目。生成されたドライバプログラム900を実行することにより、テスト用対象プログラム上で、パス情報に対応したパスを実際に実行することができる。以上、本実施形態によれば、プログラムの単体テストに関して、対象プログラムに対するソフトウェアモデル検査により得られた反例のパス情報に合わせたパスを、実際に実行できるようなテストプログラムを自動生成できる。また、プログラムの構造カバレッジ基準を満たすようなパス情報を得て、さらに前記パス情報から構造カバレッジ基準を満たすようなテストプログラムを自動生成できる。第3実施形態図10は、本発明の第3実施形態としてのテストプログラム生成装置1000の概略構成を示す図である。図2のテストプログラム生成装置200とは、トラップ挿入モジュール1011とソフトウェアモデル検査モジュール1012とが追加されている点が異なる。テストプログラム生成装置1000は、情報処理部1001とファイル格納部1002とを含む。情報処理部1001は、トラップ挿入モジュール1011と、ソフトウェアモデル検査モジュール1012と、テストプログラム生成モジュール1013と、を含み、これらのモジュールに、それぞれ図11で示すステップS1101、S1103、S1105の処理を実行させる。次に、図10及び図11のフローチャートとその他の図を参照して本実施形態の全体の動作について詳細に説明する。トラップ挿入モジュール1011は、ファイル格納部1002から対象プログラムを読み込み、カバレッジの測定対象の実行の有無を示すためのトラップを挿入する箇所を明らかにするために、対象プログラムを整形し、トラップを挿入して、トラップ入りプログラムとして出力するS1101。トラップ挿入モジュール1011は、まず、分岐カバレッジ基準用の整形ルール図12を用いて、例えば、対象プログラム1301を整形されたプログラム1302に変換する。この例では、整形されたプログラムにおいてトラップ挿入モジュールが定義したトラップ変数dに値真であれば1、偽であれば0を設定する箇所がトラップ挿入対象箇所である。整形されたプログラム1302の行1bは、対象プログラム1301の行1の分岐が真になる場合であり、行1dは偽になる場合である。トラップ挿入モジュール1011は、ソフトウェアモデル検査による反例の出力を強制するために、トラップ挿入対象箇所毎に、トラップ表明1303、1304におけるassertを挿入し、トラップ入りプログラムとして出力する。ソフトウェアモデル検査モジュール1012は、トラップ入りプログラムをファイル格納部1002から読み込み、モデル検査を実行してS1103、トラップ表明に対する反例、すなわちある分岐が真あるいは偽となる反例を示すパス情報を出力するS1105。テストプログラム生成モジュール1013は、第2実施形態における一連の処理図3を行い、パス情報を実行するようなスタブプログラム、テスト用対象プログラム、ドライバプログラムをファイル格納部1002に出力するS1107。以上のように、生成された各ドライバプログラムを実行することにより、テスト用対象プログラム上で、構造カバレッジのある測定対象を実行するようなパスを実際に実行することができる。そして、全ての生成されたドライバプログラムを実行することにより、対象プログラムについての構造カバレッジ基準を満たすようなテストを行うことができる。他の実施形態以上、本発明の実施形態について詳述したが、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステム又は装置も、本発明の範疇に含まれる。また、本発明は、複数の機器から構成されるシステムに適用されても良いし、単体の装置に適用されても良い。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWWサーバも、本発明の範疇に含まれる。本発明に係る情報処理プログラムを実行するコンピュータの構成例を図14に示す。コンピュータ1400は、CPU1401、ROM1402、通信制御部1403、RAM1404、及びストレージ1405を備えている。CPU1401は中央処理部であって、様々なプログラムを実行することによりコンピュータ1400全体を制御する。ROM1402は、不揮発メモリであり、CPU1401が最初に実行すべきブートプログラムの他、各種のパラメータ等を記憶している。また、RAM1404は、ランダムアクセスメモリであり、テストプログラム生成モジュール211等のアプリケーションの実行領域1441及びアプリケーションが扱うデータ例えば、対象プログラム、スタブプログラム、テスト用プログラム、ドライバプログラム、パス情報などの記憶領域1442を有している。一方、ストレージ1405は、各種モジュール1451と、各種ファイル1452対象プログラムなどを保存する装置である。また、通信制御部1403は、他の端末とのネットワークを介した通信を制御する。[実施形態の他の表現]上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。付記1対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成手段と、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成手段と、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成手段と、を備えたことを特徴とする情報処理装置。付記2プログラム構造の観点からのカバレッジ基準について、対象プログラムにカバレッジの測定対象の実行の有無を示すトラップを挿入して、トラップ入りプログラムを生成するトラップ挿入手段と、トラップ入りプログラムに対してソフトウェアモデル検査を行い、トラップで示すカバレッジを行うパスを反例として出力するソフトウェアモデル検査手段と、を更に備えることを特徴とする付記1に記載の情報処理装置。付記3前記スタブプログラム生成手段、テスト用対象プログラム生成手段及びドライバプログラム生成手段は、前記トラップ挿入手段によって挿入されたトラップ毎に、各種プログラムの生成を行なうことを特徴とする付記1及び2に記載の情報処理装置。付記4前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換をソースコードに対して行うことを特徴とする付記1乃至3の何れかに記載の情報処理装置。付記5前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードを解析して得られる抽象構文木に対して行うことを特徴とする付記1乃至3の何れかに記載の情報処理装置。付記6前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードを解析して得られる制御フローグラフに対して行うことを特徴とする付記1乃至3の何れかに記載の情報処理装置。付記7前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードをコンパイルして得られる中間コードに対して行うことを特徴とする付記1乃至3の何れかに記載の情報処理装置。付記8前記テスト用対象プログラムは、前記対象プログラムについて、外部プラグラムへの呼出しからスタブプログラムへの呼出しへの置換を、ソースコードをコンパイルして得られるバイナリコードに対して行うことを特徴とする付記1乃至3の何れかに記載の情報処理装置。付記9対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成ステップと、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成ステップと、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成ステップと、を備えたことを特徴とする情報処理方法。付記10対象プログラムと対象プログラム上のパスの情報とを入力し、対象プログラムから呼び出される外部プログラムによって更新される変数値のパス情報に即した変化を表したスタブプログラムを生成するスタブプログラム生成ステップと、前記対象プログラムにおける外部プログラムへの呼出しを前記スタブプログラムへの呼出しに置換したテスト用対象プログラムを生成するテスト用対象プログラム生成ステップと、パス情報の初期値を用いてテスト用対象プログラムを呼び出すドライバプログラムを生成するドライバプログラム生成ステップと、をコンピュータに実行させることを特徴とする情報処理プログラム。