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
Application number
JP60291121A
Other languages
English (en)
Inventor
Toyoki Ofuji
大藤 豊喜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP60291121A priority Critical patent/JPS62147534A/ja
Publication of JPS62147534A publication Critical patent/JPS62147534A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing 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またはテーブルに設定してレジスタ確定・不確定テ
ーブルまたは作業域確定・不確定テーブルの対応する位
置に確定の表示を行ない、端末入力がレジスタ、テーブ
ルへの設定値はポインタ値でないと指定すれば端末より
設定値そのものを入力古せ、その入力した値をレジスタ
退避域またはテーブルに設定して、その命令を実行し、
その命令かテスト対象プログラムのプログラム域、作成
済みテーブル以外へのアクセスを示していればその命令
を実行せずに端末にプログラム不正の通知を行ない、そ
の命令がサブルーチン、システムルーチンへのコール命
令であれば端末にそのことを通知し、端末入力の指示で
その命令の実行、その命令のスキップを行なうテスト制
御システムを有する。
このように、命令実行前に不確定なレジスタ値、メそり
値を端末より入力し、テスト実行中に端末よりの入力で
動的テーブルを作成することにより、任意のプログラム
のアドレスより、どのようなプログラムでも必要最小限
のデータを与えるだけでプログラムのテストを行なえる
のでテストの効率が大幅に向上し、さらにサブルーチン
、システムルーチンのコールをスキップすることもでき
ることにより、そのサブルーチン、システムルーチンが
返す(aを端末より入力するようにすれば未完成なサブ
ルーチンがなくてもテスト可能であり、システムに悪い
影響を与えないでテストを行なうことができる。
〔実施例〕
以下、本発明の実施例について図面を参照して説明する
第1図は本発明のプログラムテスト方式の一実施例を示
すブロック図、第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かうな
る。
原型テーブルMの原型テーブル名QTTBL。
0ETBL 、サブフィールド名QTSUBFI、 Q
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
)つながっていると仮定する。
このような状態でのこのサブルーチン5UBRTNiの
テストを順を追って説明する。
まず、レジスタ制御部1−3はレジスタ確定・不確定テ
ーブル4にすべてのレジスタが不確定の表示をし、動的
作成テーブル制御部1−2は作業域確定・不確定テーブ
ル6にすべての作業域が不確定の表示をし、作成済みテ
ーブル登録テーブル7にはテーブルが登録されてない状
態にして端末制御部1−1を通しで端末9と接続する。
端末9が入力データでサブルーチン5uBRTNiの開
始点よりのテスト実行を指示すると、テスト制御システ
ム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−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という名前をつけることを入力する。
ここで動的作成テーブル制御部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の処理が
終わる。
ここで端末制御部1−1は端末9に処理の終了を通知す
る。端末9がここでレジスタ、テーブル^TBL、 B
TBL、 CTBLの内容参照の指示を行なうと、レジ
スタの内容、テーブルATBL、 BTBL、 CTB
Lの内容が端末9に出力される(テーブルの内容はサブ
フィールド名とともに出力される)のでサブルーチン5
UBRTNiの処理の結果を検証することができる。
端末9は端末制御部1−1と会話中はいつでも作成済み
テーブルの参照、テーブルの作成、レジスタへの値設定
、レジスタの参照が可能で、データをプログラムが必要
とする前に一括して与え起り、プログラムの進行中に任
意のデータの参照を行なうことができる。また、ステッ
プ実行モードを指定すれば1命令の実行の113度端末
9と会話することも可能である。
言うまでもなく本発明のプログラムテスト方式は動的テ
ーブルを使用しないプログラムのテストも可能である。
C発明の効果〕 以上説明したように本発明は、命令実行前に不確定なレ
ジスタ値、メモリ値を端末より入力し、テスト実行中1
こ端末よりの入力で動的テーブルを作成することにより
、任意のプログラムのアドレスより、どのようなプログ
ラムでも必要最小限のデータを与えるだけでプログラム
のテストを行なえるのでテストの効率か大幅に向上し、
さらにサブルーチン、システムルーチンのコールをスキ
ップすることもできることにより、そのサブルーチン、
システムルーチンか返す値ヲ端末より入力するようにす
れば未完成なサブルーチンがなくてもテスト可能であり
、システムに悪い影Wを与えないでテスト行なうことか
できる効果がある。
【図面の簡単な説明】
第1図は本発明のプログラムテスト方式の一実施例のブ
ロック図、第2図はテスト対象プログラム2中の一部の
サブルーチン5UBRTNiのフロー−チャート、第3
図はサブルーチン5UBRTN iが使用するテーブル
Ai示す図、第4図はテーブルAの原型テーブルを示す
図である。 1・・・テスト制御システム、 2・・・テスト対象ブOグラム、 3・・・レジスタ退避域、 4・・・レジスタ確定・不確定テーブル、5・・・作業
域、 6・・・作業域確定・不確定テーブル、7・・・作成済
みテーブル登録テーブル、8・・・サブフィールド名テ
ーブル、 9・・・端末。

