JP3202708B2 - ソフトウェアのエラー処理テストシステム、テスト方法及びテストプログラムの記録媒体 - Google Patents
ソフトウェアのエラー処理テストシステム、テスト方法及びテストプログラムの記録媒体Info
- Publication number
- JP3202708B2 JP3202708B2 JP35471498A JP35471498A JP3202708B2 JP 3202708 B2 JP3202708 B2 JP 3202708B2 JP 35471498 A JP35471498 A JP 35471498A JP 35471498 A JP35471498 A JP 35471498A JP 3202708 B2 JP3202708 B2 JP 3202708B2
- Authority
- JP
- Japan
- Prior art keywords
- call
- error
- test
- target program
- program
- 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
- 238000012360 testing method Methods 0.000 title claims description 133
- 238000010998 test method Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 99
- 230000015654 memory Effects 0.000 description 26
- 238000012790 confirmation Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- BBRBUTFBTUFFBU-LHACABTQSA-N Ornoprostil Chemical compound CCCC[C@H](C)C[C@H](O)\C=C\[C@H]1[C@H](O)CC(=O)[C@@H]1CC(=O)CCCCC(=O)OC BBRBUTFBTUFFBU-LHACABTQSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Description
【0001】
【発明の属する技術分野】本発明はソフトウェアのテス
トに関し、特にエラー処理テストの自動化システム、方
法に関するものである。
トに関し、特にエラー処理テストの自動化システム、方
法に関するものである。
【0002】
【従来の技術】従来より、プログラムのデバッグ目的で
その機能を効率的にテストする方法は提案されており、
その内でテスト対象プログラムが呼び出す外部関数につ
いて提示されたものに例えば特開平8−249210号
公報がある。
その機能を効率的にテストする方法は提案されており、
その内でテスト対象プログラムが呼び出す外部関数につ
いて提示されたものに例えば特開平8−249210号
公報がある。
【0003】この外部関数に関する従来例は、テスト対
象プログラムが適用されるファクシミリ装置等の実機を
使用することなく汎用ワークステーションをテスト装置
とし対象プログラムのデバッグを半自動的に行えるテス
ト装置を提供するものであるが、テスト対象プログラム
が呼び出す外部関数について、それを疑似する関数をテ
スト装置に設け、テスト時対象プログラムが外部関数を
呼出すと対応する疑似関数が起動され、初回はオペレー
タにその関数の引数を提示し応答データのキーボード入
力を要求し、入力されたデータを対象プログラムに返す
と共に固有のファイル名をつけて、引数と一緒にテスト
データとして保存しておき2回目以降のテストで同様に
疑似関数が起動された場合、自動的に該ファイルデータ
を対象プログラムに返す例が示されている。
象プログラムが適用されるファクシミリ装置等の実機を
使用することなく汎用ワークステーションをテスト装置
とし対象プログラムのデバッグを半自動的に行えるテス
ト装置を提供するものであるが、テスト対象プログラム
が呼び出す外部関数について、それを疑似する関数をテ
スト装置に設け、テスト時対象プログラムが外部関数を
呼出すと対応する疑似関数が起動され、初回はオペレー
タにその関数の引数を提示し応答データのキーボード入
力を要求し、入力されたデータを対象プログラムに返す
と共に固有のファイル名をつけて、引数と一緒にテスト
データとして保存しておき2回目以降のテストで同様に
疑似関数が起動された場合、自動的に該ファイルデータ
を対象プログラムに返す例が示されている。
【0004】しかしこの従来例では疑似関数は、その前
のステップの初期設定用疑似関数が応答したデータに対
応する正常な期待値を返しており、意図して異常値等を
返しその後の対象プログラムのエラー処理をテストする
ものではない。
のステップの初期設定用疑似関数が応答したデータに対
応する正常な期待値を返しており、意図して異常値等を
返しその後の対象プログラムのエラー処理をテストする
ものではない。
【0005】従って、従来特別なハードウェアでの疑似
障害手段を設けることなくプログラムのエラー処理の妥
当性をソフトウェア的に自動テストする方法はなく、こ
れをテストするには、机上での確認に加え、オペレータ
がデバッガ等を使用して擬似的にエラー状態に変更する
などの操作を繰り返し行い、実際にそのエラー処理を評
価確認していた。
障害手段を設けることなくプログラムのエラー処理の妥
当性をソフトウェア的に自動テストする方法はなく、こ
れをテストするには、机上での確認に加え、オペレータ
がデバッガ等を使用して擬似的にエラー状態に変更する
などの操作を繰り返し行い、実際にそのエラー処理を評
価確認していた。
【0006】
【発明が解決しようとする課題】上述の従来技術には、
次のような問題点があった。第1の問題点は、外部関数
を呼び出す回数が増加すると、テストに必要な項目はそ
の呼び出し回数の二乗に比例して増加し、合わせてテス
ト工数も増大するということである。その理由は、n回
目にあたる外部関数呼び出しのエラー処理をテストする
場合、それまでの(n−1)回の外部関数呼び出しとその
応答結果が正常かを確認する必要があり、それらすべて
を合計すると、ほぼ(1+2+・・+n)即ちn(n+
1)/2に相当する確認回数となるためである。
次のような問題点があった。第1の問題点は、外部関数
を呼び出す回数が増加すると、テストに必要な項目はそ
の呼び出し回数の二乗に比例して増加し、合わせてテス
ト工数も増大するということである。その理由は、n回
目にあたる外部関数呼び出しのエラー処理をテストする
場合、それまでの(n−1)回の外部関数呼び出しとその
応答結果が正常かを確認する必要があり、それらすべて
を合計すると、ほぼ(1+2+・・+n)即ちn(n+
1)/2に相当する確認回数となるためである。
【0007】第2の問題点は、テスト項目を反復して実
施するためエラー処理の確認漏れやテスト時に作業ミス
が発生しやすいということである。
施するためエラー処理の確認漏れやテスト時に作業ミス
が発生しやすいということである。
【0008】
【課題を解決するための手段】本発明のソフトウェアの
エラー処理テストシステム(テスト方法)は、プログラ
ムによるアプリケーションインタフェース部呼び出しの
内、呼び出し元が指定のテスト対象プログラムであれば
その呼び出し状況を取得するための設定を施した後、前
記テスト対象プログラムを実行し正常時の前記呼び出し
状況を記憶装置に記憶する呼出状況取得手段(ステッ
プ)と、任意の一つの呼び出しについて、呼び出し元が
指定のテスト対象プログラムであればアプリケーション
インタフェース部にてエラーとなるための細工をするエ
ラー設定手段(ステップ)と、該設定後に実行されるテ
スト対象プログラムのエラー処理内容について判定する
判定手段(ステップ)と前記呼出状況取得手段(ステッ
プ)に実行指示後、前記記憶された正常時呼び出し状況
内の呼び出しの一つを実行順に選択し、その都度選択し
た呼び出しについてのエラー設定を前記エラー設定手段
(ステップ)に行わせ、テスト対象プログラムを実行
し、その際に取得されるアプリケーションインタフェー
ス部の呼び出し状況により前記判定手段(ステップ)に
エラー処理判定を行わせ判定結果を出力する主実行手段
(ステップ)とを備えプログラムのエラー処理テストを
自動実行する。
エラー処理テストシステム(テスト方法)は、プログラ
ムによるアプリケーションインタフェース部呼び出しの
内、呼び出し元が指定のテスト対象プログラムであれば
その呼び出し状況を取得するための設定を施した後、前
記テスト対象プログラムを実行し正常時の前記呼び出し
状況を記憶装置に記憶する呼出状況取得手段(ステッ
プ)と、任意の一つの呼び出しについて、呼び出し元が
指定のテスト対象プログラムであればアプリケーション
インタフェース部にてエラーとなるための細工をするエ
ラー設定手段(ステップ)と、該設定後に実行されるテ
スト対象プログラムのエラー処理内容について判定する
判定手段(ステップ)と前記呼出状況取得手段(ステッ
プ)に実行指示後、前記記憶された正常時呼び出し状況
内の呼び出しの一つを実行順に選択し、その都度選択し
た呼び出しについてのエラー設定を前記エラー設定手段
(ステップ)に行わせ、テスト対象プログラムを実行
し、その際に取得されるアプリケーションインタフェー
ス部の呼び出し状況により前記判定手段(ステップ)に
エラー処理判定を行わせ判定結果を出力する主実行手段
(ステップ)とを備えプログラムのエラー処理テストを
自動実行する。
【0009】又、前記主実行手段(ステップ)が、前記
呼出状況取得、該呼出状況の個々の呼出しについてのエ
ラー設定状態での対象プログラム実行に先立ち、テスト
対象プログラムが複数インスタンスで実行される際の共
有リソースを確保した状態のインスタンスとして記憶装
置に常駐させる手段(ステップ)を有し、前記判定手段
(ステップ)は前記エラー設定状態での対象プログラム
実行による前記インスタンスへの影響についても判定す
ることができる。
呼出状況取得、該呼出状況の個々の呼出しについてのエ
ラー設定状態での対象プログラム実行に先立ち、テスト
対象プログラムが複数インスタンスで実行される際の共
有リソースを確保した状態のインスタンスとして記憶装
置に常駐させる手段(ステップ)を有し、前記判定手段
(ステップ)は前記エラー設定状態での対象プログラム
実行による前記インスタンスへの影響についても判定す
ることができる。
【0010】又、上記判定手段(ステップ)は、呼出し
の種類毎にテスト項目との関連を示し、対象プログラム
のエラー処理で実行する呼び出しの判定手段(ステッ
プ)を集約した、呼び出しテーブル情報を備える。
の種類毎にテスト項目との関連を示し、対象プログラム
のエラー処理で実行する呼び出しの判定手段(ステッ
プ)を集約した、呼び出しテーブル情報を備える。
【0011】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。本発明のソフトウェ
アのエラー処理のテスト自動化システムの一実施の形態
は、図1に示す様に、プログラム制御により動作するデ
ータ処理装置1と、キーボード等の入力装置2と、情報
を記憶する記憶装置3と、フロッピー(登録商標)ディ
スクやハードディスク等の外部記憶装置4と、ディスプ
レイや印刷装置等の出力装置5とから構成されている。
オペレーティングシステム11はアプリケーションイン
タフェース部111を有し、テスト実行確認部12は主
実行手段121、呼出状況取得手段122、エラー設定
手段123、判定手段124を有する。
て図面を参照して詳細に説明する。本発明のソフトウェ
アのエラー処理のテスト自動化システムの一実施の形態
は、図1に示す様に、プログラム制御により動作するデ
ータ処理装置1と、キーボード等の入力装置2と、情報
を記憶する記憶装置3と、フロッピー(登録商標)ディ
スクやハードディスク等の外部記憶装置4と、ディスプ
レイや印刷装置等の出力装置5とから構成されている。
オペレーティングシステム11はアプリケーションイン
タフェース部111を有し、テスト実行確認部12は主
実行手段121、呼出状況取得手段122、エラー設定
手段123、判定手段124を有する。
【0012】尚、オペレーティングシステム11とテス
ト実行確認部12はデータ処理装置1により実行される
プログラムであり、データ処理装置1を立ち上げると記
憶装置3に展開される。テスト対象プログラムも実行時
には外部記憶装置4の実行形式ファイルが同様に記憶装
置3に展開されデータ処理装置1により実行される。呼
出状況記憶部31、32これらのベースアドレス33、
34書込ポインタ35、関数アドレス38、関数テーブ
ル125、実行指示カウンタ36、対象ポインタ37は
テスト実行確認部12により定義される記憶装置3のエ
リアである。又記録媒体6はテスト実行確認部12、関
数アドレス38、関数テーブル125を含む記録媒体で
あり上記立ち上げ時外部記憶装置4からデータ処理装置
1により記憶装置3へロードされる。
ト実行確認部12はデータ処理装置1により実行される
プログラムであり、データ処理装置1を立ち上げると記
憶装置3に展開される。テスト対象プログラムも実行時
には外部記憶装置4の実行形式ファイルが同様に記憶装
置3に展開されデータ処理装置1により実行される。呼
出状況記憶部31、32これらのベースアドレス33、
34書込ポインタ35、関数アドレス38、関数テーブ
ル125、実行指示カウンタ36、対象ポインタ37は
テスト実行確認部12により定義される記憶装置3のエ
リアである。又記録媒体6はテスト実行確認部12、関
数アドレス38、関数テーブル125を含む記録媒体で
あり上記立ち上げ時外部記憶装置4からデータ処理装置
1により記憶装置3へロードされる。
【0013】これらの手段はそれぞれ概略次の様に動作
する。主実行手段121は、テスト開始指示を受けると
呼出状況取得手段122を起動する。呼出状況取得手段
122は外部記憶装置4に格納されているテスト対象プ
ログラム41の実行をオペレーティングシステム11に
指示し、テスト対象プログラム41がアプリケーション
インタフェース部111を呼び出す状況を監視して、こ
れを呼出状況記憶部31に記憶する。
する。主実行手段121は、テスト開始指示を受けると
呼出状況取得手段122を起動する。呼出状況取得手段
122は外部記憶装置4に格納されているテスト対象プ
ログラム41の実行をオペレーティングシステム11に
指示し、テスト対象プログラム41がアプリケーション
インタフェース部111を呼び出す状況を監視して、こ
れを呼出状況記憶部31に記憶する。
【0014】主実行手段121は、呼出状況取得手段1
22にて記憶した情報を呼出状況記憶部31から取り出
し、テスト対象プログラム41が1回目に実行する呼出
についてアプリケーションインタフェース部111にて
エラーとなる細工をエラー設定手段123に指示後、テ
スト対象プログラム41の実行をオペレーティングシス
テム11に指示し、その実行結果、正しくテスト対象プ
ログラム41がエラー終了したかどうかを判定手段12
4に判定させ結果を出力装置5に出力する。
22にて記憶した情報を呼出状況記憶部31から取り出
し、テスト対象プログラム41が1回目に実行する呼出
についてアプリケーションインタフェース部111にて
エラーとなる細工をエラー設定手段123に指示後、テ
スト対象プログラム41の実行をオペレーティングシス
テム11に指示し、その実行結果、正しくテスト対象プ
ログラム41がエラー終了したかどうかを判定手段12
4に判定させ結果を出力装置5に出力する。
【0015】主実行手段121は、呼出状況内のテスト
対象プログラム41が実行した2回目の呼出しをアプリ
ケーションインタフェース部111にてエラーとなる細
工をエラー設定手段123に指示後、テスト対象プログ
ラム41の実行をオペレーティングシステム11に指示
し、その実行結果、1回目の呼び出しで確保したリソー
スを解放したかどうか、および正しくテスト対象プログ
ラム41がエラー終了したかどうかを判定手段124に
判定させ結果を出力装置5に出力する。主実行手段12
1は、呼出し状況内の、テスト対象プログラム41が実
行したn回目の呼出しがアプリケーションインタフェー
ス部111にてエラーとなる細工をエラー設定手段12
3に指示後、テスト対象プログラム41の実行をオペレ
ーティングシステム11に指示し、その実行結果、確保
したリソースを解放したかどうか、および正しくテスト
対象プログラム41がエラー終了したかどうかを出力装
置5のプリンタに出力する。
対象プログラム41が実行した2回目の呼出しをアプリ
ケーションインタフェース部111にてエラーとなる細
工をエラー設定手段123に指示後、テスト対象プログ
ラム41の実行をオペレーティングシステム11に指示
し、その実行結果、1回目の呼び出しで確保したリソー
スを解放したかどうか、および正しくテスト対象プログ
ラム41がエラー終了したかどうかを判定手段124に
判定させ結果を出力装置5に出力する。主実行手段12
1は、呼出し状況内の、テスト対象プログラム41が実
行したn回目の呼出しがアプリケーションインタフェー
ス部111にてエラーとなる細工をエラー設定手段12
3に指示後、テスト対象プログラム41の実行をオペレ
ーティングシステム11に指示し、その実行結果、確保
したリソースを解放したかどうか、および正しくテスト
対象プログラム41がエラー終了したかどうかを出力装
置5のプリンタに出力する。
【0016】次に、本発明の実施の形態の動作について
図面を参照して説明する。本実施の形態では、図1に示
すテスト対象プログラム41は指定された入力ファイル
42のキャラクタデータを、キャラクタドライバ44を
使用して所定のキャラクタに変換し、指定された出力フ
ァイル45に出力するものとする。又この処理の為アプ
リケーションインタフェース部111に、用意された種
々の関数を呼び出す。
図面を参照して説明する。本実施の形態では、図1に示
すテスト対象プログラム41は指定された入力ファイル
42のキャラクタデータを、キャラクタドライバ44を
使用して所定のキャラクタに変換し、指定された出力フ
ァイル45に出力するものとする。又この処理の為アプ
リケーションインタフェース部111に、用意された種
々の関数を呼び出す。
【0017】また、使用される関数は図2に示す様に、
入力装置2(キーボード及びマウス)及び標準出力装置
5(ディスプレイ)のアサインを要求するalloca
teresource、必要ブロック数を引数として記
憶装置3リソースのアサインを要求するallocat
e memory、ドライバのパス名・ファイル名のポ
インタを引数としてこれのシステムへの組込みを要求す
るregisterdriver、アクセス制御コード
(read,write)、パス名・ファイル名のポイ
ンタを引数としてファイルのオープンを要求するope
n file、バッファ先頭アドレス、読込みバイト
数、ファイルハンドルを引数としてファイルの読み出し
を要求するread file、バッファ先頭アドレ
ス、書込みバイト数、ファイルハンドルを引数としてフ
ァイルへの書込みを要求するwrite file、出
力バッファ先頭アドレスを引数として標準出力装置5へ
の表示、を要求するoutput txt、ファイルハ
ンドルを引数としてファイルのクローズを要求するcl
ose file、ドライバのパス名・ファイル名のポ
インタを引数としてこれのシステムからの削除を要求す
るdelete driver、ブロック番号ポインタ
を引数として記憶装置3リソースの解放を指示するre
lease memory、標準入出力の解放を指示す
るrelease resource、自分が起動され
た時の起動元のコードセグメントをコードスタックにセ
ットし、プログラムの終了を報告するterminat
eである。
入力装置2(キーボード及びマウス)及び標準出力装置
5(ディスプレイ)のアサインを要求するalloca
teresource、必要ブロック数を引数として記
憶装置3リソースのアサインを要求するallocat
e memory、ドライバのパス名・ファイル名のポ
インタを引数としてこれのシステムへの組込みを要求す
るregisterdriver、アクセス制御コード
(read,write)、パス名・ファイル名のポイ
ンタを引数としてファイルのオープンを要求するope
n file、バッファ先頭アドレス、読込みバイト
数、ファイルハンドルを引数としてファイルの読み出し
を要求するread file、バッファ先頭アドレ
ス、書込みバイト数、ファイルハンドルを引数としてフ
ァイルへの書込みを要求するwrite file、出
力バッファ先頭アドレスを引数として標準出力装置5へ
の表示、を要求するoutput txt、ファイルハ
ンドルを引数としてファイルのクローズを要求するcl
ose file、ドライバのパス名・ファイル名のポ
インタを引数としてこれのシステムからの削除を要求す
るdelete driver、ブロック番号ポインタ
を引数として記憶装置3リソースの解放を指示するre
lease memory、標準入出力の解放を指示す
るrelease resource、自分が起動され
た時の起動元のコードセグメントをコードスタックにセ
ットし、プログラムの終了を報告するterminat
eである。
【0018】図3に示す様にこれらの関数はアプリケー
ションインタフェース部111に配置されており、各関
数は先頭が1Kバイト程度の境界になるよう配置されて
いるので各関数の末尾の後ろには数10バイト程度は空
きエリアがある。又各関数の先頭、末尾アドレスはオペ
レーティングシステムの説明書等により事前に分かって
おりており関数アドレス38として記憶装置3に用意出
来る。
ションインタフェース部111に配置されており、各関
数は先頭が1Kバイト程度の境界になるよう配置されて
いるので各関数の末尾の後ろには数10バイト程度は空
きエリアがある。又各関数の先頭、末尾アドレスはオペ
レーティングシステムの説明書等により事前に分かって
おりており関数アドレス38として記憶装置3に用意出
来る。
【0019】次に、図1のブロック図、図4と図5のフ
ローチャートを参照して本実施の形態の全体動作につい
て詳細に説明する。
ローチャートを参照して本実施の形態の全体動作につい
て詳細に説明する。
【0020】まず、入力装置2からテスト実行確認部1
2に対しテスト対象プログラム41とこのプログラムが
使用する入力ファイル42、出力ファイル45のパス名
・ファイル名が指定され、テスト対象プログラム41の
エラー処理確認の指示が与えられる(図4ステップA
1)。
2に対しテスト対象プログラム41とこのプログラムが
使用する入力ファイル42、出力ファイル45のパス名
・ファイル名が指定され、テスト対象プログラム41の
エラー処理確認の指示が与えられる(図4ステップA
1)。
【0021】主実行手段121は、呼び出し状況の格納
アドレスとしてベースアドレス33及び34を共に呼出
状況記憶部31を指す値に設定し、書込ポインタ35を
「0」クリア後、テスト対象プログラム41に対する実
行指示回数を知るため呼出状況取得手段122を起動す
る(図4ステップA2)。
アドレスとしてベースアドレス33及び34を共に呼出
状況記憶部31を指す値に設定し、書込ポインタ35を
「0」クリア後、テスト対象プログラム41に対する実
行指示回数を知るため呼出状況取得手段122を起動す
る(図4ステップA2)。
【0022】呼出状況取得手段122は先ずテスト対象
プログラム41によるアプリケーションインタフェース
部111の関数呼出しをモニタ出来る様に記憶装置3上
のこれら関数プログラムのエントリ部分に、テスト対象
プログラム41から呼ばれた場合自身の関数名(コー
ド)、引数パラメータを記憶装置3上の呼出状況記憶部
31に書込むステップを組込み(以下このようなプログ
ラムの一部書き換えをパッチと省略する)対象プログラ
ム41の実行を指示する(図4のステップA3)。
プログラム41によるアプリケーションインタフェース
部111の関数呼出しをモニタ出来る様に記憶装置3上
のこれら関数プログラムのエントリ部分に、テスト対象
プログラム41から呼ばれた場合自身の関数名(コー
ド)、引数パラメータを記憶装置3上の呼出状況記憶部
31に書込むステップを組込み(以下このようなプログ
ラムの一部書き換えをパッチと省略する)対象プログラ
ム41の実行を指示する(図4のステップA3)。
【0023】このステップA3を図6及び図7により具
体的に説明する。allocateresource関
数へのパッチを図7に示す。図6は本関数プログラムの
パッチ前の図でありエントリから受付処理の最初の命令
語、次命令語があり以下同処理の後続命令語群、リソー
ス使用状況チェック、使用可リソースの割当て、返値設
定処理等の命令語群が続き呼出元へのリターン命令で終
わっており以降数10バイト程度以上の空きエリアとな
っている。この状態の関数プログラムに対し図7の
(1)に示すようにエントリの最初の命令語をデータ処
理装置の汎用レジスタ3(GR3)にセーブ後、該エリ
アを上記空きエリアに分岐するブランチ命令に書換え、
空きエリアにはこの関数の呼出元が記憶装置の所定のエ
リアに設定した戻りセグメント番号をGR4にロードす
る命令、GR4のセグメント番号とテスト対象プログラ
ム41にアサインされるコードセグメント番号(命令語
の即値で指定)を比較する命令、比較の結果等しくなか
った(ゼロインジケータがセットされなかった)時に数
命令先に復元されたエントリの最初の命令に分岐させる
命令を順次書き込む。
体的に説明する。allocateresource関
数へのパッチを図7に示す。図6は本関数プログラムの
パッチ前の図でありエントリから受付処理の最初の命令
語、次命令語があり以下同処理の後続命令語群、リソー
ス使用状況チェック、使用可リソースの割当て、返値設
定処理等の命令語群が続き呼出元へのリターン命令で終
わっており以降数10バイト程度以上の空きエリアとな
っている。この状態の関数プログラムに対し図7の
(1)に示すようにエントリの最初の命令語をデータ処
理装置の汎用レジスタ3(GR3)にセーブ後、該エリ
アを上記空きエリアに分岐するブランチ命令に書換え、
空きエリアにはこの関数の呼出元が記憶装置の所定のエ
リアに設定した戻りセグメント番号をGR4にロードす
る命令、GR4のセグメント番号とテスト対象プログラ
ム41にアサインされるコードセグメント番号(命令語
の即値で指定)を比較する命令、比較の結果等しくなか
った(ゼロインジケータがセットされなかった)時に数
命令先に復元されたエントリの最初の命令に分岐させる
命令を順次書き込む。
【0024】次のエリアには呼出状況記憶部31のベー
スアドレス33をGR5に、該記憶部書込ポインタ35
をGR6にロードする命令、本関数名(コード「0
1」)、呼び出し元がGR0〜GR2にセットした本関
数への引数を、前記ロードしたベースアドレス33と書
込ポインタ35にて指定される呼出状況記憶部31の所
定エリアにストアする命令、GR6内のポインタをイン
クリメント後所定エリアにストアする命令を書き込む。
スアドレス33をGR5に、該記憶部書込ポインタ35
をGR6にロードする命令、本関数名(コード「0
1」)、呼び出し元がGR0〜GR2にセットした本関
数への引数を、前記ロードしたベースアドレス33と書
込ポインタ35にて指定される呼出状況記憶部31の所
定エリアにストアする命令、GR6内のポインタをイン
クリメント後所定エリアにストアする命令を書き込む。
【0025】更に後続エリアには後からエラー設定手段
123がエラー設定の命令を埋め込み易いように数個の
NOP命令を書き込み、その後にGR3にセーブした命
令(受付処理最初の命令語)を復元し(書込み)後続に
受付処理の次命令へのブランチ命令を書込み本関数への
パッチを終了する。
123がエラー設定の命令を埋め込み易いように数個の
NOP命令を書き込み、その後にGR3にセーブした命
令(受付処理最初の命令語)を復元し(書込み)後続に
受付処理の次命令へのブランチ命令を書込み本関数への
パッチを終了する。
【0026】このパッチによりテスト対象プログラム4
1が本関数を呼び出すと本関数名と引数が呼出状況記憶
部31に書込まれ書込ポインタ35をインクリメント後
に本来の本関数処理にエントリされるようになる(エン
トリアドレス→→→→。)テスト対象プログラ
ム41以外例えば主実行手段121が本関数を呼び出し
た場合には比較命令の結果が不一致となり上記呼び出し
状況記憶の処理はバイパスし本来の本関数処理にエント
リされる(エントリアドレス→→→’→)。
1が本関数を呼び出すと本関数名と引数が呼出状況記憶
部31に書込まれ書込ポインタ35をインクリメント後
に本来の本関数処理にエントリされるようになる(エン
トリアドレス→→→→。)テスト対象プログラ
ム41以外例えば主実行手段121が本関数を呼び出し
た場合には比較命令の結果が不一致となり上記呼び出し
状況記憶の処理はバイパスし本来の本関数処理にエント
リされる(エントリアドレス→→→’→)。
【0027】呼出状況取得手段122は図2に示された
他の関数にも同様にパッチを施す。
他の関数にも同様にパッチを施す。
【0028】図4に戻り呼出状況取得手段122はオペ
レーティングシステム11を介しテスト対象プログラム
41の実行を指示する。テスト対象プログラム41はア
プリケーションインタフェース部111に対し前述のa
llocate resouce、allocate
memory、専用のキャラクタドライバ44の組込み
のregister driver、入力ファイル42
のfile open、出力ファイル45のfile
open、入力ファイル42のデータ読出しの為のre
ad file、変換後データを出力ファイル45へ書
込むwritefile、処理が正常にされたことを画
面表示するout text、入力ファイル42のco
lse file、出力ファイル45のcolse f
ileキャラクタ系ドライバをシステムから外すdel
ete driver、メモリリソースを解放するre
lease memory、標準入出力を解放するre
lease resource関数呼び出しを順次行
い、terminate関数に移行しプログラムを終了
する。従ってこれらの関数呼出状況が図10に示す様に
呼出状況記憶部31に取得されることになる。
レーティングシステム11を介しテスト対象プログラム
41の実行を指示する。テスト対象プログラム41はア
プリケーションインタフェース部111に対し前述のa
llocate resouce、allocate
memory、専用のキャラクタドライバ44の組込み
のregister driver、入力ファイル42
のfile open、出力ファイル45のfile
open、入力ファイル42のデータ読出しの為のre
ad file、変換後データを出力ファイル45へ書
込むwritefile、処理が正常にされたことを画
面表示するout text、入力ファイル42のco
lse file、出力ファイル45のcolse f
ileキャラクタ系ドライバをシステムから外すdel
ete driver、メモリリソースを解放するre
lease memory、標準入出力を解放するre
lease resource関数呼び出しを順次行
い、terminate関数に移行しプログラムを終了
する。従ってこれらの関数呼出状況が図10に示す様に
呼出状況記憶部31に取得されることになる。
【0029】即ち該記憶部内相対アドレス0にはテスト
対象プログラム41が最初に呼出したallocate
resourceが、相対アドレス1には2番目に呼
出したallocate memoryが引数のサイズ
値(S)と共に取得され、相対アドレス2には3番目に
呼出したキャラクタドライバ44組込みのためのreg
ister driverと引数(ドライバのパス名・
ファイル名のポインタP1)が取得され以下同様に14
番目のプログラム終了報告の呼出しまでが取得されてい
る。
対象プログラム41が最初に呼出したallocate
resourceが、相対アドレス1には2番目に呼
出したallocate memoryが引数のサイズ
値(S)と共に取得され、相対アドレス2には3番目に
呼出したキャラクタドライバ44組込みのためのreg
ister driverと引数(ドライバのパス名・
ファイル名のポインタP1)が取得され以下同様に14
番目のプログラム終了報告の呼出しまでが取得されてい
る。
【0030】次に、図4のステップA4では、主実行手
段121は呼出状況記憶部31より上記呼出状況を読出
し呼出の種類、ターミネイトを除く呼出回数(13回)
を把握し、テスト対象プログラム41の実行指示回数を
示す実行指示カウンタ36にこの回数(13回)をセッ
トし、前記呼出状況内のエラー設定対象呼出を順次指定
する対象ポインタ37を「0」クリアする。 又以後の
呼出状況については呼出状況記憶部32に記録されるよ
うにベースアドレス33を該記憶部32の先頭アドレス
に更新する。
段121は呼出状況記憶部31より上記呼出状況を読出
し呼出の種類、ターミネイトを除く呼出回数(13回)
を把握し、テスト対象プログラム41の実行指示回数を
示す実行指示カウンタ36にこの回数(13回)をセッ
トし、前記呼出状況内のエラー設定対象呼出を順次指定
する対象ポインタ37を「0」クリアする。 又以後の
呼出状況については呼出状況記憶部32に記録されるよ
うにベースアドレス33を該記憶部32の先頭アドレス
に更新する。
【0031】図4のステップA5では、書込ポインタ3
5も「0」クリア後、エラー設定手段123に対象ポイ
ンタ37が指す呼出(最初のallocate res
ource)がアプリケーションインタフェース部11
1でエラーとなる設定を指示する。
5も「0」クリア後、エラー設定手段123に対象ポイ
ンタ37が指す呼出(最初のallocate res
ource)がアプリケーションインタフェース部11
1でエラーとなる設定を指示する。
【0032】図4のステップA6では、エラー設定手段
123はこの関数の前記パッチエリアのNOP命令部分
を書込ポインタ35のインクリメント後の値が「1」の
条件で本来のこの関数にエントリすることなく呼出元に
エラーインジケータ(データ処理装置1内のキャリーフ
ラグ)をセットし応答を返す命令に書換える。
123はこの関数の前記パッチエリアのNOP命令部分
を書込ポインタ35のインクリメント後の値が「1」の
条件で本来のこの関数にエントリすることなく呼出元に
エラーインジケータ(データ処理装置1内のキャリーフ
ラグ)をセットし応答を返す命令に書換える。
【0033】具体的には図7の(2)に示す様にGR6
内のインクリメント後の書込ポインタ値と「1」との比
較命令、比較の結果が等しくなかった(0インジケータ
がセットされなかった)時は前記復元された受付処理の
最初の命令に分岐するブランチ命令を書込み、後続にブ
ランチしない場合のエラーインジケータをセットする命
令、返値(GR3、GR4)を典型的エラーコード例え
ば標準入出力装置は無いを示すコードに設定する命令、
そして呼び出し元へのリターン命令を書き込む。
内のインクリメント後の書込ポインタ値と「1」との比
較命令、比較の結果が等しくなかった(0インジケータ
がセットされなかった)時は前記復元された受付処理の
最初の命令に分岐するブランチ命令を書込み、後続にブ
ランチしない場合のエラーインジケータをセットする命
令、返値(GR3、GR4)を典型的エラーコード例え
ば標準入出力装置は無いを示すコードに設定する命令、
そして呼び出し元へのリターン命令を書き込む。
【0034】図4のステップA7では、主実行手段12
1はオペレーティングシステム11に対してテスト対象
プログラム41の実行を指示し、実行指示カウンタ36
を「12」にデクリメントする。
1はオペレーティングシステム11に対してテスト対象
プログラム41の実行を指示し、実行指示カウンタ36
を「12」にデクリメントする。
【0035】又、起動されたテスト対象プログラム41
はアプリケーションインタフェース部111に対し最初
のallocate resource関数を呼び出す
と前記パッチとエラー設定により本関数呼出が呼出状況
記憶部32に記憶され又本関数の本来の処理にエントリ
されることなくエラーインジケータがセットされ応答が
返される。ここでテスト対象プログラム41は正しくは
標準入出力リソースがアサインされないということで以
後の処理に進むことなくterminate関数に移行
しプログラムを終了する。本エラーに対する処理が正し
くなければ2回目以降のallocate memor
y等の呼び出しを実行してしまう。何れにしてもこれら
呼出は呼出状況記憶部32に記憶される。
はアプリケーションインタフェース部111に対し最初
のallocate resource関数を呼び出す
と前記パッチとエラー設定により本関数呼出が呼出状況
記憶部32に記憶され又本関数の本来の処理にエントリ
されることなくエラーインジケータがセットされ応答が
返される。ここでテスト対象プログラム41は正しくは
標準入出力リソースがアサインされないということで以
後の処理に進むことなくterminate関数に移行
しプログラムを終了する。本エラーに対する処理が正し
くなければ2回目以降のallocate memor
y等の呼び出しを実行してしまう。何れにしてもこれら
呼出は呼出状況記憶部32に記憶される。
【0036】次に図5のステップに移り、主実行手段1
21は、上記関数へのエラー設定をクリアするために設
定したエリアをNOP命令に書き戻す(図5のステップ
A8)。この後、判定手段124にテスト対象プログラ
ム41のエラー処理内容の判定を指示する(図5のステ
ップA11)。
21は、上記関数へのエラー設定をクリアするために設
定したエリアをNOP命令に書き戻す(図5のステップ
A8)。この後、判定手段124にテスト対象プログラ
ム41のエラー処理内容の判定を指示する(図5のステ
ップA11)。
【0037】判定手段124は呼出状況記憶部32内の
呼出し状況について対象ポインタ37が示す呼出(al
locate resource)がエラーとなったも
のとし以降の呼び出しがエラー処理として正しいか8項
目についてチェックした結果を所定の出力バッファエリ
アに書込む(図5のステップA12)。
呼出し状況について対象ポインタ37が示す呼出(al
locate resource)がエラーとなったも
のとし以降の呼び出しがエラー処理として正しいか8項
目についてチェックした結果を所定の出力バッファエリ
アに書込む(図5のステップA12)。
【0038】ステップA12の詳細を図8、図9を用い
て説明する。判定手段124は先ずエラーメッセージ出
力をチェックするが、メッセージ出力の為の標準出力リ
ソース、出力バッファ用メモリがエラー時点では未だ確
保されておらず項目1はOKがセットされる。次にエラ
ー後アクティブ呼出が抑止されているかチェックする。
て説明する。判定手段124は先ずエラーメッセージ出
力をチェックするが、メッセージ出力の為の標準出力リ
ソース、出力バッファ用メモリがエラー時点では未だ確
保されておらず項目1はOKがセットされる。次にエラ
ー後アクティブ呼出が抑止されているかチェックする。
【0039】図12の関数テーブル125の項目2欄に
「1」がセットされたアクティブ関数を抑止している/
否に従って項目2のOK/NGをセットする。エラー後
に呼出がterminateのみであればOKとなり、
allocate memory、register
driver、open file、・・等が呼出され
ていれば当然NGとなる。
「1」がセットされたアクティブ関数を抑止している/
否に従って項目2のOK/NGをセットする。エラー後
に呼出がterminateのみであればOKとなり、
allocate memory、register
driver、open file、・・等が呼出され
ていれば当然NGとなる。
【0040】以後項目3はエラー前にオープンしたファ
イルを使用後又はエラー処理でクローズしたかのチェッ
クで、項目4はエラー前にシステムに組込んだドライバ
を使用後又はエラー処理でシステムより外したかのチェ
ックで、項目5はエラー前に取得したメモリリソースを
使用後又はエラー処理でリリースしたかのチェックであ
る。図9に移り、項目6はエラー前に取得した標準入出
力リソースを使用後又はエラー処理でリリースしたかの
チェックであり最初のallocate resour
ceでエラーとした今回は正当に上記アクティブ関数が
抑止されていれば全てOKがセットされる。
イルを使用後又はエラー処理でクローズしたかのチェッ
クで、項目4はエラー前にシステムに組込んだドライバ
を使用後又はエラー処理でシステムより外したかのチェ
ックで、項目5はエラー前に取得したメモリリソースを
使用後又はエラー処理でリリースしたかのチェックであ
る。図9に移り、項目6はエラー前に取得した標準入出
力リソースを使用後又はエラー処理でリリースしたかの
チェックであり最初のallocate resour
ceでエラーとした今回は正当に上記アクティブ関数が
抑止されていれば全てOKがセットされる。
【0041】次にエラー後にterminate関数に
移行しプログラムが終了している/否に従って項目7に
OK/NGをセットする。項目8はエラー処理順のチェ
ックであり、エラー後複数の関数呼出しを行っている場
合、該複数呼び出しの任意の二つについて、エラーメッ
セージ出力とファイルクローズ及び専用ドライバ切離し
を第一グループとしメモリリソースリリースを第2グル
ープとし、標準入出力リソースリリースを第3グループ
とし、終了処理を最後とする順になっているかチェック
するものである。これも正当に上記アクティブ関数が抑
止されていれば項目8にもOKをセットする。
移行しプログラムが終了している/否に従って項目7に
OK/NGをセットする。項目8はエラー処理順のチェ
ックであり、エラー後複数の関数呼出しを行っている場
合、該複数呼び出しの任意の二つについて、エラーメッ
セージ出力とファイルクローズ及び専用ドライバ切離し
を第一グループとしメモリリソースリリースを第2グル
ープとし、標準入出力リソースリリースを第3グループ
とし、終了処理を最後とする順になっているかチェック
するものである。これも正当に上記アクティブ関数が抑
止されていれば項目8にもOKをセットする。
【0042】次に対象ポインタ値(0)、エラー設定し
た呼出名(allocate resource)、1
回目テスト結果をテスト実行確認部12の所定の出力バ
ッファに書込む。ここでテスト結果として上記項目1〜
項目8に全てOKがセットされていればエラー処理は妥
当で必要かつ十分である旨のメッセージとし、NGがセ
ットされていればNGの項目NOとNG概要メッセージ
とする。例えば項目2であれば「エラー後アクティブ呼
出しが抑止されてない」旨のコメントとする。判定手段
124は上記全てOKか否に応じて主実行手段121に
判定OK/NG終了を返す。
た呼出名(allocate resource)、1
回目テスト結果をテスト実行確認部12の所定の出力バ
ッファに書込む。ここでテスト結果として上記項目1〜
項目8に全てOKがセットされていればエラー処理は妥
当で必要かつ十分である旨のメッセージとし、NGがセ
ットされていればNGの項目NOとNG概要メッセージ
とする。例えば項目2であれば「エラー後アクティブ呼
出しが抑止されてない」旨のコメントとする。判定手段
124は上記全てOKか否に応じて主実行手段121に
判定OK/NG終了を返す。
【0043】図5のステップに戻り、主実行手段121
はこの出力バッファの内容をプリンタ出力しNG判定終
了の場合は呼出状況記憶部32の内容をこの時の書込ポ
インタ35の値−1までのデータを有効データとして上
記出力に引続き出力する。そして1回目の判定のOK/
NGを記憶装置の所定エリアに書込み1回目のテスト処
理を終了する(図5ステップA13)。
はこの出力バッファの内容をプリンタ出力しNG判定終
了の場合は呼出状況記憶部32の内容をこの時の書込ポ
インタ35の値−1までのデータを有効データとして上
記出力に引続き出力する。そして1回目の判定のOK/
NGを記憶装置の所定エリアに書込み1回目のテスト処
理を終了する(図5ステップA13)。
【0044】次に、主実行手段121は実行指示カウン
タ36の値をチェックする(図5ステップA14)。0
でないので対象ポインタ37を「1」にインクリメント
する(図5ステップA15)。そして書込ポインタ35
を「0」クリアし、エラー設定手段123に呼出状況記
憶部31内の2回目の呼び出し(allocateme
mory)のエラー設定を指示する(図4ステップA
5)。
タ36の値をチェックする(図5ステップA14)。0
でないので対象ポインタ37を「1」にインクリメント
する(図5ステップA15)。そして書込ポインタ35
を「0」クリアし、エラー設定手段123に呼出状況記
憶部31内の2回目の呼び出し(allocateme
mory)のエラー設定を指示する(図4ステップA
5)。
【0045】エラー設定手段123はallocate
memory関数に対し1回目(図4ステップA6、
A7及び図5ステップA8〜A11)と同様にNOP命
令部分の書き換えを行い対象プログラムの2回目の呼び
出しでエラーとなる細工をする。細工後、主実行手段1
21はオペレーティングシステム11にテスト対象プロ
グラム41の実行を指示し、実行指示カウンタ36を
「11」にデクリメントし、2回目のエラー設定をクリ
ア後、判定手段124に2回目の呼び出しがエラーとな
った後の処理内容について判定を指示する。
memory関数に対し1回目(図4ステップA6、
A7及び図5ステップA8〜A11)と同様にNOP命
令部分の書き換えを行い対象プログラムの2回目の呼び
出しでエラーとなる細工をする。細工後、主実行手段1
21はオペレーティングシステム11にテスト対象プロ
グラム41の実行を指示し、実行指示カウンタ36を
「11」にデクリメントし、2回目のエラー設定をクリ
ア後、判定手段124に2回目の呼び出しがエラーとな
った後の処理内容について判定を指示する。
【0046】判定手段124は1回目(図5ステップA
12)同様呼出状況記憶部32の内容を読み出し項目1
〜8のチェックを行い結果を出力バッファに書き込む。
但し項目6については1回目の呼び出しで取得した標準
入出力リソースのリリースがされたか(エラーとなった
allocate memory呼び出しの次にrel
ease resource呼び出しを行っているか)
をチェックする。
12)同様呼出状況記憶部32の内容を読み出し項目1
〜8のチェックを行い結果を出力バッファに書き込む。
但し項目6については1回目の呼び出しで取得した標準
入出力リソースのリリースがされたか(エラーとなった
allocate memory呼び出しの次にrel
ease resource呼び出しを行っているか)
をチェックする。
【0047】主実行手段121は1回目(図5ステップ
A13)と同様に出力バッファ内容、NG終了時の呼出
状況記憶部32の内容を出力し、2回目の判定結果(O
K/NG)を所定エリアに書込み2回目の処理を完了す
る。
A13)と同様に出力バッファ内容、NG終了時の呼出
状況記憶部32の内容を出力し、2回目の判定結果(O
K/NG)を所定エリアに書込み2回目の処理を完了す
る。
【0048】次に、主実行手段121は実行指示カウン
タ値が0でないので対象ポインタ37を「2」にインク
リメント、書込みポインタ「0」クリアの後、エラー設
定手段123に呼出状況記憶部31内の3回目の呼び出
し(register driver)のエラー設定を
指示する。エラー設定手段123はregisterd
river関数に対し前記と同様に対象プログラムの3
回目の呼び出しでエラーとなる細工をする。細工後、主
実行手段121はオペレーティングシステム11にテス
ト対象プログラム41の実行を指示し、実行指示カウン
タ36を「10」にデクリメント後、エラー設定をクリ
アし判定手段124に3回目の呼び出しがエラーとなっ
た後のエラー処理の判定を指示する。
タ値が0でないので対象ポインタ37を「2」にインク
リメント、書込みポインタ「0」クリアの後、エラー設
定手段123に呼出状況記憶部31内の3回目の呼び出
し(register driver)のエラー設定を
指示する。エラー設定手段123はregisterd
river関数に対し前記と同様に対象プログラムの3
回目の呼び出しでエラーとなる細工をする。細工後、主
実行手段121はオペレーティングシステム11にテス
ト対象プログラム41の実行を指示し、実行指示カウン
タ36を「10」にデクリメント後、エラー設定をクリ
アし判定手段124に3回目の呼び出しがエラーとなっ
た後のエラー処理の判定を指示する。
【0049】判定手段124は前記同様呼出状況記憶部
32の読出し、項目1〜8のチェックを行い結果を出力
バッファに書き込む。但し項目1について1回目の呼び
出しで標準入出力リソースを、2回目の呼び出しでメモ
リをそれぞれ取得しメッセージ出力環境は有り、エラー
メッセージ出力をチェックする。即ち「ドライバの組込
みに失敗しました」等のメッセージの入った記憶装置3
上のエリアを引数とした(out txt)呼び出しが
4回目の呼び出しとして行われているかをチェックす
る。
32の読出し、項目1〜8のチェックを行い結果を出力
バッファに書き込む。但し項目1について1回目の呼び
出しで標準入出力リソースを、2回目の呼び出しでメモ
リをそれぞれ取得しメッセージ出力環境は有り、エラー
メッセージ出力をチェックする。即ち「ドライバの組込
みに失敗しました」等のメッセージの入った記憶装置3
上のエリアを引数とした(out txt)呼び出しが
4回目の呼び出しとして行われているかをチェックす
る。
【0050】又2回目の呼び出しで確保したメモリがリ
リースがされたか(releasememory呼び出
しを行っているか)を項目5でチェックし1回目の呼び
出しで確保した標準入出力がリリースされたか(rel
ease resource呼び出しを行っているか)
を項目6でチェックし、エラーメッセージ出力の為の呼
び出し、メモリリリース呼び出し、入出力リリース呼び
出、プログラム終了呼び出しの順であるかを項目8でチ
ェックする。主実行手段121は前回同様に出力バッフ
ァ内容、NG終了時の呼出状況記憶部32の内容を出力
し、3回目の判定結果(OK/NG)を所定エリアに書
込み3回目の処理を完了する。
リースがされたか(releasememory呼び出
しを行っているか)を項目5でチェックし1回目の呼び
出しで確保した標準入出力がリリースされたか(rel
ease resource呼び出しを行っているか)
を項目6でチェックし、エラーメッセージ出力の為の呼
び出し、メモリリリース呼び出し、入出力リリース呼び
出、プログラム終了呼び出しの順であるかを項目8でチ
ェックする。主実行手段121は前回同様に出力バッフ
ァ内容、NG終了時の呼出状況記憶部32の内容を出力
し、3回目の判定結果(OK/NG)を所定エリアに書
込み3回目の処理を完了する。
【0051】以降呼出状況記憶部31内の4回目の呼出
(open file)〜12回目の呼出(relea
se resource)まで同様に処理される。尚8
回目のclose file〜12回目のreleas
e resourceにおいてはその回にエラー設定し
た呼び出しを主実行手段121がエラー設定クリア後に
正常実行時の呼び出し状況から取り出し、対象プログラ
ムに代わってその呼び出しを実行する。これによりファ
イルのクローズ或いはドライバのシステムからの外しあ
るいはメモリリソース或いは標準入出力リソースのリリ
ースをし、次回のテストのリソース等の要求呼び出しが
正常に行えるようにする。
(open file)〜12回目の呼出(relea
se resource)まで同様に処理される。尚8
回目のclose file〜12回目のreleas
e resourceにおいてはその回にエラー設定し
た呼び出しを主実行手段121がエラー設定クリア後に
正常実行時の呼び出し状況から取り出し、対象プログラ
ムに代わってその呼び出しを実行する。これによりファ
イルのクローズ或いはドライバのシステムからの外しあ
るいはメモリリソース或いは標準入出力リソースのリリ
ースをし、次回のテストのリソース等の要求呼び出しが
正常に行えるようにする。
【0052】ここで本発明の理解を深める為に判定手段
124によるエラー処理内容の判定について、6回目の
呼び出し(read file)のエラーに対する処理
例について詳細に説明する。判定手段124は主実行手
段121より対象ポインタ37値を5とし判定指示を受
けると、テスト対象プログラム41が実行した呼出状況
(記憶部32)を参照しながら処理する。又、この内容
は正しくエラー処理されていれば図11に示す様にな
る。
124によるエラー処理内容の判定について、6回目の
呼び出し(read file)のエラーに対する処理
例について詳細に説明する。判定手段124は主実行手
段121より対象ポインタ37値を5とし判定指示を受
けると、テスト対象プログラム41が実行した呼出状況
(記憶部32)を参照しながら処理する。又、この内容
は正しくエラー処理されていれば図11に示す様にな
る。
【0053】図8を参照し、判定手段124は項目1と
しメッセージ出力環境が有る時にはエラーメッセージを
出力したかをチェックする。即ち呼出状況記憶部32に
おいて相対アドレス0から対象ポインタ−1(=4)ま
でをスキャンし相対アドレス0、1にallocate
resource、allocate memory
関数呼び出しが実行され且つこれらのリリースがされて
ないことを確認し、エラー発生時メッセージ出力環境有
りと見なし、エラーメッセージ出力をチェックする。図
12に示す関数テーブル125が記憶装置3上に用意さ
れており項目1の欄はエラー回数の行に「1」がセット
されout txt関数の行に「−1」がセットされて
おり、相対アドレス対象ポインタ+1(=6)以降でエ
ラーメッセージの入ったメッセージバッファを引数とし
たout txt関数を探す。相対アドレス6に該当関
数がありエラーメッセージ出力と見なしエラー回数の1
に対し上記−1を加算し0となるので項目1にOKをセ
ットする。
しメッセージ出力環境が有る時にはエラーメッセージを
出力したかをチェックする。即ち呼出状況記憶部32に
おいて相対アドレス0から対象ポインタ−1(=4)ま
でをスキャンし相対アドレス0、1にallocate
resource、allocate memory
関数呼び出しが実行され且つこれらのリリースがされて
ないことを確認し、エラー発生時メッセージ出力環境有
りと見なし、エラーメッセージ出力をチェックする。図
12に示す関数テーブル125が記憶装置3上に用意さ
れており項目1の欄はエラー回数の行に「1」がセット
されout txt関数の行に「−1」がセットされて
おり、相対アドレス対象ポインタ+1(=6)以降でエ
ラーメッセージの入ったメッセージバッファを引数とし
たout txt関数を探す。相対アドレス6に該当関
数がありエラーメッセージ出力と見なしエラー回数の1
に対し上記−1を加算し0となるので項目1にOKをセ
ットする。
【0054】次にエラーとなった呼び出し以降のアクテ
ィブ呼出抑止をチェックする。これは関数テーブル12
5の項目2の欄に「1」がセットされている関数(wr
ite file、open file、regist
er driver、allocate memor
y、allocate resource)それぞれに
ついて、記憶部32の相対アドレス6以降にて呼び出し
てないかチェックし該当関数呼び出しは無く上記「1」
は全て加算されず0となり項目2にOKをセットする。
ィブ呼出抑止をチェックする。これは関数テーブル12
5の項目2の欄に「1」がセットされている関数(wr
ite file、open file、regist
er driver、allocate memor
y、allocate resource)それぞれに
ついて、記憶部32の相対アドレス6以降にて呼び出し
てないかチェックし該当関数呼び出しは無く上記「1」
は全て加算されず0となり項目2にOKをセットする。
【0055】次にオープンしたファイルは全てクローズ
したかをチェックする。関数テーブル125の項目3の
欄に「1」がセットされているopen file関数
の有無を、呼出状況記憶部32の相対アドレス0以降に
ついてチェックし有れば「1」加算し、関数テーブル1
25の項目3の欄に「−1」がセットされているclo
se file関数の有無を同様に相対アドレス0以降
でチェックし、有れば「−1」加算しその総計にて判定
する。図11の例では相対アドレス3のopen fi
le検出で+1し、相対アドレス7に引数が対応するc
lose file検出で−1加算し、同様に相対アド
レス4のopen file検出で+1、対応する相対
アドレス8のclose file検出で−1加算し総
計は0となり項目3にOKをセットする。項目3と同様
に、関数テーブル125の項目4の欄に「1」がセット
されているregister driver関数の有無
を、呼出状況記憶部32の相対アドレス0以降について
チェックし有れば「1」加算し、「−1」がセットされ
ているdellete driver関数の有無を同様
に相対アドレス0以降でチェックし、「−1」加算しそ
の総計にて判定する。図11の例では相対アドレス2の
register driver検出で+1し、相対ア
ドレス9に引数が対応するdellete drive
r検出で−1加算し総計は0となり項目4にOKをセッ
トする。以下関数テーブル125の項目5の欄に「1」
がセットされているallocate memory関
数についても同様手順にて判定され項目5に結果をセッ
トする。
したかをチェックする。関数テーブル125の項目3の
欄に「1」がセットされているopen file関数
の有無を、呼出状況記憶部32の相対アドレス0以降に
ついてチェックし有れば「1」加算し、関数テーブル1
25の項目3の欄に「−1」がセットされているclo
se file関数の有無を同様に相対アドレス0以降
でチェックし、有れば「−1」加算しその総計にて判定
する。図11の例では相対アドレス3のopen fi
le検出で+1し、相対アドレス7に引数が対応するc
lose file検出で−1加算し、同様に相対アド
レス4のopen file検出で+1、対応する相対
アドレス8のclose file検出で−1加算し総
計は0となり項目3にOKをセットする。項目3と同様
に、関数テーブル125の項目4の欄に「1」がセット
されているregister driver関数の有無
を、呼出状況記憶部32の相対アドレス0以降について
チェックし有れば「1」加算し、「−1」がセットされ
ているdellete driver関数の有無を同様
に相対アドレス0以降でチェックし、「−1」加算しそ
の総計にて判定する。図11の例では相対アドレス2の
register driver検出で+1し、相対ア
ドレス9に引数が対応するdellete drive
r検出で−1加算し総計は0となり項目4にOKをセッ
トする。以下関数テーブル125の項目5の欄に「1」
がセットされているallocate memory関
数についても同様手順にて判定され項目5に結果をセッ
トする。
【0056】又、図9に移り関数テーブル125の項目
6の欄に「1」がセットされているallocate
resource関数についても同様に判定され項目6
に結果をセットする。図11の例ではこれら項目にOK
がセットされるのは明らかである。
6の欄に「1」がセットされているallocate
resource関数についても同様に判定され項目6
に結果をセットする。図11の例ではこれら項目にOK
がセットされるのは明らかである。
【0057】次に関数テーブル125の項目7の欄に
「1」がセットされている実行回数と項目7の欄に「−
1」がセットされているterminate関数の有無
を、呼出状況記憶部32の相対アドレス6以降について
チェックし有れば「−1」加算しその総計にて判定す
る。実行回数は1回につき「+1」加算し相対アドレス
12のterminate検出で−1加算し結果「0」
となり項目7にOKをセットする。項目8ではエラー後
複数関数呼び出しを行っている場合の順番の妥当性のチ
ェックでであり関数テーブル125の項目8の欄にセッ
トされた順番値(小さい方が先行)であるかをチェック
する。図11の例では相対アドレス6にエラーメッセー
ジ出力のout txt、相対アドレス7、8にclo
se file、相対アドレス9にdellete d
riverが記録されておりこれらは第1グループであ
り、この後に第2グループのrelease memo
ry、第3グループのrelease resourc
e、第4グループのterminateと記録されてお
り順番値に沿うので項目8にOKをセットする。以降の
項目1〜8の結果による6回目の呼び出しとしての判定
結果の主実行手段121への返答、判定結果の出力バッ
ファへの書き込みは前記の通りであり、図11の例では
必要十分なエラー処理がされた旨出力されるのは明らか
である。
「1」がセットされている実行回数と項目7の欄に「−
1」がセットされているterminate関数の有無
を、呼出状況記憶部32の相対アドレス6以降について
チェックし有れば「−1」加算しその総計にて判定す
る。実行回数は1回につき「+1」加算し相対アドレス
12のterminate検出で−1加算し結果「0」
となり項目7にOKをセットする。項目8ではエラー後
複数関数呼び出しを行っている場合の順番の妥当性のチ
ェックでであり関数テーブル125の項目8の欄にセッ
トされた順番値(小さい方が先行)であるかをチェック
する。図11の例では相対アドレス6にエラーメッセー
ジ出力のout txt、相対アドレス7、8にclo
se file、相対アドレス9にdellete d
riverが記録されておりこれらは第1グループであ
り、この後に第2グループのrelease memo
ry、第3グループのrelease resourc
e、第4グループのterminateと記録されてお
り順番値に沿うので項目8にOKをセットする。以降の
項目1〜8の結果による6回目の呼び出しとしての判定
結果の主実行手段121への返答、判定結果の出力バッ
ファへの書き込みは前記の通りであり、図11の例では
必要十分なエラー処理がされた旨出力されるのは明らか
である。
【0058】次に本発明の他の実施の形態について説明
する。テスト対象プログラム41は前記変換処理を実行
するが、そのコードセグメント、共有データセグメン
ト、標準入出力リソース及びキャラクタドライバ44を
共有リソースとしてリエントラント(再入可能)構造を
有するものとする。この場合、前記リソースを共有しな
がら異なるインスタンスとして実行可能である。
する。テスト対象プログラム41は前記変換処理を実行
するが、そのコードセグメント、共有データセグメン
ト、標準入出力リソース及びキャラクタドライバ44を
共有リソースとしてリエントラント(再入可能)構造を
有するものとする。この場合、前記リソースを共有しな
がら異なるインスタンスとして実行可能である。
【0059】例えばオペレーティングシステム11を介
しテスト対象プログラム41にリエントラントな形で終
了する様指定し実行指示すると、テスト対象プログラム
41はインスタンス#1として起動され、標準入出力リ
ソース、共有データ用のメモリリソース、個別ワークエ
リア用メモリリソースのアロケートをアプリケーション
インタフェース部111に要求し、キャラクタドライバ
組み込み、入力ファイル42、出力ファイル45のオー
プンを要求後、入力ファイル42の読出、出力ファイル
45への書込とテキスト出力要求を行いながら変換処理
を実行後、前記共通リソースはそのままにし入力ファイ
ル42と出力ファイル45のクローズ、個別ワークエリ
ア用メモリリリースを要求し終了する。この状態で上記
とは異なる入力ファイル43と出力ファイル46を指定
し、テスト対象プログラム41にリエントラント終了指
定で実行指示をするとテスト対象プログラム41はイン
スタンス#2として起動され、個別ワークエリア用メモ
リリソースのアロケート、入力ファイル43、出力ファ
イル46のオープンを要求後、ファイルの読出、書込と
テキスト出力要求を行いながらインスタンス#2の変換
処理を実行後、入力ファイル43と出力ファイル46の
クローズ、個別ワークエリア用メモリリリースを要求し
終了する。
しテスト対象プログラム41にリエントラントな形で終
了する様指定し実行指示すると、テスト対象プログラム
41はインスタンス#1として起動され、標準入出力リ
ソース、共有データ用のメモリリソース、個別ワークエ
リア用メモリリソースのアロケートをアプリケーション
インタフェース部111に要求し、キャラクタドライバ
組み込み、入力ファイル42、出力ファイル45のオー
プンを要求後、入力ファイル42の読出、出力ファイル
45への書込とテキスト出力要求を行いながら変換処理
を実行後、前記共通リソースはそのままにし入力ファイ
ル42と出力ファイル45のクローズ、個別ワークエリ
ア用メモリリリースを要求し終了する。この状態で上記
とは異なる入力ファイル43と出力ファイル46を指定
し、テスト対象プログラム41にリエントラント終了指
定で実行指示をするとテスト対象プログラム41はイン
スタンス#2として起動され、個別ワークエリア用メモ
リリソースのアロケート、入力ファイル43、出力ファ
イル46のオープンを要求後、ファイルの読出、書込と
テキスト出力要求を行いながらインスタンス#2の変換
処理を実行後、入力ファイル43と出力ファイル46の
クローズ、個別ワークエリア用メモリリリースを要求し
終了する。
【0060】従って、#2以降のインスタンスの一つと
して実行中にエラーが発生しエラー処理する場合に、そ
のインスタンスが要求しアロケートされた個別リソース
をリリースする確認の他に記憶装置3上に常駐し待機状
態にある他のインスタンスに影響を与えないこともテス
トする必要がある。具体的には、共有リソースがリリー
スされない確認をすればよい。即ち、テスト対象プログ
ラム41をリエントラント終了するよう、インスタンス
#1として実行指示後、インスタンス#2を前記最初の
実施例で示したテスト方法と全く同様に呼び出し状況取
得、取得した呼び出しの個々について実行順に一つ選択
しつつエラー設定、実行、エラー処理内容解析判定を繰
返すことにより上記前者の確認が出来ることは明らかで
ある。又後者の確認は上記エラー設定クリア、エラー処
理内容判定後にテスト対象プログラム41を再実行し正
常終了することを確認すればよい。
して実行中にエラーが発生しエラー処理する場合に、そ
のインスタンスが要求しアロケートされた個別リソース
をリリースする確認の他に記憶装置3上に常駐し待機状
態にある他のインスタンスに影響を与えないこともテス
トする必要がある。具体的には、共有リソースがリリー
スされない確認をすればよい。即ち、テスト対象プログ
ラム41をリエントラント終了するよう、インスタンス
#1として実行指示後、インスタンス#2を前記最初の
実施例で示したテスト方法と全く同様に呼び出し状況取
得、取得した呼び出しの個々について実行順に一つ選択
しつつエラー設定、実行、エラー処理内容解析判定を繰
返すことにより上記前者の確認が出来ることは明らかで
ある。又後者の確認は上記エラー設定クリア、エラー処
理内容判定後にテスト対象プログラム41を再実行し正
常終了することを確認すればよい。
【0061】図13は複数インスタンスの一つとして実
行時のエラー処理テストをオプションとし指示した場
合、該テスト込みで自動実行するテスト実行確認部12
のフローチャートである。
行時のエラー処理テストをオプションとし指示した場
合、該テスト込みで自動実行するテスト実行確認部12
のフローチャートである。
【0062】入力装置2からテスト実行確認部12に対
しテスト対象プログラム41名とオプションとして複数
インスタンステストを指定し、ファイル指定の1番目と
して入力ファイル42、出力ファイル45のパス名・フ
ァイル名を2番目として入力ファイル43、出力ファイ
ル46のパス名・ファイル名を指定後、テスト開始を指
示する(図13ステップR1)。
しテスト対象プログラム41名とオプションとして複数
インスタンステストを指定し、ファイル指定の1番目と
して入力ファイル42、出力ファイル45のパス名・フ
ァイル名を2番目として入力ファイル43、出力ファイ
ル46のパス名・ファイル名を指定後、テスト開始を指
示する(図13ステップR1)。
【0063】テスト実行確認部12は前記最初の実施の
形態の手順にてテスト対象プログラム41について単独
実行の形でN回のエラー処理テスト及び結果の印刷を実
行する(図13ステップR2)。テスト実行確認部12
はこれらの結果が全てOKであれば、受信した複数イン
スタンステスト指定をチェック(図13ステップR4)
し、この指定がセットされているので次ステップに進
む。これ以外のケースでは自動的にテストを終了する。
形態の手順にてテスト対象プログラム41について単独
実行の形でN回のエラー処理テスト及び結果の印刷を実
行する(図13ステップR2)。テスト実行確認部12
はこれらの結果が全てOKであれば、受信した複数イン
スタンステスト指定をチェック(図13ステップR4)
し、この指定がセットされているので次ステップに進
む。これ以外のケースでは自動的にテストを終了する。
【0064】ステップR5では呼出状況記憶部31及び
32、このエリアへの書込ポインタ35、実行指示カウ
ンタ36、対象ポインタ37をクリアする(図13ステ
ップR5)。次に、テスト実行確認部12はオペレーテ
ィングシステム11を介し、リエントラント終了、ファ
イル指定No.1を指定してテスト対象プログラム41
の実行を指示する(図13ステップR6)。テスト対象
プログラム41はインスタンス#1として起動され共有
リソースを確保したままでこのインスタンスは終了す
る。次に呼出状況記憶31及び32、このエリアへの書
込ポインタ35の再クリア後、リエントラント終了、フ
ァイル指定No.2指定でテスト対象プログラム41の
実行を指示するとインスタンス#2として実行され、こ
の時の呼出状況を取得する(図13ステップR7)。こ
の呼出状況の1回目の呼出し(allocatemem
ory(引数:個別ワークエリア対応のブロック数)に
ついて最初の実施例同様のエラー設定、リエントラント
終了形での対象プログラム実行、エラー設定のクリア、
エラー処理内容についての項目1〜8の判定、その結果
出力を行う。項目1〜8が全てOKであれば、対象プロ
グラムを再実行し正常終了するかを確認しその結果を出
力する(図13ステップR10)。正常終了しなかった
場合はその回でテストを終了する。以上を呼出状況の最
後の呼出し迄L回繰り返しテストを終了する(図13ス
テップR11)。
32、このエリアへの書込ポインタ35、実行指示カウ
ンタ36、対象ポインタ37をクリアする(図13ステ
ップR5)。次に、テスト実行確認部12はオペレーテ
ィングシステム11を介し、リエントラント終了、ファ
イル指定No.1を指定してテスト対象プログラム41
の実行を指示する(図13ステップR6)。テスト対象
プログラム41はインスタンス#1として起動され共有
リソースを確保したままでこのインスタンスは終了す
る。次に呼出状況記憶31及び32、このエリアへの書
込ポインタ35の再クリア後、リエントラント終了、フ
ァイル指定No.2指定でテスト対象プログラム41の
実行を指示するとインスタンス#2として実行され、こ
の時の呼出状況を取得する(図13ステップR7)。こ
の呼出状況の1回目の呼出し(allocatemem
ory(引数:個別ワークエリア対応のブロック数)に
ついて最初の実施例同様のエラー設定、リエントラント
終了形での対象プログラム実行、エラー設定のクリア、
エラー処理内容についての項目1〜8の判定、その結果
出力を行う。項目1〜8が全てOKであれば、対象プロ
グラムを再実行し正常終了するかを確認しその結果を出
力する(図13ステップR10)。正常終了しなかった
場合はその回でテストを終了する。以上を呼出状況の最
後の呼出し迄L回繰り返しテストを終了する(図13ス
テップR11)。
【0065】上記二つの実施の形態では、呼出し状況の
監視とエラー設定のため関数への命令語レベルのパッチ
の一例を示したが、関数がマクロレベルであれば書き換
えもマクロレベルであっても構わない。又関数自体を書
き換えるのでなく対象プログラムからの呼出しの全てを
フックしこれを記録すると共に正規の関数を呼出し又対
象プログラムからの特定の呼出しのみエラー応答を返す
コールゲートをテスト実行確認部にアサインされたエリ
アに集中的に設け、関数への割り込みベクタテーブルを
このコールゲートプログラムのエントリアドレスに書き
換える方法であっても構わない。
監視とエラー設定のため関数への命令語レベルのパッチ
の一例を示したが、関数がマクロレベルであれば書き換
えもマクロレベルであっても構わない。又関数自体を書
き換えるのでなく対象プログラムからの呼出しの全てを
フックしこれを記録すると共に正規の関数を呼出し又対
象プログラムからの特定の呼出しのみエラー応答を返す
コールゲートをテスト実行確認部にアサインされたエリ
アに集中的に設け、関数への割り込みベクタテーブルを
このコールゲートプログラムのエントリアドレスに書き
換える方法であっても構わない。
【0066】上記二つの実施の形態では、呼出し状況の
監視とエラー設定のため、テスト実行確認部12よりア
プリケーションインタフェース部111の関数へのパッ
チの一例を示したが、オペレーティングシステム11の
記憶保護のため、オペレーティングシステム11の外部
プログラムから内部関数エリアの書込みアクセスが許容
されてないオペレーティングシステム11では、通常オ
ペレーティングシステム11に内部ファイル、エリアの
書換ツール(ユーティリティ)が用意されておりこのツ
ールに、アドレス、書き込みデータを渡すことによりパ
ッチできる。
監視とエラー設定のため、テスト実行確認部12よりア
プリケーションインタフェース部111の関数へのパッ
チの一例を示したが、オペレーティングシステム11の
記憶保護のため、オペレーティングシステム11の外部
プログラムから内部関数エリアの書込みアクセスが許容
されてないオペレーティングシステム11では、通常オ
ペレーティングシステム11に内部ファイル、エリアの
書換ツール(ユーティリティ)が用意されておりこのツ
ールに、アドレス、書き込みデータを渡すことによりパ
ッチできる。
【0067】上記二つの実施の形態では、取得した呼出
状況のプログラム終了の前の呼び出しまで、エラー設定
しテストし、ファイルクローズ、ドライバのシステムか
らの削除、リソースリリースについてはエラー設定しテ
スト後エラー設定をクリアし再呼出しを実行しリソース
等のリリースを行っているが、これらリリース系の呼出
しのテストはスキップする方法もある。
状況のプログラム終了の前の呼び出しまで、エラー設定
しテストし、ファイルクローズ、ドライバのシステムか
らの削除、リソースリリースについてはエラー設定しテ
スト後エラー設定をクリアし再呼出しを実行しリソース
等のリリースを行っているが、これらリリース系の呼出
しのテストはスキップする方法もある。
【0068】上記二つの実施の形態では、エラー処理内
容の判定項目の例として項目1〜8を示したが、これは
一例であり、項目1〜8を全て分析判定する必要はな
く、又他の項目を含めて判定してもよい。
容の判定項目の例として項目1〜8を示したが、これは
一例であり、項目1〜8を全て分析判定する必要はな
く、又他の項目を含めて判定してもよい。
【0069】上記他の実施の形態の複数インスタンスで
実行時のエラーテストでは、毎回、項目1〜8の判定後
最初に常駐させたインスタンスへの影響をテストしてい
るが、L回のエラー設定してのテスト後に最後に1回最
初に常駐させたインスタンスへの影響をテストする方法
も考えられる。
実行時のエラーテストでは、毎回、項目1〜8の判定後
最初に常駐させたインスタンスへの影響をテストしてい
るが、L回のエラー設定してのテスト後に最後に1回最
初に常駐させたインスタンスへの影響をテストする方法
も考えられる。
【0070】
【発明の効果】第1の効果は、テストにかかる工数を大
きく削減できることにある。その理由は、対象プログラ
ム、該プログラム処理の入出力データファイルを指定し
テストを開始すれば、オペレータの介在なしで自動実行
するので、オペレータの負担が軽減され、又操作入力待
ち時間が発生しないためである。
きく削減できることにある。その理由は、対象プログラ
ム、該プログラム処理の入出力データファイルを指定し
テストを開始すれば、オペレータの介在なしで自動実行
するので、オペレータの負担が軽減され、又操作入力待
ち時間が発生しないためである。
【0071】第2の効果は、テストにおける作業ミスや
確認漏れを低減できることにある。その理由は、オペレ
ータがデバッガ等を操作して擬似的にエラーを発生させ
る必要がないためである。
確認漏れを低減できることにある。その理由は、オペレ
ータがデバッガ等を操作して擬似的にエラーを発生させ
る必要がないためである。
【0072】第3の効果は広範囲のプログラムを対象と
しそのエラー処理についてテスト出来ることにある。そ
の理由は、テスト対象プログラムの正常実行時のオペレ
ーティングシステムのアプリケーションインタフェース
部呼び出し状況を取得後、これに基づいて疑似エラー設
定、エラー処理内容の解析判定をする為、オペレーティ
ングシステムのアプリケーションインタフェース部呼び
出しを行うプログラムの全てが対象となる為である。
しそのエラー処理についてテスト出来ることにある。そ
の理由は、テスト対象プログラムの正常実行時のオペレ
ーティングシステムのアプリケーションインタフェース
部呼び出し状況を取得後、これに基づいて疑似エラー設
定、エラー処理内容の解析判定をする為、オペレーティ
ングシステムのアプリケーションインタフェース部呼び
出しを行うプログラムの全てが対象となる為である。
【0073】第4の効果はエラー処理ステップの大半を
テストできることにある。その理由は上記対象となり得
るプログラムの多くが処理フローの要所要所で該呼び出
しを行うのでエラー処理ステップの大半がテストされ、
又複数インスタンスで実行時のエラー処理についてもテ
ストしている為である。
テストできることにある。その理由は上記対象となり得
るプログラムの多くが処理フローの要所要所で該呼び出
しを行うのでエラー処理ステップの大半がテストされ、
又複数インスタンスで実行時のエラー処理についてもテ
ストしている為である。
【0074】第5の効果はオペレーティングシステムの
改版若しくは類似オペレーティングシステムへの移植に
伴い、呼び出し関数の追加変更が必要となる場合にも本
テストシステム、方法及びプログラム媒体の修正が容易
にできることである。その理由はシステムに集約的に設
けられた、関数テーブルと関数アドレス情報に追加され
た関数について値を追加し変更された関数について値を
修正すれば対応出来る為である。
改版若しくは類似オペレーティングシステムへの移植に
伴い、呼び出し関数の追加変更が必要となる場合にも本
テストシステム、方法及びプログラム媒体の修正が容易
にできることである。その理由はシステムに集約的に設
けられた、関数テーブルと関数アドレス情報に追加され
た関数について値を追加し変更された関数について値を
修正すれば対応出来る為である。
【図1】本発明の実施の形態のテストシステム、方法の
全体を示すブロック図
全体を示すブロック図
【図2】本発明の実施の形態のテスト対象プログラム4
1が呼び出すアプリケーションインタフェース部111
の関数を示す図
1が呼び出すアプリケーションインタフェース部111
の関数を示す図
【図3】本発明の実施の形態のアプリケーションインタ
フェース部111の関数のメモリ配置を示す図
フェース部111の関数のメモリ配置を示す図
【図4】本発明の実施の形態のテスト実行確認部12の
処理を示すフローチャート(1/2)
処理を示すフローチャート(1/2)
【図5】本発明の実施の形態のテスト実行確認部12の
処理を示すフローチャート(2/2)
処理を示すフローチャート(2/2)
【図6】本発明の実施の形態のアロケートリソース関数
のメモリ配置を示す図
のメモリ配置を示す図
【図7】本発明の実施の形態のアロケートリソース関数
へのパッチを示す図
へのパッチを示す図
【図8】本発明の実施の形態の判定手段124の処理フ
ロー(1/2)
ロー(1/2)
【図9】本発明の実施の形態の判定手段124の処理フ
ロー(2/2)
ロー(2/2)
【図10】本発明の実施の形態の正常実行呼出状況で呼
出状況記憶部31の内容
出状況記憶部31の内容
【図11】本発明の実施の形態のエラー設定実行呼出状
況で呼出状況記憶部32の内容
況で呼出状況記憶部32の内容
【図12】本発明の実施の形態の関数テーブル
【図13】本発明の他の実施の形態の複数インスタンス
テストを含むテスト実行確認部12の処理フロー
テストを含むテスト実行確認部12の処理フロー
1 データ処理装置 2 入力装置 3 記憶装置 4 外部記憶装置 5 出力装置 6 記録媒体 11 オペレーティングシステム 12 テスト実行確認部 31 呼出状況記憶部 32 呼出状況記憶部 33 ベースアドレス 34 ベースアドレス 35 書込ポインタ 36 実行指示カウンタ 37 対象ポインタ 38 関数アドレス 41 テスト対象プログラム 42 入力ファイル 43 入力ファイル 44 キャラクタドライバ 45 出力ファイル 46 出力ファイル 111 アプリケーションインタフェース部 121 主実行手段 122 呼出状況取得手段 123 エラー設定手段 124 判定手段 125 関数テーブル
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−175879(JP,A) 特開 平9−218805(JP,A) 特開 平10−269105(JP,A) 特開 平4−353938(JP,A) 特開 平9−265412(JP,A) 特開 平4−175833(JP,A) 特開 平2−190942(JP,A) 特開 平6−75813(JP,A) 特開 平10−11879(JP,A) 特開 平8−249210(JP,A) 特開 平11−296443(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/28 - 11/36 G06F 11/22
Claims (9)
- 【請求項1】 プログラムのエラー処理テストを自動実
行するシステムであって、プログラムによるアプリケー
ションインタフェース部呼び出しの内、呼び出し元が指
定のテスト対象プログラムであればその呼び出し状況を
取得するための設定を施した後、前記テスト対象プログ
ラムを実行し正常時の前記呼び出し状況を記憶装置に記
憶する呼出状況取得手段と、任意の一つの呼び出しにつ
いて、呼び出し元が指定のテスト対象プログラムであれ
ばアプリケーションインタフェース部にてエラーとなる
ための細工をするエラー設定手段と、該設定後に実行さ
れるテスト対象プログラムのエラー処理内容について判
定する判定手段と、前記呼出状況取得手段に実行指示
後、前記記憶された正常時呼び出し状況内の呼び出しの
一つを実行順に選択し、その都度選択した呼び出しにつ
いてのエラー設定を前記エラー設定手段に行わせ、テス
ト対象プログラムを実行し、その際に取得されるアプリ
ケーションインタフェース部の呼び出し状況により前記
判定手段にエラー処理判定を行わせ判定結果を出力する
主実行手段とを備えることを特徴とするエラー処理テス
トシステム。 - 【請求項2】 前記主実行手段が、さらに前記呼出状況
取得、該呼出状況の個々の呼出しについてのエラー設定
状態での対象プログラム実行に先立ち、テスト対象プロ
グラムが複数インスタンスで実行される際の共有リソー
スを確保した状態のインスタンスとして前記記憶装置に
常駐させる手段を有し、前記判定手段が前記エラー設定
状態での対象プログラム実行による前記インスタンスへ
の影響についても判定する請求項1記載のエラー処理テ
ストシステム。 - 【請求項3】 前記判定手段が、呼出しの種類毎に判定
項目との関連を示す呼出しテーブル情報と該呼出しテー
ブル情報に基づき、前記テスト対象プログラムがエラー
後の処理で実行する呼出しについて判定する手段を含む
請求項1または請求項2記載のエラー処理テストシステ
ム。 - 【請求項4】 プログラムのエラー処理テストを自動実
行する方法であって、プログラムによるアプリケーショ
ンインタフェース部呼び出しの内、呼び出し元が指定の
テスト対象プログラムであればその呼び出し状況を取得
するための設定を施した後、前記テスト対象プログラム
を実行し正常時の前記呼び出し状況を記憶装置に記憶す
る呼出状況取得ステップと、任意の一つの呼び出しにつ
いて、呼び出し元が指定のテスト対象プログラムであれ
ばアプリケーションインタフェース部にてエラーとなる
ための細工をするエラー設定ステップと、該設定後に実
行されるテスト対象プログラムのエラー処理内容につい
て判定する判定ステップと、前記呼出状況取得ステップ
を実行後、前記記憶された正常時呼び出し状況内の呼び
出しの一つを実行順に選択し、その都度選択した呼び出
しについてのエラー設定を前記エラー設定ステップによ
り行ない、テスト対象プログラムを実行し、その際に取
得されるアプリケーションインタフェース部の呼び出し
状況を前記判定ステップにより判定し結果を出力する主
制御ステップとを含むことを特徴とするエラー処理テス
ト方法。 - 【請求項5】 前記主制御ステップが、さらに前記呼出
状況取得、該呼出状況の個々の呼出しについてのエラー
設定状態での対象プログラム実行に先立ち、テスト対象
プログラムが複数インスタンスで実行される際の共有リ
ソースを確保した状態のインスタンスとして記憶装置に
常駐させるステップも含み、前記判定ステップが前記エ
ラー設定状態での対象プログラム実行による前記インス
タンスへの影響についても判定するステップを含む請求
項4記載のエラー処理テスト方法。 - 【請求項6】 前記判定方法が、呼び出しの種類毎に判
定項目との関連を示す呼び出しテーブル情報と該テーブ
ル情報に基づき、前記テスト対象プログラムがエラー後
の処理で実行する呼び出しについて判定するステップと
を含む請求項4または請求項5記載のエラー処理テスト
方法。 - 【請求項7】 プログラムによるアプリケーションイン
タフェース部呼び出しの内、呼び出し元が指定のテスト
対象プログラムであればその呼び出し状況を取得するた
めの設定を施した後、前記テスト対象プログラムを実行
し正常時の前記呼び出し状況を記憶装置に記憶する呼出
状況取得手順と、任意の一つの呼び出しについて、呼び
出し元が指定のテスト対象プログラムであればアプリケ
ーションインタフェース部にてエラーとなるための細工
をするエラー設定手順と、該設定後に実行されるテスト
対象プログラムのエラー処理内容について判定する判定
手順と、前記呼出状況取得手順を実行後、前記記憶され
た正常時呼び出し状況内の呼び出しの一つを実行順に選
択し、その都度選択した呼び出しについてのエラー設定
を前記エラー設定手順により行ない、テスト対象プログ
ラムを実行し、その際に取得されるアプリケーションイ
ンタフェース部の呼び出し状況を前記判定手順により判
定し結果を出力する主制御手順とをコンピュータに実行
させるためのエラー処理テストプログラムを記録した媒
体。 - 【請求項8】 前記主制御手順が、前記呼出状況取得、
該呼出状況の個々の呼出しについてのエラー設定状態で
の対象プログラム実行に先立ち、テスト対象プログラム
が複数インスタンスで実行される際の共有リソースを確
保した状態のインスタンスとして記憶装置に常駐させる
手順を含み、前記判定手順が前記エラー設定状態での対
象プログラム実行による前記インスタンスへの影響につ
いても判定する手順を含む請求項7記載の記録媒体。 - 【請求項9】 前記判定手順が、呼び出しの種類毎に判
定項目との関連を示す呼び出しテーブル情報と該テーブ
ル情報に基づき、前記テスト対象プログラムがエラー後
の処理で実行する呼び出しについて判定する手順とを含
む請求項7または請求項8記載の記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35471498A JP3202708B2 (ja) | 1998-12-14 | 1998-12-14 | ソフトウェアのエラー処理テストシステム、テスト方法及びテストプログラムの記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35471498A JP3202708B2 (ja) | 1998-12-14 | 1998-12-14 | ソフトウェアのエラー処理テストシステム、テスト方法及びテストプログラムの記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000181749A JP2000181749A (ja) | 2000-06-30 |
JP3202708B2 true JP3202708B2 (ja) | 2001-08-27 |
Family
ID=18439416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35471498A Expired - Fee Related JP3202708B2 (ja) | 1998-12-14 | 1998-12-14 | ソフトウェアのエラー処理テストシステム、テスト方法及びテストプログラムの記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3202708B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4886188B2 (ja) | 2004-12-16 | 2012-02-29 | キヤノン株式会社 | 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04353938A (ja) * | 1991-05-30 | 1992-12-08 | Mitsubishi Electric Corp | プログラム処理方式 |
JP3184344B2 (ja) * | 1992-12-07 | 2001-07-09 | 富士通株式会社 | 擬似障害設定装置 |
JPH09218805A (ja) * | 1996-02-13 | 1997-08-19 | Oki Electric Ind Co Ltd | 通信ソフトウェアの試験制御方法 |
JPH10269105A (ja) * | 1997-01-27 | 1998-10-09 | N T T Data Tsushin Kk | トレースシステム、リソース解放漏れ検出システム及び記録媒体 |
-
1998
- 1998-12-14 JP JP35471498A patent/JP3202708B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000181749A (ja) | 2000-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5574854A (en) | Method and system for simulating the execution of a computer program | |
US7661094B2 (en) | Real-time software diagnostic tracing | |
US6698016B1 (en) | Method for injecting code into another process | |
CN107515808B (zh) | 日志记录方法、装置、计算机设备和计算机可读存储介质 | |
US7131115B2 (en) | Unwinding instrumented program code | |
US20070168979A1 (en) | Transparent debugging of programs in dynamic translation systems | |
US6966051B2 (en) | Automatically generated symbol-based debug script executable by a debug program for software debugging | |
US20110161956A1 (en) | Heap dump object identification in a heap dump analysis tool | |
US20080270842A1 (en) | Computer operating system handling of severe hardware errors | |
US4520440A (en) | Test verification of processor architecture having a partial instruction set | |
US20050060689A1 (en) | Method, apparatus, and computer program product for implementing enhanced debugger graphical user interface functions | |
US9122791B2 (en) | Identifying a storage location for a storage address requested during debugging | |
KR20190135337A (ko) | 메모리 오류를 검출하는 방법 및 시스템 | |
US5819024A (en) | Fault analysis system | |
Erickson | Memory leak detection in embedded systems | |
JP3202708B2 (ja) | ソフトウェアのエラー処理テストシステム、テスト方法及びテストプログラムの記録媒体 | |
US20090172368A1 (en) | Hardware Based Runtime Error Detection | |
EP0801348A1 (en) | Method of monitoring the operation of a computer | |
CN113760692A (zh) | 日志获取方法、装置及设备 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
US8042176B2 (en) | Computer readable medium on which is stored a program for preventing the unauthorized use of program data | |
US20240311276A1 (en) | Method for testing a computer program | |
JP3399741B2 (ja) | ダンプデータの表示方法及び障害解析システム | |
JP2007133590A (ja) | エラー処理テスト方法 | |
JP3101458B2 (ja) | プログラム異常検出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010522 |
|
LAPS | Cancellation because of no payment of annual fees |