JP5595304B2 - プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム - Google Patents

プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム Download PDF

Info

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
Application number
JP2011038048A
Other languages
English (en)
Other versions
JP2012174166A (ja
Inventor
智洋 大貫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011038048A priority Critical patent/JP5595304B2/ja
Publication of JP2012174166A publication Critical patent/JP2012174166A/ja
Application granted granted Critical
Publication of JP5595304B2 publication Critical patent/JP5595304B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、例えば、試験対象プログラムを試験するプログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラムに関するものである。
プログラムの試験では、複数の入力変数値の組み合わせを入力して試験対象プログラムを実行することが一般的である。
ここで、一つの入力変数値組み合わせによって実行できる実行経路は一つであるため、試験対象プログラムの全ての実行経路を実行するためには、入力変数値の組み合わせを様々に変えて実行を繰り返す必要がある。
しかし、試験対象プログラムが複雑であり、取り得る実行経路の数が膨大となる場合、全ての実行経路を網羅する入力変数値の組み合わせを人手によって漏れなく作成することは困難である。
そこで、従来のプログラム自動試験技術は、入力変数値の組み合わせを自動的に生成し、生成した入力変数値の組み合わせを入力して試験対象プログラムを実行する。これにより、実行経路の網羅度を高めている(例えば、特許文献1)。
特開平7−93187号公報
従来のプログラム試験装置では、自動的に生成した全ての入力変数値の組み合わせについて試験対象プログラムの開始から終了まで実行経路が実行済みであるか否かを考慮せずに実行する。
したがって、新たに入力する入力変数値の組み合わせが既に実行済みの実行経路を実行するものであった場合、同一の実行経路を再び実行することとなる。
このため、従来のプログラム試験装置では実行経路の実行に重複が生じ、試験効率が低下するという課題があった。
本発明は、例えば、複数の入力変数値の組み合わせを用いて同一の実行経路に対する実行を繰り返すことなく、未実行の実行経路のみを実行してプログラムを試験できるようにすることを目的とする。
本発明のプログラム試験装置は、
所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、
前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部と、
前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行部と、
前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成部と、
前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成部と、
前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力部とを備える。
前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する。
本発明によれば、例えば、複数の入力変数値の組み合わせ(入力データ)を用いて同一の実行経路に対する実行を繰り返すことなく、未実行の実行経路のみを実行してプログラムを試験することができる。
実施の形態1におけるプログラム試験装置100の機能構成図。 実施の形態1における分岐命令実行結果テーブル194を示す図。 実施の形態1における経路別実行結果テーブル195を示す図。 実施の形態1における経路網羅情報197を示す図。 実施の形態1におけるプログラム試験装置100のプログラム試験方法を示すフローチャート。 実施の形態1における入力変数値データ192と入力変数値組み合わせ193とを示す図。 実施の形態1における経路網羅フラグ更新処理(S160)を示すフローチャート。 実施の形態1における試験対象プログラム191を表すフローチャートの一例。 実施の形態1における分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例を示す分岐命令実行結果テーブル194。 実施の形態1における分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例を示す分岐命令実行結果テーブル194。 実施の形態1における分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例を示す分岐命令実行結果テーブル194。 実施の形態1における分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例を示すフローチャート。 実施の形態1における分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例を示すフローチャート。 実施の形態1における分岐命令実行結果設定処理(S140)と経路網羅フラグ更新処理(S160)との具体例を示すフローチャート。 実施の形態1におけるプログラム試験装置100のハードウェア資源の一例を示す図。
実施の形態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”は、ステップ番号“5”“10”“18”“32”“40”の各分岐命令ステップで判定結果が“真”である実行経路が実行済みであることを示している。
また、未実行の経路網羅情報197Bの“項番1”は、上記の“実行経路1”に対してステップ番号“40”の分岐命令ステップで判定結果が“偽”である実行経路が実行されていないことを示している。
図5は、実施の形態1におけるプログラム試験装置100のプログラム試験方法を示すフローチャートである。
実施の形態1におけるプログラム試験装置100のプログラム試験方法について、図5に基づいて説明する。
まず、プログラム試験方法の概要について説明する。
入力変数値組み合わせ生成部110は、複数の入力変数値組み合わせ193を生成する(S110)。
命令実行部121は入力変数値組み合わせ193を選択し(S120)、試験対象プログラム191の処理ステップを一つ実行する(S130)。
命令実行部121は、試験対象プログラム191が終了したか否かを判定する(S131)。
試験対象プログラム191が終了していない場合(S131「NO」)、命令実行部121は実行した処理ステップが分岐命令ステップであるか否かを判定する(S132)。
実行した処理ステップが分岐命令ステップでない場合(S132「NO」)、S130に戻る。
実行した処理ステップが分岐命令ステップである場合(S132「YES」)、命令実行部121は実行した分岐命令ステップが実行中止条件を満たすか否かを分岐命令実行結果テーブル194に基づいて判定する(S133)。
実行した分岐命令ステップの判定結果が実行中止条件を満たさない場合(S133「NO」)、分岐命令実行結果記録部130は分岐命令実行結果テーブル194に分岐命令ステップの実行結果を設定する(S140)。その後、S130に戻る。
実行した分岐命令ステップの判定結果が実行中止条件を満たす場合(S133「YES」)、S134に進む。
試験対象プログラム191が終了した場合(S131「YES」)、経路別実行結果記録部150は経路別実行結果テーブル195を設定し(S150)、網羅結果記録部140は分岐命令実行結果テーブル194の経路網羅フラグを更新する(S160)。その後、S134に進む。
命令実行部121は未選択の入力変数値組み合わせ193が残っているか否かを判定する(S134)。
未選択の入力変数値組み合わせ193が残っている場合(S134「YES」)、S120に戻る。
未選択の入力変数値組み合わせ193が残っていない場合(S134「NO」)、試験結果出力部160は経路別実行結果テーブル195と分岐命令実行結果テーブル194とに基づいて試験結果を出力する(S170)。
次に、プログラム試験方法の詳細について説明する。
S110において、入力変数値組み合わせ生成部110は、入力変数値データ192を入力し、入力した入力変数値データ192に基づいて複数の入力変数値組み合わせ193を生成する。
図6は、実施の形態1における入力変数値データ192と入力変数値組み合わせ193とを示す図である。
入力変数値組み合わせ生成処理(図5のS110)について、図6に基づいて説明する。
利用者は、キーボードやマウスなどの入力装置を用いて試験対象プログラム191の入力変数「x」「y」「z」毎に入力変数に設定する1つ以上の初期値を入力変数値としてプログラム試験装置100に入力する。
入力変数値組み合わせ生成部110は、入力装置から入力変数毎に入力変数値を入力し、入力変数と入力変数値とを対応付けて入力変数値データ192を生成し、生成した入力変数値データ192を試験装置記憶部190に記憶する。
例えば、入力変数「x」の入力変数値として2つの値「0」「1」が入力された場合、入力変数値組み合わせ生成部110は、入力変数「x」と入力変数値「0」「1」とを対応付けて入力変数値データ192に設定する。
入力変数値組み合わせ生成部110は、入力変数値データ192に基づいて各入力変数の入力変数値を1つずつ組み合わせて入力変数値組み合わせ193を生成し、生成した入力変数値組み合わせ193を試験装置記憶部190に記憶する。
例えば、入力変数値データ192に入力変数「x」の2つの入力変数値「0」「1」と、入力変数「y」の3つの入力変数値「−10」「0」「10」と、入力変数「z」の3つの入力変数値「a」「b」「c」とが設定されている場合、入力変数値組み合わせ生成部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に含まれない判定結果の組み合わせを対応付けたものである。例えば、ステップ番号「5」「10」「18」「32」「40」の組み合わせに対して判定結果「真」「真」「真」「真」「偽」の組み合わせは、実行済みの経路網羅情報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が実行され、判定結果が「真」であった場合、図9(1)に示すように分岐命令実行結果「5,真,偽」が設定される(図5のS140)。
次に、処理ステップbの実行後に分岐命令ステップBが実行され、判定結果が「真」であった場合、図9(2)に示すように分岐命令実行結果「10,真,偽」が設定される(図5のS140)。
そして、処理ステップcが実行され試験対象プログラム191が終了した場合、図9(3)に示すように分岐命令ステップBの経路網羅フラグを「偽」から「真」に更新する(図7のS161)。
次の入力変数値組み合わせ193を用いて試験対象プログラム191を実行した場合、分岐命令実行結果テーブル194は以下のように設定または更新される。
処理ステップaの実行後に分岐命令ステップAが実行され、判定結果が「真」であった場合、図10(4)に示すように分岐命令実行結果「5,真,偽」が設定される(図5のS140)。
次に、処理ステップbの実行後に分岐命令ステップBが実行され、判定結果が「偽」であった場合、図10(5)に示すように分岐命令実行結果「10,偽,偽」が設定される(図5のS140)。
そして、処理ステップdが実行され試験対象プログラム191が終了した場合、図10(6)に示すように分岐命令ステップBの経路網羅フラグを「偽」から「真」に更新する(図7のS161)。
図11(6)において、以下、実行経路2の最後の分岐命令ステップ(ステップ番号:10)を「最終分岐ステップ」という。
実行経路1は実行経路2と最終分岐ステップまでのステップ番号「5」「10」が一致し、実行経路2と最終分岐ステップの一つ前の分岐命令ステップ(ステップ番号:5)までの判定結果「真」が一致する(図7のS162)。
また、最終分岐ステップのステップ番号「10」に対応する実行経路1の経路網羅フラグは「真」である(図7のS164)。
さらに、最終分岐ステップのステップ番号「10」に対応する実行経路1の判定結果は「真」であり、実行経路2の判定結果は「偽」である。
したがって、最終分岐ステップの全ての判定結果が実行済みである(図7のS166)。
このため、図11(7)に示すように実行経路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は、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)などの記憶媒体を読み書きする装置である。
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置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は、各分岐の真、偽それぞれの結果に対して異なる分岐命令実行結果を系統的に記録し、記録した各分岐命令実行結果について、各分岐命令以降の実行経路を網羅したか判定する。
これにより、新たな変数値の組み合わせによる試験対象プログラムの実行時に各分岐命令実行結果以降の実行経路が既に実行済みであるか否かを判定することが可能となる。
そして、分岐命令実行結果以降の実行経路が既に実行済みであると判定した場合には、その時点で試験対象プログラムの実行を中止して次の変数値の組み合わせに移行する。
これにより、同一の実行経路を試験対象プログラムの終了まで実行することを避けることが可能となる。
また、実行が完了した実行経路の実行結果と、実行済みの実行経路および未実行の実行経路を出力することによって、利用者に実行経路の網羅度を含む試験結果を提供することができる。
100 プログラム試験装置、110 入力変数値組み合わせ生成部、120 プログラム実行部、121 命令実行部、122 エラー検出部、130 分岐命令実行結果記録部、140 網羅結果記録部、150 経路別実行結果記録部、160 試験結果出力部、161 経路別実行結果出力部、162 経路網羅情報出力部、190 試験装置記憶部、191 試験対象プログラム、192 入力変数値データ、193 入力変数値組み合わせ、194 分岐命令実行結果テーブル、195 経路別実行結果テーブル、196 経路別実行結果情報、197 経路網羅情報、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、911 ディスプレイ装置、912 キーボード、913 マウス、914 ドライブ装置、920 磁気ディスク装置、921 OS、922 プログラム群、923 ファイル群。