Claims (1)

  1. 【特許請求の範囲】 動的にメモリを確保し、前記メモリ中にテーブルを作り
    、前記テーブルのサブフィールドに値を設定、参照し、
    さらにテーブル間をポインタでリンクする処理を含むプ
    ログラムのテスト方式であって、 テスト対象プログラムが使用するレジスタが退避される
    レジスタ退避域と、 レジスタの内容が確定か不確定かを表示するレジスタ確
    定・不確定テーブルと、 会話的にテストを指示する端末と、 テスト対象プログラムが実行時に動的に作成する動的テ
    ーブルを格納するための作業域と、作業域の内容が確定
    か不確定かを表示する作業域確定・不確定テーブルと、 作業域中に作成したテーブルの名前、位置を記憶してお
    く作成済みテーブル登録テーブルと、テーブルのサブフ
    ィールド名を定義するサブフィールド名テーブルと、 端末との会話通信を行なう端末制御部と、テスト対象プ
    ログラムが使用するレジスタ退避域中のレジスタへの値
    の設定とレジスタ値の参照、レジスタ確定・不確定テー
    ブルへの確定・不確定の表示を行なうレジスタ制御部と
    、作業域中にテスト対象プログラムが使用するテーブル
    を作成し、作成したテーブルを検索する動的作成テーブ
    ル制御部と、テスト対象プログラム中の命令を解析し、
    実行を行なう命令制御部とを有し、端末からの入力デー
    タで指定されたテスト対象プログラム中の任意のアドレ
    スより1命令ずつ命令を解析し、レジスタ確定・不確定
    テーブルまたは作業域確定・不確定テーブルを参照して
    その命令が不確定なレジスタ、テーブルを参照する場合
    には命令実行前に端末にレジスタ番号、テーブル名、サ
    ブフィールド名テーブルにあるテーブル中のサブフィー
    ルド名を出力し、端末入力がレジスタ、テーブルへの設
    定値は動的なテーブルへのポインタ値として指定すれば
    テーブル名も端末より入力させ、そのテーブルが作成済
    みテーブル登録テーブルにより作成済みであればそのテ
    ーブルのアドレスをレジスタ退避域またはテーブルに設
    定して、そのテーブルが未作成であれば作業域中にテー
    ブルを作成し作成済みテーブル登録テーブルにそのテー
    ブルを登録し、その作業域中のアドレスをレジスタ退避
    域またはテーブルに設定してレジスタ確定・不確定テー
    ブルまたは作業域確定・不確定テーブルの対応する位置
    に確定の表示を行ない、端末入力がレジスタ、テーブル
    への設定値はポインタ値でないと指定すれば端末より設
    定値そのものを入力させ、その入力した値をレジスタ退
    避域またはテーブルに設定して、その命令を実行し、そ
    の命令がテスト対象プログラムのプログラム域、作成済
    みテーブル以外へのアクセスを示していればその命令を
    実行せずに端末にプログラム不正の通知を行ない、その
    命令がサブルーチン、システムルーチンへのコール命令
    であれば端末にそのことを通知し、端末入力の指示でそ
    の命令の実行、その命令のスキップを行なうテスト制御
    システムを有するプログラムテスト方式。
JP60291121A 1985-12-23 1985-12-23 プログラムテスト方式 Pending JPS62147534A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381184B2 (en) 2008-09-02 2013-02-19 International Business Machines Corporation Dynamic test coverage

Cited By (1)

* Cited by examiner, † Cited by third party
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
US4949255A (en) Message interface and method for recursive calling between interpretive and compiled computer processes
US6799320B1 (en) Providing binding options for component interfaces
WO2022194090A1 (zh) 一种多语言混合调试方法及装置
JPS62147534A (ja) プログラムテスト方式
US5388263A (en) Procedure state descriptor system for digital data processors
JPH0766342B2 (ja) プログラムテスト装置
JPH02275539A (ja) デバッグ処理方式
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JPH02220145A (ja) プログラムトレース方式
JPH02118733A (ja) タスクの実行制御方式
Jackel ADA concurrency specified by graph grammars
JPS61180344A (ja) 高級言語のステツプ実行システム
JPS61180342A (ja) 高級言語のステツプ実行方式
JP3019330B2 (ja) コンパイル装置
JPH05108404A (ja) デバツガシステム
JPH05127945A (ja) プログラム実行状況解析方式
Berthaud et al. Coupling virtual machines and system construction
JPS62274343A (ja) 型変換選択方式
JPH01188957A (ja) プログラム例外処理方式
JPH01188956A (ja) プログラム例外処理方式
JPS6292032A (ja) プログラムテスト方法
JPH02135548A (ja) プログラムのテスト処理システム
Creasman et al. Design, implementation, and case study of a function level unit test environment
JPH064348A (ja) プログラムデバッグ方式