JPS62147534A - プログラムテスト方式 - Google Patents
プログラムテスト方式Info
- Publication number
- JPS62147534A JPS62147534A JP60291121A JP29112185A JPS62147534A JP S62147534 A JPS62147534 A JP S62147534A JP 60291121 A JP60291121 A JP 60291121A JP 29112185 A JP29112185 A JP 29112185A JP S62147534 A JPS62147534 A JP S62147534A
- Authority
- JP
- Japan
- Prior art keywords
- register
- terminal
- instruction
- program
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はプログラムのテスト方式に関する。
従来、プログラムのテストはプログラムの実行環境をす
べて揃えてからプログラムに実行を行なわせるか、プロ
グラムが新たなデータを必要とする直前の箇所にブレー
クポイントを設定し、プログラムを実行させ、ブレーク
ポイントまで進めばデータを設定し、さらに次のブレー
クポイントを設定し、実行させるようになっていた。
べて揃えてからプログラムに実行を行なわせるか、プロ
グラムが新たなデータを必要とする直前の箇所にブレー
クポイントを設定し、プログラムを実行させ、ブレーク
ポイントまで進めばデータを設定し、さらに次のブレー
クポイントを設定し、実行させるようになっていた。
上述した従来の方式は、プログラムが必要とするデータ
を事前にすべて用意するか、プログラムが新たなデータ
を必要とする箇所のすべてにブレークポイントを設定す
るかの必要があるため、大きなプログラムのテストの効
率が悪い欠点があり、さらにプログラムのテスト実行中
に端末からの入力に基づいて動的テーブルを作成する機
能を持つでないので、動的テーブルを用いるプログラム
ではテスト実行の前にすべでの動的テーブルを用意しな
ければならない欠点があり、さらにブレークポイントで
データを設定する方式では新たなデータを必要とすると
ころにもがかわらずブレークポイントを設定してあかな
いとプログラムが誤動作しプログラムのテスト自体が無
効になる欠点かある。
を事前にすべて用意するか、プログラムが新たなデータ
を必要とする箇所のすべてにブレークポイントを設定す
るかの必要があるため、大きなプログラムのテストの効
率が悪い欠点があり、さらにプログラムのテスト実行中
に端末からの入力に基づいて動的テーブルを作成する機
能を持つでないので、動的テーブルを用いるプログラム
ではテスト実行の前にすべでの動的テーブルを用意しな
ければならない欠点があり、さらにブレークポイントで
データを設定する方式では新たなデータを必要とすると
ころにもがかわらずブレークポイントを設定してあかな
いとプログラムが誤動作しプログラムのテスト自体が無
効になる欠点かある。
本発明のプログラムテスト方式は、
動的にメモリを確保し、前記メモリ中にテーブルを作り
、前記テーブルのサブフィールドに値を設定、参照し、
さらにテーブルnをポインタでリンクする処理を含むプ
ログラムのテスト方式であって、 テスト対象プログラムが使用するレジスタが退避される
レジスタ退避域と、 レジスタの内容が確定か不確定かを表示するレジスタ確
定・不確定テーブルと、 会話的にテストを指示する端末と、 テスト対象プログラムが実行時に動的に作成する動的テ
ーブルを格納するための作業域と、作業域の内容が確定
か不確定かを表示する作業域確定・不確定テーブルと、 作業域中に作成したテーブルの名前、位百ヲ記憶してお
く作成済みテーブル登録テーブルと、テーブルのサブフ
ィールド名を定義するサブフィールド名テーブルと、 端末との会話通信を行なう端末制御部と、テスト対象プ
ログラムが使用するレジスタ退避域中のレジスタへの値
の設定とレジスタ値の参照、レジスタ確定・不確定テー
ブルへの確定・不確定の表示を行なうレジスタ制御部と
、作業域中にテスト対象プログラムが使用するテーブル
を作成し、作成したテーブルを検索する動的作成テーブ
ル制御部と、テスト対象プログラム中の命令を解析し、
実行を行なう命令制御部とを有し、端末からの入力デー
タで指定されたテスト対象プログラム中の任意のアドレ
スより1命令ずつ命令を解析し、しジスタ確定・不確定
テーブルまたは作業域確定・不確定テーブル99照して
その命令が不確定なレジスタ、テーブルを参照する場合
には命令実行前に端末にレジスタ番号、テーブル名、サ
ブフィールド名テーブルにあるテーブル中のサブフィー
ルド名を出力し、端末入力がレジスタ、テーブルへの設
定値は動的なテーブルへのポインタ値として指定すれば
テーブル名も端末より入力させ、そのテーブルが作成済
みテーブル登録テーブルにより作成済みであればそのテ
ーブルのアドレスをレジスタ退避域またはテーブルに設
定して、そのテーブルが未作成であれば作業域中にテー
ブルを作成し作成済みテーブル登録テーブルにそのテー
ブルを登録し、その作業域中のアドレスをレジスタ退i
tsまたはテーブルに設定してレジスタ確定・不確定テ
ーブルまたは作業域確定・不確定テーブルの対応する位
置に確定の表示を行ない、端末入力がレジスタ、テーブ
ルへの設定値はポインタ値でないと指定すれば端末より
設定値そのものを入力古せ、その入力した値をレジスタ
退避域またはテーブルに設定して、その命令を実行し、
その命令かテスト対象プログラムのプログラム域、作成
済みテーブル以外へのアクセスを示していればその命令
を実行せずに端末にプログラム不正の通知を行ない、そ
の命令がサブルーチン、システムルーチンへのコール命
令であれば端末にそのことを通知し、端末入力の指示で
その命令の実行、その命令のスキップを行なうテスト制
御システムを有する。
、前記テーブルのサブフィールドに値を設定、参照し、
さらにテーブルnをポインタでリンクする処理を含むプ
ログラムのテスト方式であって、 テスト対象プログラムが使用するレジスタが退避される
レジスタ退避域と、 レジスタの内容が確定か不確定かを表示するレジスタ確
定・不確定テーブルと、 会話的にテストを指示する端末と、 テスト対象プログラムが実行時に動的に作成する動的テ
ーブルを格納するための作業域と、作業域の内容が確定
か不確定かを表示する作業域確定・不確定テーブルと、 作業域中に作成したテーブルの名前、位百ヲ記憶してお
く作成済みテーブル登録テーブルと、テーブルのサブフ
ィールド名を定義するサブフィールド名テーブルと、 端末との会話通信を行なう端末制御部と、テスト対象プ
ログラムが使用するレジスタ退避域中のレジスタへの値
の設定とレジスタ値の参照、レジスタ確定・不確定テー
ブルへの確定・不確定の表示を行なうレジスタ制御部と
、作業域中にテスト対象プログラムが使用するテーブル
を作成し、作成したテーブルを検索する動的作成テーブ
ル制御部と、テスト対象プログラム中の命令を解析し、
実行を行なう命令制御部とを有し、端末からの入力デー
タで指定されたテスト対象プログラム中の任意のアドレ
スより1命令ずつ命令を解析し、しジスタ確定・不確定
テーブルまたは作業域確定・不確定テーブル99照して
その命令が不確定なレジスタ、テーブルを参照する場合
には命令実行前に端末にレジスタ番号、テーブル名、サ
ブフィールド名テーブルにあるテーブル中のサブフィー
ルド名を出力し、端末入力がレジスタ、テーブルへの設
定値は動的なテーブルへのポインタ値として指定すれば
テーブル名も端末より入力させ、そのテーブルが作成済
みテーブル登録テーブルにより作成済みであればそのテ
ーブルのアドレスをレジスタ退避域またはテーブルに設
定して、そのテーブルが未作成であれば作業域中にテー
ブルを作成し作成済みテーブル登録テーブルにそのテー
ブルを登録し、その作業域中のアドレスをレジスタ退i
tsまたはテーブルに設定してレジスタ確定・不確定テ
ーブルまたは作業域確定・不確定テーブルの対応する位
置に確定の表示を行ない、端末入力がレジスタ、テーブ
ルへの設定値はポインタ値でないと指定すれば端末より
設定値そのものを入力古せ、その入力した値をレジスタ
退避域またはテーブルに設定して、その命令を実行し、
その命令かテスト対象プログラムのプログラム域、作成
済みテーブル以外へのアクセスを示していればその命令
を実行せずに端末にプログラム不正の通知を行ない、そ
の命令がサブルーチン、システムルーチンへのコール命
令であれば端末にそのことを通知し、端末入力の指示で
その命令の実行、その命令のスキップを行なうテスト制
御システムを有する。
このように、命令実行前に不確定なレジスタ値、メそり
値を端末より入力し、テスト実行中に端末よりの入力で
動的テーブルを作成することにより、任意のプログラム
のアドレスより、どのようなプログラムでも必要最小限
のデータを与えるだけでプログラムのテストを行なえる
のでテストの効率が大幅に向上し、さらにサブルーチン
、システムルーチンのコールをスキップすることもでき
ることにより、そのサブルーチン、システムルーチンが
返す(aを端末より入力するようにすれば未完成なサブ
ルーチンがなくてもテスト可能であり、システムに悪い
影響を与えないでテストを行なうことができる。
値を端末より入力し、テスト実行中に端末よりの入力で
動的テーブルを作成することにより、任意のプログラム
のアドレスより、どのようなプログラムでも必要最小限
のデータを与えるだけでプログラムのテストを行なえる
のでテストの効率が大幅に向上し、さらにサブルーチン
、システムルーチンのコールをスキップすることもでき
ることにより、そのサブルーチン、システムルーチンが
返す(aを端末より入力するようにすれば未完成なサブ
ルーチンがなくてもテスト可能であり、システムに悪い
影響を与えないでテストを行なうことができる。
以下、本発明の実施例について図面を参照して説明する
。
。
第1図は本発明のプログラムテスト方式の一実施例を示
すブロック図、第2図は第]I21中のテスト対象プロ
グラムの一部のサブルーチン5U8RTN iのフロー
チャート、第3図はサブルーチンSu・”8RTNiが
使用するテーブル以外示す図、第4図はサブルーチンS
υ8RTNiが使用するテーブルへの原型テーブルMを
示す図である。
すブロック図、第2図は第]I21中のテスト対象プロ
グラムの一部のサブルーチン5U8RTN iのフロー
チャート、第3図はサブルーチンSu・”8RTNiが
使用するテーブル以外示す図、第4図はサブルーチンS
υ8RTNiが使用するテーブルへの原型テーブルMを
示す図である。
本実施例のプログラムテスト方式は、テスト対象プログ
ラム2と、テスト対象プログラム2が使用するレジスタ
が退避される。レジスタ退避域3と、レジスタの内容が
確定か不確定かを表示するレジスタ確定・不確定テーブ
ル4と、会話的にテストを指示する端末9と、テスト対
象プログラム2が実行時に動的に作成する動的テーブル
を格納するための作業域5と、作業域5の内容が確定か
不確定かを表示する作業域確定・不確定テーブル6と、
作業域5中に作成したテーブルの名前、位置を記憶して
おく作成済みテーブル登録テーブル7と、テーブルのサ
ブフィールド名を定義するサブフィールド名テーブル8
と、端末9との会話通信を行なう端末制御部1−1と、
テスト対象プログラム2が使用するレジスタ退避域3中
のレジスタへの値の設定とレジスタ値の参照、レジスタ
確定・不確定テーブル4への確定・不確定の表示を行な
うレジスタ制御部1−3と、作業域5中にテスト対象プ
ログラム2が使用するテーブルを作成し、作成したテー
ブルを検索する動的作成テーブル制御部1−2と、テス
ト対象プログラム2中の命令を解析し、実行を行なう命
令制御部1−4とを有するテスト制御システム1かうな
る。
ラム2と、テスト対象プログラム2が使用するレジスタ
が退避される。レジスタ退避域3と、レジスタの内容が
確定か不確定かを表示するレジスタ確定・不確定テーブ
ル4と、会話的にテストを指示する端末9と、テスト対
象プログラム2が実行時に動的に作成する動的テーブル
を格納するための作業域5と、作業域5の内容が確定か
不確定かを表示する作業域確定・不確定テーブル6と、
作業域5中に作成したテーブルの名前、位置を記憶して
おく作成済みテーブル登録テーブル7と、テーブルのサ
ブフィールド名を定義するサブフィールド名テーブル8
と、端末9との会話通信を行なう端末制御部1−1と、
テスト対象プログラム2が使用するレジスタ退避域3中
のレジスタへの値の設定とレジスタ値の参照、レジスタ
確定・不確定テーブル4への確定・不確定の表示を行な
うレジスタ制御部1−3と、作業域5中にテスト対象プ
ログラム2が使用するテーブルを作成し、作成したテー
ブルを検索する動的作成テーブル制御部1−2と、テス
ト対象プログラム2中の命令を解析し、実行を行なう命
令制御部1−4とを有するテスト制御システム1かうな
る。
原型テーブルMの原型テーブル名QTTBL。
0ETBL 、サブフィールド名QTSUBFI、 Q
TSU8F2゜0ESUBFI、 0ESU8F2.
QESU8F3 ハ”jブ7 イー ルl’名テーブル
8にテスト対象プログラム2のテスト寅行の前に予め設
定されているものとする。サブルーチン5UBRTNi
か使用するテーブルのうちテーブルATBLは原型テー
ブルQTT8Lに対応し、テーブルBT8LおよびCT
BLは原型テーブルQETBLに対応すると仮定する。
TSU8F2゜0ESUBFI、 0ESU8F2.
QESU8F3 ハ”jブ7 イー ルl’名テーブル
8にテスト対象プログラム2のテスト寅行の前に予め設
定されているものとする。サブルーチン5UBRTNi
か使用するテーブルのうちテーブルATBLは原型テー
ブルQTT8Lに対応し、テーブルBT8LおよびCT
BLは原型テーブルQETBLに対応すると仮定する。
サブルーチン8088丁Niはシステムル−チンをコー
ルして新たなキューエレメント(OE)領域を確保し、
その領域にキューエレメントQEI作り、キュー(キュ
ーターミナルOTにキューエレメントGEがポインタで
つながっているもの)の最後にそのキューエレメントQ
Eをつなぐ処理を行なうプログラムで、キューターミナ
ルOTのアドレスはレジスタ8Riに入力情報として与
えられ、このサブルーチンSυBRTNiが呼ばれた時
点ではキューにキューエレメントOEが1個(BT8L
)つながっていると仮定する。
ルして新たなキューエレメント(OE)領域を確保し、
その領域にキューエレメントQEI作り、キュー(キュ
ーターミナルOTにキューエレメントGEがポインタで
つながっているもの)の最後にそのキューエレメントQ
Eをつなぐ処理を行なうプログラムで、キューターミナ
ルOTのアドレスはレジスタ8Riに入力情報として与
えられ、このサブルーチンSυBRTNiが呼ばれた時
点ではキューにキューエレメントOEが1個(BT8L
)つながっていると仮定する。
このような状態でのこのサブルーチン5UBRTNiの
テストを順を追って説明する。
テストを順を追って説明する。
まず、レジスタ制御部1−3はレジスタ確定・不確定テ
ーブル4にすべてのレジスタが不確定の表示をし、動的
作成テーブル制御部1−2は作業域確定・不確定テーブ
ル6にすべての作業域が不確定の表示をし、作成済みテ
ーブル登録テーブル7にはテーブルが登録されてない状
態にして端末制御部1−1を通しで端末9と接続する。
ーブル4にすべてのレジスタが不確定の表示をし、動的
作成テーブル制御部1−2は作業域確定・不確定テーブ
ル6にすべての作業域が不確定の表示をし、作成済みテ
ーブル登録テーブル7にはテーブルが登録されてない状
態にして端末制御部1−1を通しで端末9と接続する。
端末9が入力データでサブルーチン5uBRTNiの開
始点よりのテスト実行を指示すると、テスト制御システ
ム1は命令制御部1−4で最初の命令Bの解析を行なう
。
始点よりのテスト実行を指示すると、テスト制御システ
ム1は命令制御部1−4で最初の命令Bの解析を行なう
。
この命令BがレジスタBRiを参照することがわかると
、次にレジスタ制御部1−3はレジスタ確定・不確定テ
ーブル4によりレジスタ8Riが不確定であると判断し
、端末制御部1−1は端末9にレジスタBRiの値の入
力を促進する旨のメツセージを出力する。端末9はレジ
スタBRiには動的テーブルのアドレスが入り、動的テ
ーブルは原型テーブル名QTT8Lで、このテーブルに
ATBLという名前をつけることを入力する0次に動的
作成テーブル制御部1−2は作成済みテーブル登録テー
ブル7にテーブル名ATBLが存在しないことを知ると
、サブフィールド名テーブル8中で原型テーブル名QT
TBLに対応するエントリを見つけ、テーブルの大きざ
を知り作業域5中にテーブル名AT8Lの領域を確保し
、作成済みテーブル登録テーブル7にテーブル名^TB
Lを登録する。ここで、レジスタ退避域3中のレジスタ
BRiに対応する位置に作業域5中のテーブルATBL
の先頭アドレスヲ設定し、レジスタ確定・不確定テーブ
ル4中のレジスタBRiに対応する位置に確定の表示を
する。ここで、命令制御部1−4は再び命令Bを解析し
今度は(8R4)+4の値をレジスタ退避域3中のレジ
スタBR4に対応する値+4で計算し、その値がテスト
対象プログラム2の中のアドレスが作成済み動的テーブ
ルの中のアドレスかを判断する。この場合は作成済み動
的テーブルの中のアドレスで、そのテーブル名はATB
Lで、相対アドレスが4である。テーブル4丁BLの相
対アドレス4の内容が確定が不確定かを作業域確定・不
確定テーブル6で判断し不確定であることを知る。テー
ブルATBLの相対アドレス4のサブフィールド名は0
TSUBF2であることがサブフィールド名テーブル8
でわかるので、端末制′a部1−1ヲ通しで端末9にテ
ーブルATBLのサブフィールl’ QTSU8F2の
値の入力を促進する旨のメツセージを出力する。端末9
はOE数が1個である場合のテストであると知っている
ので、値1@入力する。動的作成テーブル制御部1−2
は作業域5中のテーブルATBLの相対4のところに1
を設定し、さらに作業域確定・不確定テーブル6の対応
する位置に確定の表示を行なう。
、次にレジスタ制御部1−3はレジスタ確定・不確定テ
ーブル4によりレジスタ8Riが不確定であると判断し
、端末制御部1−1は端末9にレジスタBRiの値の入
力を促進する旨のメツセージを出力する。端末9はレジ
スタBRiには動的テーブルのアドレスが入り、動的テ
ーブルは原型テーブル名QTT8Lで、このテーブルに
ATBLという名前をつけることを入力する0次に動的
作成テーブル制御部1−2は作成済みテーブル登録テー
ブル7にテーブル名ATBLが存在しないことを知ると
、サブフィールド名テーブル8中で原型テーブル名QT
TBLに対応するエントリを見つけ、テーブルの大きざ
を知り作業域5中にテーブル名AT8Lの領域を確保し
、作成済みテーブル登録テーブル7にテーブル名^TB
Lを登録する。ここで、レジスタ退避域3中のレジスタ
BRiに対応する位置に作業域5中のテーブルATBL
の先頭アドレスヲ設定し、レジスタ確定・不確定テーブ
ル4中のレジスタBRiに対応する位置に確定の表示を
する。ここで、命令制御部1−4は再び命令Bを解析し
今度は(8R4)+4の値をレジスタ退避域3中のレジ
スタBR4に対応する値+4で計算し、その値がテスト
対象プログラム2の中のアドレスが作成済み動的テーブ
ルの中のアドレスかを判断する。この場合は作成済み動
的テーブルの中のアドレスで、そのテーブル名はATB
Lで、相対アドレスが4である。テーブル4丁BLの相
対アドレス4の内容が確定が不確定かを作業域確定・不
確定テーブル6で判断し不確定であることを知る。テー
ブルATBLの相対アドレス4のサブフィールド名は0
TSUBF2であることがサブフィールド名テーブル8
でわかるので、端末制′a部1−1ヲ通しで端末9にテ
ーブルATBLのサブフィールl’ QTSU8F2の
値の入力を促進する旨のメツセージを出力する。端末9
はOE数が1個である場合のテストであると知っている
ので、値1@入力する。動的作成テーブル制御部1−2
は作業域5中のテーブルATBLの相対4のところに1
を設定し、さらに作業域確定・不確定テーブル6の対応
する位置に確定の表示を行なう。
命令制御部1−4は命令Bの実行に必要なデータがすべ
で揃ったことを知ると、レジスタ退避域3中のレジスタ
と作業域5中の動的テーブルを用いて命令Bの実行を行
なう。命令BはGRiにロードする命令であるからレジ
スタ確定・不確定テーブル4のGRiに対応する位置に
確定の表示をして、命令制御部1−4は命令Cを解析す
る。命令CはGRiを参照する命令であるが、GRiは
確定しており、かつGRiの値は1であるので、次に命
令D@解析する。命令Bの場合と同様に端末9にテーブ
ルAT8LのサブフィールドQTSLIBF+の値の入
力を促進するメツセージを端末制御部1−1ヲ通しで出
力する。端末9はテーブルAT8LのサブフィールドQ
TSUBF+には動的テーブルのアドレスが入り、動的
テーブルは原型テーブル名QETBLで、このテーブル
にBTBLという名前をつけることを入力する。
で揃ったことを知ると、レジスタ退避域3中のレジスタ
と作業域5中の動的テーブルを用いて命令Bの実行を行
なう。命令BはGRiにロードする命令であるからレジ
スタ確定・不確定テーブル4のGRiに対応する位置に
確定の表示をして、命令制御部1−4は命令Cを解析す
る。命令CはGRiを参照する命令であるが、GRiは
確定しており、かつGRiの値は1であるので、次に命
令D@解析する。命令Bの場合と同様に端末9にテーブ
ルAT8LのサブフィールドQTSLIBF+の値の入
力を促進するメツセージを端末制御部1−1ヲ通しで出
力する。端末9はテーブルAT8LのサブフィールドQ
TSUBF+には動的テーブルのアドレスが入り、動的
テーブルは原型テーブル名QETBLで、このテーブル
にBTBLという名前をつけることを入力する。
ここで動的作成テーブル制御部1−2は作成済みテーブ
ル登録テーブル7にテーブルBTBLが存在しないこと
を知ると、サブフィールド名テーブル8中で原型テーブ
ル名QETBLに対応するエントリを見つけ、テーブル
の大きざを知り、作業域5中にテーブルBTBLの領域
を確保し作成済みテーブル登録テーブル7にテーブル8
TBLを登録する。そして、作業域5中のテーブルAT
BLのサブフィールド0TSUBF+に作業域5中のテ
ーブルBT8Lの先頭アドレスを設定し、作業域確定・
不確定テーブル6中の対応する位置に確定の表示を行な
う、命令制御部1−4は命令Bと同様に命令りのアクセ
スが正しいか否かを調べ、正しいとわかると命令Bと同
様に命令りの実行を行ない、レジスタ制御部1−3を通
しでレジスタ確定・不確定テーブル4のレジスタBRj
に対応する位置に確定の表示を行なう。次に命令制御部
1−4はレジスタGR・1が確定しでいるため命令E、
Fの実行を行ない、命令Gの解析に進む。命令Gはシス
テムルーチンコールであるので端末制御部1−1を通し
て端末9にその旨を出力する。端末9か入力データでシ
ステムルーチンのコールはスキップし、BRkには新た
な動的テーブルのアドレスか入り、この動的テーブルは
原型テーブル名QETBLで、このテーブルにCTBL
の名前をつけることを指示するとテーブルBTBL%作
成した場合と同様にテーブルCTBL!作成し、レジス
タ退避1123中の8Rkの位置にテーブルCTBLの
アドレスを設定し、レジスタ確定・不確定テーブル4中
のレジスタBRkの位置に確定の表示を行なう、命令H
1■、J、に、Lが参照するレジスタ、メモリはこの時
点ですべて確定しているので端末9と会話しないでこれ
らの命令を実行しサブルーチン5UBRTNiの処理が
終わる。
ル登録テーブル7にテーブルBTBLが存在しないこと
を知ると、サブフィールド名テーブル8中で原型テーブ
ル名QETBLに対応するエントリを見つけ、テーブル
の大きざを知り、作業域5中にテーブルBTBLの領域
を確保し作成済みテーブル登録テーブル7にテーブル8
TBLを登録する。そして、作業域5中のテーブルAT
BLのサブフィールド0TSUBF+に作業域5中のテ
ーブルBT8Lの先頭アドレスを設定し、作業域確定・
不確定テーブル6中の対応する位置に確定の表示を行な
う、命令制御部1−4は命令Bと同様に命令りのアクセ
スが正しいか否かを調べ、正しいとわかると命令Bと同
様に命令りの実行を行ない、レジスタ制御部1−3を通
しでレジスタ確定・不確定テーブル4のレジスタBRj
に対応する位置に確定の表示を行なう。次に命令制御部
1−4はレジスタGR・1が確定しでいるため命令E、
Fの実行を行ない、命令Gの解析に進む。命令Gはシス
テムルーチンコールであるので端末制御部1−1を通し
て端末9にその旨を出力する。端末9か入力データでシ
ステムルーチンのコールはスキップし、BRkには新た
な動的テーブルのアドレスか入り、この動的テーブルは
原型テーブル名QETBLで、このテーブルにCTBL
の名前をつけることを指示するとテーブルBTBL%作
成した場合と同様にテーブルCTBL!作成し、レジス
タ退避1123中の8Rkの位置にテーブルCTBLの
アドレスを設定し、レジスタ確定・不確定テーブル4中
のレジスタBRkの位置に確定の表示を行なう、命令H
1■、J、に、Lが参照するレジスタ、メモリはこの時
点ですべて確定しているので端末9と会話しないでこれ
らの命令を実行しサブルーチン5UBRTNiの処理が
終わる。
ここで端末制御部1−1は端末9に処理の終了を通知す
る。端末9がここでレジスタ、テーブル^TBL、 B
TBL、 CTBLの内容参照の指示を行なうと、レジ
スタの内容、テーブルATBL、 BTBL、 CTB
Lの内容が端末9に出力される(テーブルの内容はサブ
フィールド名とともに出力される)のでサブルーチン5
UBRTNiの処理の結果を検証することができる。
る。端末9がここでレジスタ、テーブル^TBL、 B
TBL、 CTBLの内容参照の指示を行なうと、レジ
スタの内容、テーブルATBL、 BTBL、 CTB
Lの内容が端末9に出力される(テーブルの内容はサブ
フィールド名とともに出力される)のでサブルーチン5
UBRTNiの処理の結果を検証することができる。
端末9は端末制御部1−1と会話中はいつでも作成済み
テーブルの参照、テーブルの作成、レジスタへの値設定
、レジスタの参照が可能で、データをプログラムが必要
とする前に一括して与え起り、プログラムの進行中に任
意のデータの参照を行なうことができる。また、ステッ
プ実行モードを指定すれば1命令の実行の113度端末
9と会話することも可能である。
テーブルの参照、テーブルの作成、レジスタへの値設定
、レジスタの参照が可能で、データをプログラムが必要
とする前に一括して与え起り、プログラムの進行中に任
意のデータの参照を行なうことができる。また、ステッ
プ実行モードを指定すれば1命令の実行の113度端末
9と会話することも可能である。
言うまでもなく本発明のプログラムテスト方式は動的テ
ーブルを使用しないプログラムのテストも可能である。
ーブルを使用しないプログラムのテストも可能である。
C発明の効果〕
以上説明したように本発明は、命令実行前に不確定なレ
ジスタ値、メモリ値を端末より入力し、テスト実行中1
こ端末よりの入力で動的テーブルを作成することにより
、任意のプログラムのアドレスより、どのようなプログ
ラムでも必要最小限のデータを与えるだけでプログラム
のテストを行なえるのでテストの効率か大幅に向上し、
さらにサブルーチン、システムルーチンのコールをスキ
ップすることもできることにより、そのサブルーチン、
システムルーチンか返す値ヲ端末より入力するようにす
れば未完成なサブルーチンがなくてもテスト可能であり
、システムに悪い影Wを与えないでテスト行なうことか
できる効果がある。
ジスタ値、メモリ値を端末より入力し、テスト実行中1
こ端末よりの入力で動的テーブルを作成することにより
、任意のプログラムのアドレスより、どのようなプログ
ラムでも必要最小限のデータを与えるだけでプログラム
のテストを行なえるのでテストの効率か大幅に向上し、
さらにサブルーチン、システムルーチンのコールをスキ
ップすることもできることにより、そのサブルーチン、
システムルーチンか返す値ヲ端末より入力するようにす
れば未完成なサブルーチンがなくてもテスト可能であり
、システムに悪い影Wを与えないでテスト行なうことか
できる効果がある。
第1図は本発明のプログラムテスト方式の一実施例のブ
ロック図、第2図はテスト対象プログラム2中の一部の
サブルーチン5UBRTNiのフロー−チャート、第3
図はサブルーチン5UBRTN iが使用するテーブル
Ai示す図、第4図はテーブルAの原型テーブルを示す
図である。 1・・・テスト制御システム、 2・・・テスト対象ブOグラム、 3・・・レジスタ退避域、 4・・・レジスタ確定・不確定テーブル、5・・・作業
域、 6・・・作業域確定・不確定テーブル、7・・・作成済
みテーブル登録テーブル、8・・・サブフィールド名テ
ーブル、 9・・・端末。
ロック図、第2図はテスト対象プログラム2中の一部の
サブルーチン5UBRTNiのフロー−チャート、第3
図はサブルーチン5UBRTN iが使用するテーブル
Ai示す図、第4図はテーブルAの原型テーブルを示す
図である。 1・・・テスト制御システム、 2・・・テスト対象ブOグラム、 3・・・レジスタ退避域、 4・・・レジスタ確定・不確定テーブル、5・・・作業
域、 6・・・作業域確定・不確定テーブル、7・・・作成済
みテーブル登録テーブル、8・・・サブフィールド名テ
ーブル、 9・・・端末。
Claims (1)
- 【特許請求の範囲】 動的にメモリを確保し、前記メモリ中にテーブルを作り
、前記テーブルのサブフィールドに値を設定、参照し、
さらにテーブル間をポインタでリンクする処理を含むプ
ログラムのテスト方式であって、 テスト対象プログラムが使用するレジスタが退避される
レジスタ退避域と、 レジスタの内容が確定か不確定かを表示するレジスタ確
定・不確定テーブルと、 会話的にテストを指示する端末と、 テスト対象プログラムが実行時に動的に作成する動的テ
ーブルを格納するための作業域と、作業域の内容が確定
か不確定かを表示する作業域確定・不確定テーブルと、 作業域中に作成したテーブルの名前、位置を記憶してお
く作成済みテーブル登録テーブルと、テーブルのサブフ
ィールド名を定義するサブフィールド名テーブルと、 端末との会話通信を行なう端末制御部と、テスト対象プ
ログラムが使用するレジスタ退避域中のレジスタへの値
の設定とレジスタ値の参照、レジスタ確定・不確定テー
ブルへの確定・不確定の表示を行なうレジスタ制御部と
、作業域中にテスト対象プログラムが使用するテーブル
を作成し、作成したテーブルを検索する動的作成テーブ
ル制御部と、テスト対象プログラム中の命令を解析し、
実行を行なう命令制御部とを有し、端末からの入力デー
タで指定されたテスト対象プログラム中の任意のアドレ
スより1命令ずつ命令を解析し、レジスタ確定・不確定
テーブルまたは作業域確定・不確定テーブルを参照して
その命令が不確定なレジスタ、テーブルを参照する場合
には命令実行前に端末にレジスタ番号、テーブル名、サ
ブフィールド名テーブルにあるテーブル中のサブフィー
ルド名を出力し、端末入力がレジスタ、テーブルへの設
定値は動的なテーブルへのポインタ値として指定すれば
テーブル名も端末より入力させ、そのテーブルが作成済
みテーブル登録テーブルにより作成済みであればそのテ
ーブルのアドレスをレジスタ退避域またはテーブルに設
定して、そのテーブルが未作成であれば作業域中にテー
ブルを作成し作成済みテーブル登録テーブルにそのテー
ブルを登録し、その作業域中のアドレスをレジスタ退避
域またはテーブルに設定してレジスタ確定・不確定テー
ブルまたは作業域確定・不確定テーブルの対応する位置
に確定の表示を行ない、端末入力がレジスタ、テーブル
への設定値はポインタ値でないと指定すれば端末より設
定値そのものを入力させ、その入力した値をレジスタ退
避域またはテーブルに設定して、その命令を実行し、そ
の命令がテスト対象プログラムのプログラム域、作成済
みテーブル以外へのアクセスを示していればその命令を
実行せずに端末にプログラム不正の通知を行ない、その
命令がサブルーチン、システムルーチンへのコール命令
であれば端末にそのことを通知し、端末入力の指示でそ
の命令の実行、その命令のスキップを行なうテスト制御
システムを有するプログラムテスト方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60291121A JPS62147534A (ja) | 1985-12-23 | 1985-12-23 | プログラムテスト方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60291121A JPS62147534A (ja) | 1985-12-23 | 1985-12-23 | プログラムテスト方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62147534A true JPS62147534A (ja) | 1987-07-01 |
Family
ID=17764725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60291121A Pending JPS62147534A (ja) | 1985-12-23 | 1985-12-23 | プログラムテスト方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62147534A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381184B2 (en) | 2008-09-02 | 2013-02-19 | International Business Machines Corporation | Dynamic test coverage |
-
1985
- 1985-12-23 JP JP60291121A patent/JPS62147534A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381184B2 (en) | 2008-09-02 | 2013-02-19 | International Business Machines Corporation | Dynamic test coverage |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5038348A (en) | Apparatus for debugging a data flow program | |
JPS6017539A (ja) | エミユレ−シヨン方式 | |
US6799320B1 (en) | Providing binding options for component interfaces | |
WO2022194090A1 (zh) | 一种多语言混合调试方法及装置 | |
JPS62147534A (ja) | プログラムテスト方式 | |
EP0417916B1 (en) | Procedure state descriptor system for digital data processors | |
JPS62113244A (ja) | プログラムテスト装置 | |
JPH0283749A (ja) | マイクロプロセッサの内部割込み制御方式 | |
JPH02118733A (ja) | タスクの実行制御方式 | |
JPS61206050A (ja) | プログラムの動作解析方式 | |
Jackel | ADA concurrency specified by graph grammars | |
JPS61180344A (ja) | 高級言語のステツプ実行システム | |
JP3019330B2 (ja) | コンパイル装置 | |
JPH05108404A (ja) | デバツガシステム | |
JPH05127945A (ja) | プログラム実行状況解析方式 | |
JPS62274343A (ja) | 型変換選択方式 | |
JPH01188957A (ja) | プログラム例外処理方式 | |
JPH01188956A (ja) | プログラム例外処理方式 | |
JPS6292032A (ja) | プログラムテスト方法 | |
Creasman et al. | Design, implementation, and case study of a function level unit test environment | |
JPH064348A (ja) | プログラムデバッグ方式 | |
JPS62137641A (ja) | 高級言語のコンパイラ | |
JPH04307636A (ja) | プログラムテスト方式 | |
KR20010057785A (ko) | 체크 포인트를 이용한 실시간 병렬 프로그램 디버깅 방법 | |
JPS63259735A (ja) | プログラム実動作環境におけるプログラム図によるプログラムデバツク方式 |