JPH02219136A - プログラム改造時のバグ検査方法 - Google Patents

プログラム改造時のバグ検査方法

Info

Publication number
JPH02219136A
JPH02219136A JP1039405A JP3940589A JPH02219136A JP H02219136 A JPH02219136 A JP H02219136A JP 1039405 A JP1039405 A JP 1039405A JP 3940589 A JP3940589 A JP 3940589A JP H02219136 A JPH02219136 A JP H02219136A
Authority
JP
Japan
Prior art keywords
program
modification
data
input
address
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
JP1039405A
Other languages
English (en)
Inventor
Masayuki Kikuchi
菊地 正行
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP1039405A priority Critical patent/JPH02219136A/ja
Publication of JPH02219136A publication Critical patent/JPH02219136A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の目的] (産業上の利用分野) この発明は、インタプリタ言語を用いて作成されたプロ
グラムの改造時におけるバグ発生を検査する方法に関す
る。
(従来の技術) 第4図は、従来この種のバグ検査方法に使用される計算
機システムの構成を示すブロック図である。
同図において、1aはコンピュータ本体、1bはCRT
表示装置、1Cはキーボード、1dはプリンタ装置、1
eはフロッピー装置、1tはフロッピーディスクである
ところで、アプリケーションソフトウェアをある目的の
ために改造する場合、目的部分以外のデータを壊す(消
滅、追加、変更、移動など)ことがある。
プログラム改造につきものの所I![新なるバグの作り
込み」である。
新なるバグの作り込み要因には色々のものがあるが、第
5図にその一例を示す。
この例では、入力はafl類を利用するが、出力が対応
する処理装冒によって異っている。但し、入力の状態或
いは処理結果の状態によっては処理ルート2aが存在す
る。
例えば、出力1内の部分2bを変更する目的で処理1内
の部分2Cをプログラム変更する場合、プログラム改造
者が処理ルート2aの存在を知らされていないか、或い
は失念した場合などには、部分2dに何らかのプログラ
ム改造を加えない限り部分2eに唆化が生ずる。この場
合、出力3の部分2eに「新なるバグ」が作り込まれた
ことになる。
従来、新なるバグの作り込みを発見、防止する手段とし
ては、新旧70グラム同士の比較を行い、プログラム上
の不一致点をリストアツブし、それがプログラム改造の
目的1手法に照して合理的不一致2合理的内容であるこ
とを確認することが行われている。種々市販されている
フフイコンベアなどの所謂「コンベア」プログラムがこ
れである。
(発明が解決しようとする課題) コンピュータによる情報処理において、プログラムは手
段であって目的ではない。目的はデータの処理(加工)
であり、プログラム改造時の[tllなるバグの作り込
み」とは本来目的のデータを対象として判定されるべき
ものである。
しかし、従来は目的であるデータのm、範囲が余りにも
膨大であるために、そのプログラムを使う熟知者に頼り
、重要部分、汎用的部分のみをテストし、そのデータの
不合理な変化を検出する方法が一般的であった。
「データのどこに変化が現われたか」の単純な検出作業
を人間の目視に期待することはまさに不合理である。そ
の結果、[新なるバグJの見つけ損いによる大小の事故
は「日常的」となっているのが現状である。
この発明は、上記の問題点に鑑みなされたもので、その
目的とするところは、[新なるバグの作り込み」部分の
発見を確実且つ容易に行うことができるようにしたプロ
グラム改造時のバグ検査方法を提供することにある。
[発明の構成コ (課題を解決するための手段) この発明は、上記の目的を達成するために、インタプリ
タ言語を用いて作成されたプログラムの改造時における
バグ発生を検査するにおいて、改造前及び改造後の各プ
ログラム中に記述された各命令語の直前アドレスに入力
レジスタのデータを、また直後のアドレスに出力レジス
タのデータをそれぞれ当該命令語アドレスと関連付けて
保存する処理を挿入する第1のステップと、前記挿入処
理が終了した改造前及び改造後の各プログラムを同一の
条件で実行させる第2のステップと、 前記改造前プログラムの実行により得られた入出力レジ
スタデータ列と前記改造後プログラムの実行により得ら
れた入出力レジスタデータ列とを対比させてリスト出力
させる第3のステップと、を行なうことを特徴とするも
のである。
(作用) このような構成によれば、プログラム改造前と改造後の
処理データの不一致個所を自動的にリストアツブするこ
とができ、従ってこのリストアツブされたアドレスナン
バーを手掛りにして、不一致の合理性判定作業を行えば
、プログラマは「新なるバグの作り込み」部分の発見を
確実且つ容易に行うことができる。
(実施例) 第1図に、インタプリタ型プログラムの処理ブロック図
の一部分を示す。
処理は、インタプリタ型に実行され、各処理の入力(3
a、3c、3e、3o、3i )や出力(3b 、 3
d 、 3f 、 3h 、 3j )はレジス・り上
にあるので、プログラム実行のアドレスナンバーに対応
した入力値、出力値を特定することが可能である。
本発明では、この特定する手段として、■プログラム実
行のアドレスナンバーの前後に、入力しジスタを読出し
て保存する機能と、■出力レジスタを読出して保存する
機能と、■アドレスナンバーを保存する機能と、■この
アドレスナンバーの前後に組込む礪能−式を自動的に組
込む機能と、■前記■から■を改造前プログラム上で実
行する式と改造後プログラム上で実行する一式と、■改
造後プログラムで得たレジスタデータと改造後プログラ
ムで得たレジスタデータをアドレスナンバー毎に比較し
、リスト出力する機能とにより実現している。
第2図は、後述する実施例により(qられたリスト出力
の一例を示す図であり、以下このリスト出力が得られる
過程について具体的なプログラムを例にとって説明する
第3図(a ’)に、対象ソフトとして、インタプリタ
含J8であるベーシックで作られた平均値計ロブログラ
ムを示す。
この実施例のソフトでは、まず第一に対象ソフト(プロ
グラム)のアドレスナンバーを第3図(b)に示すよう
に全て読出す。
次に、この実施例ソフトでは、第二に、アドレスナンバ
ー−1を第3図(C)のように処理する。
次に、「入力レジスタ読出しサブルーチン」を第3図(
d )のように挿入する。このサブルーチンの構造は、
■入力レジスタのデータを読出す■読出したデータを対
象ソフトのアドレスナンバー(アドレスナンバー+1と
してして戻す)と対にして保存ファイルへ保存する、も
のである。
次いで、この実施例ソフトでは、第三に、アドレスナン
バー+1を第3図(e )のように処理する。
次に、[出力レジスタ読出しサブルーチン」を第3図(
f )のように挿入する。このサブルーチンの構造は、
■出力レジスタのデータを読出す■続出したデータを対
象ソフトのアドレスナンバー(アドレスナンバー−1と
して戻す)と対にして保存ファイルへ保存する、もので
ある。
次に、オペレータ(デバッグ者)は、入力データを入力
ファイルから入力する。入力ファイルを用いないシステ
ムである場合は、キーボードなどから入力することにな
るが、改造前と改造後とも同じ値を用いることが重要で
ある。
入力データを入力した後、必要性がある場合は演陣その
他メニュー選択などを行う。
この時も、改造前と改造後とでは同じことを同じ手順で
行うことが重要である。
これでプログラム改m klの入力レジスタ、出力レジ
スタのデータを保存できたので、オペレータは「改選前
入力レジスタ、出力レジスタデータ保存ファイル」を更
新しないように接続経路を「断」にする。
この復、対象ソフトを「プログラム改造後」に更新し、
「入力レジスタ、出力レジスタのデータJを以後「改造
後入力レジスタ、出力レジスタデータ保存ファイル」に
保存されるように、接続経路を「断」から「改造後」に
切換える。
以後、航速の[改造前Jで行った処理を、「改造後ソフ
ト」に対しても行い、オペレータが最後にデータ保存経
路を「所」にして、比較データを収集するための実施例
ソフト操作を終了する。
そして、この実施例ソフトでは一番最後に、[改選前入
力レジスタ、出力レジスタデータ」と「改造後入力レジ
スタ、出力レジスタデータ」の比較プログラムを実行す
る。
そして不一致データのリストを第2図の形式で出力させ
る。
これ以降は、オペレータ(デバッグ者)の判断作業とな
る。即ち「従来の技術」の後半で述べたように、新旧プ
ログラム同士をファイルコンベアしてデバッグを行うの
と同様な手法であるが、本実施例の特徴的な相違点は、
入力データの与え方を曇本的データ、R大ボリュームデ
ータ、特殊データなどに分けて行い、その不一致個所を
検出するといった運用方法を採用できる点にある。
このように、以上の実施例によれば、インタプリタ言語
を用いて作成されたプログラムの改造時におけるバグ発
生を検査するにおいて、改造前及び改造後の各プログラ
ム中に記述された各命令語の直前アドレスに入力レジス
タのデータを、また直後アドレスに出力レジスタのデー
タをそれぞれ当該命令語アドレスと関連付けて保存する
処理を挿入する第一のステップと、前記挿入処理が終了
した改造前及び改造後の各プログラムを同一の条件で実
行させる第二のステップと、前記改造前プログラムの実
行により得られた入出力レジスタデータ列と前記改造後
プログラムの実行により得られた入出力レジスタデータ
列とを対比させてリスト出力させる第三のステップとを
行うことを特徴とするものである。
その結束、第2図に示されるように、デバッグ対象とな
るプログラムの各アドレスの関連付けて、パノルジスタ
、出力しジスタ別に、改造前と改造後とのデータの相違
を明瞭にリストアツブさせることができ、このリストを
用いることによって、プログラマは不一致の合理性判定
作業を行い、[新なるバグの作り込み」部分の発見を確
実口つ容易に行うことができるのである。
[発明の効果コ 以上の説明で明らかなように、この発明によるプログラ
ム改造時のバグ検査方法によれば、プログラム改造前と
改造後の処理データの不一致個所を自動的にリストアツ
ブさせることができ、このリストアツブされたアドレス
ナンバーを手掛りとして、不一致の合理性判定作業を行
えば、プログラマは「新なるバグの作り込み」部分の発
見を確実且つ容易に行うことができる。
【図面の簡単な説明】
第1図はインタプリタ型プログラムの処理ブロック図の
一部分を示す図、第2図はリスト出力の一例を示す図、
第3図はデバッグ対象プログラムとその処理過程とをそ
れぞれ示す図、第4図は本発明方法の前提となる計樟機
シスデムの構成を示すブロック図、第5図は新なるバグ
の作り込み要因の一例を示す図である。 1a・・・コンピュータ本体 1b・・・CR7表示装置 1C・・・キーボード 1d・・・プリンタ装置 1e・・・フロッピー装置 1ず・・・フロッピーディスク 3a、3c、3e、3o、3i・・・入力3b、3d、
 3f、3h、3j・・・出力代私弁理士三好秀和 第1図 第2図 INPUT X IF X=−9999THEN 260SS=SS杢X C=C+1 GOTO21G 第3図(a) 03UB 3図(e) 第3図(f) 1g4 第5図

Claims (1)

    【特許請求の範囲】
  1. (1)インタプリタ言語を用いて作成されたプログラム
    の改造時におけるバグ発生を検査するにおいて、 改造前及び改造後の各プログラム中に記述された各命令
    語の直前アドレスに入力レジスタのデータを、また直後
    のアドレスに出力レジスタのデータをそれぞれ当該命令
    語アドレスと関連付けて保存する処理を挿入する第1の
    ステップと、 前記挿入処理が終了した改造前及び改造後の各プログラ
    ムを同一の条件で実行させる第2のステップと、 前記改造前プログラムの実行により得られた入出力レジ
    スタデータ列と前記改造後プログラムの実行により得ら
    れた入出力レジスタデータ列とを対比させてリスト出力
    させる第3のステップと、を行なうことを特徴とするプ
    ログラム改造時のバグ検査方法。
JP1039405A 1989-02-21 1989-02-21 プログラム改造時のバグ検査方法 Pending JPH02219136A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1039405A JPH02219136A (ja) 1989-02-21 1989-02-21 プログラム改造時のバグ検査方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1039405A JPH02219136A (ja) 1989-02-21 1989-02-21 プログラム改造時のバグ検査方法

Publications (1)

Publication Number Publication Date
JPH02219136A true JPH02219136A (ja) 1990-08-31

Family

ID=12552083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1039405A Pending JPH02219136A (ja) 1989-02-21 1989-02-21 プログラム改造時のバグ検査方法

Country Status (1)

Country Link
JP (1) JPH02219136A (ja)

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
JPH03188535A (ja) プログラム・エラー検出方法
US7062753B1 (en) Method and apparatus for automated software unit testing
JP2922723B2 (ja) 情報処理装置
US9032372B2 (en) Runtime environment and method for non-invasive monitoring of software applications
JPH02219136A (ja) プログラム改造時のバグ検査方法
JPH03158937A (ja) プログラム実行制御方式
JP2820184B2 (ja) ロードモジュール単体テスト支援装置
JP2795332B2 (ja) ループ処理誤り検出装置
JP3077627B2 (ja) デバッグ方法およびデバッグプログラムを記録する記録媒体
JPH02115951A (ja) 高級言語プログラム保守デバッグ方式
JP2001166966A (ja) デバッガにおける被テストプログラムの実行環境管理方法
JPS59221753A (ja) サブル−チントレ−サ
JP2728504B2 (ja) 入力命令文検査装置
JPH064348A (ja) プログラムデバッグ方式
JPH07295857A (ja) プログラムデバッグ方法
JPH0468446A (ja) デバッグ支援装置
JPH0391845A (ja) 重複障害解析の自動化システム
JPH0384633A (ja) プログラムエラー検出装置
JPH0695910A (ja) 異常処理のための対話型デバッグ制御方式
JPS6123255A (ja) プログラムの障害解析情報の採取方法
JPH11110253A (ja) プログラムデバッグ装置およびデバッグ方法
JPS63640A (ja) デ−タフロ−の部分ユニツト実行制御方式
JPS63305434A (ja) ディバッギングエイド装置
JPH05341974A (ja) 状態遷移情報の変更評価方式