JPS62108338A - プログラムテスト装置 - Google Patents
プログラムテスト装置Info
- Publication number
- JPS62108338A JPS62108338A JP60249656A JP24965685A JPS62108338A JP S62108338 A JPS62108338 A JP S62108338A JP 60249656 A JP60249656 A JP 60249656A JP 24965685 A JP24965685 A JP 24965685A JP S62108338 A JPS62108338 A JP S62108338A
- Authority
- JP
- Japan
- Prior art keywords
- program
- execution
- command
- undefined
- executed
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of 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)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〈発明の技術分野〉
本発明は、プログラムのテスト装置、特に未定義部分を
含むソースレベルのプログラムを対話形式で実行テスト
するものに関する。
含むソースレベルのプログラムを対話形式で実行テスト
するものに関する。
〈発明の概要〉
この発明は、ソースレベルのプログラムを逐次実行する
インクプリタタイプのプログラムテスト装置であって、
未定義部分を含むラインを実行したことを検出すると、
プログラムの実行レベルのまま未定義部分に対応した値
を強制的に返して、プログラムの実行継続を可能とする
ことにより、トップダウン手法によるプログラム開発を
容易にせんとするものである。
インクプリタタイプのプログラムテスト装置であって、
未定義部分を含むラインを実行したことを検出すると、
プログラムの実行レベルのまま未定義部分に対応した値
を強制的に返して、プログラムの実行継続を可能とする
ことにより、トップダウン手法によるプログラム開発を
容易にせんとするものである。
〈発明の背景〉
一般にrCJ等の各種構造化言語は、多数の関数あるい
はサブルーチンにより1つのプログラムが構成されてお
り、コンパイラおよびリンケージエディタを用いて全体
を1つの機械語プログラムとして統合することにより始
めて実行テストが可能となる。更にこの場合、プログラ
ムリスト中に未定義部分を含むことは許されず、従来は
プログラムが全て完成するのを待つか、スタブを予め作
成する等の方法が採られていた。
はサブルーチンにより1つのプログラムが構成されてお
り、コンパイラおよびリンケージエディタを用いて全体
を1つの機械語プログラムとして統合することにより始
めて実行テストが可能となる。更にこの場合、プログラ
ムリスト中に未定義部分を含むことは許されず、従来は
プログラムが全て完成するのを待つか、スタブを予め作
成する等の方法が採られていた。
しかしながらスタブの作成作業それ自体が極めて繁雑な
作業であり、特に未定義部分がテスト中に発見された場
合は、例えその未定義関数が重要でな(そのまま通過し
たい場合でも、再度始めからコンパイル、リンク等の作
業を行わねばならない等、迅速なプログラムの実行テス
トを行うことは困難であった。
作業であり、特に未定義部分がテスト中に発見された場
合は、例えその未定義関数が重要でな(そのまま通過し
たい場合でも、再度始めからコンパイル、リンク等の作
業を行わねばならない等、迅速なプログラムの実行テス
トを行うことは困難であった。
上記問題に対し、ソースレベルのプログラムを直接実行
するインクプリタタイプのプログラムテスト装置も提案
されているが、未定義部分に対しては従来と略同様にス
タブの定義およびリンク等の繁雑な作業を必要とし、更
にテスト実行途中に未定義部分が見つかった場合は、依
然としてプログラムの実行テストを一旦停止してインタ
プリタの実行レベルからエディタによる編集レベルに入
る必要があるなど、オペレータにとって能率的で快適な
プログラムテスト環境からはほど遠い。
するインクプリタタイプのプログラムテスト装置も提案
されているが、未定義部分に対しては従来と略同様にス
タブの定義およびリンク等の繁雑な作業を必要とし、更
にテスト実行途中に未定義部分が見つかった場合は、依
然としてプログラムの実行テストを一旦停止してインタ
プリタの実行レベルからエディタによる編集レベルに入
る必要があるなど、オペレータにとって能率的で快適な
プログラムテスト環境からはほど遠い。
〈発明の目的〉
本発明は、上記問題に鑑みてなされたものであって、イ
ンクプリタ形式でソースレベルのプログラムを実行中に
未定義な関数あるいは外部変数に行き着いた場合、自動
的にあるいは手動で一定のコマンドを与えてプログラム
の実行を強制的に続行させることにより、未定義部分を
含むプログラムの実行テストが迅速かつ容易に行えるプ
ログラムのテスト装置を提供することを目的とする。
ンクプリタ形式でソースレベルのプログラムを実行中に
未定義な関数あるいは外部変数に行き着いた場合、自動
的にあるいは手動で一定のコマンドを与えてプログラム
の実行を強制的に続行させることにより、未定義部分を
含むプログラムの実行テストが迅速かつ容易に行えるプ
ログラムのテスト装置を提供することを目的とする。
〈発明の構成および効果〉
この発明はソースレベルのプログラムを実行テストする
装置であって、プログラムを1行づつ取り出して順次解
釈実行して行(手段と、該実行手段により未定義な部分
を含むラインが実行されると、実行手段に対して実行を
強制的に継続させるコマンドを送出可能とする手段とを
備えたことを特徴とする。
装置であって、プログラムを1行づつ取り出して順次解
釈実行して行(手段と、該実行手段により未定義な部分
を含むラインが実行されると、実行手段に対して実行を
強制的に継続させるコマンドを送出可能とする手段とを
備えたことを特徴とする。
この発明の構成によれば、プログラム中に未定義な部分
を含んでも同等コンパイル、リンク等の手間を要するこ
となくそのままソースレベルでプログラムの実行テスト
が行え、プログラムの開発能率の向上が図れる利点を有
する。
を含んでも同等コンパイル、リンク等の手間を要するこ
となくそのままソースレベルでプログラムの実行テスト
が行え、プログラムの開発能率の向上が図れる利点を有
する。
〈実施例の説明〉
以下図面に示す実施例に基づき、本発明を具体的に説明
する。
する。
なお実施例では、汎用コンピュータを用い、テスト目的
に応じてソフトウェアを取り替えることにより適用範囲
を広げたC言語用のインクブリタタイプのプログラムデ
バソグシステムに本発明を実施した一例を示すがこれに
限らず、それ単独で動作するテスト専用機等にも略同様
に実施でき、又、被デバツグプログラムの記述言語もr
cJ以外の各種高級言語に変更して略同様に実施できる
ことは勿論である。
に応じてソフトウェアを取り替えることにより適用範囲
を広げたC言語用のインクブリタタイプのプログラムデ
バソグシステムに本発明を実施した一例を示すがこれに
限らず、それ単独で動作するテスト専用機等にも略同様
に実施でき、又、被デバツグプログラムの記述言語もr
cJ以外の各種高級言語に変更して略同様に実施できる
ことは勿論である。
本発明を実施するプログラムデバソグシステムは、第3
図に示す如(、汎用コンピュータを使用したエンジニア
リングワークステーション11と、該ワークステーショ
ン11に対するオペレータの直接的なアクセスを可能と
する端末装置12とから構成される。
図に示す如(、汎用コンピュータを使用したエンジニア
リングワークステーション11と、該ワークステーショ
ン11に対するオペレータの直接的なアクセスを可能と
する端末装置12とから構成される。
ワークステーション11は、マイクロプロセッサを使用
した演算制御装置21を中心として、RAMから成る内
部記憶装置22と、ハードディスクドライブ等の外部記
憶装置23と、周辺装置に対するインターフェース回路
を備えた入出力装置24とを各種バス25を介して接続
したものであって、更にワークステーション11に対し
、入出力装置24を通じて端末装置12が接続される。
した演算制御装置21を中心として、RAMから成る内
部記憶装置22と、ハードディスクドライブ等の外部記
憶装置23と、周辺装置に対するインターフェース回路
を備えた入出力装置24とを各種バス25を介して接続
したものであって、更にワークステーション11に対し
、入出力装置24を通じて端末装置12が接続される。
端末装置12は、ワークステーション11に対する直接
的なアクセスを可能とするキーボード26と、ワークス
テーション11内でのデータ処理状況を視認しうる形で
表示するCRT等のディスプレイ装置27とから成り、
キーボード26からのコマンド人力により、外部記憶装
置23に予め格納しておいたインタプリタデバッガ、被
デバツグプログラムファイル等のプログラム及びデータ
を内部記憶装置22にロードしたあとインタプリタの制
御の基に、被デバツグプログラムを1行づつ取り出して
順次解釈実行させることにより、ワークステーション1
1は全体でプログラムテスト装置として動作する。
的なアクセスを可能とするキーボード26と、ワークス
テーション11内でのデータ処理状況を視認しうる形で
表示するCRT等のディスプレイ装置27とから成り、
キーボード26からのコマンド人力により、外部記憶装
置23に予め格納しておいたインタプリタデバッガ、被
デバツグプログラムファイル等のプログラム及びデータ
を内部記憶装置22にロードしたあとインタプリタの制
御の基に、被デバツグプログラムを1行づつ取り出して
順次解釈実行させることにより、ワークステーション1
1は全体でプログラムテスト装置として動作する。
本発明は、被デバツグプログラムの実行中に未定義な関
数あるいは外部変数を含むラインを実行した際、該プロ
グラムの実行を継続するためのコマンドを上記インタプ
リタに対して追加したことを特徴とする。
数あるいは外部変数を含むラインを実行した際、該プロ
グラムの実行を継続するためのコマンドを上記インタプ
リタに対して追加したことを特徴とする。
すなわち第1図に示す如く、プログラムの作成中に存在
が判っている未定義関数fに対しては、所定の値を自動
的に返す命令”s tub”を用意し、プログラムリス
ト31中に予め記述しておく。一方、プログラムの実行
テスト中に見つかった未定義関数に対しては、手動で任
意な値を返す命令“return”を用意するとともに
、プログラムの実行を未定義関数を実行した状態で一旦
停止して、端末装置12からのキー人力を受け付け、r
eturn命令により直接的に値をインタプリタ側に戻
してプログラムの実行を継続させる。
が判っている未定義関数fに対しては、所定の値を自動
的に返す命令”s tub”を用意し、プログラムリス
ト31中に予め記述しておく。一方、プログラムの実行
テスト中に見つかった未定義関数に対しては、手動で任
意な値を返す命令“return”を用意するとともに
、プログラムの実行を未定義関数を実行した状態で一旦
停止して、端末装置12からのキー人力を受け付け、r
eturn命令により直接的に値をインタプリタ側に戻
してプログラムの実行を継続させる。
より具体的な例をもって説明すると、returnコマ
ンドは、rreturn 引数」のフォーマントで記
述され、この命令が実行されると強制的に引数の値を呼
び出し側に戻してプログラムを継続する。
ンドは、rreturn 引数」のフォーマントで記
述され、この命令が実行されると強制的に引数の値を呼
び出し側に戻してプログラムを継続する。
一方s tubコマンドは、rstub 関数名 実
行文」のフォーマットで記述されるものであって、「関
数名」には具体的な未定義関数の名前“f“を記述する
か、あるいは全ての未定義関数に対して同一の動作をさ
せるのであれば、9*”のマークを記入する。更に「実
行文Jには、単純に数値を戻すのであれば上記retu
rn命令を用い、変数に一定の演算処理を加えるのであ
れば、演算式を記述することにより、第1図に示す如く
、「未定義な関数f」に到達すると自動的にスタブ関数
の「実行文」が実行された後に所定値が呼び出し側に戻
され、被デバツグプログラムの実行を継続するのである
。
行文」のフォーマットで記述されるものであって、「関
数名」には具体的な未定義関数の名前“f“を記述する
か、あるいは全ての未定義関数に対して同一の動作をさ
せるのであれば、9*”のマークを記入する。更に「実
行文Jには、単純に数値を戻すのであれば上記retu
rn命令を用い、変数に一定の演算処理を加えるのであ
れば、演算式を記述することにより、第1図に示す如く
、「未定義な関数f」に到達すると自動的にスタブ関数
の「実行文」が実行された後に所定値が呼び出し側に戻
され、被デバツグプログラムの実行を継続するのである
。
例えば全てのスタブ関数が、外部変数aに1を加える動
作で正常にプログラムの実行が′a続され得るのであれ
ば、rstub * a++ Jと定義する。また
スタブ関数fに行き着いた時、強制的に1を返してプロ
グラムを継続したい場合はrstub f ret
urn I Jとソースプログラムのりスト31上に
記載しておく。
作で正常にプログラムの実行が′a続され得るのであれ
ば、rstub * a++ Jと定義する。また
スタブ関数fに行き着いた時、強制的に1を返してプロ
グラムを継続したい場合はrstub f ret
urn I Jとソースプログラムのりスト31上に
記載しておく。
一方スタブ関数を定義しないで未定義のままその関数に
行き着いた場合に、「0」を返してプログラムを継続し
たい時には、プログラムの実行が停止した時点でキーボ
ードからr returnO」を入力する。
行き着いた場合に、「0」を返してプログラムを継続し
たい時には、プログラムの実行が停止した時点でキーボ
ードからr returnO」を入力する。
なお未定義関数に対して全て同一の処理で良いのなら、
コマンドファイルを別に用意して該ファイル上にret
urn命令を記述しておくとともに、未定義関数を実行
した場合に、コマンドファイルを参照してコマンドを自
動実行させる様にすればよい。
コマンドファイルを別に用意して該ファイル上にret
urn命令を記述しておくとともに、未定義関数を実行
した場合に、コマンドファイルを参照してコマンドを自
動実行させる様にすればよい。
第2図は、インタプリタによる制御の流れを説明するも
のであって、ステップ41において被デバツグプログラ
ムの実行を開始すると、インタプリタはプログラムリス
ト31から1行取り込み(ステップ42)、その行の命
令を解釈実行する(ステップ43)。ここでステップ4
4で、入力行に未定義関数を含むか否かの判定がなされ
、判定が“NO“であればステップ42に戻って順次被
デバツグプログラムを実行テストして行く。
のであって、ステップ41において被デバツグプログラ
ムの実行を開始すると、インタプリタはプログラムリス
ト31から1行取り込み(ステップ42)、その行の命
令を解釈実行する(ステップ43)。ここでステップ4
4で、入力行に未定義関数を含むか否かの判定がなされ
、判定が“NO“であればステップ42に戻って順次被
デバツグプログラムを実行テストして行く。
しかし、ステップ44の判定が“YES″であれば、未
定義関数を実行中であると判断されるので、次にステッ
プ45で5tub関数が既に定義されているか否かの判
定がなされ、判定が“YES”であればスタブ命令を実
行したあと(ステップ46)、ステップ42に戻る。ス
テップ45の判定が“NO”であれば、コマンドファイ
ルが存在するか否かの判断がなされ(ステップ47)、
“YES”であればコマンドファイル中のコマンドを実
行(ステップ48)したあとステップ42に戻るが、“
NO”であれば、プログラムの実行を一旦停止して、未
定義関数が呼び出された旨のコメントをディスプレイ装
置27上に表示(ステップ49)するとともに、端末装
置12からのキー人力を受け付け(ステップ50)、ス
テップ51でコマンド入力が確認されると、そのコマン
ドを実行(ステップ52)したあと、ステップ42に戻
ってプログラムを継続するのである。
定義関数を実行中であると判断されるので、次にステッ
プ45で5tub関数が既に定義されているか否かの判
定がなされ、判定が“YES”であればスタブ命令を実
行したあと(ステップ46)、ステップ42に戻る。ス
テップ45の判定が“NO”であれば、コマンドファイ
ルが存在するか否かの判断がなされ(ステップ47)、
“YES”であればコマンドファイル中のコマンドを実
行(ステップ48)したあとステップ42に戻るが、“
NO”であれば、プログラムの実行を一旦停止して、未
定義関数が呼び出された旨のコメントをディスプレイ装
置27上に表示(ステップ49)するとともに、端末装
置12からのキー人力を受け付け(ステップ50)、ス
テップ51でコマンド入力が確認されると、そのコマン
ドを実行(ステップ52)したあと、ステップ42に戻
ってプログラムを継続するのである。
第1図はプロゲラ11リスト上の処理の流れを示す説明
図、第2図は制御の処理手順を説明する流れ図、第3図
は本発明を実施する装置の一例を示すブロック図である
。 11・・・・ワークステーション 12・・・・端末装置 31・・・・プログラムリスト
図、第2図は制御の処理手順を説明する流れ図、第3図
は本発明を実施する装置の一例を示すブロック図である
。 11・・・・ワークステーション 12・・・・端末装置 31・・・・プログラムリスト
Claims (3)
- (1)ソースレベルのプログラムを1行づつ取り出して
順次解釈実行して行く手段と、 該実行手段により未定義な部分を含むラインが実行され
ると、実行手段に対して実行を強制的に継続させるコマ
ンドを送出可能とする手段とを備えたプログラムテスト
装置。 - (2)前記コマンド送出手段から送られるコマンドは、
ソースプログラムの未定義な部分に対応して予め設定し
ておいた値を返すコマンドであって、ソースプログラム
リスト上に予め記述され、未定義部分を実行手段が実行
すると自動的に該コマンドが実行される特許請求の範囲
第1項記載のプログラムテスト装置。 - (3)コマンド送出手段から送られるコマンドは、ソー
スプログラムの未定義な部分に対応した値を返したあと
プログラムの実行を再開させるコマンドであって、未定
義部分を実行手段が実行するとプログラムの実行を一旦
停止して、前記コマンドの手動による入力を受け付ける
特許請求の範囲第1項記載のプログラムテスト装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60249656A JPH0766343B2 (ja) | 1985-11-06 | 1985-11-06 | プログラムテスト装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60249656A JPH0766343B2 (ja) | 1985-11-06 | 1985-11-06 | プログラムテスト装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62108338A true JPS62108338A (ja) | 1987-05-19 |
| JPH0766343B2 JPH0766343B2 (ja) | 1995-07-19 |
Family
ID=17196262
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60249656A Expired - Lifetime JPH0766343B2 (ja) | 1985-11-06 | 1985-11-06 | プログラムテスト装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0766343B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01136212A (ja) * | 1987-11-24 | 1989-05-29 | Hitachi Ltd | シーケンス制御プログラムのテスト方法 |
| JPH0228839A (ja) * | 1988-07-19 | 1990-01-30 | Nec Corp | ルーチン単独テスト処理システムにおけるロードモジュール生成方式 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS50114138A (ja) * | 1974-02-15 | 1975-09-06 | ||
| JPS58175061U (ja) * | 1983-04-06 | 1983-11-22 | 凸版印刷株式会社 | 綴物 |
-
1985
- 1985-11-06 JP JP60249656A patent/JPH0766343B2/ja not_active Expired - Lifetime
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS50114138A (ja) * | 1974-02-15 | 1975-09-06 | ||
| JPS58175061U (ja) * | 1983-04-06 | 1983-11-22 | 凸版印刷株式会社 | 綴物 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01136212A (ja) * | 1987-11-24 | 1989-05-29 | Hitachi Ltd | シーケンス制御プログラムのテスト方法 |
| JPH0228839A (ja) * | 1988-07-19 | 1990-01-30 | Nec Corp | ルーチン単独テスト処理システムにおけるロードモジュール生成方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0766343B2 (ja) | 1995-07-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6249907B1 (en) | Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program | |
| EP2165261B1 (en) | In-process debugging using external debugging infrastructure | |
| EP0785510B1 (en) | Program debugging system for debugging a program having a graphical user interface | |
| JP2004326789A (ja) | ジャストマイコード型のデバッグ方法 | |
| KR20000028921A (ko) | 반도체 시험장치의 프로그램 작성 시스템 | |
| JPH03296145A (ja) | 会話形動作プログラムの自動実行方法 | |
| JPS62108338A (ja) | プログラムテスト装置 | |
| JPS62113244A (ja) | プログラムテスト装置 | |
| JPH11110256A (ja) | プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体 | |
| JP4055197B2 (ja) | プログラムに含まれる手続きの解析装置 | |
| JPH02275539A (ja) | デバッグ処理方式 | |
| Johnson | The design of a high-level, language-independent symbolic debugging system | |
| Johnson et al. | Implementation issues for a source level symbolic debugger | |
| JPS626260B2 (ja) | ||
| JP2004287869A (ja) | プログラム実行監視装置および方法 | |
| JPS6292034A (ja) | プログラムデバツグ装置 | |
| JPH05250221A (ja) | シミュレータ実行方式 | |
| JP2659366B2 (ja) | デバッグ方法及びその装置 | |
| JP2007004516A (ja) | 組込みシステムのプログラムデバッグ方法 | |
| JPH01152505A (ja) | Pcのプログラムデバッグ方式 | |
| JPS6292032A (ja) | プログラムテスト方法 | |
| JPH07319730A (ja) | テスト・デバッグ方法 | |
| JPH052477A (ja) | グラフイカル・ユーザ・インタフエースの作成方式 | |
| JPH06242943A (ja) | ソースコードレベルデバッグ装置 | |
| JPS6033640A (ja) | デ−タ・モニタ方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |