JPH05224992A - プログラムテスト装置 - Google Patents
プログラムテスト装置Info
- Publication number
- JPH05224992A JPH05224992A JP4059343A JP5934392A JPH05224992A JP H05224992 A JPH05224992 A JP H05224992A JP 4059343 A JP4059343 A JP 4059343A JP 5934392 A JP5934392 A JP 5934392A JP H05224992 A JPH05224992 A JP H05224992A
- Authority
- JP
- Japan
- Prior art keywords
- program
- block
- test
- under test
- file
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 オンライン処理稼動中のデータベースを更新
する1又は複数のプログラムのテストを稼動中のオンラ
イン処理に影響を与えることなく同時に行なう。 【構成】 被テストプログラム30が外部記憶装置上の
データベース40に対してブロックの書き出しを要求し
た場合にブロックの内容をデータベース40に書き出さ
ずにメモリ中に保存し、読み込みを要求した場合に、要
求が最初の読み込み要求である場合ファイルからの読み
込みを行い、2番目以降の読み込み要求であった場合に
はメモリ中に保存されているブロックの内容を読み込み
結果として渡すことにより、実データベース40の内容
を変更せずにプログラムのテストを行う。
する1又は複数のプログラムのテストを稼動中のオンラ
イン処理に影響を与えることなく同時に行なう。 【構成】 被テストプログラム30が外部記憶装置上の
データベース40に対してブロックの書き出しを要求し
た場合にブロックの内容をデータベース40に書き出さ
ずにメモリ中に保存し、読み込みを要求した場合に、要
求が最初の読み込み要求である場合ファイルからの読み
込みを行い、2番目以降の読み込み要求であった場合に
はメモリ中に保存されているブロックの内容を読み込み
結果として渡すことにより、実データベース40の内容
を変更せずにプログラムのテストを行う。
Description
【0001】
【産業上の利用分野】本発明は、外部記憶装置への入出
力を行うプログラムのテスト/デバッグを行なうための
プログラムテスト装置に関する。特に、大容量のファイ
ルを扱うプログラムを同時に複数個テスト/デバッグし
なければならないオンラインのデータベース処理をテス
ト/デバッグする場合に好適である。
力を行うプログラムのテスト/デバッグを行なうための
プログラムテスト装置に関する。特に、大容量のファイ
ルを扱うプログラムを同時に複数個テスト/デバッグし
なければならないオンラインのデータベース処理をテス
ト/デバッグする場合に好適である。
【0002】
【従来の技術】プログラム開発においては、プログラム
のテストは不可欠であり、テスト方法の優劣が開発した
プログラムの信頼性、開発工数に大きな影響を与える。
のテストは不可欠であり、テスト方法の優劣が開発した
プログラムの信頼性、開発工数に大きな影響を与える。
【0003】図2はプログラムテスト装置の概略構成を
示したものである。テストの対象となるプログラム(被
テストプログラム30)はメモリ20中に読み込まれて
いる。被テストプログラム30がCPU10によって実
行されることにより、テストが実施される。実行状態を
確認するための情報はディスプレイ端末50等に表示さ
れる。通常、テストプログラムはディスク装置等のデー
タベース40のデータを使用して実行される。
示したものである。テストの対象となるプログラム(被
テストプログラム30)はメモリ20中に読み込まれて
いる。被テストプログラム30がCPU10によって実
行されることにより、テストが実施される。実行状態を
確認するための情報はディスプレイ端末50等に表示さ
れる。通常、テストプログラムはディスク装置等のデー
タベース40のデータを使用して実行される。
【0004】プログラムのテストの中でもオンライン処
理、データベース処理のテストは特に重要である。これ
らの処理は極めて信頼性を要求されるシステムであるた
め、プログラムのテスト/デバッグは総合的に繰返し行
わねばならない。さらに、テスト/デバッグの最終段階
では実稼動中の状態で長時間テストを繰り返すことによ
り、システムの信頼性を確保している。一般にこのよう
な場合には、オンライン処理が稼動中であり、データベ
ースも常に更新されている。オンライン処理用の計算機
システム1系統とテスト/デバッグ用の計算機システム
1系統、都合2系統のシステムを用意することはコスト
や設置場所の観点からほとんど不可能である。そのた
め、この様な環境でオンライントランザクション用のア
プリケーションプログラムをテストする環境を設定する
ことは容易ではない。
理、データベース処理のテストは特に重要である。これ
らの処理は極めて信頼性を要求されるシステムであるた
め、プログラムのテスト/デバッグは総合的に繰返し行
わねばならない。さらに、テスト/デバッグの最終段階
では実稼動中の状態で長時間テストを繰り返すことによ
り、システムの信頼性を確保している。一般にこのよう
な場合には、オンライン処理が稼動中であり、データベ
ースも常に更新されている。オンライン処理用の計算機
システム1系統とテスト/デバッグ用の計算機システム
1系統、都合2系統のシステムを用意することはコスト
や設置場所の観点からほとんど不可能である。そのた
め、この様な環境でオンライントランザクション用のア
プリケーションプログラムをテストする環境を設定する
ことは容易ではない。
【0005】これを可能とするため、プログラムテスト
環境を提供する一連のプログラム群が開発されている。
例えば、日立製作所のプログラムプロダクトである「V
OS3 DCCM3 ユーザアプリケーションプログラ
ムテスタ DCCM3/AT3」はシステム稼動中のオ
ンライン環境下で総合的な動作確認テストをするための
支援プログラムである。
環境を提供する一連のプログラム群が開発されている。
例えば、日立製作所のプログラムプロダクトである「V
OS3 DCCM3 ユーザアプリケーションプログラ
ムテスタ DCCM3/AT3」はシステム稼動中のオ
ンライン環境下で総合的な動作確認テストをするための
支援プログラムである。
【0006】DCCM3/AT3ではテスト開始時に、
テストモードのトランザクションあるいはアプリケーシ
ョンプログラムが更新したデータベースを、テスト終了
時に使用前の状態に戻すかどうかを指定する。テスト終
了時には、データベースを書き戻す指定の場合にはデー
タベースを回復する。以上の処理は、「VOS3 DC
CM3 ユーザアプリケーションプログラムテスタ D
CCM3/AT3」8090−6−366に記述されて
いる。
テストモードのトランザクションあるいはアプリケーシ
ョンプログラムが更新したデータベースを、テスト終了
時に使用前の状態に戻すかどうかを指定する。テスト終
了時には、データベースを書き戻す指定の場合にはデー
タベースを回復する。以上の処理は、「VOS3 DC
CM3 ユーザアプリケーションプログラムテスタ D
CCM3/AT3」8090−6−366に記述されて
いる。
【0007】
【発明が解決しようとする課題】上記従来技術は、デー
タベースを書き戻す機能を提供することにより、オンラ
イン稼動中に、オンライントランザクション処理用アプ
リケーションプログラムを繰返しテストする環境を提供
している。しかし、上記従来技術では以下の問題点があ
る。
タベースを書き戻す機能を提供することにより、オンラ
イン稼動中に、オンライントランザクション処理用アプ
リケーションプログラムを繰返しテストする環境を提供
している。しかし、上記従来技術では以下の問題点があ
る。
【0008】(1)データベースを更新するプログラム
をテストする場合にはオンライン処理を中断する必要が
ある。データベースはオンライン処理中のものを使用す
るため、データベースを更新するプログラムのテスト時
にはデータの矛盾を起こさぬよう、オンライン処理は中
断する必要がある。 (2)複数のプログラムを同時にはテストできない。テ
ストの対象となるプログラムが複数本存在する場合でも
データベースは一つであるためそれらを同時にテストす
ることはできない。 (3)テストプログラム間のデータの引継ぎができな
い。プログラムあるいはトランザクション毎にデータベ
ースの書きも度しを行うため、更新したデータベースを
プログラム間で引き継ぐ場合のテストをすることはでき
ない。
をテストする場合にはオンライン処理を中断する必要が
ある。データベースはオンライン処理中のものを使用す
るため、データベースを更新するプログラムのテスト時
にはデータの矛盾を起こさぬよう、オンライン処理は中
断する必要がある。 (2)複数のプログラムを同時にはテストできない。テ
ストの対象となるプログラムが複数本存在する場合でも
データベースは一つであるためそれらを同時にテストす
ることはできない。 (3)テストプログラム間のデータの引継ぎができな
い。プログラムあるいはトランザクション毎にデータベ
ースの書きも度しを行うため、更新したデータベースを
プログラム間で引き継ぐ場合のテストをすることはでき
ない。
【0009】本発明の目的は、オンライン処理稼動中に
データベースを更新するプログラムのテストを行なえる
ようにすることである。本発明の他の目的は、同一のデ
ータベースをアクセスする複数のプログラムを同時にテ
ストできるようにすることである。本発明の更に他の目
的は、片方のテストプログラムが更新したデータベース
の内容を他方のテストプログラムが引き継いでテストを
実行できるようにすることである。
データベースを更新するプログラムのテストを行なえる
ようにすることである。本発明の他の目的は、同一のデ
ータベースをアクセスする複数のプログラムを同時にテ
ストできるようにすることである。本発明の更に他の目
的は、片方のテストプログラムが更新したデータベース
の内容を他方のテストプログラムが引き継いでテストを
実行できるようにすることである。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、被テストプログラムが外部記憶装置上の
ファイルに対してブロックの書き出しを要求した場合
に、該ブロックの内容を該ファイルへは書き出さずに主
記憶または仮想記憶内に保存する手段と、該被テストプ
ログラムが前記ファイルの任意のブロックの読み込みを
要求した場合に、該読み込み要求が該ブロックに対する
該被テストプログラムからの最初の読み込み要求である
場合、または、過去に該被テストプログラムから該ブロ
ックに対して書き出しを要求していない場合には、前記
ファイルの該ブロックからの読み込みを行う手段と、該
被テストプログラムが前記ファイルの任意のブロックの
読み込みを要求した場合に、該読み込み要求が該ブロッ
クに対する該被テストプログラムからの2番目以降の読
み込み要求であった場合には前記主記憶または仮想記憶
内に保存しておいた該ブロックの内容を前記ファイルの
該ブロックからの読み込みの結果として被テストプログ
ラムに渡す手段と、該被テストプログラムの終了時に、
前記主記憶または仮想記憶上に保存しておいた該ブロッ
クの内容を破棄する手段、とを設けている。
め、本発明は、被テストプログラムが外部記憶装置上の
ファイルに対してブロックの書き出しを要求した場合
に、該ブロックの内容を該ファイルへは書き出さずに主
記憶または仮想記憶内に保存する手段と、該被テストプ
ログラムが前記ファイルの任意のブロックの読み込みを
要求した場合に、該読み込み要求が該ブロックに対する
該被テストプログラムからの最初の読み込み要求である
場合、または、過去に該被テストプログラムから該ブロ
ックに対して書き出しを要求していない場合には、前記
ファイルの該ブロックからの読み込みを行う手段と、該
被テストプログラムが前記ファイルの任意のブロックの
読み込みを要求した場合に、該読み込み要求が該ブロッ
クに対する該被テストプログラムからの2番目以降の読
み込み要求であった場合には前記主記憶または仮想記憶
内に保存しておいた該ブロックの内容を前記ファイルの
該ブロックからの読み込みの結果として被テストプログ
ラムに渡す手段と、該被テストプログラムの終了時に、
前記主記憶または仮想記憶上に保存しておいた該ブロッ
クの内容を破棄する手段、とを設けている。
【0011】あるいは、被テストプログラムが外部記憶
装置上のファイルに対してブロックの書き出しを要求し
た場合に、該ブロックの内容を該ファイルへは書き出さ
ずに拡張記憶内に保存する手段と、該被テストプログラ
ムが前記ファイルの任意のブロックの読み込みを要求し
た場合に、該読み込み要求が該ブロックに対する該被テ
ストプログラムからの最初の読み込み要求である場合、
または、過去に該被テストプログラムから該ブロックに
対して書き出しを要求していない場合には、前記ファイ
ルの該ブロックからの読み込みを行う手段と、該被テス
トプログラムが前記ファイルの任意のブロックの読み込
みを要求した場合に、該読み込み要求が該ブロックに対
する該被テストプログラムからの2番目以降の読み込み
要求であった場合には前記拡張記憶内に保存しておいた
該ブロックの内容を前記ファイルの該ブロックからの読
み込みの結果として被テストプログラムに渡す手段と、
該被テストプログラムの終了時に、前記拡張記憶上に保
存しておいた該ブロックの内容を破棄する手段、とを設
けている。
装置上のファイルに対してブロックの書き出しを要求し
た場合に、該ブロックの内容を該ファイルへは書き出さ
ずに拡張記憶内に保存する手段と、該被テストプログラ
ムが前記ファイルの任意のブロックの読み込みを要求し
た場合に、該読み込み要求が該ブロックに対する該被テ
ストプログラムからの最初の読み込み要求である場合、
または、過去に該被テストプログラムから該ブロックに
対して書き出しを要求していない場合には、前記ファイ
ルの該ブロックからの読み込みを行う手段と、該被テス
トプログラムが前記ファイルの任意のブロックの読み込
みを要求した場合に、該読み込み要求が該ブロックに対
する該被テストプログラムからの2番目以降の読み込み
要求であった場合には前記拡張記憶内に保存しておいた
該ブロックの内容を前記ファイルの該ブロックからの読
み込みの結果として被テストプログラムに渡す手段と、
該被テストプログラムの終了時に、前記拡張記憶上に保
存しておいた該ブロックの内容を破棄する手段、とを設
けている。
【0012】また、プログラムのテストに先立って該当
プログラムが被テストプログラムであることを登録する
手段と、プログラムが入出力要求を発行した際に、該プ
ログラムが被テストプログラムとなっていることを前記
登録した内容により識別する手段を設けている。
プログラムが被テストプログラムであることを登録する
手段と、プログラムが入出力要求を発行した際に、該プ
ログラムが被テストプログラムとなっていることを前記
登録した内容により識別する手段を設けている。
【0013】さらに、前記ブロックの内容を保存するた
めの領域を被テストプログラム毎に個別に確保する手段
を設けている。
めの領域を被テストプログラム毎に個別に確保する手段
を設けている。
【0014】また、さらに、被テストプログラムをグル
ープ化し、前記ブロックの内容を保存するための領域を
前記グループ毎に個別に確保する手段を設けている。
ープ化し、前記ブロックの内容を保存するための領域を
前記グループ毎に個別に確保する手段を設けている。
【0015】
【作用】本発明においては、被テストプログラムが外部
記憶装置上のファイルに対してブロックの書き出しを要
求した場合には、該ブロックの内容を主記憶または仮想
記憶中に保存して該ファイルへの書き出しは実行しない
ためテスト中に実データベースが更新されることはな
い。
記憶装置上のファイルに対してブロックの書き出しを要
求した場合には、該ブロックの内容を主記憶または仮想
記憶中に保存して該ファイルへの書き出しは実行しない
ためテスト中に実データベースが更新されることはな
い。
【0016】また、被テストプログラムが前記ファイル
の任意のブロックの読み込みを要求した場合に、該読み
込み要求が該ブロックに対する該被テストプログラムか
らの最初の読み込み要求である場合、または、過去に該
被テストプログラムから該ブロックに対して書き出しを
要求していない場合には、前記ファイルの該ブロックか
らの読み込みを行うステップを設けているため、実デー
タベースの内容を使用してプログラムのテストを実施す
ることができる。
の任意のブロックの読み込みを要求した場合に、該読み
込み要求が該ブロックに対する該被テストプログラムか
らの最初の読み込み要求である場合、または、過去に該
被テストプログラムから該ブロックに対して書き出しを
要求していない場合には、前記ファイルの該ブロックか
らの読み込みを行うステップを設けているため、実デー
タベースの内容を使用してプログラムのテストを実施す
ることができる。
【0017】さらに、被テストプログラムが前記ファイ
ルの任意のブロックの読み込みを要求した場合に、該読
み込み要求が該ブロックに対する該被テストプログラム
からの2番目以降の読み込み要求であった場合には前記
主記憶または仮想記憶中に保存しておいた該ブロックの
内容を前記ファイルの該ブロックからの読み込みの結果
として被テストプログラムに渡すステップを設けている
ため、被テストプログラムが更新したブロックは、該当
被テストプログラムからはあたかも実際にデータベース
を更新したかのようにテストを進めることができる。
ルの任意のブロックの読み込みを要求した場合に、該読
み込み要求が該ブロックに対する該被テストプログラム
からの2番目以降の読み込み要求であった場合には前記
主記憶または仮想記憶中に保存しておいた該ブロックの
内容を前記ファイルの該ブロックからの読み込みの結果
として被テストプログラムに渡すステップを設けている
ため、被テストプログラムが更新したブロックは、該当
被テストプログラムからはあたかも実際にデータベース
を更新したかのようにテストを進めることができる。
【0018】被テストプログラムの終了時には、主記憶
または仮想記憶上に保存しておいた該ブロックの内容を
破棄するため、被テストプログラム毎に独立した環境で
テストを実施することが可能となる。
または仮想記憶上に保存しておいた該ブロックの内容を
破棄するため、被テストプログラム毎に独立した環境で
テストを実施することが可能となる。
【0019】また、ブロック待避領域として高速大容量
の拡張記憶を用いることとしたため、多くのデータベー
スを更新するプログラムのテストも可能である。
の拡張記憶を用いることとしたため、多くのデータベー
スを更新するプログラムのテストも可能である。
【0020】また、プログラムのテストに先立って該当
プログラムが被テストプログラムであることを登録し、
プログラムが入出力要求を発行した際に、該プログラム
が被テストプログラムとなっていることを前記登録した
内容から識別するようしたことにより、実行中のプログ
ラムの中からテストを実施中のもののみに対して上記し
た入出力処理を行うことができるため、オンラインシス
テムが稼動中の場合にもテストを行うことができる。
プログラムが被テストプログラムであることを登録し、
プログラムが入出力要求を発行した際に、該プログラム
が被テストプログラムとなっていることを前記登録した
内容から識別するようしたことにより、実行中のプログ
ラムの中からテストを実施中のもののみに対して上記し
た入出力処理を行うことができるため、オンラインシス
テムが稼動中の場合にもテストを行うことができる。
【0021】さらに、前記ブロックの内容を保存するた
めの領域を被テストプログラム毎に個別に確保するよう
にしたため、複数個のテストプログラムを同時にテスト
することができる。
めの領域を被テストプログラム毎に個別に確保するよう
にしたため、複数個のテストプログラムを同時にテスト
することができる。
【0022】また、さらに、被テストプログラムをグル
ープ化し、前記ブロックの内容を保存するための領域を
グループ毎に個別に確保するようにしたため、一連のテ
ストプログラムがデータを引き継ぎながらテストする環
境を設定することが可能である。
ープ化し、前記ブロックの内容を保存するための領域を
グループ毎に個別に確保するようにしたため、一連のテ
ストプログラムがデータを引き継ぎながらテストする環
境を設定することが可能である。
【0023】
【実施例】図1は本発明のプログラムテスト装置を用い
て被テストプログラム30をテストしている状態の概要
を示したものである。被テストプログラム30はメモリ
20(図2)にローディング済みである。被テストプロ
グラムがデータベース40に対して入出力要求を発行し
た場合には入出力処理手段60(入出力処理プログラ
ム)が起動される。要求が入力要求であり、かつ、要求
されたブロックが被テストプログラムから以前に要求さ
れていない場合には、データベース40からの読み込み
を行う。しかし、要求されたブロックが以前に書き出し
要求されたものである場合にはブロック退避領域90か
ら該当ブロックの内容を取り出して、入力処理の結果と
して被テストプログラム30に渡す。要求が出力要求の
場合には、ブロックをデータベース40に書き出す代わ
りにブロックの内容をブロック退避領域90に書き出
す。ブロック退避領域90は仮想記憶、または、主記憶
上に確保する。また、主記憶の他に高速アクセス可能な
拡張記憶を設け、該拡張記憶に前記ブロック退避領域9
0を確保するようにしてもよい。
て被テストプログラム30をテストしている状態の概要
を示したものである。被テストプログラム30はメモリ
20(図2)にローディング済みである。被テストプロ
グラムがデータベース40に対して入出力要求を発行し
た場合には入出力処理手段60(入出力処理プログラ
ム)が起動される。要求が入力要求であり、かつ、要求
されたブロックが被テストプログラムから以前に要求さ
れていない場合には、データベース40からの読み込み
を行う。しかし、要求されたブロックが以前に書き出し
要求されたものである場合にはブロック退避領域90か
ら該当ブロックの内容を取り出して、入力処理の結果と
して被テストプログラム30に渡す。要求が出力要求の
場合には、ブロックをデータベース40に書き出す代わ
りにブロックの内容をブロック退避領域90に書き出
す。ブロック退避領域90は仮想記憶、または、主記憶
上に確保する。また、主記憶の他に高速アクセス可能な
拡張記憶を設け、該拡張記憶に前記ブロック退避領域9
0を確保するようにしてもよい。
【0024】入出力要求を発行したプログラムが被テス
トプログラムであるか否を判定するためにテストプログ
ラム管理テーブル70を使用する。また、データベース
40が被テストプログラム30からアクセスされている
かを識別するためにファイル管理テーブル75を、デー
タベース40中の個々のブロックが既に読み込まれてい
るか、書き出し要求が発行されているかを知るためにブ
ロック管理テーブル80を使用する。
トプログラムであるか否を判定するためにテストプログ
ラム管理テーブル70を使用する。また、データベース
40が被テストプログラム30からアクセスされている
かを識別するためにファイル管理テーブル75を、デー
タベース40中の個々のブロックが既に読み込まれてい
るか、書き出し要求が発行されているかを知るためにブ
ロック管理テーブル80を使用する。
【0025】テスト終了時には、ブロック退避領域90
に退避された該当テストに関連する全てのブロックの内
容を破棄して、各種テーブル70、75、80をテスト
前の状態に戻す。
に退避された該当テストに関連する全てのブロックの内
容を破棄して、各種テーブル70、75、80をテスト
前の状態に戻す。
【0026】上記の処理によって、データベースの内容
を変更することなくプログラムのテストが可能となる。
ブロック退避領域を被テストプログラム毎に用意するこ
とにより同一のデータベースをアクセスする複数の被テ
ストプログラムを同時にテスト/デバッグすることがで
きる。
を変更することなくプログラムのテストが可能となる。
ブロック退避領域を被テストプログラム毎に用意するこ
とにより同一のデータベースをアクセスする複数の被テ
ストプログラムを同時にテスト/デバッグすることがで
きる。
【0027】次に、本発明によるプログラムテスト手順
の概要を図3を使用して説明する。まず、テストに先立
って被テストプログラム名称をテストプログラム管理テ
ーブル70に登録する(ステップ301)。これによ
り、入出力処理手段60が被テストプログラムを識別す
ることが可能となる。その後、被テストプログラム30
を実行する(ステップ302)。被テストプログラム3
0はデータベース40に対して入出力要求を発行する
(ステップ303)。入出力要求は入出力処理手段60
が処理する。まず要求が入力要求であるか出力要求であ
るのかを判定する(ステップ304)。入力要求である
場合には入力処理を行い(ステップ305)、出力要求
である場合には出力処理を行う(ステップ306)。被
テストプログラムが終了したか否かを判定し(ステップ
307)、終了の場合にはテーブルの解放等の終了処理
を行う(ステップ308)。被テストプログラム30が
終了していない場合にはステップ302に戻って被テス
トプログラム30の実行を続ける。
の概要を図3を使用して説明する。まず、テストに先立
って被テストプログラム名称をテストプログラム管理テ
ーブル70に登録する(ステップ301)。これによ
り、入出力処理手段60が被テストプログラムを識別す
ることが可能となる。その後、被テストプログラム30
を実行する(ステップ302)。被テストプログラム3
0はデータベース40に対して入出力要求を発行する
(ステップ303)。入出力要求は入出力処理手段60
が処理する。まず要求が入力要求であるか出力要求であ
るのかを判定する(ステップ304)。入力要求である
場合には入力処理を行い(ステップ305)、出力要求
である場合には出力処理を行う(ステップ306)。被
テストプログラムが終了したか否かを判定し(ステップ
307)、終了の場合にはテーブルの解放等の終了処理
を行う(ステップ308)。被テストプログラム30が
終了していない場合にはステップ302に戻って被テス
トプログラム30の実行を続ける。
【0028】図4は本発明を使用したプログラムテスト
実施時のテーブル構成及びテーブル関連図を示したもの
である。テストプログラム管理テーブル70はテストの
対象となっているプログラム(被テストプログラム)を
識別するためのテーブルであり、全ての被テストプログ
ラムが登録されている。各エントリ110には被テスト
プログラム名111および該当するファイル管理テーブ
ルアドレス112が登録されている。図3の例では3つ
のテストプログラム”PROG1”、”PROG
2”、”PROG3”が被テストプログラムとして登録
されている。
実施時のテーブル構成及びテーブル関連図を示したもの
である。テストプログラム管理テーブル70はテストの
対象となっているプログラム(被テストプログラム)を
識別するためのテーブルであり、全ての被テストプログ
ラムが登録されている。各エントリ110には被テスト
プログラム名111および該当するファイル管理テーブ
ルアドレス112が登録されている。図3の例では3つ
のテストプログラム”PROG1”、”PROG
2”、”PROG3”が被テストプログラムとして登録
されている。
【0029】ファイル管理テーブル75はテストプログ
ラム管理テーブル70のファイル管理テーブルアドレス
112からポイントされており、被テストプログラム名
111で示される被テストプログラムがアクセスする全
てのファイルが登録されている。ファイル名称121に
はアクセスされるファイルの名称が登録されており、ブ
ロック管理テーブルアドレス122は該当するファイル
のブロック管理テーブル80のアドレスを示している。
図4の例では、被テストプログラム”PROG1”が使
用中のファイルは”file1”、”file2”、”
file3”の3つである。
ラム管理テーブル70のファイル管理テーブルアドレス
112からポイントされており、被テストプログラム名
111で示される被テストプログラムがアクセスする全
てのファイルが登録されている。ファイル名称121に
はアクセスされるファイルの名称が登録されており、ブ
ロック管理テーブルアドレス122は該当するファイル
のブロック管理テーブル80のアドレスを示している。
図4の例では、被テストプログラム”PROG1”が使
用中のファイルは”file1”、”file2”、”
file3”の3つである。
【0030】ブロック管理テーブル80はファイルの各
ブロックの状態を保持している。各々のブロックについ
て該当ブロックに対する書き込み要求が発行されたか否
かを示す書き出しフラグ131、ブロックの内容を保持
する領域のアドレスであるメモリアドレス132を保持
している。図4の例では、”file1”はn個のブロ
ックからなっており、ブロック番号1番、4番、n番に
ついては既に書き出し要求が発行されている。
ブロックの状態を保持している。各々のブロックについ
て該当ブロックに対する書き込み要求が発行されたか否
かを示す書き出しフラグ131、ブロックの内容を保持
する領域のアドレスであるメモリアドレス132を保持
している。図4の例では、”file1”はn個のブロ
ックからなっており、ブロック番号1番、4番、n番に
ついては既に書き出し要求が発行されている。
【0031】ブロック待避領域90は書き出し要求のあ
ったブロックの内容を保持しているメモリ領域である。
図4の例では、ブロック番号1番の内容は領域141
が、ブロック番号4番の内容は領域142が、ブロック
番号n番の内容は領域143がそれぞれ保持している。
ったブロックの内容を保持しているメモリ領域である。
図4の例では、ブロック番号1番の内容は領域141
が、ブロック番号4番の内容は領域142が、ブロック
番号n番の内容は領域143がそれぞれ保持している。
【0032】図5に入力処理のフローチャートを示す。
ここでの処理は、被テストプログラムが入力要求を発行
した際に、その要求がブロックに対する最初の入力要求
であるか否かに応じて実データベース40からの入力、
または、ブロック待避領域90からの複写を実施してい
る。
ここでの処理は、被テストプログラムが入力要求を発行
した際に、その要求がブロックに対する最初の入力要求
であるか否かに応じて実データベース40からの入力、
または、ブロック待避領域90からの複写を実施してい
る。
【0033】最初に、入力要求を発行したプログラムが
被テストプログラムであるか否かを判定する。テストプ
ログラム管理テーブル70の全てのエントリを検索し
て、入力要求を発行したプログラム名が被テストプログ
ラム名111に登録されているかを調べる(ステップ5
01)。登録されている場合には入力要求を発行したプ
ログラムは被テストプログラムである(ステップ50
2)。被テストプログラムである場合には、テストプロ
グラム管理テーブル70のファイル管理テーブルアドレ
ス112より、該当プログラムに対するファイル管理テ
ーブル75のアドレスを取得する(ステップ503)。
被テストプログラムであるか否かを判定する。テストプ
ログラム管理テーブル70の全てのエントリを検索し
て、入力要求を発行したプログラム名が被テストプログ
ラム名111に登録されているかを調べる(ステップ5
01)。登録されている場合には入力要求を発行したプ
ログラムは被テストプログラムである(ステップ50
2)。被テストプログラムである場合には、テストプロ
グラム管理テーブル70のファイル管理テーブルアドレ
ス112より、該当プログラムに対するファイル管理テ
ーブル75のアドレスを取得する(ステップ503)。
【0034】次に、入力を要求されているファイルに関
する情報を取得する。ファイル管理テーブル75を検索
して入力要求の対象となっているファイル名がファイル
名称121に登録されているエントリを探す(ステップ
504)。エントリが発見できない場合には、該当被テ
ストプログラムからの該当ファイルに対する最初の入出
力要求であるため、ファイル管理テーブルに該当ファイ
ルを管理するためのエントリを追加する(ステップ50
5)(図6参照)。エントリが発見できた場合にはブロ
ック管理テーブルアドレス122から該当ファイルに対
するブロック管理テーブル80のアドレスを取得する
(ステップ507)。
する情報を取得する。ファイル管理テーブル75を検索
して入力要求の対象となっているファイル名がファイル
名称121に登録されているエントリを探す(ステップ
504)。エントリが発見できない場合には、該当被テ
ストプログラムからの該当ファイルに対する最初の入出
力要求であるため、ファイル管理テーブルに該当ファイ
ルを管理するためのエントリを追加する(ステップ50
5)(図6参照)。エントリが発見できた場合にはブロ
ック管理テーブルアドレス122から該当ファイルに対
するブロック管理テーブル80のアドレスを取得する
(ステップ507)。
【0035】ブロック管理テーブル80の要求されたブ
ロック番号に相当するエントリの書き出しフラグ131
を調べる(ステップ508)。書き出しフラグ131が
onである場合には、要求されたブロックに対して既に
書き込み要求が処理されている(ステップ509)。該
当エントリのブロック待避アドレス132で指定される
メモリ20上の内容を入力の結果として、入力要求元の
被テストプログラムに返す(ステップ510)。ステッ
プ509で該当ブロックに対する書き出し処理が未実施
である場合、または、テストプログラム管理テーブルに
入力要求を発行したプログラム名が登録されていない、
すなわち該当プログラムが被テストプログラムでない場
合には要求通り実データベース40よりブロックを読み
込む(ステップ511)。以上の処理により、被テスト
プログラムが更新したデータベースのブロックについて
は、該当被テストプログラムからはあたかも実際にデー
タベースを更新したかのようにプログラムのテストを進
めることができ、被テストプログラムが更新していない
データベースのブロックについては、実データベースの
内容を使用してプログラムのテストを実施することがで
きる。
ロック番号に相当するエントリの書き出しフラグ131
を調べる(ステップ508)。書き出しフラグ131が
onである場合には、要求されたブロックに対して既に
書き込み要求が処理されている(ステップ509)。該
当エントリのブロック待避アドレス132で指定される
メモリ20上の内容を入力の結果として、入力要求元の
被テストプログラムに返す(ステップ510)。ステッ
プ509で該当ブロックに対する書き出し処理が未実施
である場合、または、テストプログラム管理テーブルに
入力要求を発行したプログラム名が登録されていない、
すなわち該当プログラムが被テストプログラムでない場
合には要求通り実データベース40よりブロックを読み
込む(ステップ511)。以上の処理により、被テスト
プログラムが更新したデータベースのブロックについて
は、該当被テストプログラムからはあたかも実際にデー
タベースを更新したかのようにプログラムのテストを進
めることができ、被テストプログラムが更新していない
データベースのブロックについては、実データベースの
内容を使用してプログラムのテストを実施することがで
きる。
【0036】図6にファイル管理テーブル75にエント
リを追加する処理(ステップ506)のフローチャート
を示す。まず空きのエントリを取得する。ファイル管理
テーブル75の全てのエントリを検索し、ファイル名称
121にファイル名が登録されていないエントリを探す
(ステップ601)。エントリが見つかった場合にはそ
のエントリを使用する(ステップ602)。検索したエ
ントリのファイル名称121に登録するファイルの名称
を書き込む(ステップ603)。ブロック管理テーブル
80を割当てて、そのアドレスをステップ601で探し
たブロック管理テーブルアドレス122にかきこむ(ス
テップ604)。割立てたブロック管理テーブル80の
全てのエントリに対して書き出しフラグ131をoff
(未書き出し)とし、メモリアドレス132を0(ブロ
ック待避領域未割当て)とする(ステップ605)。
リを追加する処理(ステップ506)のフローチャート
を示す。まず空きのエントリを取得する。ファイル管理
テーブル75の全てのエントリを検索し、ファイル名称
121にファイル名が登録されていないエントリを探す
(ステップ601)。エントリが見つかった場合にはそ
のエントリを使用する(ステップ602)。検索したエ
ントリのファイル名称121に登録するファイルの名称
を書き込む(ステップ603)。ブロック管理テーブル
80を割当てて、そのアドレスをステップ601で探し
たブロック管理テーブルアドレス122にかきこむ(ス
テップ604)。割立てたブロック管理テーブル80の
全てのエントリに対して書き出しフラグ131をoff
(未書き出し)とし、メモリアドレス132を0(ブロ
ック待避領域未割当て)とする(ステップ605)。
【0037】ステップ601にてエントリが発見できな
かった場合には(ステップ602)、現在のファイル管
理テーブルより大きい新たなファイル管理テーブルを割
当て、現ファイル管理テーブルの内容を複写した後、現
ファイル管理テーブルを削除して新たに割当てたファイ
ル管理テーブルを現ファイル管理テーブル75とする
(ステップ606)。以上の処理により、被テストプロ
グラム30が新たなファイルに対してアクセスを行った
場合にも、ファイル管理テーブル75のエントリを拡張
することにより、入出力の管理を行うことが可能であ
る。
かった場合には(ステップ602)、現在のファイル管
理テーブルより大きい新たなファイル管理テーブルを割
当て、現ファイル管理テーブルの内容を複写した後、現
ファイル管理テーブルを削除して新たに割当てたファイ
ル管理テーブルを現ファイル管理テーブル75とする
(ステップ606)。以上の処理により、被テストプロ
グラム30が新たなファイルに対してアクセスを行った
場合にも、ファイル管理テーブル75のエントリを拡張
することにより、入出力の管理を行うことが可能であ
る。
【0038】次に図7を用いて出力処理のフローを説明
する。まず、テストプログラム管理テーブル70を検索
して出力要求を発行したプログラムの名称が被テストプ
ログラム名111に登録されているか否かを調べる(ス
テップ701)。登録されている場合には出力要求を発
行したプログラムは被テストプログラムである(ステッ
プ702)。被テストプログラムからの入力要求である
場合にはテストプログラム管理テーブル70のステップ
701で検索したエントリのファイル管理テーブルアド
レス112から該当プログラムに対するファイル管理テ
ーブル75のアドレスを取得する(ステップ703)。
ファイル管理テーブル75を検索して、入力要求の対象
となっているファイル名が登録されているファイル名称
121を探す(ステップ704)。ファイル名称121
が入力要求されたファイル名となっているエントリが発
見できない場合には、該当ファイルに対する該当被テス
トプログラムからの最初の出力要求である(ステップ7
05)。そこで、該当ファイルに対するエントリを追加
する(ステップ506)。
する。まず、テストプログラム管理テーブル70を検索
して出力要求を発行したプログラムの名称が被テストプ
ログラム名111に登録されているか否かを調べる(ス
テップ701)。登録されている場合には出力要求を発
行したプログラムは被テストプログラムである(ステッ
プ702)。被テストプログラムからの入力要求である
場合にはテストプログラム管理テーブル70のステップ
701で検索したエントリのファイル管理テーブルアド
レス112から該当プログラムに対するファイル管理テ
ーブル75のアドレスを取得する(ステップ703)。
ファイル管理テーブル75を検索して、入力要求の対象
となっているファイル名が登録されているファイル名称
121を探す(ステップ704)。ファイル名称121
が入力要求されたファイル名となっているエントリが発
見できない場合には、該当ファイルに対する該当被テス
トプログラムからの最初の出力要求である(ステップ7
05)。そこで、該当ファイルに対するエントリを追加
する(ステップ506)。
【0039】ファイル管理テーブル75のブロック管理
テーブルアドレス122から出力要求の対象となってい
るファイルのブロック管理テーブル80のアドレスを取
得する(ステップ707)。ブロック管理テーブル80
の要求されたブロック番号に対応するエントリの書き出
しフラグ131を調べる(ステップ708)。書き出し
フラグ131がoffである場合には該当ブロックに対
しては該当被テストプログラムからは過去に出力要求が
発行されておらず、該当ブロックに対するブロック待避
領域は割当てられていない(ステップ709)。そこ
で、該当ブロックに対するブロック待避領域をメモリ中
に割当ててそのアドレスをメモリアドレス132に書き
込む(ステップ710)。書き出しフラグ131がon
である場合にはブロック待避領域が既に割当てられてい
るためステップ710は省略する。メモリアドレス13
2で指定されたブロック待避領域に出力要求されたデー
タを複写して退避する(ステップ711)。
テーブルアドレス122から出力要求の対象となってい
るファイルのブロック管理テーブル80のアドレスを取
得する(ステップ707)。ブロック管理テーブル80
の要求されたブロック番号に対応するエントリの書き出
しフラグ131を調べる(ステップ708)。書き出し
フラグ131がoffである場合には該当ブロックに対
しては該当被テストプログラムからは過去に出力要求が
発行されておらず、該当ブロックに対するブロック待避
領域は割当てられていない(ステップ709)。そこ
で、該当ブロックに対するブロック待避領域をメモリ中
に割当ててそのアドレスをメモリアドレス132に書き
込む(ステップ710)。書き出しフラグ131がon
である場合にはブロック待避領域が既に割当てられてい
るためステップ710は省略する。メモリアドレス13
2で指定されたブロック待避領域に出力要求されたデー
タを複写して退避する(ステップ711)。
【0040】ステップ702で出力要求を発行したプロ
グラム名が登録されていない場合には、該当プログラム
は被テストプログラムではない。そこで、要求通り指定
されたファイルの指定されたブロックにデータを書き出
す(ステップ712)。以上の処理により、出力要求を
発行したプログラムが被テストプログラムである場合に
は実ファイルにデータを書き込まずに、ブロック待避領
域にデータを退避する。このため、プログラムのテスト
中に実データベースが更新されることはない。
グラム名が登録されていない場合には、該当プログラム
は被テストプログラムではない。そこで、要求通り指定
されたファイルの指定されたブロックにデータを書き出
す(ステップ712)。以上の処理により、出力要求を
発行したプログラムが被テストプログラムである場合に
は実ファイルにデータを書き込まずに、ブロック待避領
域にデータを退避する。このため、プログラムのテスト
中に実データベースが更新されることはない。
【0041】次に、上記の入力処理、出力処理を可能と
するための初期設定処理について説明する。図8は初期
設定処理のフローチャートである。ここでは、プログラ
ムのテストに先立って該当プログラムを被テストプログ
ラムとしてテストプログラム管理テーブル70に登録
し、関連するテーブルを初期設定している。
するための初期設定処理について説明する。図8は初期
設定処理のフローチャートである。ここでは、プログラ
ムのテストに先立って該当プログラムを被テストプログ
ラムとしてテストプログラム管理テーブル70に登録
し、関連するテーブルを初期設定している。
【0042】まず、テストプログラム管理テーブル70
の空きエントリを探す。テストプログラム管理テーブル
70のエントリを探して、被テストプログラム111が
空欄(被テストプログラムが登録されていない)となっ
ているエントリを探す(ステップ801)。そのような
エントリが発見できない場合にはテストプログラム管理
テーブルの全てのエントリに被テストプログラムが登録
されているのである(ステップ802)。そこで、テス
トプログラム管理テーブルを拡張する。現在のテストプ
ログラム管理テーブルより大きな容量の領域をメモリ中
に割当てて、現テストプログラム管理テーブルの内容を
複写する。その後、現テストプログラム管理テーブルを
削除し、新たに割当てた領域をテストプログラム管理テ
ーブル70とする(ステップ805)。以上の処理の
後、ステップ801に戻る。
の空きエントリを探す。テストプログラム管理テーブル
70のエントリを探して、被テストプログラム111が
空欄(被テストプログラムが登録されていない)となっ
ているエントリを探す(ステップ801)。そのような
エントリが発見できない場合にはテストプログラム管理
テーブルの全てのエントリに被テストプログラムが登録
されているのである(ステップ802)。そこで、テス
トプログラム管理テーブルを拡張する。現在のテストプ
ログラム管理テーブルより大きな容量の領域をメモリ中
に割当てて、現テストプログラム管理テーブルの内容を
複写する。その後、現テストプログラム管理テーブルを
削除し、新たに割当てた領域をテストプログラム管理テ
ーブル70とする(ステップ805)。以上の処理の
後、ステップ801に戻る。
【0043】ステップ801で空きのエントリが発見で
きた場合には、そのエントリを使用する。発見した空き
エントリのプログラム名称111に被テストプログラム
とするプログラムの名称を格納する(ステップ80
3)。該当被テストプログラムに対するファイル管理テ
ーブル75を割り付け、ファイル名称121を空白で初
期設定し、ファイル管理テーブル75のアドレスをテス
トプログラム管理テーブルの発見したエントリのファイ
ル管理テーブルアドレス112に書き込む(ステップ8
04)。以上の処理により、テストの対象となるプログ
ラムを被テストプログラムとして登録し、関連するテー
ブルを初期設定できる。
きた場合には、そのエントリを使用する。発見した空き
エントリのプログラム名称111に被テストプログラム
とするプログラムの名称を格納する(ステップ80
3)。該当被テストプログラムに対するファイル管理テ
ーブル75を割り付け、ファイル名称121を空白で初
期設定し、ファイル管理テーブル75のアドレスをテス
トプログラム管理テーブルの発見したエントリのファイ
ル管理テーブルアドレス112に書き込む(ステップ8
04)。以上の処理により、テストの対象となるプログ
ラムを被テストプログラムとして登録し、関連するテー
ブルを初期設定できる。
【0044】次に、テスト終了時の処理を説明する。図
9は被テストプログラム30の実行が終了したときの終
了処理のフローチャートである。テストプログラム管理
テーブル70中の該当被テストプログラムが登録されて
いるエントリを求める(ステップ901)。求めたエン
トリのファイル管理テーブル112からファイル管理テ
ーブル75のアドレスを求める(ステップ902)。
9は被テストプログラム30の実行が終了したときの終
了処理のフローチャートである。テストプログラム管理
テーブル70中の該当被テストプログラムが登録されて
いるエントリを求める(ステップ901)。求めたエン
トリのファイル管理テーブル112からファイル管理テ
ーブル75のアドレスを求める(ステップ902)。
【0045】ファイル管理テーブル75の全てのエント
リに対して以下の処理を繰り返す(ステップ903)。
該当エントリのブロック管理テーブルアドレス122よ
りブロック管理テーブル80を求める(ステップ90
4)。ブロック管理テーブル80の全てのエントリに対
して以下の処理を繰り返す(ステップ905)。該当ブ
ロック番号に対応する書き出しフラグ131はon(書
き出し済み)であるか否かを判定する(ステップ90
6)。onであれば、ブロック待避領域が割当てられて
いるため、そのアドレスをメモリアドレス132から取
得してブロック待避領域を解放する(ステップ90
7)。offであればステップ907をパスする。全て
のブロックについてステップ906およびステップ90
7を実行したかを調べ(ステップ908)、全てのブロ
ックについての実行が完了していなければステップ90
6に戻る。全てのブロックについての実行が終了してい
れば、ブロック管理テーブル80は不要となったので削
除する(ステップ909)。その後、ファイル管理テー
ブル75中に登録されている全てのエントリについて処
理したかを判定し、エントリが残っていればステップ9
04へ戻る(ステップ910)。全てのエントリについ
て処理が終了した場合には、ファイル管理テーブル75
は不要となるため、ファイル管理テーブル75を削除
し、テストプログラム管理テーブル70の該当被テスト
プログラムが登録されているエントリの被テストプログ
ラムプログラム名111とファイル管理テーブルアドレ
ス112をクリアする(ステップ911)。以上の処理
で、テスト終了時にテスト環境を解放する。
リに対して以下の処理を繰り返す(ステップ903)。
該当エントリのブロック管理テーブルアドレス122よ
りブロック管理テーブル80を求める(ステップ90
4)。ブロック管理テーブル80の全てのエントリに対
して以下の処理を繰り返す(ステップ905)。該当ブ
ロック番号に対応する書き出しフラグ131はon(書
き出し済み)であるか否かを判定する(ステップ90
6)。onであれば、ブロック待避領域が割当てられて
いるため、そのアドレスをメモリアドレス132から取
得してブロック待避領域を解放する(ステップ90
7)。offであればステップ907をパスする。全て
のブロックについてステップ906およびステップ90
7を実行したかを調べ(ステップ908)、全てのブロ
ックについての実行が完了していなければステップ90
6に戻る。全てのブロックについての実行が終了してい
れば、ブロック管理テーブル80は不要となったので削
除する(ステップ909)。その後、ファイル管理テー
ブル75中に登録されている全てのエントリについて処
理したかを判定し、エントリが残っていればステップ9
04へ戻る(ステップ910)。全てのエントリについ
て処理が終了した場合には、ファイル管理テーブル75
は不要となるため、ファイル管理テーブル75を削除
し、テストプログラム管理テーブル70の該当被テスト
プログラムが登録されているエントリの被テストプログ
ラムプログラム名111とファイル管理テーブルアドレ
ス112をクリアする(ステップ911)。以上の処理
で、テスト終了時にテスト環境を解放する。
【0046】図10にテストプログラム管理テーブル7
0の別の実施例を示す。ここでは、グループ化された一
連の被テストプログラムがデータベースを引き継ぎなが
らテストすることを可能としている。
0の別の実施例を示す。ここでは、グループ化された一
連の被テストプログラムがデータベースを引き継ぎなが
らテストすることを可能としている。
【0047】テストプログラム管理テーブル70のグル
ープ名称241はグループの名称を格納する。被テスト
プログラム名242は、各々のグループを構成する被テ
ストプログラムの名称を格納する。また、ファイル管理
テーブルアドレス243は、各々のグループがアクセス
するファイルを管理するファイル管理テーブル75のア
ドレスを保持している。
ープ名称241はグループの名称を格納する。被テスト
プログラム名242は、各々のグループを構成する被テ
ストプログラムの名称を格納する。また、ファイル管理
テーブルアドレス243は、各々のグループがアクセス
するファイルを管理するファイル管理テーブル75のア
ドレスを保持している。
【0048】図10の例では、3つのグループGRP
1、GRP2、GRP3が登録されており、各々グルー
プを構成する被テストプログラムとして、GRP1では
PGM11、PGM12、PGM13が、GRP2では
PGM21、PGM22、PGM23が、GRP3では
PGM31、PGM32が登録されている。さらに、各
々のグループに対するファイル管理テーブルはそれぞれ
75a、75b、75cである。
1、GRP2、GRP3が登録されており、各々グルー
プを構成する被テストプログラムとして、GRP1では
PGM11、PGM12、PGM13が、GRP2では
PGM21、PGM22、PGM23が、GRP3では
PGM31、PGM32が登録されている。さらに、各
々のグループに対するファイル管理テーブルはそれぞれ
75a、75b、75cである。
【0049】図11は初期設定処理の別の実施例のフロ
ーチャトである。ここでは、プログラムのテストに先立
ってテストグループとそれを構成する被テストプログラ
ム群をテストプログラム管理テーブル70に登録し、関
連するテーブルを初期設定している。
ーチャトである。ここでは、プログラムのテストに先立
ってテストグループとそれを構成する被テストプログラ
ム群をテストプログラム管理テーブル70に登録し、関
連するテーブルを初期設定している。
【0050】まず、テストプログラム管理テーブル70
の空きのグループエントリを探す。テストプログラム管
理テーブル70のエントリを探して、グループ名称24
1が空欄(グループが登録されていない)となっている
エントリを探す(ステップ1101)。そのようなエン
トリが発見できない場合にはテストプログラム管理テー
ブル70の全てのエントリにグループが登録されている
のである(ステップ1102)。そこで、テストプログ
ラム管理テーブルを拡張する。現在のテストプログラム
管理テーブルより大きな容量の領域をメモリ中に割当て
て、現テストプログラム管理テーブルの内容を複写す
る。その後、現テストプログラム管理テーブルを削除
し、新たに割当てた領域をテストプログラム管理テーブ
ル70とする(ステップ1106)。以上の処理の後、
ステップ1101に戻る。
の空きのグループエントリを探す。テストプログラム管
理テーブル70のエントリを探して、グループ名称24
1が空欄(グループが登録されていない)となっている
エントリを探す(ステップ1101)。そのようなエン
トリが発見できない場合にはテストプログラム管理テー
ブル70の全てのエントリにグループが登録されている
のである(ステップ1102)。そこで、テストプログ
ラム管理テーブルを拡張する。現在のテストプログラム
管理テーブルより大きな容量の領域をメモリ中に割当て
て、現テストプログラム管理テーブルの内容を複写す
る。その後、現テストプログラム管理テーブルを削除
し、新たに割当てた領域をテストプログラム管理テーブ
ル70とする(ステップ1106)。以上の処理の後、
ステップ1101に戻る。
【0051】ステップ1101で空きのエントリが発見
できた場合には、そのエントリを使用する。発見した空
きエントリのグループ名称241に被テストプログラム
のグループの名称を格納する(ステップ1103)。被
テストプログラム名称242に該当グループを構成する
全ての被テストプログラム名称を登録する(ステップ1
104)。次に該当グループに対するファイル管理テー
ブル75を割り付け、ファイル名称121を空白で初期
設定し、ファイル管理テーブル75のアドレスをテスト
プログラム管理テーブルの発見したエントリのファイル
管理テーブルアドレス243に書き込む(ステップ11
05)。以上の処理により、テストの対象となる被テス
トプログラムのグループを被テストプログラムとして登
録し、関連するテーブルを初期設定できる。
できた場合には、そのエントリを使用する。発見した空
きエントリのグループ名称241に被テストプログラム
のグループの名称を格納する(ステップ1103)。被
テストプログラム名称242に該当グループを構成する
全ての被テストプログラム名称を登録する(ステップ1
104)。次に該当グループに対するファイル管理テー
ブル75を割り付け、ファイル名称121を空白で初期
設定し、ファイル管理テーブル75のアドレスをテスト
プログラム管理テーブルの発見したエントリのファイル
管理テーブルアドレス243に書き込む(ステップ11
05)。以上の処理により、テストの対象となる被テス
トプログラムのグループを被テストプログラムとして登
録し、関連するテーブルを初期設定できる。
【0052】図12は終了処理の別の実施例のフローチ
ャートである。テストプログラム管理テーブル70中の
該当被テストプログラムが被テストプログラム名称24
2に登録されているエントリを求め、その内容をクリア
する(ステップ1201)。グループ名称241の全て
の被テストプログラム242がクリアされたかを判定す
る(ステップ1202)。クリアされていないエントリ
が残っているのであればグループに属する被テストプロ
グラムのいずれかがテスト実行中であるので終了処理を
終了する。全てのエントリがクリアされていれば、該当
グループに属する全ての被テストプログラム終了したの
で関連する資源の解放を行う。
ャートである。テストプログラム管理テーブル70中の
該当被テストプログラムが被テストプログラム名称24
2に登録されているエントリを求め、その内容をクリア
する(ステップ1201)。グループ名称241の全て
の被テストプログラム242がクリアされたかを判定す
る(ステップ1202)。クリアされていないエントリ
が残っているのであればグループに属する被テストプロ
グラムのいずれかがテスト実行中であるので終了処理を
終了する。全てのエントリがクリアされていれば、該当
グループに属する全ての被テストプログラム終了したの
で関連する資源の解放を行う。
【0053】該当グループに対するエントリのファイル
管理テーブル243からファイル管理テーブル75のア
ドレスを求める(ステップ1203)。ファイル管理テ
ーブル75の全てのエントリに対して以下の処理を繰り
返す(ステップ1204)。該当エントリのブロック管
理テーブルアドレス122よりブロック管理テーブル8
0を求める(ステップ1205)。ブロック管理テーブ
ル80の全てのエントリに対して以下の処理を繰り返す
(ステップ1206)。該当ブロック番号に対応する書
き出しフラグ131はon(書き出し済み)であるか否
かを判定する(ステップ1207)。onであれば、ブ
ロック待避領域が割当てられているため、そのアドレス
をメモリアドレス132から取得してブロック待避領域
を解放する(ステップ1208)。offであればステ
ップ217をパスする。全てのブロックについてステッ
プ1207およびステップ1208を実行したかを調べ
(ステップ1209)、全てのブロックについての実行
が完了していなければステップ1207に戻る。全ての
ブロックについての実行が終了していれば、ブロック管
理テーブル80は不要となったので削除する(ステップ
1210)。その後、ファイル管理テーブル75中に登
録されている全てのエントリについて処理したかを判定
し、エントリが残っていればステップ1205へ戻る
(ステップ1211)。全てのエントリについて処理が
終了した場合には、ファイル管理テーブル75は不要と
なるため、ファイル管理テーブル75を削除し、テスト
プログラム管理テーブル70の該当グループが登録され
ているエントリのグループ名称241とファイル管理テ
ーブルアドレス243をクリアする(ステップ121
2)。以上の処理で、テスト終了時にテスト環境を解放
する。
管理テーブル243からファイル管理テーブル75のア
ドレスを求める(ステップ1203)。ファイル管理テ
ーブル75の全てのエントリに対して以下の処理を繰り
返す(ステップ1204)。該当エントリのブロック管
理テーブルアドレス122よりブロック管理テーブル8
0を求める(ステップ1205)。ブロック管理テーブ
ル80の全てのエントリに対して以下の処理を繰り返す
(ステップ1206)。該当ブロック番号に対応する書
き出しフラグ131はon(書き出し済み)であるか否
かを判定する(ステップ1207)。onであれば、ブ
ロック待避領域が割当てられているため、そのアドレス
をメモリアドレス132から取得してブロック待避領域
を解放する(ステップ1208)。offであればステ
ップ217をパスする。全てのブロックについてステッ
プ1207およびステップ1208を実行したかを調べ
(ステップ1209)、全てのブロックについての実行
が完了していなければステップ1207に戻る。全ての
ブロックについての実行が終了していれば、ブロック管
理テーブル80は不要となったので削除する(ステップ
1210)。その後、ファイル管理テーブル75中に登
録されている全てのエントリについて処理したかを判定
し、エントリが残っていればステップ1205へ戻る
(ステップ1211)。全てのエントリについて処理が
終了した場合には、ファイル管理テーブル75は不要と
なるため、ファイル管理テーブル75を削除し、テスト
プログラム管理テーブル70の該当グループが登録され
ているエントリのグループ名称241とファイル管理テ
ーブルアドレス243をクリアする(ステップ121
2)。以上の処理で、テスト終了時にテスト環境を解放
する。
【0054】
【発明の効果】以上説明したように、本発明によれば、
プログラムのテストにより実データベースの内容が変更
されることがないため、稼働中のオンライン処理に影響
を与えることなくデータベースを更新するプログラムの
テストを行なうことができる。また、本発明によれば、
同一のデータベースをアクセスする複数のプログラムを
同時にテストすることができる。さらに、本発明によれ
ば、グループ化された被テストプログラムの内の一つの
テストプログラムが更新したデータベースの内容を他の
テストプログラムが引き継いでテストを実行することが
できる。また、本発明によれば、高速大容量の拡張記憶
を用いたため、多くのデータベースを更新するプログラ
ムのテストを行なうことができる。
プログラムのテストにより実データベースの内容が変更
されることがないため、稼働中のオンライン処理に影響
を与えることなくデータベースを更新するプログラムの
テストを行なうことができる。また、本発明によれば、
同一のデータベースをアクセスする複数のプログラムを
同時にテストすることができる。さらに、本発明によれ
ば、グループ化された被テストプログラムの内の一つの
テストプログラムが更新したデータベースの内容を他の
テストプログラムが引き継いでテストを実行することが
できる。また、本発明によれば、高速大容量の拡張記憶
を用いたため、多くのデータベースを更新するプログラ
ムのテストを行なうことができる。
【図1】本発明のプログラムテスト装置によるテストの
概要を示す図である。
概要を示す図である。
【図2】プログラムテスト装置の概略構成を示す図であ
る。
る。
【図3】プログラムテストの手順の概要を示す図であ
る。
る。
【図4】プログラムテスト時に用いられるテーブルの構
成および各テーブルの関連図を示す図である。
成および各テーブルの関連図を示す図である。
【図5】入力処理のフローチャートを示す図である。
【図6】ファイル管理テーブルエントリ登録処理のフロ
ーチャートを示す図である。
ーチャートを示す図である。
【図7】出力処理のフローチャートを示す図である。
【図8】初期設定処理のフローチャートを示す図であ
る。
る。
【図9】終了処理のフローチャートを示す図である。
【図10】テストプログラム管理テーブルの別の構成例
を示す図である。
を示す図である。
【図11】初期設定処理の別のフローチャートを示す図
である。
である。
【図12】終了処理の別のフローチャートを示す図であ
る。
る。
10 CPU 20 メモリ 30 被テストプログラム 40 データベース 50 端末 60 入出力処理手段 70 テストプログラム管理テーブル 75 ファイル管理テーブル 80 ブロック管理テーブル 90 ブロック退避領域 111 被テストプログラム名 112 ファイル管理テーブルアドレス 121 ファイル名称 122 ブロック管理テーブルアドレス 131 書き出しフラグ 132 メモリアドレス
Claims (5)
- 【請求項1】 少なくとも処理装置と、記憶装置と、端
末装置を備え、外部記憶装置に接続され、被テストプロ
グラムを外部記憶装置上のファイルを使用して実行さ
せ、該被テストプログラムをテスト/デバッグするプロ
グラムテスト装置において、 該被テストプログラムが前記外部記憶装置上のファイル
に対してブロックの書き出しを要求した場合に、該ブロ
ックの内容を該ファイルへは書き出さずに主記憶または
仮想記憶内に保存する手段と、 該被テストプログラムが前記ファイルの任意のブロック
の読み込みを要求した場合に、該読み込み要求が該ブロ
ックに対する該被テストプログラムからの最初の読み込
み要求である場合、または、過去に該被テストプログラ
ムから該ブロックに対して書き出しを要求していない場
合には、前記ファイルの該ブロックからの読み込みを行
う手段と、 該被テストプログラムが前記ファイルの任意のブロック
の読み込みを要求した場合に、該読み込み要求が該ブロ
ックに対する該被テストプログラムからの2番目以降の
読み込み要求であった場合には前記主記憶または仮想記
憶内に保存しておいた該ブロックの内容を前記ファイル
の該ブロックからの読み込みの結果として被テストプロ
グラムに渡す手段と、 該被テストプログラムの終了時に、前記主記憶または仮
想記憶上に保存しておいた該ブロックの内容を破棄する
手段とを前記処理装置に設け、 ファイルの内容を更新することなくプログラムのテスト
/デバッグを行なうよう構成したことを特徴とするプロ
グラムテスト装置。 - 【請求項2】 少なくとも処理装置と、記憶装置と、高
速アクセス可能な拡張記憶と、端末装置を備え、外部記
憶装置に接続され、被テストプログラムを外部記憶装置
上のファイルを使用して実行させ、該被テストプログラ
ムをテスト/デバッグするプログラムテスト装置におい
て、 該被テストプログラムが前記外部記憶装置上のファイル
に対してブロックの書き出しを要求した場合に、該ブロ
ックの内容を該ファイルへは書き出さずに前記拡張記憶
内に保存する手段と、 該被テストプログラムが前記ファイルの任意のブロック
の読み込みを要求した場合に、該読み込み要求が該ブロ
ックに対する該被テストプログラムからの最初の読み込
み要求である場合、または、過去に該被テストプログラ
ムから該ブロックに対して書き出しを要求していない場
合には、前記ファイルの該ブロックからの読み込みを行
う手段と、 該被テストプログラムが前記ファイルの任意のブロック
の読み込みを要求した場合に、該読み込み要求が該ブロ
ックに対する該被テストプログラムからの2番目以降の
読み込み要求であった場合には前記拡張記憶内に保存し
ておいた該ブロックの内容を前記ファイルの該ブロック
からの読み込みの結果として被テストプログラムに渡す
手段と、 該被テストプログラムの終了時に、前記拡張記憶上に保
存しておいた該ブロックの内容を破棄する手段とを前記
処理装置に設け、 ファイルの内容を更新することなくプログラムのテスト
/デバッグを行なうよう構成したことを特徴とするプロ
グラムテスト装置。 - 【請求項3】 請求項1または請求項2のいずれかの請
求項記載のプログラムテスト装置において、プログラム
のテストに先立って該当プログラムが被テストプログラ
ムであることを登録する手段と、プログラムが入出力要
求を発行した際に、該プログラムが被テストプログラム
となっていることを前記登録した内容により識別する手
段を前記処理装置に設けたことを特徴とするプログラム
テスト装置。 - 【請求項4】 請求項1乃至請求項3のいずれかの請求
項記載のプログラムテスト装置において、前記ブロック
の内容を保存するための領域を被テストプログラム毎に
個別に確保する手段を前記処理装置に設けたことを特徴
とするプログラムテスト装置。 - 【請求項5】 請求項1乃至請求項3のいずれかの請求
項記載のプログラムテスト装置において、被テストプロ
グラムをグループ化し、前記ブロックの内容を保存する
ための領域を前記グループ毎に個別に確保する手段を前
記処理装置に設けたことを特徴とするプログラムテスト
装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4059343A JPH05224992A (ja) | 1992-02-13 | 1992-02-13 | プログラムテスト装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4059343A JPH05224992A (ja) | 1992-02-13 | 1992-02-13 | プログラムテスト装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05224992A true JPH05224992A (ja) | 1993-09-03 |
Family
ID=13110571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4059343A Pending JPH05224992A (ja) | 1992-02-13 | 1992-02-13 | プログラムテスト装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05224992A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010182247A (ja) * | 2009-02-09 | 2010-08-19 | Nec Corp | アクセス先変換装置、アクセス先変換方法及びプログラム |
JP2011013792A (ja) * | 2009-06-30 | 2011-01-20 | Fujitsu Ltd | プログラムモデル検査におけるデータベース制御装置、データベース制御方法、データベース制御プログラム |
JP2011186796A (ja) * | 2010-03-09 | 2011-09-22 | Mizuho Information & Research Institute Inc | 結合テストシステム、結合テスト方法及び結合テストプログラム |
JP2011221912A (ja) * | 2010-04-13 | 2011-11-04 | Nec Corp | 計算機システム、及び計算機システム管理方法 |
WO2013145292A1 (ja) * | 2012-03-30 | 2013-10-03 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体 |
JP2020502626A (ja) * | 2016-11-08 | 2020-01-23 | セールスフォース ドット コム インコーポレイティッド | データベース・システムにおけるテスト・データの形成及び動作 |
-
1992
- 1992-02-13 JP JP4059343A patent/JPH05224992A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010182247A (ja) * | 2009-02-09 | 2010-08-19 | Nec Corp | アクセス先変換装置、アクセス先変換方法及びプログラム |
JP2011013792A (ja) * | 2009-06-30 | 2011-01-20 | Fujitsu Ltd | プログラムモデル検査におけるデータベース制御装置、データベース制御方法、データベース制御プログラム |
JP2011186796A (ja) * | 2010-03-09 | 2011-09-22 | Mizuho Information & Research Institute Inc | 結合テストシステム、結合テスト方法及び結合テストプログラム |
JP2011221912A (ja) * | 2010-04-13 | 2011-11-04 | Nec Corp | 計算機システム、及び計算機システム管理方法 |
WO2013145292A1 (ja) * | 2012-03-30 | 2013-10-03 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体 |
JP2020502626A (ja) * | 2016-11-08 | 2020-01-23 | セールスフォース ドット コム インコーポレイティッド | データベース・システムにおけるテスト・データの形成及び動作 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8166345B2 (en) | Programming in a simultaneous multi-threaded processor environment | |
US6536036B1 (en) | Method and apparatus for managing code test coverage data | |
US5913022A (en) | Loading hardware pattern memory in automatic test equipment for testing circuits | |
US5634120A (en) | Computer system supporting utilization of utility functions applicable to concurrently executing jobs by monitoring job excution characteristics and determining eligible job combinations for utility function | |
JPH056297A (ja) | トランザクシヨン処理方法およびシステム | |
JP3382080B2 (ja) | 命令実行順序の一貫性を照合する方法及びシステム | |
US5706511A (en) | Data base system and load distribution control method | |
JPH05224992A (ja) | プログラムテスト装置 | |
CN104111962A (zh) | 具有批量操作的增强型事务高速缓存 | |
JP2007249949A (ja) | フォーマットする試験結果の文脈を提供する変数値を格納する装置 | |
JP2924786B2 (ja) | 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体 | |
JP3131098B2 (ja) | シミュレータ | |
US7213122B2 (en) | Controlling the generation and selection of addresses to be used in a verification environment | |
JPH0261735A (ja) | データベースアクセスプログラムテスト方式 | |
JP3411180B2 (ja) | プログラマブルコントローラにおけるローカルデバイスのモニタ・テスト方法およびプログラマブルコントローラ | |
JP3808693B2 (ja) | 主記憶管理装置 | |
JPS61286920A (ja) | ロ−カルエリア・ネツトワ−クのフアイル管理方式 | |
JP2002278793A (ja) | シミュレーション装置及び方法 | |
JPH06314226A (ja) | データ更新方法 | |
JPH0823840B2 (ja) | デ−タベ−ス更新方法および装置 | |
JPH0192849A (ja) | データ記録方法 | |
JPH04211845A (ja) | データベース領域管理方式 | |
JPH04259867A (ja) | Icテスターのプログラム管理方式 | |
JPH0830501A (ja) | データベース管理システム | |
JPH0877045A (ja) | ファイル共有方式 |