Claims (6)

  1. 所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、
    前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部と、
    前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行部と、
    前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成部と、
    前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成部と、
    前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力部とを備え、
    前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する
    ことを特徴とするプログラム試験装置。
  2. 前記実行中止条件データ生成部は、
    前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に最後に実行された分岐命令ステップを経路網羅ステップとして判定し、
    前記経路網羅ステップを実行するまでに実行された各分岐命令ステップのステップ番号と分岐条件の判定結果とを他の分岐結果データと比較し、
    前記各分岐命令ステップのステップ番号と分岐条件の判定結果とが他の分岐結果データと一致する場合、前記各分岐命令ステップのうち最後に実行された分岐命令ステップを経路網羅ステップとして判定する
    ことを特徴とする請求項1記載のプログラム試験装置。
  3. 前記試験結果データ出力部は、前記分岐結果データ生成部により生成された分岐結果データに基づいて実行していない実行経路を未実行経路として判定し、判定した未実行経路を示すデータを前記試験結果データとして生成し、生成した試験結果データを出力する
    ことを特徴とする請求項1または請求項2記載のプログラム試験装置。
  4. 前記試験結果データ出力部は、入力データ毎に入力データと前記試験対象プログラムの実行結果とを対応付けて示すデータを前記試験結果データとして生成し、生成した試験結果データを出力する
    ことを特徴とする請求項1から請求項3いずれかに記載のプログラム試験装置。
  5. 所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部とを備えるプログラム試験装置のプログラム試験方法において、
    プログラム実行部が、前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行し、
    分岐結果データ生成部が、前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行部が前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成し、
    実行中止条件データ生成部が、前記プログラム実行部が前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成部により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成し、
    試験結果データ出力部が、前記プログラム実行部が全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力し、
    前記プログラム実行部は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成部によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する
    ことを特徴とするプログラム試験装置のプログラム試験方法。
  6. 所定の処理ステップへ分岐する分岐条件を指定した複数の分岐命令ステップを含み、分岐先で実行される複数の処理ステップを実行経路として含む試験対象プログラムを記憶する試験対象プログラム記憶部と、前記試験対象プログラムに入力する複数の入力データを記憶する入力データ記憶部とを備えるプログラム試験装置を動作させるプログラム試験プログラムにおいて、
    前記入力データ記憶部に記憶された入力データ毎に、入力データを用いて前記試験対象プログラムを実行するプログラム実行処理と、
    前記入力データ記憶部に記憶された入力データ毎に、前記プログラム実行処理で前記試験対象プログラムに含まれる少なくともいずれかの分岐命令ステップを実行した場合、実行した分岐命令ステップのステップ番号と分岐条件の判定結果とを分岐命令ステップの実行順に示す分岐結果データを生成する分岐結果データ生成処理と、
    前記プログラム実行処理で前記試験対象プログラムの実行を終了する毎に、前記分岐結果データ生成処理により生成された分岐結果データに基づいて複数の分岐命令ステップのうち分岐先の全ての実行経路が実行済みである分岐命令ステップを経路網羅ステップとして判定し、判定した経路網羅ステップのステップ番号と分岐条件の判定結果とを前記試験対象プログラムの実行を中止する実行中止条件として示す実行中止条件データを生成する実行中止条件データ生成処理と、
    前記プログラム実行処理で全ての入力データを用いて前記試験対象プログラムの実行を終了した場合、所定の試験結果データを生成し、生成した試験結果データを出力する試験結果データ出力処理とを前記プログラム試験装置に実行させ、
    前記プログラム実行処理は、前記試験対象プログラムに含まれる分岐命令ステップを実行した場合、前記実行中止条件データ生成処理によって生成された実行中止条件データに基づいて実行した分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件データに示される実行中止条件を満たすか否かを判定し、前記分岐命令ステップのステップ番号と分岐条件の判定結果とが前記実行中止条件を満たす場合、前記分岐命令ステップの分岐先の実行経路を実行せずに前記試験対象プログラムの実行を終了する
    ことを特徴とするプログラム試験プログラム。
JP2011038048A 2011-02-24 2011-02-24 プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム Expired - Fee Related JP5595304B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 日本電気株式会社 検査時間制御装置、方法、およびプログラム

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