JP5595304B2 - プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム - Google Patents
プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム Download PDFInfo
- Publication number
- JP5595304B2 JP5595304B2 JP2011038048A JP2011038048A JP5595304B2 JP 5595304 B2 JP5595304 B2 JP 5595304B2 JP 2011038048 A JP2011038048 A JP 2011038048A JP 2011038048 A JP2011038048 A JP 2011038048A JP 5595304 B2 JP5595304 B2 JP 5595304B2
- Authority
- JP
- Japan
- Prior art keywords
- execution
- branch
- program
- branch instruction
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
ここで、一つの入力変数値組み合わせによって実行できる実行経路は一つであるため、試験対象プログラムの全ての実行経路を実行するためには、入力変数値の組み合わせを様々に変えて実行を繰り返す必要がある。
しかし、試験対象プログラムが複雑であり、取り得る実行経路の数が膨大となる場合、全ての実行経路を網羅する入力変数値の組み合わせを人手によって漏れなく作成することは困難である。
したがって、新たに入力する入力変数値の組み合わせが既に実行済みの実行経路を実行するものであった場合、同一の実行経路を再び実行することとなる。
このため、従来のプログラム試験装置では実行経路の実行に重複が生じ、試験効率が低下するという課題があった。
所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、
前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部と、
前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行部と、
前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成部と、
前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成部と、
前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力部とを備える。
前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する。
複数の分岐命令ステップを含む試験対象プログラムを試験するプログラム試験装置について説明する。
実施の形態1におけるプログラム試験装置100の機能構成について、図1に基づいて説明する。
プログラム試験装置100は、分岐命令実行結果記録部130と網羅結果記録部140と経路別実行結果記録部150とを備える。
さらに、プログラム試験装置100は試験装置記憶部190を備える。
試験対象プログラム191、入力変数値データ192、入力変数値組み合わせ193、分岐命令実行結果テーブル194、経路別実行結果テーブル195、経路別実行結果情報196および経路網羅情報197は、試験装置記憶部190に記憶されるデータの一例である。
その他のデータについては後述する。
入力変数値データ192は、試験対象プログラム191の入力パラメータとして使用する入力変数毎に入力変数に設定する複数の値(以下、「入力変数値」)を示すデータである。
入力変数値組み合わせ193(入力データの一例)は、入力変数と入力変数値とを組み合わせたデータである。
エラー検出部122は、特定のエラーが発生した場合、発生したエラーを表すエラー情報を出力する。
実行済み経路レコード(分岐結果データ、実行中止条件データの一例)は、命令実行部121が試験対象プログラム191に含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示すデータである。
網羅結果記録部140は、経路網羅ステップに対応付けて経路網羅フラグを分岐命令実行結果テーブル194のレコードに設定する(実行中止条件データ生成処理)。
経路網羅ステップとは、複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップのことである。
経路網羅フラグとは、経路網羅ステップのステップ番号と分岐条件の判定結果とを試験対象プログラム191の実行を中止する実行中止条件として示すデータである。
網羅結果記録部140は、命令実行部121が試験対象プログラム191の実行を終了する毎に最後に実行された分岐命令ステップを経路網羅ステップとして判定する。
網羅結果記録部140は、経路網羅ステップを実行するまでに実行された各分岐命令ステップのステップ番号と分岐条件の判定結果とを他の実行済み経路レコードと比較する。
網羅結果記録部140は、各分岐命令ステップのステップ番号と分岐条件の判定結果とが他の実行済み経路レコードと一致する場合、各分岐命令ステップのうち最後に実行された分岐命令ステップを経路網羅ステップとして判定する。
経路別実行結果テーブル195は、入力変数値組み合わせ193と試験対象プログラム191の実行結果とを示すデータである。
経路別実行結果出力部161は、生成した経路別実行結果情報196を出力する(試験結果データ出力処理)。
経路網羅情報出力部162は、判定した未実行経路を示す経路網羅情報197(試験結果データの一例)を生成し、生成した経路網羅情報197を出力する(試験結果データ出力処理)。
そして、命令実行部121は、分岐命令ステップのステップ番号と分岐条件の判定結果とが実行中止条件を満たす場合、分岐命令ステップの分岐先の実行経路を実行せずに試験対象プログラム191の実行を終了する。
実施の形態1における分岐命令実行結果テーブル194について、図2に基づいて説明する。
「ステップ番号」は、実行された分岐命令ステップを識別する情報として分岐命令ステップのステップ番号(例えば、ソースコードの行番号)を示す。
「判定結果」は、分岐条件の判定結果を示す。例えば、分岐命令ステップがif文(二分岐命令)である場合、分岐条件の判定結果は“真(yes)”または“偽(no)”である。
「経路網羅フラグ」は、分岐先の全ての実行経路が実行済みであるか否かを示す。分岐先の全ての実行経路が実行済みである場合、「経路網羅フラグ」は“真”を示し、分岐先の少なくともいずれかの実行経路が実行されていない場合、「経路網羅フラグ」は“偽”を示す。
また、この分岐命令実行結果(5,真,偽)は、ステップ番号“5”の分岐命令ステップで判定結果が“真”である場合の分岐先に実行済みでない実行経路が残っている、ことを意味する。
実施の形態1における経路別実行結果テーブル195について、図3に基づいて説明する。
「出力変数値」は、試験対象プログラム191の実行が終了したときに出力変数に設定されていた値である。出力変数とは、試験対象プログラム191の出力パラメータとして使用される変数である。
「エラー情報」は、発生したエラーの種類やエラーが発生した処理ステップの番号などを示す。
経路別実行結果テーブル195の「実行経路番号」は、分岐命令実行結果テーブル194の「実行経路番号」(図2参照)に対応している。
実施の形態1における経路網羅情報197について、図4に基づいて説明する。
「実行経路番号」は、実行された実行経路を識別する番号を示す。
「分岐命令実行結果」は、実行経路に含まれる分岐命令の「ステップ番号」と「判定結果」とを示す。
実行済みの経路網羅情報197Aの「実行経路番号」「分岐命令実行結果」は、分岐命令実行結果テーブル194の「実行経路番号」「分岐命令実行結果(経路網羅フラグを除く)」(図2参照)に対応している。
また、未実行の経路網羅情報197Bの“項番1”は、上記の“実行経路1”に対してステップ番号“40”の分岐命令ステップで判定結果が“偽”である実行経路が実行されていないことを示している。
実施の形態1におけるプログラム試験装置100のプログラム試験方法について、図5に基づいて説明する。
命令実行部121は入力変数値組み合わせ193を選択し(S120)、試験対象プログラム191の処理ステップを一つ実行する(S130)。
命令実行部121は、試験対象プログラム191が終了したか否かを判定する(S131)。
試験対象プログラム191が終了していない場合(S131「NO」)、命令実行部121は実行した処理ステップが分岐命令ステップであるか否かを判定する(S132)。
実行した処理ステップが分岐命令ステップでない場合(S132「NO」)、S130に戻る。
実行した分岐命令ステップの判定結果が実行中止条件を満たさない場合(S133「NO」)、分岐命令実行結果記録部130は分岐命令実行結果テーブル194に分岐命令ステップの実行結果を設定する(S140)。その後、S130に戻る。
未選択の入力変数値組み合わせ193が残っている場合(S134「YES」)、S120に戻る。
未選択の入力変数値組み合わせ193が残っていない場合(S134「NO」)、試験結果出力部160は経路別実行結果テーブル195と分岐命令実行結果テーブル194とに基づいて試験結果を出力する(S170)。
入力変数値組み合わせ生成処理(図5のS110)について、図6に基づいて説明する。
入力変数値組み合わせ生成部110は、入力装置から入力変数毎に入力変数値を入力し、入力変数と入力変数値とを対応付けて入力変数値データ192を生成し、生成した入力変数値データ192を試験装置記憶部190に記憶する。
また、命令実行部121は、選択した入力変数値組み合わせ193に対して実行経路番号を生成する。生成された実行経路番号は、分岐命令実行結果テーブル194(図2参照)や経路別実行結果テーブル195(図3参照)に設定される。
S120の後、S130に進む。
例えば、命令実行部121は、1回目のS130では先頭の処理ステップに移行し、先頭の処理ステップを実行する。
また、命令実行部121は、2回目のS130では2番目の処理ステップに移行し、2番目の処理ステップを実行する。
但し、前回実行した処理ステップの種類が分岐命令ステップである場合、命令実行部121は、分岐命令ステップが示す分岐先の処理ステップに処理を移行し、分岐先の処理ステップを実行する。
例えば、エラー検出部122は、メモリのアクセス違反(記憶例外)やオーバーフロー(演算例外)などのエラーがOS(オペレーティングシステム)から通知された場合にエラーが発生したと判定する。
また、エラー検出部122は、試験対象プログラム191で使用する各変数の値が許容範囲外の値である場合にエラーが発生したと判定してもよい。この場合、各変数の許容範囲の値を示す許容範囲情報は試験装置記憶部190に予め記憶しておく。
経路別実行結果記録部150は、S120で選択された入力変数値組み合わせ193と、エラー検出部122が出力したエラー情報と、S120で生成された実行経路番号とを対応付けて経路別実行結果テーブル195に設定する(図3参照)。
そして、命令実行部121は以後の処理ステップを実行せずに試験対象プログラム191の実行を終了する。処理はS134に進む。
図5では、S130でエラーが発生した場合の処理の流れについて図示を省略している。
試験対象プログラム191の実行が終了した場合(YES)、S150に進む。
試験対象プログラム191の実行が終了していない場合(NO)、S132に進む。
分岐命令ステップを実行した場合(YES)、S133に進む。
分岐命令ステップ以外の処理ステップを実行した場合(NO)、S130に戻る。
このとき、命令実行部121は以下のように判定を行う。
該当実行経路が有った場合、命令実行部121は該当実行経路の「分岐命令実行結果」のうち今回実行した分岐命令ステップと同じ分岐命令ステップの経路網羅フラグを参照する。
参照した経路網羅フラグが「真」である場合、命令実行部121は今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たすと判定する。
該当実行経路が無い場合または参照した経路網羅フラグが「偽」である場合、命令実行部121は今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たさないと判定する。
この場合、実行経路1の分岐命令実行結果は実行経路nと同じ分岐命令実行結果「5,真」「10,真」「18,真」を含むため、実行経路1が「該当実行経路」に該当する。
しかし、実行経路1の分岐命令実行結果「18,真」に対応する経路網羅フラグは「偽」であるため、今回実行した分岐命令ステップ(ステップ番号:18)の判定結果「真」は試験対象プログラム191の実行中止条件を満たしていない。
つまり、実行経路1の分岐命令実行結果「18,真」に対応する経路網羅フラグが「真」であれば、今回実行した分岐命令ステップ(ステップ番号:18)の判定結果「真」は試験対象プログラム191の実行中止条件を満たす。
今回実行した分岐命令ステップの判定結果が試験対象プログラム191の実行中止条件を満たさない場合(NO)、S140に進む。
この場合、分岐命令実行結果記録部130は、実行経路nの分岐命令実行結果にステップ番号「18」と判定結果「真」と経路網羅フラグの初期値「偽」との組み合わせ「18,真,偽」を追加する。
S150の後、S160に進む。
経路網羅フラグ更新処理(S160)の詳細については別途説明する。
S160の後、S134に進む。
未選択の入力変数値組み合わせ193が残っている場合(YES)、S120に戻る。
未選択の入力変数値組み合わせ193が残っていない場合(NO)、S170に進む。
そして、経路別実行結果出力部161は、生成した経路別実行結果情報196をディスプレイやプリンタなどの出力装置に出力する。
経路網羅情報出力部162は、取得した分岐命令実行結果テーブル194に基づいて、実行した実行経路を示す経路網羅情報197(図4の経路網羅情報197A参照)と、実行していない実行経路を示す経路網羅情報197(図4の経路網羅情報197B参照)とを生成する。
そして、経路網羅情報出力部162は、生成した経路網羅情報197を出力装置に出力する。
また、図4に示す未実行の経路網羅情報197Bは、実行済みの経路網羅情報197Aからステップ番号の組み合わせ(5,10,18,32,40,・・・)を抽出し、抽出したステップ番号の組み合わせに実行済みの経路網羅情報197Aに含まれない判定結果の組み合わせを対応付けたものである。例えば、ステップ番号「5」「10」「18」「32」「40」の組み合わせに対して判定結果「真」「真」「真」「真」「偽」の組み合わせは、実行済みの経路網羅情報197Aには存在しない。このため、これらの組み合わせ「5,真」「10,真」「18,真」「32,真」「40,偽」を未実行の経路網羅情報197Bに設定する(項番1)。
また、試験対象プログラム191から試験対象プログラム191に含まれる全ての実行経路を抽出し、全ての実行経路を示す実行経路情報を予め生成しておいてもよい。そして、この実行経路情報に含まれる実行経路から実行済みの経路網羅情報197Aに示される実行経路を除いた残りの実行経路を未実行の経路網羅情報197Bに設定してもよい。
実施の形態1における経路網羅フラグ更新処理(S160)について、図7に基づいて説明する。
網羅結果記録部140は、選択した実行経路の最後に設定されている分岐命令実行結果の経路網羅フラグ、つまり、最後に実行された分岐命令ステップの経路網羅フラグを「偽」から「真」に更新する。
以下、選択した実行経路を「対象実行経路」といい、対象実行経路に含まれる分岐命令ステップのうち最後に実行された分岐命令ステップを「最終分岐ステップ」という。
S161の後、S162に進む。
S162の後、S163に進む。
また、候補実行経路が存在しない場合(NO)、経路網羅フラグ更新処理(S160)を終了する。
S164の後、S165に進む。
また、該当実行経路が存在しない場合(NO)、経路網羅フラグ更新処理(S160)を終了する。
但し、試験対象プログラム191に全ての分岐命令ステップをif文(二分岐命令)で記述する場合、全ての分岐命令ステップの判定結果は「真」または「偽」であるため、上記のような分岐命令情報は不要である。
また、最終分岐ステップの少なくともいずれかの判定結果が実行されていない場合(NO)、経路網羅フラグ更新処理(S160)は終了する。
同様に、網羅結果記録部140は、該当実行経路に含まれる分岐命令ステップのうち最終分岐ステップに対応する分岐命令ステップの一つ前の分岐命令ステップの経路網羅フラグを「偽」から「真」に更新する。
S168により経路網羅フラグ更新処理(S160)は終了する。
図9−11は、実施の形態1における分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例を示す分岐命令実行結果テーブル194である。
分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例について、図8−11に基づいて説明する。
実行経路1の処理順序は「処理ステップa→分岐命令ステップA(判定結果:真)→処理ステップb→分岐命令ステップB(判定結果:真)→処理ステップc」である。
実行経路2の処理順序は「処理ステップa→分岐命令ステップA(判定結果:真)→処理ステップb→分岐命令ステップB(判定結果:偽)→処理ステップd」である。
分岐命令ステップAのステップ番号は「5」であり、分岐命令ステップBのステップ番号は「10」である。
処理ステップaの実行後に分岐命令ステップAが実行され、判定結果が「真」であった場合、図9(1)に示すように分岐命令実行結果「5,真,偽」が設定される(図5のS140)。
次に、処理ステップbの実行後に分岐命令ステップBが実行され、判定結果が「真」であった場合、図9(2)に示すように分岐命令実行結果「10,真,偽」が設定される(図5のS140)。
そして、処理ステップcが実行され試験対象プログラム191が終了した場合、図9(3)に示すように分岐命令ステップBの経路網羅フラグを「偽」から「真」に更新する(図7のS161)。
処理ステップaの実行後に分岐命令ステップAが実行され、判定結果が「真」であった場合、図10(4)に示すように分岐命令実行結果「5,真,偽」が設定される(図5のS140)。
次に、処理ステップbの実行後に分岐命令ステップBが実行され、判定結果が「偽」であった場合、図10(5)に示すように分岐命令実行結果「10,偽,偽」が設定される(図5のS140)。
そして、処理ステップdが実行され試験対象プログラム191が終了した場合、図10(6)に示すように分岐命令ステップBの経路網羅フラグを「偽」から「真」に更新する(図7のS161)。
実行経路1は実行経路2と最終分岐ステップまでのステップ番号「5」「10」が一致し、実行経路2と最終分岐ステップの一つ前の分岐命令ステップ(ステップ番号:5)までの判定結果「真」が一致する(図7のS162)。
したがって、最終分岐ステップの全ての判定結果が実行済みである(図7のS166)。
図12−14に示す処理(1)−(7)は、図9−図11に示した処理(1)−(7)に対応している。
次に、分岐命令ステップBが実行され、判定結果が「真」であった場合、(2)分岐命令実行結果「10,真,偽」が分岐命令実行結果テーブル194に設定される。
そして、(3)分岐命令実行結果「10,真,偽」の経路網羅フラグ「偽」が「真」に更新される。
次に、分岐命令ステップBが実行され、判定結果が「偽」であった場合、(5)分岐命令実行結果「10,偽,偽」が分岐命令実行結果テーブル194に設定される。
そして、(6)分岐命令実行結果「10,偽,偽」の経路網羅フラグ「偽」が「真」に更新される。
図15において、プログラム試験装置100は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905、ディスプレイ装置911、キーボード912、マウス913、ドライブ装置914、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置914は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
入力変数値組み合わせ生成部110は、複数の入力変数値の組み合わせを生成する。
命令実行部121は、試験対象プログラムに入力変数値の組み合わせを与えて実行する。
分岐命令実行結果記録部130は、実行が完了した実行経路ごとに、試験対象プログラム中の各分岐命令の実行結果を記録する。
網羅結果記録部140は、試験対象プログラム中の各分岐命令について、該分岐命令以降の実行経路が網羅済みであるか否かを記録する。
経路別実行結果記録部150は、実行経路ごとに実行結果を記録する。
経路別実行結果出力部161は、実行経路ごとに入力変数値、出力変数値、エラー情報を出力する。
経路網羅情報出力部162は、実行済みの実行経路と実行済みでない実行経路とを出力する。
これにより、新たな変数値の組み合わせによる試験対象プログラムの実行時に各分岐命令実行結果以降の実行経路が既に実行済みであるか否かを判定することが可能となる。
そして、分岐命令実行結果以降の実行経路が既に実行済みであると判定した場合には、その時点で試験対象プログラムの実行を中止して次の変数値の組み合わせに移行する。
これにより、同一の実行経路を試験対象プログラムの終了まで実行することを避けることが可能となる。
Claims (6)
- 所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、
前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部と、
前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行部と、
前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成部と、
前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成部と、
前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力部とを備え、
前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する
ことを特徴とするプログラム試験装置。 - 前記実行中止条件データ生成部は、
前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に最後に実行された分岐命令ステップを経路網羅ステップとして判定し、
前記経路網羅ステップを実行するまでに実行された各分岐命令ステップのステップ番号と分岐条件の判定結果とを他の分岐結果データと比較し、
前記各分岐命令ステップのステップ番号と分岐条件の判定結果とが他の分岐結果データと一致する場合、前記各分岐命令ステップのうち最後に実行された分岐命令ステップを経路網羅ステップとして判定する
ことを特徴とする請求項1記載のプログラム試験装置。 - 前記試験結果データ出力部は、前記分岐結果データ生成部により生成された分岐結果データに基づいて実行していない実行経路を未実行経路として判定し、判定した未実行経路を示すデータを前記試験結果データとして生成し、生成した試験結果データを出力する
ことを特徴とする請求項1または請求項2記載のプログラム試験装置。 - 前記試験結果データ出力部は、入力データ毎に入力データと前記試験対象プログラムの実行結果とを対応付けて示すデータを前記試験結果データとして生成し、生成した試験結果データを出力する
ことを特徴とする請求項1から請求項3いずれかに記載のプログラム試験装置。 - 所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部とを備えるプログラム試験装置のプログラム試験方法において、
プログラム実行部が、前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行し、
分岐結果データ生成部が、前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成し、
実行中止条件データ生成部が、前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成し、
試験結果データ出力部が、前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力し、
前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する
ことを特徴とするプログラム試験装置のプログラム試験方法。 - 所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部とを備えるプログラム試験装置を動作させるプログラム試験プログラムにおいて、
前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行処理と、
前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行処理で前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成処理と、
前記プログラム実行処理で前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成処理により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成処理と、
前記プログラム実行処理で全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力処理とを前記プログラム試験装置に実行させ、
前記プログラム実行処理は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成処理によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する
ことを特徴とするプログラム試験プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011038048A JP5595304B2 (ja) | 2011-02-24 | 2011-02-24 | プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011038048A JP5595304B2 (ja) | 2011-02-24 | 2011-02-24 | プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012174166A JP2012174166A (ja) | 2012-09-10 |
JP5595304B2 true JP5595304B2 (ja) | 2014-09-24 |
Family
ID=46976989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011038048A Expired - Fee Related JP5595304B2 (ja) | 2011-02-24 | 2011-02-24 | プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5595304B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6334250B2 (ja) * | 2014-05-07 | 2018-05-30 | 株式会社エヌ・ティ・ティ・データ | ソフトウェア開発支援装置、ソフトウェア開発支援方法、およびプログラム |
US20150331786A1 (en) * | 2014-05-15 | 2015-11-19 | Fujitsu Limited | Path execution reduction in software program verification |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4190610B2 (ja) * | 1998-02-18 | 2008-12-03 | 富士通株式会社 | ロードモジュールの試験ルート決定装置 |
JP2008071075A (ja) * | 2006-09-13 | 2008-03-27 | Toshiba Corp | プログラム検査装置、プログラム検査方法、及びプログラム検査プログラム |
JP4947427B2 (ja) * | 2007-11-07 | 2012-06-06 | 日本電気株式会社 | 検査時間制御装置、方法、およびプログラム |
-
2011
- 2011-02-24 JP JP2011038048A patent/JP5595304B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012174166A (ja) | 2012-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6268029B2 (ja) | テストケース生成装置及びテストケース生成方法 | |
JP6245006B2 (ja) | テストケース生成装置、方法、及びプログラム | |
US9003370B2 (en) | Application modification portion searching device and application modification portion searching method | |
JP2016126552A (ja) | テスト選択プログラム、テスト選択方法、及びテスト選択装置 | |
JP6759851B2 (ja) | プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム | |
JP5595304B2 (ja) | プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム | |
JP7077909B2 (ja) | デッドコード解析プログラム、デッドコード解析方法及びデッドコード解析装置 | |
JP6416588B2 (ja) | ソースコード検証システム | |
JP2001273169A (ja) | プログラムテスト仕様書生成装置 | |
JP2016128941A (ja) | 出力判定装置、出力判定方法、出力判定プログラム、及び、静的解析装置 | |
JP2009134360A (ja) | モデル検査システム、モデル検査方法およびモデル検査用プログラム | |
JP2013077124A (ja) | ソフトウェアテストケース生成装置 | |
JP2008197897A (ja) | テストパターン作成装置及び作成方法 | |
JP2015056140A (ja) | クローン検出方法及びクローン共通関数化方法 | |
JP6390217B2 (ja) | ソフトウェア変更プログラム、ソフトウェア変更装置、及びソフトウェア変更方法 | |
JP6748357B2 (ja) | 解析装置、解析プログラムおよび解析方法 | |
CN111143229A (zh) | 软件测试方法及装置、计算机设备及计算机可读存储介质 | |
JP5755861B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
JP5910410B2 (ja) | 図式プログラムのテストデータ生成装置およびその方法、並びにプログラム | |
JP2007128138A (ja) | ビジネスプロセステスト設計支援装置、ビジネスプロセス試験方法、及びコンピュータプログラム | |
JP2011123780A (ja) | 試験管理装置 | |
JP6397800B2 (ja) | テスト支援システムおよびテスト支援方法 | |
JP6785916B1 (ja) | 設定実行装置、設定実行方法および設定実行プログラム | |
JP2004326237A (ja) | テストケース生成装置及びテストケース生成方法及びテストケース及びテスト方法 | |
JP2008262473A (ja) | 設備保全管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131114 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140625 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140708 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140805 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5595304 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |