"所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部と、前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行部と、前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成部と、前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成部と、前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力部とを備え、前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了することを特徴とするプログラム試験装置。前記実行中止条件データ生成部は、前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に最後に実行された分岐命令ステップを経路網羅ステップとして判定し、前記経路網羅ステップを実行するまでに実行された各分岐命令ステップのステップ番号と分岐条件の判定結果とを他の分岐結果データと比較し、前記各分岐命令ステップのステップ番号と分岐条件の判定結果とが他の分岐結果データと一致する場合、前記各分岐命令ステップのうち最後に実行された分岐命令ステップを経路網羅ステップとして判定することを特徴とする請求項1記載のプログラム試験装置。前記試験結果データ出力部は、前記分岐結果データ生成部により生成された分岐結果データに基づいて実行していない実行経路を未実行経路として判定し、判定した未実行経路を示すデータを前記試験結果データとして生成し、生成した試験結果データを出力することを特徴とする請求項1または請求項2記載のプログラム試験装置。前記試験結果データ出力部は、入力データ毎に入力データと前記試験対象プログラムの実行結果とを対応付けて示すデータを前記試験結果データとして生成し、生成した試験結果データを出力することを特徴とする請求項1から請求項3いずれかに記載のプログラム試験装置。所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部とを備えるプログラム試験装置のプログラム試験方法において、プログラム実行部が、前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行し、分岐結果データ生成部が、前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成し、実行中止条件データ生成部が、前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成し、試験結果データ出力部が、前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力し、前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了することを特徴とするプログラム試験装置のプログラム試験方法。所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部とを備えるプログラム試験装置を動作させるプログラム試験プログラムにおいて、前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行処理と、前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行処理で前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成処理と、前記プログラム実行処理で前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成処理により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成処理と、前記プログラム実行処理で全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力処理とを前記プログラム試験装置に実行させ、前記プログラム実行処理は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成処理によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了することを特徴とするプログラム試験プログラム。従来のプログラム試験装置では、自動的に生成した全ての入力変数値の組み合わせについて試験対象プログラムの開始から終了まで実行経路が実行済みであるか否かを考慮せずに実行する。したがって、新たに入力する入力変数値の組み合わせが既に実行済みの実行経路を実行するものであった場合、同一の実行経路を再び実行することとなる。このため、従来のプログラム試験装置では実行経路の実行に重複が生じ、試験効率が低下するという課題があった。本発明は、例えば、複数の入力変数値の組み合わせを用いて同一の実行経路に対する実行を繰り返すことなく、未実行の実行経路のみを実行してプログラムを試験できるようにすることを目的とする。本発明のプログラム試験装置は、所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部と、前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行部と、前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成部と、前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成部と、前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力部とを備える。前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する。本発明によれば、例えば、複数の入力変数値の組み合わせ入力データを用いて同一の実行経路に対する実行を繰り返すことなく、未実行の実行経路のみを実行してプログラムを試験することができる。実施の形態1.複数の分岐命令ステップを含む試験対象プログラムを試験するプログラム試験装置について説明する。図1は、実施の形態1におけるプログラム試験装置100の機能構成図である。実施の形態1におけるプログラム試験装置100の機能構成について、図1に基づいて説明する。プログラム試験装置100は、入力変数値組み合わせ生成部110とプログラム実行部120と試験結果出力部160とを備える。プログラム試験装置100は、分岐命令実行結果記録部130と網羅結果記録部140と経路別実行結果記録部150とを備える。さらに、プログラム試験装置100は試験装置記憶部190を備える。試験装置記憶部190試験対象プログラム記憶部、入力データ記憶部の一例は、プログラム試験装置100で使用するデータを記憶する。試験対象プログラム191、入力変数値データ192、入力変数値組み合わせ193、分岐命令実行結果テーブル194、経路別実行結果テーブル195、経路別実行結果情報196および経路網羅情報197は、試験装置記憶部190に記憶されるデータの一例である。試験対象プログラム191は、所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む。その他のデータについては後述する。入力変数値組み合わせ生成部110入力データ生成部の一例は、入力変数値データ192を入力し、入力した入力変数値データ192に基づいて複数の入力変数値組み合わせ193を生成する入力データ生成処理。入力変数値データ192は、試験対象プログラム191の入力パラメータとして使用する入力変数毎に入力変数に設定する複数の値以下、入力変数値を示すデータである。入力変数値組み合わせ193入力データの一例は、入力変数と入力変数値とを組み合わせたデータである。プログラム実行部120は、命令実行部121とエラー検出部122とを備える。命令実行部121は、試験装置記憶部190に記憶された入力変数値組み合わせ193毎に、入力変数値組み合わせ193を用いて試験対象プログラム191を実行するプログラム実行処理。エラー検出部122は、命令実行部121が試験対象プログラム191に含まれる処理ステップを実行した場合、処理ステップの実行によって特定のエラーが発生したか否かを判定するエラー判定処理。エラー検出部122は、特定のエラーが発生した場合、発生したエラーを表すエラー情報を出力する。分岐命令実行結果記録部130分岐結果データ生成部の一例は、試験装置記憶部190に記憶された入力変数値組み合わせ193毎に実行済み経路レコードを生成し、生成した実行済み経路レコードを分岐命令実行結果テーブル194に設定する分岐結果データ生成処理。実行済み経路レコード分岐結果データ、実行中止条件データの一例は、命令実行部121が試験対象プログラム191に含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示すデータである。網羅結果記録部140実行中止条件データ生成部の一例は、命令実行部121が試験対象プログラム191の実行を終了する毎に、分岐命令実行結果記録部130により生成された分岐命令実行結果テーブル194の実行済み経路レコードに基づいて経路網羅ステップを判定する。網羅結果記録部140は、経路網羅ステップに対応付けて経路網羅フラグを分岐命令実行結果テーブル194のレコードに設定する実行中止条件データ生成処理。経路網羅ステップとは、複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップのことである。経路網羅フラグとは、経路網羅ステップのステップ番号と分岐条件の判定結果とを試験対象プログラム191の実行を中止する実行中止条件として示すデータである。例えば、網羅結果記録部140は、以下のように経路網羅ステップを判定する経路網羅ステップ判定処理。網羅結果記録部140は、命令実行部121が試験対象プログラム191の実行を終了する毎に最後に実行された分岐命令ステップを経路網羅ステップとして判定する。網羅結果記録部140は、経路網羅ステップを実行するまでに実行された各分岐命令ステップのステップ番号と分岐条件の判定結果とを他の実行済み経路レコードと比較する。網羅結果記録部140は、各分岐命令ステップのステップ番号と分岐条件の判定結果とが他の実行済み経路レコードと一致する場合、各分岐命令ステップのうち最後に実行された分岐命令ステップを経路網羅ステップとして判定する。経路別実行結果記録部150実行結果データ生成部の一例は、命令実行部121が試験対象プログラム191の実行を終了する毎に経路別実行結果テーブル195を生成する実行結果データ生成処理。経路別実行結果テーブル195は、入力変数値組み合わせ193と試験対象プログラム191の実行結果とを示すデータである。試験結果出力部160試験結果データ出力部の一例は、経路別実行結果出力部161と経路網羅情報出力部162とを備える。経路別実行結果出力部161は、経路別実行結果記録部150により生成された経路別実行結果テーブル195に基づいて経路別実行結果テーブル195の設定内容を示す経路別実行結果情報196試験結果データの一例を生成する。経路別実行結果出力部161は、生成した経路別実行結果情報196を出力する試験結果データ出力処理。経路網羅情報出力部162は、分岐命令実行結果記録部130により生成された分岐命令実行結果テーブル194に基づいて実行していない実行経路を未実行経路として判定する。経路網羅情報出力部162は、判定した未実行経路を示す経路網羅情報197試験結果データの一例を生成し、生成した経路網羅情報197を出力する試験結果データ出力処理。但し、プログラム実行部120の命令実行部121は、試験対象プログラム191に含まれる分岐命令ステップを実行した場合、網羅結果記録部140によって生成された分岐命令実行結果テーブル194経路網羅フラグに基づいて分岐命令ステップのステップ番号と分岐条件の判定結果とが実行中止条件を満たすか否かを判定する。そして、命令実行部121は、分岐命令ステップのステップ番号と分岐条件の判定結果とが実行中止条件を満たす場合、分岐命令ステップの分岐先の実行経路を実行せずに試験対象プログラム191の実行を終了する。図2は、実施の形態1における分岐命令実行結果テーブル194を示す図である。実施の形態1における分岐命令実行結果テーブル194について、図2に基づいて説明する。分岐命令実行結果テーブル194は、実行経路番号と分岐命令実行結果とを対応付けたデータである。実行経路番号は、入力変数値組み合わせ193毎に割り当てられたユニークな番号を示す。分岐命令実行結果は、実行された分岐命令ステップ毎にステップ番号と判定結果と経路網羅フラグとを示す。ステップ番号は、実行された分岐命令ステップを識別する情報として分岐命令ステップのステップ番号例えば、ソースコードの行番号を示す。判定結果は、分岐条件の判定結果を示す。例えば、分岐命令ステップがif文二分岐命令である場合、分岐条件の判定結果は真yesまたは偽noである。経路網羅フラグは、分岐先の全ての実行経路が実行済みであるか否かを示す。分岐先の全ての実行経路が実行済みである場合、経路網羅フラグは真を示し、分岐先の少なくともいずれかの実行経路が実行されていない場合、経路網羅フラグは偽を示す。例えば、実行経路1の最初の分岐命令実行結果5,真,偽は、ステップ番号5の分岐命令ステップが実行され、分岐命令ステップを実行したときに分岐条件の判定結果が真であったことを意味する。また、この分岐命令実行結果5,真,偽は、ステップ番号5の分岐命令ステップで判定結果が真である場合の分岐先に実行済みでない実行経路が残っている、ことを意味する。図3は、実施の形態1における経路別実行結果テーブル195を示す図である。実施の形態1における経路別実行結果テーブル195について、図3に基づいて説明する。経路別実行結果テーブル195は、入力変数値組み合わせと実行結果と実行経路番号とを対応付けたデータである。入力変数値組み合わせは、試験対象プログラム191の実行に用いられた入力変数値組み合わせ193を示す。実行結果は、出力変数値またはエラー情報を示す。試験対象プログラム191がエラー終了しなかった場合、出力変数値が設定され、試験対象プログラム191がエラー終了した場合、エラー情報が設定される。出力変数値は、試験対象プログラム191の実行が終了したときに出力変数に設定されていた値である。出力変数とは、試験対象プログラム191の出力パラメータとして使用される変数である。エラー情報は、発生したエラーの種類やエラーが発生した処理ステップの番号などを示す。実行経路番号は、入力変数値組み合わせ193毎に割り当てられたユニークな番号を示す。経路別実行結果テーブル195の実行経路番号は、分岐命令実行結果テーブル194の実行経路番号図2参照に対応している。経路別実行結果テーブル195は、経路別実行結果情報196として用いられる。図4は、実施の形態1における経路網羅情報197を示す図である。実施の形態1における経路網羅情報197について、図4に基づいて説明する。経路網羅情報197には、実行済みの経路網羅情報197Aと未実行の経路網羅情報197Bとがある。実行済みの経路網羅情報197Aは、実行済みの実行経路について実行経路番号と分岐命令実行結果とを示す。実行経路番号は、実行された実行経路を識別する番号を示す。分岐命令実行結果は、実行経路に含まれる分岐命令のステップ番号と判定結果とを示す。実行済みの経路網羅情報197Aの実行経路番号分岐命令実行結果は、分岐命令実行結果テーブル194の実行経路番号分岐命令実行結果経路網羅フラグを除く図2参照に対応している。未実行の経路網羅情報197Bは、未実行の実行経路について分岐命令実行結果を示す。例えば、実行済みの経路網羅情報197Aの実行経路1は、ステップ番号510183240の各分岐命令ステップで判定結果が真である実行経路が実行済みであることを示している。また、未実行の経路網羅情報197Bの項番1は、上記の実行経路1に対してステップ番号40の分岐命令ステップで判定結果が偽である実行経路が実行されていないことを示している。図5は、実施の形態1におけるプログラム試験装置100のプログラム試験方法を示すフローチャートである。実施の形態1におけるプログラム試験装置100のプログラム試験方法について、図5に基づいて説明する。まず、プログラム試験方法の概要について説明する。入力変数値組み合わせ生成部110は、複数の入力変数値組み合わせ193を生成するS110。命令実行部121は入力変数値組み合わせ193を選択しS120、試験対象プログラム191の処理ステップを一つ実行するS130。命令実行部121は、試験対象プログラム191が終了したか否かを判定するS131。試験対象プログラム191が終了していない場合S131NO、命令実行部121は実行した処理ステップが分岐命令ステップであるか否かを判定するS132。実行した処理ステップが分岐命令ステップでない場合S132NO、S130に戻る。実行した処理ステップが分岐命令ステップである場合S132YES、命令実行部121は実行した分岐命令ステップが実行中止条件を満たすか否かを分岐命令実行結果テーブル194に基づいて判定するS133。実行した分岐命令ステップの判定結果が実行中止条件を満たさない場合S133NO、分岐命令実行結果記録部130は分岐命令実行結果テーブル194に分岐命令ステップの実行結果を設定するS140。その後、S130に戻る。実行した分岐命令ステップの判定結果が実行中止条件を満たす場合S133YES、S134に進む。試験対象プログラム191が終了した場合S131YES、経路別実行結果記録部150は経路別実行結果テーブル195を設定しS150、網羅結果記録部140は分岐命令実行結果テーブル194の経路網羅フラグを更新するS160。その後、S134に進む。命令実行部121は未選択の入力変数値組み合わせ193が残っているか否かを判定するS134。未選択の入力変数値組み合わせ193が残っている場合S134YES、S120に戻る。未選択の入力変数値組み合わせ193が残っていない場合S134NO、試験結果出力部160は経路別実行結果テーブル195と分岐命令実行結果テーブル194とに基づいて試験結果を出力するS170。次に、プログラム試験方法の詳細について説明する。S110において、入力変数値組み合わせ生成部110は、入力変数値データ192を入力し、入力した入力変数値データ192に基づいて複数の入力変数値組み合わせ193を生成する。図6は、実施の形態1における入力変数値データ192と入力変数値組み合わせ193とを示す図である。入力変数値組み合わせ生成処理図5のS110について、図6に基づいて説明する。利用者は、キーボードやマウスなどの入力装置を用いて試験対象プログラム191の入力変数xyz毎に入力変数に設定する1つ以上の初期値を入力変数値としてプログラム試験装置100に入力する。入力変数値組み合わせ生成部110は、入力装置から入力変数毎に入力変数値を入力し、入力変数と入力変数値とを対応付けて入力変数値データ192を生成し、生成した入力変数値データ192を試験装置記憶部190に記憶する。例えば、入力変数xの入力変数値として2つの値01が入力された場合、入力変数値組み合わせ生成部110は、入力変数xと入力変数値01とを対応付けて入力変数値データ192に設定する。入力変数値組み合わせ生成部110は、入力変数値データ192に基づいて各入力変数の入力変数値を1つずつ組み合わせて入力変数値組み合わせ193を生成し、生成した入力変数値組み合わせ193を試験装置記憶部190に記憶する。例えば、入力変数値データ192に入力変数xの2つの入力変数値01と、入力変数yの3つの入力変数値-10010と、入力変数zの3つの入力変数値abcとが設定されている場合、入力変数値組み合わせ生成部110は18=2×3×3個の入力変数値組み合わせ193を生成する。図5に戻り、プログラム試験方法の説明を続ける。S110の後、S120に進む。S120において、命令実行部121は、S110で生成された複数の入力変数値組み合わせ193から未選択の入力変数値組み合わせ193を一つ選択し、選択した入力変数値組み合わせ193を試験対象プログラム191の入力変数に設定する。また、命令実行部121は、選択した入力変数値組み合わせ193に対して実行経路番号を生成する。生成された実行経路番号は、分岐命令実行結果テーブル194図2参照や経路別実行結果テーブル195図3参照に設定される。S120の後、S130に進む。S130において、命令実行部121は、試験対象プログラム191に従って次の処理ステップに移行し、次の処理ステップを実行する。例えば、命令実行部121は、1回目のS130では先頭の処理ステップに移行し、先頭の処理ステップを実行する。また、命令実行部121は、2回目のS130では2番目の処理ステップに移行し、2番目の処理ステップを実行する。但し、前回実行した処理ステップの種類が分岐命令ステップである場合、命令実行部121は、分岐命令ステップが示す分岐先の処理ステップに処理を移行し、分岐先の処理ステップを実行する。このとき、エラー検出部122は、命令実行部121による処理ステップの実行によりエラーが発生したか否かを判定する。例えば、エラー検出部122は、メモリのアクセス違反記憶例外やオーバーフロー演算例外などのエラーがOSオペレーティングシステムから通知された場合にエラーが発生したと判定する。また、エラー検出部122は、試験対象プログラム191で使用する各変数の値が許容範囲外の値である場合にエラーが発生したと判定してもよい。この場合、各変数の許容範囲の値を示す許容範囲情報は試験装置記憶部190に予め記憶しておく。エラーが発生した場合、エラー検出部122は、エラー内容または名称やエラーが発生した処理ステップの番号などのエラー情報を出力する。経路別実行結果記録部150は、S120で選択された入力変数値組み合わせ193と、エラー検出部122が出力したエラー情報と、S120で生成された実行経路番号とを対応付けて経路別実行結果テーブル195に設定する図3参照。そして、命令実行部121は以後の処理ステップを実行せずに試験対象プログラム191の実行を終了する。処理はS134に進む。図5では、S130でエラーが発生した場合の処理の流れについて図示を省略している。エラーが発生しなかった場合、処理はS131に進む。S131において、命令実行部121は、S130で実行した処理ステップが最後の処理ステップであるか否かまたは、次の処理ステップがあるか否かを判定する。つまり、命令実行部121は、S130での処理ステップの実行により試験対象プログラム191の実行が終了したか否かを判定する。試験対象プログラム191の実行が終了した場合YES、S150に進む。試験対象プログラム191の実行が終了していない場合NO、S132に進む。S132において、命令実行部121は、S130で実行した処理ステップの種類が分岐命令ステップであるか否かを判定する。分岐命令ステップを実行した場合YES、S133に進む。分岐命令ステップ以外の処理ステップを実行した場合NO、S130に戻る。S133において、命令実行部121は、分岐命令実行結果テーブル194図2参照を参照し、S130で今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たすか否かを判定する。このとき、命令実行部121は以下のように判定を行う。命令実行部121は、今回の実行経路と一致する分岐命令実行結果経路網羅フラグを除くを含んだ別の実行経路を該当実行経路として分岐命令実行結果テーブル194から検索する。つまり、該当実行経路とは、今回の実行経路のステップ番号の組み合わせと今回の実行経路の判定結果の組み合わせとを含んだ実行経路のことである。該当実行経路が有った場合、命令実行部121は該当実行経路の分岐命令実行結果のうち今回実行した分岐命令ステップと同じ分岐命令ステップの経路網羅フラグを参照する。参照した経路網羅フラグが真である場合、命令実行部121は今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たすと判定する。該当実行経路が無い場合または参照した経路網羅フラグが偽である場合、命令実行部121は今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たさないと判定する。例えば、図2において今回の実行経路を実行経路nとし、今回実行した分岐命令ステップのステップ番号を18とし、分岐条件の判定結果を真とする。この場合、実行経路1の分岐命令実行結果は実行経路nと同じ分岐命令実行結果5,真10,真18,真を含むため、実行経路1が該当実行経路に該当する。しかし、実行経路1の分岐命令実行結果18,真に対応する経路網羅フラグは偽であるため、今回実行した分岐命令ステップステップ番号:18の判定結果真は試験対象プログラム191の実行中止条件を満たしていない。つまり、実行経路1の分岐命令実行結果18,真に対応する経路網羅フラグが真であれば、今回実行した分岐命令ステップステップ番号:18の判定結果真は試験対象プログラム191の実行中止条件を満たす。今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たす場合YES、命令実行部121は以後の処理ステップを実行せずに試験対象プログラム191の実行を終了する。処理はS134に進む。今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たさない場合NO、S140に進む。S140において、分岐命令実行結果記録部130は、分岐命令実行結果テーブル194図2参照にS130で今回実行した分岐命令ステップの分岐命令実行結果を設定する。例えば、図2において今回の実行経路を実行経路nとし、今回実行した分岐命令ステップのステップ番号を18とし、分岐条件の判定結果を真とする。この場合、分岐命令実行結果記録部130は、実行経路nの分岐命令実行結果にステップ番号18と判定結果真と経路網羅フラグの初期値偽との組み合わせ18,真,偽を追加する。S140の後、S130に戻る。S150において、経路別実行結果記録部150は、S120で選択された入力変数値組み合わせ193と、試験対象プログラム191の出力変数の値と、S120で生成された実行経路番号とを対応付けて経路別実行結果テーブル195に設定する図3参照。S150の後、S160に進む。S160において、網羅結果記録部140は、分岐命令実行結果テーブル194図2参照に設定されている経路網羅フラグのうち、分岐先の全ての実行経路が実行済みである分岐命令ステップの判定結果に対応する経路網羅フラグを偽から真に更新する。経路網羅フラグ更新処理S160の詳細については別途説明する。S160の後、S134に進む。S134において、命令実行部121は、S120で選択していない入力変数値組み合わせ193が残っているか否かを判定する。未選択の入力変数値組み合わせ193が残っている場合YES、S120に戻る。未選択の入力変数値組み合わせ193が残っていない場合NO、S170に進む。S170において、経路別実行結果出力部161は、経路別実行結果テーブル195を試験装置記憶部190から取得し、経路別実行結果テーブル195に設定されている情報を示す経路別実行結果情報196を生成する。そして、経路別実行結果出力部161は、生成した経路別実行結果情報196をディスプレイやプリンタなどの出力装置に出力する。また、経路網羅情報出力部162は、分岐命令実行結果テーブル194を試験装置記憶部190から取得する。経路網羅情報出力部162は、取得した分岐命令実行結果テーブル194に基づいて、実行した実行経路を示す経路網羅情報197図4の経路網羅情報197A参照と、実行していない実行経路を示す経路網羅情報197図4の経路網羅情報197B参照とを生成する。そして、経路網羅情報出力部162は、生成した経路網羅情報197を出力装置に出力する。例えば、図4に示す実行済みの経路網羅情報197Aは、図2の分岐命令実行結果テーブル194に示す情報から経路網羅フラグを除いたものである。また、図4に示す未実行の経路網羅情報197Bは、実行済みの経路網羅情報197Aからステップ番号の組み合わせ5,10,18,32,40,を抽出し、抽出したステップ番号の組み合わせに実行済みの経路網羅情報197Aに含まれない判定結果の組み合わせを対応付けたものである。例えば、ステップ番号510183240の組み合わせに対して判定結果真真真真偽の組み合わせは、実行済みの経路網羅情報197Aには存在しない。このため、これらの組み合わせ5,真10,真18,真32,真40,偽を未実行の経路網羅情報197Bに設定する項番1。また、試験対象プログラム191から試験対象プログラム191に含まれる全ての実行経路を抽出し、全ての実行経路を示す実行経路情報を予め生成しておいてもよい。そして、この実行経路情報に含まれる実行経路から実行済みの経路網羅情報197Aに示される実行経路を除いた残りの実行経路を未実行の経路網羅情報197Bに設定してもよい。S170により、プログラム試験方法の処理は終了する。図7は、実施の形態1における経路網羅フラグ更新処理S160を示すフローチャートである。実施の形態1における経路網羅フラグ更新処理S160について、図7に基づいて説明する。S161において、網羅結果記録部140は、分岐命令実行結果テーブル194から今回設定された実行経路最後の実行経路を選択する。網羅結果記録部140は、選択した実行経路の最後に設定されている分岐命令実行結果の経路網羅フラグ、つまり、最後に実行された分岐命令ステップの経路網羅フラグを偽から真に更新する。以下、選択した実行経路を対象実行経路といい、対象実行経路に含まれる分岐命令ステップのうち最後に実行された分岐命令ステップを最終分岐ステップという。S161の後、S162に進む。S162において、網羅結果記録部140は、対象実行経路と最終分岐ステップまでのステップ番号が一致し、対象実行経路と最終分岐ステップの一つ前の分岐命令ステップまでの判定結果が一致する一つまたは複数の実行経路を候補実行経路として分岐命令実行結果テーブル194から検索する。S162の後、S163に進む。S163において、候補実行経路が存在する場合YES、S164に進む。また、候補実行経路が存在しない場合NO、経路網羅フラグ更新処理S160を終了する。S164において、網羅結果記録部140は、候補実行経路のうち最終分岐ステップのステップ番号に対応する経路網羅フラグが真である一つまたは複数の候補実行経路を該当実行経路として判定する。S164の後、S165に進む。S165において、該当実行経路が存在する場合YES、S166に進む。また、該当実行経路が存在しない場合NO、経路網羅フラグ更新処理S160を終了する。S166において、網羅結果記録部140は、対象実行経路に含まれる最終分岐ステップの判定結果と一つまたは複数の該当実行経路に含まれる最終分岐ステップの判定結果とに基づいて、最終分岐ステップの全ての判定結果が実行済みであるか否かを判定する。例えば、最終分岐ステップがif文二分岐命令である場合、対象実行経路と該当実行経路との一方の判定結果が真yesであり、他方の判定結果が偽noであれば、最終分岐ステップの全ての判定結果が実行済みである。つまり、対象実行経路と一つまたは複数の該当実行経路とに最終分岐ステップの判定結果として値が異なる分岐数の判定結果三分岐命令であれば三種類の判定結果が設定されている場合、最終分岐ステップの全ての判定結果は実行済みである。三分岐以上に分岐する多分岐命令の分岐命令ステップが試験対象プログラム191に含まれる場合、分岐命令ステップ毎にステップ番号と分岐数とを示す分岐命令情報を試験装置記憶部190に予め記憶しておいてもよい。網羅結果記録部140は、この分岐命令情報から最終分岐ステップのステップ番号に対応する最終分岐ステップの分岐数を取得し、取得した分岐数に基づいて判定を行う。但し、試験対象プログラム191に全ての分岐命令ステップをif文二分岐命令で記述する場合、全ての分岐命令ステップの判定結果は真または偽であるため、上記のような分岐命令情報は不要である。S166の後、S167に進む。S167において、最終分岐ステップの全ての判定結果が実行済みである場合YES、S168に進む。また、最終分岐ステップの少なくともいずれかの判定結果が実行されていない場合NO、経路網羅フラグ更新処理S160は終了する。S168において、網羅結果記録部140は、対象実行経路に含まれる分岐命令ステップのうち最終分岐ステップの一つ前の分岐命令ステップの経路網羅フラグを偽から真に更新する。同様に、網羅結果記録部140は、該当実行経路に含まれる分岐命令ステップのうち最終分岐ステップに対応する分岐命令ステップの一つ前の分岐命令ステップの経路網羅フラグを偽から真に更新する。S168により経路網羅フラグ更新処理S160は終了する。図8は、実施の形態1における試験対象プログラム191を表すフローチャートの一例である。図9-11は、実施の形態1における分岐命令実行結果設定処理S140と経路網羅フラグ更新処理S160との具体例を示す分岐命令実行結果テーブル194である。分岐命令実行結果設定処理S140と経路網羅フラグ更新処理S160との具体例について、図8-11に基づいて説明する。図8において、試験対象プログラム191は実行経路1と実行経路2とを含んでいる。実行経路1の処理順序は処理ステップa→分岐命令ステップA判定結果:真→処理ステップb→分岐命令ステップB判定結果:真→処理ステップcである。実行経路2の処理順序は処理ステップa→分岐命令ステップA判定結果:真→処理ステップb→分岐命令ステップB判定結果:偽→処理ステップdである。分岐命令ステップAのステップ番号は5であり、分岐命令ステップBのステップ番号は10である。最初の入力変数値組み合わせ193を用いて試験対象プログラム191を実行した場合、分岐命令実行結果テーブル194は以下のように設定または更新される。処理ステップaの実行後に分岐命令ステップAが実行され、判定結果が真であった場合、図91に示すように分岐命令実行結果5,真,偽が設定される図5のS140。次に、処理ステップbの実行後に分岐命令ステップBが実行され、判定結果が真であった場合、図92に示すように分岐命令実行結果10,真,偽が設定される図5のS140。そして、処理ステップcが実行され試験対象プログラム191が終了した場合、図93に示すように分岐命令ステップBの経路網羅フラグを偽から真に更新する図7のS161。次の入力変数値組み合わせ193を用いて試験対象プログラム191を実行した場合、分岐命令実行結果テーブル194は以下のように設定または更新される。処理ステップaの実行後に分岐命令ステップAが実行され、判定結果が真であった場合、図104に示すように分岐命令実行結果5,真,偽が設定される図5のS140。次に、処理ステップbの実行後に分岐命令ステップBが実行され、判定結果が偽であった場合、図105に示すように分岐命令実行結果10,偽,偽が設定される図5のS140。そして、処理ステップdが実行され試験対象プログラム191が終了した場合、図106に示すように分岐命令ステップBの経路網羅フラグを偽から真に更新する図7のS161。図116において、以下、実行経路2の最後の分岐命令ステップステップ番号:10を最終分岐ステップという。実行経路1は実行経路2と最終分岐ステップまでのステップ番号510が一致し、実行経路2と最終分岐ステップの一つ前の分岐命令ステップステップ番号:5までの判定結果真が一致する図7のS162。また、最終分岐ステップのステップ番号10に対応する実行経路1の経路網羅フラグは真である図7のS164。さらに、最終分岐ステップのステップ番号10に対応する実行経路1の判定結果は真であり、実行経路2の判定結果は偽である。したがって、最終分岐ステップの全ての判定結果が実行済みである図7のS166。このため、図117に示すように実行経路1および実行経路2に含まれる分岐命令ステップのうち最終分岐ステップの一つ前の分岐命令ステップステップ番号:5の経路網羅フラグが偽から真に更新される図7のS168。図12-14は、実施の形態1における分岐命令実行結果設定処理S140と経路網羅フラグ更新処理S160との具体例を示すフローチャートである。図12-14に示す処理1-7は、図9-図11に示した処理1-7に対応している。図12において実行経路1で分岐命令ステップAが実行され、判定結果が真であった場合、1分岐命令実行結果5,真,偽ステップ番号,判定結果,経路網羅フラグが分岐命令実行結果テーブル194に設定される。次に、分岐命令ステップBが実行され、判定結果が真であった場合、2分岐命令実行結果10,真,偽が分岐命令実行結果テーブル194に設定される。そして、3分岐命令実行結果10,真,偽の経路網羅フラグ偽が真に更新される。図13において実行経路2で分岐命令ステップAが実行され、判定結果が真であった場合、4分岐命令実行結果5,真,偽が分岐命令実行結果テーブル194に設定される。次に、分岐命令ステップBが実行され、判定結果が偽であった場合、5分岐命令実行結果10,偽,偽が分岐命令実行結果テーブル194に設定される。そして、6分岐命令実行結果10,偽,偽の経路網羅フラグ偽が真に更新される。図14において、分岐命令ステップBの判定結果真偽が共に実行済みであるため、7分岐命令ステップAの分岐命令実行結果5,真,偽に含まれる経路網羅フラグ偽が真に更新される。図15は、実施の形態1におけるプログラム試験装置100のハードウェア資源の一例を示す図である。図15において、プログラム試験装置100は、CPU901CentralProcessingUnitを備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905、ディスプレイ装置911、キーボード912、マウス913、ドライブ装置914、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置914は、FDFlexibleDiskDrive、CDCompactDisc、DVDDigitalVersatileDiscなどの記憶媒体を読み書きする装置である。通信ボード905は、有線または無線で、LANLocalAreaNetwork、インターネット、電話回線などの通信網に接続している。磁気ディスク装置920には、OS921オペレーティングシステム、プログラム群922、ファイル群923が記憶されている。プログラム群922には、実施の形態において~部として説明する機能を実行するプログラムが含まれる。プログラムは、CPU901により読み出され実行される。すなわち、プログラムは、~部としてコンピュータプログラム試験装置100を機能させるものであり、また~部の手順や方法をコンピュータに実行させるものである。ファイル群923には、実施の形態において説明する~部で使用される各種データ入力、出力、判定結果、計算結果、処理結果などが含まれる。実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。実施の形態において~部として説明するものは~回路、~装置、~機器であってもよく、また~ステップ、~手順、~処理であってもよい。すなわち、~部として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。実施の形態1において、例えば、以下のようなプログラム試験装置100について説明した。プログラム試験装置100は、入力変数値組み合わせ生成部110と命令実行部121と分岐命令実行結果記録部130と網羅結果記録部140と経路別実行結果記録部150とを備える。入力変数値組み合わせ生成部110は、複数の入力変数値の組み合わせを生成する。命令実行部121は、試験対象プログラムに入力変数値の組み合わせを与えて実行する。分岐命令実行結果記録部130は、実行が完了した実行経路ごとに、試験対象プログラム中の各分岐命令の実行結果を記録する。網羅結果記録部140は、試験対象プログラム中の各分岐命令について、該分岐命令以降の実行経路が網羅済みであるか否かを記録する。経路別実行結果記録部150は、実行経路ごとに実行結果を記録する。プログラム試験装置100は、さらに、経路別実行結果出力部161を備える。経路別実行結果出力部161は、実行経路ごとに入力変数値、出力変数値、エラー情報を出力する。プログラム試験装置100は、さらに、経路網羅情報出力部162を備える。経路網羅情報出力部162は、実行済みの実行経路と実行済みでない実行経路とを出力する。プログラム試験装置100は、各分岐の真、偽それぞれの結果に対して異なる分岐命令実行結果を系統的に記録し、記録した各分岐命令実行結果について、各分岐命令以降の実行経路を網羅したか判定する。これにより、新たな変数値の組み合わせによる試験対象プログラムの実行時に各分岐命令実行結果以降の実行経路が既に実行済みであるか否かを判定することが可能となる。そして、分岐命令実行結果以降の実行経路が既に実行済みであると判定した場合には、その時点で試験対象プログラムの実行を中止して次の変数値の組み合わせに移行する。これにより、同一の実行経路を試験対象プログラムの終了まで実行することを避けることが可能となる。また、実行が完了した実行経路の実行結果と、実行済みの実行経路および未実行の実行経路を出力することによって、利用者に実行経路の網羅度を含む試験結果を提供することができる。"