(57)【特許請求の範囲】
【請求項１】
ＣＯＢＯＬで記述されたソースプログラムから該ソースプログラムのデバッガ用のテストコマンドファイルを作成するコンピュータシステムであって、
上記ソースプログラムの字句解析および構文解析を行い、
上記ソースプログラムの定義部から各定義文を読み出すと共に、当該定義文におけるコピー句の内容をコピー句ファイルから読み込み、上記各定義文毎および上記各コピー句の内容毎に、構造体記号名称とレベル、項目記号名称、属性、桁数を登録した定義部の解析結果表を生成して記憶装置に格納し、かつ、上記ソースプログラムの実行部における各実行文を読み出し、各実行文毎に、セクション名と区分、階層レベル、行番号、コーディング文に分けて登録した実行部の解析結果表を生成して記憶装置に格納する解析手段と、
上記定義部の解析結果表を記憶装置から読み込み該定義部の解析結果表における登録内容と、当該定義文および当該コピー句に対して操作者がテスト用に設定するデータ値を入力する欄とからなるシミュレーション用シートを生成して記憶装置に格納する第１の入力シート生成手段と、
上記実行部の解析結果表を記憶装置から読み込み該実行部の解析結果表から各命令を順次に抽出し、抽出した各命令の一覧と、各命令に対して、当該命令をブレイクポイントとして上記テストコマンドファイルに出力するか否かを操作者が設定する入力欄とからなるブレイクポイント用シートを生成して記憶装置に格納する第２の入力シート生成手段と、
該第２の入力シート生成手段が生成したブレイクポイント用シートと上記第１の入力シート生成手段が生成したシミュレーション用シートを記憶装置から読み出して画面表示する表示手段と、
画面表示されたブレイクポイント用シートおよびシミュレーション用シートにおける各入力欄に対して、操作者が指定入力した情報を設定する入力手段と、
該入力手段が操作者からの指定入力情報を設定したブレイクポイント用シートおよびシミュレーション用シートを用いてテストコマンドファイルを生成して出力するコマンド作成手段と
を有することを特徴とするテストコマンドファイル作成システム。
【請求項２】
請求項１に記載のテストコマンドファイル作成システムであって、
上記定義部の解析結果表と上記実行部の解析結果表を記憶装置から読み込み、該定義部の解析結果表と実行部の解析結果表から、当該ソースプログラムに対応するＰＡＤを生成して表示装置に出力して表示する手段と、
表示装置に表示したＰＡＤにおいて操作者が入力装置を操作して指定した箇所のＰＡＤ生成に用いた上記定義部の解析結果表と実行部の解析結果表における行番号、区分、項目記号名称、属性、桁数を含む情報を読み出して当該箇所に表示する手段と、
表示した行番号、区分、項目記号名称、属性、桁数を含む情報を、操作者の入力装置からの操作指示に応じて、上記ブレイクポイント用シートに設定する手段と
を有することを特徴とするテストコマンドファイル作成システム。
【請求項３】
コンピュータにより、ＣＯＢＯＬで記述されたソースプログラムから該ソースプログラムのデバッガ用のテストコマンドファイルを作成するテストコマンドファイル作成方法であって、
上記コンピュータは、プログラムされたコンピュータ処理を実行する手段として解析手段と第１の入力シート生成手段、第２の入力シート生成手段、表示手段、入力手段、コマンド作成手段を具備し、
上記解析手段により、
上記ソースプログラムの字句解析および構文解析を行い、上記ソースプログラムの定義部から各定義文を読み出すと共に、当該定義文におけるコピー句の内容をコピー句フィアルから読み込み、上記各定義文毎および上記各コピー句の内容毎に、構造体記号名称とレベル、項目記号名称、属性、桁数を登録した定義部の解析結果表を生成して記憶装置に格納し、かつ、上記ソースプログラムの実行部における各実行文を読み出し、各実行文毎に、セクション名と区分、階層レベル、行番号、コーディング文に分けて登録した実行部の解析結果表を生成して記憶装置に格納する第１の手順を実行し、
上記第１の入力シート生成手段により、
上記定義部の解析結果表を記憶装置から読み込み該定義部の解析結果表における登録内容と、当該定義文および当該コピー句に対して操作者がテスト用に設定するデータ値を入力する欄とからなるシミュレーション用シートを生成して記憶装置に格納する第２の手順を実行し、
上記第２の入力シート生成手段により、
上記実行部の解析結果表を記憶装置から読み込み該実行部の解析結果表から各命令を順次に抽出し、抽出した各命令の一覧と、各命令に対して、当該命令をブレイクポイントして上記テストコマンドファイルに出力するか否かを操作者が設定する入力欄とからなるブレイクポイント用シートを生成して記憶装置に格納する第３の手順を実行し、
上記表示手段により、
上記第３の手順で生成したブレイクポイント用シートと上記第２の手順で生成したシミュレーション用シートを記憶装置から読み出して画面表示する第４の手順を実行し、
上記入力手段により、
画面表示されたブレイクポイント用シートおよびシミュレーション用シートにおける各入力欄に対して、操作者が指定入力した情報を設定する第５の手順を実行し、
上記コマンド作成手段により、
上記第５の手順で操作者からの指定入力情報を設定したブレイクポイント用シートおよびシミュレーション用シートを用いてテストコマンドファイルを生成して出力する第６の手順を実行する
ことを特徴とするテストコマンドファイル作成方法。
【請求項４】
請求項３に記載のテストコマンドファイル作成方法であって、
上記コンピュータは、プログラムされたコンピュータ処理を実行する手段としてＰＡＤ作成手段とＰＡＤ制御手段を具備し、
上記ＰＡＤ作成手段により、
上記定義部の解析結果表と上記実行部の解析結果表を記憶装置から読み込み、該定義部の解析結果表と実行部の解析結果表から、当該ソースプログラムに対応するＰＡＤを生成して表示装置に出力して表示する手順を実行し、
上記ＰＡＤ制御手段により、
上記表示装置に表示したＰＡＤにおいて操作者が入力装置を操作して指定した箇所のＰＡＤ生成に用いた上記定義部の解析結果表と実行部の解析結果表における行番号、区分、項目記号名称、属性、桁数を含む情報を読み出して当該箇所に表示する手順を実行し、
上記ＰＡＤ作成手段により、
上記表示した行番号、区分、項目記号名称、属性、桁数を含む情報を、操作者の入力装置からの操作指示に応じて、上記ブレイクポイント用シートに設定する手順を実行する
ことを特徴とするテストコマンドファイル作成方法。
【請求項５】
コンピュータに、下記の各手順を実行させて、ＣＯＢＯＬで記述されたソースプログラムから該ソースプログラムのデバッガ用のテストコマンドファイルを作成するためのプログラム。
上記ソースプログラムの字句解析および構文解析を行い、上記ソースプログラムの定義部から各定義文を読み出すと共に、当該定義文におけるコピー句の内容をコピー句フィアルから読み込み、上記各定義文毎および上記各コピー句の内容毎に、構造体記号名称とレベル、項目記号名称、属性、桁数を登録した定義部の解析結果表を生成して記憶装置に格納し、かつ、上記ソースプログラムの実行部における各実行文を読み出し、各実行文毎に、セクション名と区分、階層レベル、行番号、コーディング文に分けて登録した実行部の解析結果表を生成して記憶装置に格納する第１の手順と、
上記定義部の解析結果表を記憶装置から読み込み該定義部の解析結果表における登録内容と、当該定義文および当該コピー句に対して操作者がテスト用に設定するデータ値を入力する欄とからなるシミュレーション用シートを生成して記憶装置に格納する第２の手順と、
上記実行部の解析結果表を記憶装置から読み込み該実行部の解析結果表から各命令を順次に抽出し、抽出した各命令の一覧と、各命令に対して、当該命令をブレイクポイントして上記テストコマンドファイルに出力するか否かを操作者が設定する入力欄とからなるブレイクポイント用シートを生成して記憶装置に格納する第３の手順と、
上記第３の手順で生成したブレイクポイント用シートと上記第２の手順で生成したシミュレーション用シートを記憶装置から読み出して画面表示する第４の手順と、
画面表示されたブレイクポイント用シートおよびシミュレーション用シートにおける各入力欄に対して、操作者が指定入力した情報を設定する第５の手順と、
上記第５の手順で操作者からの指定入力情報を設定したブレイクポイント用シートおよびシミュレーション用シートを用いてテストコマンドファイルを生成して出力する第６の手順。
【請求項６】
請求項５に記載のプログラムであって、コンピュータに、下記の各手順を実行させるためのプログラム。
上記定義部の解析結果表と上記実行部の解析結果表を記憶装置から読み込み、該定義部の解析結果表と実行部の解析結果表から、当該ソースプログラムに対応するＰＡＤを生成して表示装置に出力して表示する手順と、
上記表示装置に表示したＰＡＤにおいて操作者が入力装置を操作して指定した箇所のＰＡＤ生成に用いた上記定義部の解析結果表と実行部の解析結果表における行番号、区分、項目記号名称、属性、桁数を含む情報を読み出して当該箇所に表示する手順と、
上記表示した行番号、区分、項目記号名称、属性、桁数を含む情報を、操作者の入力装置からの操作指示に応じて、上記ブレイクポイント用シートに設定する手順。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータが実行するプログラムの動作をデバッガでテストする際に使用するコマンドファイル（テストコマンドファイル）を作成する技術に係り、特に、テストコマンドファイルの作成を容易にするのに好適な技術に関するものである。
【背景技術】
【０００２】
従来、プログラムをデバッガを用いて動作の確認テストをする際に使用するテストコマンドファイルの作成は、当該プログラムをコンパイルして出力されるテストコマンドファイルの雛形ファイルに、人手により、機能仕様やプログラム詳細設計を参照しながら、必要なテストコマンドを追記または修正することにより、行っていた。
【０００３】
このようにして作成されたテストコマンドファイルは、例えば、ＧＮＵが提供するデバッガ「ｇｄｂ」においては、通常はｇｄｂのコマンドプロンプトから入力するコマンドの並びであり、「−ｘ」オプションを使うこと等により、起動時に自動的に読み込ませて実行させることができる。
【０００４】
しかしながら、人手により、仕様書類を２冊以上広げてテストコマンドファイルを作成するには、卓上の広さがなかったり、新人などのコマンドファイルを利用してテストを行っていない作業者では、テストコマンドを理解するのに時間がかかってしまい、実際のテストを行うまでに時間がかかってしまう。
【０００５】
また、テストコマンドファイルの作成元のプログラムを修正すると、当該プログラムのコンパイル上の行番号がずれるために、以前作成したコマンドファイルでの再テストができなくなり、再度、テストコマンドファイルの作成を行う必要があり、時間がかかる。
【０００６】
このようなデバッグ用のテストコマンドの作成を容易とする技術に関しては、例えば、特許文献１〜４に記載の技術がある。
【０００７】
特許文献１では、解決すべき課題を有する従来の第１のテストコマンド生成技術と、この課題を解決するための第２のテストコマンド生成技術が記載されている。
【０００８】
第１のテストコマンド生成技術では、まず、プログラミング言語に従って作成された原始プログラムを、翻訳プログラム（コンパイラ）によって、コンピュータが解読実行可能な機械語の実行形式プログラムに翻訳すると共に、テストコマンドファイルも同時に生成する。しかし、このテストコマンドファイルは、原始プログラムのみが入力されているので情報が不足し、定型的なテストコマンドしか生成されない。
【０００９】
そこで、利用者（プログラマ）は、シンボリックデバッガを使用する前に、ディスプレイ端末から編集プログラムを起動し、テストコマンドファイルのテストコマンドを、テストしたい情報に変更して、編集後のテストコマンドファイルを作成する。
【００１０】
例えば、原始プログラムが、
『０１  ＣＯＤＥ    ＰＩＣ  Ｘ（４）・データ定義        
０１  ＴＡＮＫＡ  ＰＩＣ  ９（８）・データ定義        
ＰＲＯＣＥＤＵＲＥ  ＤＩＶＩＳＩＯＮ                  
ＵＳＩＮＧ  ＣＯＤＥ  ＴＡＮＫＡ              』
であるとする。
【００１１】
この場合、その属性に従って、「ＣＯＤＥ」は４バイトのキャラクタであるので「（Ｘ（４））」、翻訳プログラム（コンパイラ）によって生成される編集前のテストコマンド（未完成テストコマンド）には、「ＣＯＤＥ＝ＡＢＣＤ」が設定され、また「ＴＡＮＫＡ」は８桁の数字であるので「（９（８））」、編集前のテストコマンド（未完成テストコマンド）には、「ＴＡＮＫＡ＝１２３４５６７８」が設定される。このように、翻訳プログラム（コンパイラ）によって生成される未完成テストコマンドには標準的な値しか設定されない。
【００１２】
このため、利用者（プログラマ）は、デバッグ前に編集ツールを用いてテストコマンドファイルを、テストしたい情報に編集する。すなわち、この例では、データ名に従って「ＣＯＤＥ」に「Ａ１０５」、「ＴＡＮＫＡ」に「１２００」を設定する。
【００１３】
これに対して、第２のテストコマンド生成技術では、第１のテストコマンド生成技術においてデバッグ前に行う編集作業を不要にし、テスト準備作業を簡素化するものであり、テストすべき原始プログラムのデータ名に対応するデータ値を登録した辞書情報ファイルを設け、原始プログラムをコンパイルするときに、当該原始プログラムのプログラム名をキーにして辞書情報ファイルを検索し、原始プログラム中のデータ名に対応するデータ値を辞書情報ファイルから読み出し、読み出されたデータ値を設定したテストコマンドファイルを生成する。
【００１４】
このように、辞書情報ファイルに、予めデータ名に対応した設定すべき値を登録し、原始プログラムの内容を読み込んだ翻訳プログラムが、原始プログラムのプログラム名をキーにして辞書情報ファイルを検索し、原始プログラムのデータ名に対応する、辞書情報ファイルに登録された設定値を読み出して、テストコマンドファイルに設定する。これにより、シンボリックデバッガに入力される環境設定のためのテストコマンドファイルの編集作業が不要となる。
【００１５】
しかし、第１のテストコマンド生成技術では、テストコマンドファイルの編集・作成を、仕様書類を２冊以上広げて行う代わりに、ディスプレイ端末上で行うようにしただけであり、また、第２のテストコマンド生成技術においても、辞書情報ファイルへのデータ値の登録には同様の作業が必要であり、共に、新人の作業者では、テストコマンドを理解するのに時間がかかってしまい、実際のテストを行うまでに時間がかかってしまう。
【００１６】
また、特許文献２には、シミュレータとデバッガとの相互作用によりコンピュータプログラムに対するデバッグを行う技術に関して、ソースプログラムに予めデバッグコマンドを埋め込み、このデバッグコマンドを埋め込んだソースプログラムをアセンブルしてオブジェクトコードを生成する際、当該デバッグコマンドを抽出し、各デバッグコマンドの各々に対応するブレークポイントコマンドを生成し、ブレークポイントコマンドおよびそれに対応するデバッグコマンドをデバッグコマンドファイルに書き込むことにより、コマンドファイルを作成し、そして、ソースプログラムの修正に際して、ブレークポイントコマンドおよびそれに対応する埋め込みデバッグコマンドをデバックコマンドファイルから取り除き、それにより、修正されたソースプログラムの再アセンブルの際に、ソースプログラムのそれぞれ新しい相対位置にある埋め込みデバックコマンドに対応する新しいブレークポイントコマンドを含む新しいコマンドファイルを自動的に作成する技術が記載されている。
【００１７】
しかし、この特許文献２に記載の技術においても、ソースプログラムに予めデバッグコマンドを埋め込む作業に関しては、新人などのコマンドファイルを利用してテストを行っていない作業者では時間がかかってしまい、実際のテストを行うまでに時間がかかってしまう。
【００１８】
また、特許文献３には、デバッガを用いて行う複数モジュールからなるプログラムの単体テストおよび部分結合テストにおいて、スタブ作成や外部変数の設定等の前処理を行わずに、テストを開始できるようにすることを課題とした技術が記載されている。
【００１９】
すなわち、デバッガの中にグローバル変数等の被テストプログラム内にない変数に関する変数参照管理テーブルを設け、そのような変数の参照がある毎に、当該テーブルを参照し、既に適切な値が設定されているならばそれを用い、値が未だ設定されていない場合や、テストのために値を換える必要がある場合には、ユーザ（操作者）がその場で値を指定することによって、デバッガのコマンドを生成し実行する。このユーザの指示はデバッグコマンドファイルとして保存し、後の再テストや同種のテストにおいて同じ操作を行わなくても良いようにする。
【００２０】
しかし、この特許文献３に記載の技術においても、変数参照管理テーブルの生成や、値が未だ設定されていない場合のユーザによる値の指定作業に関しては、新人などのコマンドファイルを利用してテストを行っていない作業者では時間がかかってしまい、実際のテストを行うまでに時間がかかってしまう。
【００２１】
また、特許文献４では、ウィンドウ画面を用いた操作者との対話的操作により、テスト対象のプログラムに対応した、デバッガ用のテストコマンドを生成する技術が記載されている。
【００２２】
この技術では、まず、表示された「プログラム表示ウィンドウ」においてテスト対象となるプログラムが指定されると、指定された「プログラム」が「プログラム表示ウィンドウ）」中に、「図形エディタ」の形式で（直接プログラムソースの形式でも良い）表示される。
【００２３】
次に、この「図形エディタ形式」で表示された「プログラム」において、「着目するデータ項目）」がマウスで指定され、「ファイルメニューにおける抽出」が選択されると、「テストデータエディタウィンドウ」と「プログラムソース抽出ウィンドウ」が生成され表示される。
【００２４】
尚、「プログラム表示ウィンドウ」において、「オプション」における「抽出オプション設定」が指定されると、例えば、「参照データ項目使用命令」や「分岐命令」が表示され、これらが選択されると、こららの「参照データ項目」や「分岐命令」に関しても「テストデータエディタウィンドウ」と「プログラムソース抽出ウィンドウ」において表示される。
【００２５】
そして、この「プログラムソース抽出ウィンドウ」を参照して、「テストデータエディタウィンドウ」において「データ値」に値が設定され、「プログラムソース抽出ウィンドウ」において「テストコマンド生成」が指定されると、データ値が設定された「テストコマンド」が生成される。
【００２６】
このようにして、特許文献４に記載の技術によれば、ウィンドウを用いた操作者との対話的操作により、テスト対象のプログラムに対応した、デバッガ用のテストコマンドを生成することができる。
【００２７】
しかし、この特許文献４に記載の技術においても、「テストデータエディタウィンドウ」と「プログラムソース抽出ウィンドウ」での入力となっており、作業者は、プログラムのコーディングレベルの内容が理解できていないと、入力作業は困難である。
【００２８】
また、特許文献４に記載の技術においては、分岐、ファイル、外部ルーチン全てにブレイクポイントを発生させ、「テストデータエディタウィンドウ」と「プログラムソース抽出ウィンドウ」から入力された内容を取り込んでテストコマンドを作成しており、プログラムによっては、テストコマンド文が長くなり、テストコマンドが見ずらい。また、テストで不必要に出力されるテスト結果にブレイクポイントの実行結果が表示がされるので、テスト結果が見ずらいとの問題がある。
【００２９】
さらに、特許文献４に記載の技術においては、テストコマンドは画面から変更して保存するファイル名を変えて保存するが、作業者は、作業の途中で横槍が入るとどのような条件でどのような値を入力してどのようなテストするのかを忘れてしまうことがあり、これによって作成したテストコマンドは不必要なものになる場合もある。例えば、作業途中で他の作業を行った後には、作業者は、どのような条件でそのような値を設定しているのか、瞬時に思い出すことができず、間違えを起こす場合がある。
【００３０】
また、例えば、特許文献５、特許文献６、特許文献７に記載のように、プログラムを解析し、視覚的に確認できるようにする技術がある。さらに、特許文献８に記載のように、ＰＡＤ（Ｐｒｏｂｌｅｍ  Ａｎａｌｙｓｉｓ  Ｄｉａｇｒａｍ）を作成する支援技術と、このＰＡＤからプログラムソースを作成する技術がある。
【００３１】
しかし、これらの従来技術では、プログラムからテストコマンドファイルを作成することはできない。
【００３２】
【特許文献１】特開平７−８４８２８号公報
【特許文献２】特開平８−２７２６４８号公報
【特許文献３】特開２００１−２２９０４４号公報
【特許文献４】特開平６−２５０８８３号公報
【特許文献５】特開平５−１１９９８９号公報
【特許文献６】特開平５−３１３８７０号公報
【特許文献７】特開平６−３１４１９１号公報
【特許文献８】特開平１０−９１４１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００３３】
解決しようとする問題点は、従来の技術では、デバッグによるテストの対象となるプログラムの内容や言語を知らない初心者には、当該プログラム用のテストコマンドファイルを容易に作成することができない点である。
【００３４】
本発明の目的は、これら従来技術の課題を解決し、作業者のスキルやテスト状況の変化にも即座に対応でき、新人等、誰でも容易にテストコマンドファイルを作成できるようにすることである。
【課題を解決するための手段】
【００３５】
上記目的を達成するため、本発明では、ソースプログラムの字句解析および構文解析を行い、定義部の解析結果表と実行部の解析結果表とを生成し、定義部の解析結果表における各項目の一覧と各項目に対するデータ値を含む操作者からのデバッグ用設定情報を入力する欄とからなるシミュレーション用シートを生成すると共に、実行部の解析結果表における各命令の一覧と各命令に対する操作者からのブレイクポイントの設定の要否を含むデバッグ用制御情報を入力する欄からなるブレイクポイント用シートを生成し、これらのブレイクポイント用シートとシミュレーション用シートを画面表示し、画面表示されたブレイクポイント用シートおよびシミュレーション用シートに対して、操作者が指定入力した情報を設定し、このような操作者指定入力情報が設定されたブレイクポイント用シートおよびシミュレーション用シートを用いてテストコマンドファイルを生成することを特徴とする。さらに、実行部の解析結果表から、当該ソースプログラムに対応するＰＡＤを生成して表示装置に表示し、表示したＰＡＤにおいて操作者が入力装置を操作して指定した箇所のＰＡＤ生成に用いた実行部の解析結果表における情報を読み出して当該箇所に表示し、そして、表示した実行部の解析結果表における情報を、操作者の入力装置からの操作指示に応じて、ブレイクポイント用シートに設定することを特徴とする。
【発明の効果】
【００３６】
本発明によれば、作業者のスキルやテスト状況の変化にも容易に対応でき、新人等、誰でも容易にテストコマンドファイルの作成および再作成を行うことが可能となる。
【発明を実施するための最良の形態】
【００３７】
以下、図を用いて本発明を実施するための最良の形態例を説明する。図１は、本発明に係るテストコマンドファイル作成システムの構成例を示すブロック図であり、図２Ａは、図１におけるプログラムソースの第１の具体例を示す説明図、図２Ｂは、図１におけるプログラムソースの第２の具体例を示す説明図である。
【００３８】
また、図３は、図１における解析結果シート（定義部）の具体例を示す説明図、図４は、図１における解析結果シート（実行部）の具体例を示す説明図、図５は、図１におけるシミュレーション用シートの具体例を示す説明図、図６は、図１におけるブレイクポイント用シートの具体例を示す説明図、図７は、図１におけるＰＡＤ作成部で作成されたＰＡＤの具体例を示す説明図である。
【００３９】
さらに、図８は、図１におけるテストコマンドファイル作成システムの本発明に係る第１の処理動作例を示すフローチャート、図９は、図１におけるテストコマンドファイル作成システムの本発明に係る第２の処理動作例を示すフローチャート、図１０は、図１におけるテストコマンドファイル作成システムの本発明に係る第３の処理動作例を示すフローチャート、図１１は、図１におけるテストコマンドファイル作成システムの本発明に係る第４の処理動作例を示すフローチャート、図１２は、図１におけるテストコマンドファイル作成システムの本発明に係る第５の処理動作例を示すフローチャートである。
【００４０】
そして、図１３は、ブレイクポイント設定選択用の操作画面例を示す説明図、図１４Ａは、図１におけるテストコマンドファイル作成システムが作成したテストコマンドファイルの第１の具体例を示す説明図、図１４Ｂは、図１におけるテストコマンドファイル作成システムが作成したテストコマンドファイルの第２の具体例を示す説明図、図１４Ｃは、図１におけるテストコマンドファイル作成システムが作成したテストコマンドファイルの第３の具体例を示す説明図である。
【００４１】
図１に示す本例のプログラム解析システムは、ＣＰＵ（Central Processing Unit）や主メモリ、表示装置、入力装置、外部記憶装置からなるコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ（Compact Disc−Read Only Memory）もしくはＤＶＤ（Digital VＩＤeo Disc/Digital Versatile Disc）等からなる光ディスクに記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の機能を実行するものである。
【００４２】
図１において、１はキーボードやマウス等からなる入力装置、１ａはＣＲＴ（Cathode Ray Tube）やＬＣＤ(LiquＩＤ Crystal Display)等からなる表示装置、２ａ，２〜６はそれぞれＣＰＵのプログラム実行で実現される機能としてのプログラム制御部２ａ（図中「プログラム制御（ボタン操作）」と記載）とプログラム解析部２（図中「プログラム解析」と記載）、入力シート作成部３（図中「入力シート作成」と記載）、ＰＡＤ作成部４（図中「ＰＡＤ作成」と記載）、ＰＡＤ制御部５（図中「ＰＡＤ制御」と記載）、テストコマンドファイル作成部６（図中「テストコマンドファイル」と記載）である。
【００４３】
また、７〜１４はＣＰＵのプログラム実行で生成され記憶装置に記憶されるデータであり、７はテストコマンドファイル作成対象のプログラム（図中「プログラムソース」と記載）、８はプログラム７で使用するコピー句群であるディレクトリ（図中「コピー句」と記載）、９，１０は各々プログラム解析部２が作成した解析結果シート（定義部）（９）と解析結果シート（実行部）（１０）、１１，１２は入力シート作成部３が作成したシミュレーション用シート（１１）とブレイクポイント用シート（１２）であり、１３はＰＡＤ作成部４が作成したＰＡＤであり、１４は本例のテストコマンドファイル作成システムが作成したテストコマンドファイルである。
【００４４】
プログラム７は、図２Ａ，Ｂに示すように、当該プログラム７で使用する変数部分１５と、プログラム７の実行部分１６からなる。
【００４５】
プログラム制御部２ａは、入力装置１での操作者による追加、修正等の指示入力操作に応じて、プログラム解析部２、入力シート作成部３、ＰＡＤ作成部３、ＰＡＤ制御部５、テストコマンドファイル作成部６を起動、制御する。
【００４６】
プログラム解析部２は、プログラム７の解析を、図２Ａ，Ｂに示す変数部分１５とプログラムの実行部分１６とに分けて、図８に示す手順で行い、図３に詳細を示す解析結果シート（定義部）９と、図４に詳細を示す解析結果シート（実行部）１０を生成する。
【００４７】
入力シート作成部３は、プログラム解析部２の解析結果である解析結果シート（定義部）９と解析結果シート（実行部）１０を用いて、図９に示す手順を実行し、図５に詳細を示すシミュレーション用シート１１と、図６に詳細を示すブレイクポイント用シート１２を作成し、表示装置１ａに出力する。
【００４８】
ＰＡＤ作成部４は、プログラム解析部２の解析結果である解析結果シート（定義部）９と解析結果シート（実行部）１０を用いて、図１０に示す手順を実行し、図７に詳細を示すＰＡＤ１３を作成し、表示装置１ａに出力する。
【００４９】
ＰＡＤ制御部５は、ＰＡＤ作成部４が作成して表示装置１ａに表示したＰＡＤ１３に対する、入力装置１での操作者による追加、修正等の指示入力操作に応じて、図１２に示す手順を実行し、ブレークポイント用シート１２に対する追加、修正等の補助入力を行う。
【００５０】
テストコマンドファイル作成部６は、シミュレーション用シート１１とブレイクポイント用シート１２からなる入力シートを用いて、図１１に示す手順を実行し、テストコマンドファイル１４を作成して出力する。
【００５１】
以下、このような構成からなるテストコマンドファイル作成システムの本発明に係る処理動作について具体的に説明する。
【００５２】
プログラム解析部２は、図８に示すように、プログラムの全行取り込み手順６０と、行番号再付番手順６１、定義部解析手順６２、実行部解析手順６３の順で処理を行う。プログラムの全行取り込み手順６０は、図２Ａ，Ｂに詳細を示す「ＣＯＢＯＬ」で記述されたプログラム７を順次に読み取る。
【００５３】
そして、定義部解析手順６２でＣＯＢＯＬの定義文についての解析処理を行い、実行部解析手順６３でＣＯＢＯＬの実行処理の解析処理を行うことで、プログラム全体の全てのステップ（構文）に対する解析処理を行う。
【００５４】
プログラムの全行取り込み手順６０では、プログラムファイルがＥＯＦになるまで、プログラムファイルから１行入力する手順と、入力行数を＋１カウントする手順、入力行を配列（内部メモリ）にスタックする手順を繰り返して、プログラムの全行を読み込む。
【００５５】
行番号再付番手順６１では、「０」を行番号スタックに設定した後、前処理のプログラムの全行取り込み手順６０で配列にスタックしたデータｉ分、以下の手順を繰り返す。まず、行番号スタックが「０」であるか否かを判別し、「０」でなければ、配列（ｉ）の先頭６桁が行番号スタック以上であるか否かを判定し、以上であれば、配列（ｉ）の先頭６桁を行番号スタックに設定し、以上でなければ、桁行番号スタックに、配列（ｉ）の先頭６桁を設定する。
【００５６】
その後、あるいは、上記行番号スタックが「０」であるか否かの判定で「０」であれば、配列（ｉ）がコピー文であるか否かを判別する。
【００５７】
コピー文であれば、コピー句行数に「０」を設定し、コピー句ファイルがＥＯＦになるまで、コピー句行数のカウントアップを繰り返した後、コピー句行数を桁行番号スタックに加算する。
【００５８】
その後、あるいは、上記配列（ｉ）がコピー文であるか否かの判定で、コピー文でなければ、次の配列に対する処理に移る。
【００５９】
定義部解析手順６２は、入力シート作成部３によるシミュレーション用シート１１とブレイクポイント用シート１２の作成、および、ＰＡＤ作成部４によるＰＡＤ１３の作成用に、ＣＯＰＹ句（８）を展開した状態を作り出すものであり、変数部分（定義）１５の先頭から実行部分１６の前までを、図３に示す内容で展開し、解析結果シート（定義部）９を生成する。
【００６０】
すなわち、定義部解析手順６２では、配列数（スタック数）ｉ分、実行部分１６における「ＰＲＯＣＥＤＵＲＥ  ＤＩＶＩＳＩＯＮ」文が現れるまで、プログラムファイルから配列ｉの内容を読み込み、これが「プログラムＩＤ」、「ファイル関連」、「ＣＯＰＹ句関連」のいずれであるかを判定し、それぞれの判定結果に応じた処理を行う。
【００６１】
例えば、配列ｉの内容が「プログラムＩＤ」、「ファイル関連」の何れでもなく、「ＣＯＰＹ句関連」であれば、ＣＯＰＹ句展開が必要であるか否かを判定し、必要であれば、ＣＯＰＹ句ファイルから１行分入力する手順と、ＣＯＰＹ句から読み込んだ１行内容を解析結果シート（定義部）９に設定する手順と、設定行数を＋１カウントする手順とを、ＣＯＰＹ句ファイルがＥＯＦになるまで繰り返す。
【００６２】
また、配列ｉの内容が「ファイル関連」であれば、ＣＯＰＹ句展開が必要であるか否かを判定し、必要であれば、ＣＯＰＹ句ファイルから１行分入力する手順と、ＣＯＰＹ句から読み込んだ１行内容を解析結果シート（定義部）９に設定する手順と、設定行数を＋１カウントする手順とを、ＣＯＰＹ句ファイルがＥＯＦになるまで繰り返す。
【００６３】
また、配列ｉの内容が「プログラムＩＤ」であれば、グローバルなメモリに退避させると共に、解析結果シート（定義部）９に設定する。尚、グローバルなメモリに退避させた「プログラムＩＤ」は、後のブレークポイント用シートの作成やＰＡＤの作成に用いる。
【００６４】
このようにして、プログラム解析部２は、定義部解析手順６２により、図３に示すように、解析結果シート（定義部）９として、ＦＩＬＥ論理装置名１７（ファイルに関わる定義のみ設定）、構造体記号名１８（構造体の場合は０１レベルの項目記号名称）、レベル１９、項目記号名称２０、属性２１、桁数２２に展開する。
【００６５】
実行部解析手順６３は、入力シート作成部３によるシミュレーション用シート１１とブレイクポイント用シート１２の作成、および、ＰＡＤ作成部４によるＰＡＤ１３の作成用に、プログラムの実行部分１６（命令群）を展開した状態を作り出すものであり、図４に示す処理内容で展開し、解析結果シート（実行部）１０を生成する。
【００６６】
すなわち、実行部解析手順６３では、配列数（スタック数）ｉ分、プログラムの実行部分１６における「ＰＲＯＣＥＤＵＲＥ  ＤＩＶＩＳＩＯＮ」文から終わりまで、以下の処理を繰り返し行う。
【００６７】
まず、配列ｉの内容を、解析文エリアに設定する。この「解析文エリア」を使用することで、複数行に渡っている構文を１つの構文につなげる。
【００６８】
例えば、配列の一部が、ある行において「配列（ｉ）＝ＭＯＶＥ  ’１’」、次の行において「配列（ｉ＋１）＝          ＴＯ  ＡＩＴＥＭ．」のようになっているとすると、まず、配列（ｉ）の内容（ＭＯＶＥ  ’１’）を解析文エリアに入れる。この部分が、上述の「配列ｉの内容を、解析文エリアに設定する」処理である。
【００６９】
次に、以降の「構文のつなぎ処理」により、配列（ｉ＋１）の内容（          ＴＯ  ＡＩＴＥＭ．）を解析文エリアにつなげて入れ、その結果、解析文エリアの内容は「ＭＯＶＥ  ’１’  ＴＯ  ＡＩＴＥＭ．」となる。
【００７０】
「構文のつなぎ処理」では、まず、スペースをループ終了フラグに設定することで、複数行に渡っている構文をつなげる処理の終わりを示すフラグのクリア処理（初期化）を行い、その後、配列（ｉ＋１）において、ループ終了フラグに「ＥＮＤ」が設定されるまで、つなげる処理を繰り返す（つなげ処理ループ）。
【００７１】
このつなげ処理ループでは、配列（ｉ＋１）において主要命令文群が存在するか否かを判定し、存在すれば、ループ終了フラグに「ＥＮＤ」を設定して当該つなげ処理ループを抜けるようにし、また、存在しなければ、配列（ｉ＋１）における主要命令文が終了文であるか否かを判定し、終了文であれば、ループ終了フラグに「ＥＮＤ」を設定して当該つなげ処理ループを抜けるようにし、終了文でなければ、解析文エリアに、配列（Ｉ＋１）の先頭７文字から７２文字目までを連結して記憶した後、余分なスペースを排除する。
【００７２】
このような複数行に渡っている構文をつなげる処理が終わりになったかどうかを判断する具体例では、例えば、上述の「配列（ｉ＋１）＝          ＴＯ  ＡＩＴＥＭ．」の次が、「配列（ｉ＋２）＝ＰＥＲＦＯＲＭ  Ａ＿ＳＵＢ  ＵＳＩＮＧ  ＡＩＴＥＭ，ＢＩＴＥＭ．」となっていた場合、処理の終了と判断する。
【００７３】
すなわち、配列（ｉ＋２）における「ＰＥＲＦＯＲＭ」はＣＯＢＯＬの命令文の１つなので、「配列（ｉ）＝ＭＯＶＥ  ’１’」における「ＭＯＶＥ」文は配列＝ｉ＋１で終わっていることになる。
【００７４】
このようにして、この構文をつなげる処理においては、１つ先の状態を判断して、構文が１ステップで終わっているのか複数ステップに渡っているのかを判断している。
【００７５】
そして、ループ終了フラグに「ＥＮＤ」が設定され当該つなげ処理ループを抜けると、命令文の階層レベルを算出し、算出した階層レベルと解析エリアに記憶した内容とを解析結果シート（実行部）１０に設定し、次の配列（ｉ）の処理に移る。
【００７６】
このようにして、プログラム解析部２は、プログラム７の実行部分１６の情報から、実行部解析手順６３により、図４に示すように、解析結果シート（実行部）１０として、ＳＥＣＴＩＯＮ名２３、区分２４（命令を特定の記号に置き換えたコードのことであり、ＰＡＤ作成部４で使用する）、階層レベル２５、行番号２６、コーディング文２７に展開する。
【００７７】
次に、図９を用いて、入力シート作成部３による、図５に示す、プログラムで使用する入出力ファイルやＣＡＬＬ文で実行される外部サブルーチンのテスト用のシミュレーション用シート１１の作成処理動作と、図６に示す、テスト時に実行を中断しテストの状態を制御するブレイクポイント用シート１２の作成処理動作を説明する。
【００７８】
本例の入力シート作成部３は、図９に示すように、プログラムで使用する入出力ファイルテスト用のシミュレーション用シートの作成処理６４と、テスト時に実行を中断してテストの状態を制御するブレイクポイント用シートの作成処理６５、および、ＣＡＬＬ文で実行される外部サブルーチンのテスト用のシミュレーション用シートの作成処理６６の順で処理を行い、シミュレーション用シート１１とブレイクポイント用シート１２とに分けて作成する。
【００７９】
シミュレーション用シートの作成処理６４とＣＡＬＬ文で実行される外部サブルーチンのテスト用のシミュレーション用シートの作成処理６６では、シミュレーション用シート１１を、テストコマンドファイル作成部６でのテストコマンドファイル作成が容易となるように、図５に示すようにして、ファイル又はモジュール名３０、代表構文３１（外部サブルーチンをＣＡＬＬ文の代表例）、シミュレーション区分３２（ファイルシミュレーション用と外部サブルーチンシミュレーション用の区別を設定）、記号名称３３（引数の０１レベルの項目記号名称）、レベル３４、項目名３５（項目記号名称のこと）、属性３６、桁数３７に展開する。
【００８０】
また、ブレイクポイント用シートの作成処理６５では、ブレイクポイント用シート１２を、テストコマンドファイル作成部６でのテストコマンドファイル作成が容易となるように、図６に示すようにして、行番号４３、記号名称４４（ブレイクポイントがどのＳＥＣＴＩＯＮなのかを設定）、出力有無４５（このブレイクポイントをテストコマンドファイルに出力するか否かをＹＥＳ、ＮＯで設定）に展開をする。
【００８１】
入出力ファイルテスト用のシミュレーション用シートの作成処理６４では、具体的には図９に示すように、まず、スペースを退避ＦＩＬＥ論理装置名エリアに設定して退避ＦＩＬＥ論理装置名エリアを初期化し、その後、図３に詳細を示す解析結果シート（定義部）９から１行ずつ入力して、ＥＯＦになるまで以下の処理を繰り返す。
【００８２】
すなわち、入力行のＦＩＬＥ論理装置名が、退避ＦＩＬＥ論理装置名エリアに設定したものと一致するか否かを判定し、一致しなければ、入力行のＦＩＬＥ論理装置名がスペースとなっているかを判定し、スペースになっていれば、解析結果シート（定義部）９から次の行を入力して処理を繰り返し、スペースでなければ、新たに当該ＦＩＬＥ論理装置名の分のシミュレーション用シート１１を作成すると共に、既に作成しておいたシミュレーション用シート１１に、解析結果シート（定義部）９から読み込んだ１行の内容を設定出力する。
【００８３】
また、入力行のＦＩＬＥ論理装置名が、退避ＦＩＬＥ論理装置名エリアに設定したものと一致すれば、既に作成しておいたシミュレーション用シート１１に、解析結果シート（定義部）９から読み込んだ１行の内容を設定出力（追記）する。
【００８４】
また、ブレイクポイント用シートの作成処理６５では、図４に詳細を示す解析結果シート（実行部）１０から１行ずつ入力して、ＥＯＦになるまで、ＣＡＬＬ文で実行される外部サブルーチンのテスト用のシミュレーション用シートの作成処理６６を含む以下の処理を繰り返す。
【００８５】
すなわち、入力行の区分が、主要分岐命令の区分群に存在するものであるか否かを判定し、存在すれば、当該解析結果シート（実行部）１０から読み込んだ１行の内容を、ブレークポイント用シート１２に設定出力（追記）する。
【００８６】
その後、ＣＡＬＬ文で実行される外部サブルーチンのテスト用のシミュレーション用シートの作成処理６６として、まず、入力行の区分がＣＡＬＬ文であるか否かを判定し、ＣＡＬＬ文でなければ、解析結果シート（実行部）１０における次の１行に対する処理に戻り、ＣＡＬＬ文であれば、当該ＣＡＬＬ文に関して既にシミュレーション用シートが作成済みであるか否かを判定する。
【００８７】
既にシミュレーション用シートが作成済みであれば、解析結果シート（実行部）１０における次の１行に対する処理に戻り、作成済みでなければ、当該ＣＡＬＬ文用に新たなシミュレーション用シートを作成し、解析結果シート（実行部）１０から読み込んだ１行の内容から引数を取得し、解析結果シート（定義部）９から当該引数の情報を取得し、取得した引数の内容を、作成したシミュレーション用シートに設定出力（追記）する。
【００８８】
このようにして、入力シート作成部３は、シミュレーション用シートの作成処理６４，６６とブレイクポイント用シートの作成処理６５により、図３に詳細を示す解析結果シート（定義部）９と図４に詳細を示す解析結果シート（実行部）１０から、図５に示すように、ファイル又はモジュール名３０、代表構文３１、シミュレーション区分３２、記号名称３３、レベル３４、項目名３５、属性３６、桁数３７に展開されたシミュレーション用シート１１と、図６に示すように、行番号４３、記号名称４４、出力有無４５に展開されたブレイクポイント用シート１２を生成する。
【００８９】
次に、ＰＡＤ作成部４による、解析結果シート（定義部）９と解析結果シート（実行部）１０から、図７に詳細を示すＰＡＤ１３を生成する処理について、図１０を用いて説明する。
【００９０】
図７に示すＰＡＤは、図３に詳細を示す解析結果シート（定義部）と図４に詳細を示す解析結果シート（実行部）から生成された例を示しており、例えば、操作者がマウス等の入力装置を操作してＰＡＤ記号のセル５８をクリックするとコメント５９が表示されるように作成する。
【００９１】
このコメント５９においては、解析結果シート（定義部）と解析結果シート（実行部）からその命令のブレイクポイントの行番号２６、区分２４、項目記号名称２０、属性２１、桁数２２が展開される。
【００９２】
このようなセル（５８）とコメント（５９）の作成は、以下に説明する、図１０における処理６７に示すようにして行われる。
【００９３】
ＰＡＤ作成部４は、図１０に示すように、解析結果シート（実行部）から１行ずつＥＯＦになるまで、読み込み、以下の処理を繰り返す。まず、読み込んだ行数と読み込んだ行の階層レベルから図形を張る位置（セル位置）を算出し、算出した位置（セル位置）に、読み込んだ行の区分から特定図形を張る。
【００９４】
その後、読み込んだ行のコーディング文から変数を取り出し、解析結果シート（定義部）から該当の変数の情報を取得し、取得した変数の情報と読み込んだ行の情報から、セルのコメントに内容を埋め込む（処理６７）。
【００９５】
このようにしてＰＡＤ作成部４で作成された図７に詳細を示すＰＡＤは、入力シート作成部３が生成した図５に詳細を示すシミュレーション用シート（１１）と図６に詳細を示すブレークポイント用シート（１２）と共に、表示装置１ａに画面表示される。
【００９６】
そして、操作者は、表示装置１ａに表示されたシミュレーション用シート（１１）とブレークポイント用シート（１２）に対して、ＰＡＤを参照しながら、入力装置を介して入力操作を行い、その入力結果に応じた内容に基づき、テストコマンドファイル作成部６が、テストコマンドファイル１４を生成して出力する。
【００９７】
操作者は、入力装置１を操作して、まず、図５のシミュレーション用シート（１１）におけるチェックＩＤ（チェックリストのチェックＩＤ）３８、値３９、出力文形式４０を手入力する。
【００９８】
尚、図５のシミュレーション用シート（１１）における出力文形式４０は、入力シート作成部３により、幾つかの文（例えば、「Ｄ：ＤＶのみ」、「Ｓ：ＳＶのみ」、「ＮＤ：ＤＶ（無条件）」、「ＮＳ：ＤＶ，ＳＶ両方（無条件）」等）が設定されており、操作者の誤入力を防ぐようにしてある。
【００９９】
また、図５のシミュレーション用シート（１１）における行挿入２８と行削除２９は、操作者が入力装置１を操作して、表（シミュレーション用シート１１）の行を増やしたり、特定の行を削除したりするのに使用される。これにより、操作者は、容易にシミュレーション用シート１１を編集・作成することが可能となる。
【０１００】
さらに、操作者は、入力装置１を操作して、図６のブレークポイント用シート（１２）における行番号４９、記号名称５０（ＳＥＣＴＩＯＮ名）、レベル５１、項目名５２（項目記号名称）、属性５３、桁数５４、チェックＩＤ５５（チェックリストのチェックＩＤ）、値５６、出力文形式５７を手入力する。
【０１０１】
尚、図６のブレークポイント用シート（１２）における出力文形式５７は、入力シート作成部３により、幾つかの文（例えば、「Ｄ：ＤＶのみ」、「Ｓ：ＳＶのみ」、「ＮＤ：ＤＶ（無条件）」、「ＮＳ：ＤＶ，ＳＶ両方（無条件）」等）が設定されており、操作者の誤入力を防ぐようにしてある。
【０１０２】
また、図６のブレークポイント用シート（１２）における行挿入（４１，４６）と行削除（４２，４７）は、操作者が入力装置１を操作して、表（ブレークポイント用シート１２）の行を増やしたり、特定の行を削除したりするのに使用される。これにより、操作者は、容易にブレークポイント用シート１２を編集・作成することが可能となる。
【０１０３】
さらに、図６のブレークポイント用シート（１２）における属性変更４８は、値５６のセル属性を属性５３により設定することができる。
【０１０４】
また、図６のブレークポイント用シート（１２）における行番号４９、記号名称５０（ＳＥＣＴＩＯＮ名）、レベル５１、項目名５２（項目記号名称）、属性５３、桁数５４については、図７に詳細を示すＰＡＤ１３を使用・参照することにより設定することが出来る。このようなＰＡＤ１３を使用したＰＡＤ制御部５の処理動作例を図１２を用いて説明する。
【０１０５】
図１２に示すように、図７に示すＰＡＤ１３においてセルがクリックされると（ステップ７０）、ＰＡＤ制御部５は、図１３に詳細を示すブレイクポイント設定選択画面７４を表示する（ステップ７１）。
【０１０６】
そして、このブレイクポイント設定選択画面７４において、操作者（ユーザ）が、入力装置１を操作し、「キャンセル」を選択してクリックするとそのまま処理を終了するが、「ブレイクポイントのみ設定」を選択して「ＯＫ」をクリックすると、セルのコメント（５９）と解析結果シート（定義部）９および解析結果シート（実行部）１０から、図６に示すブレイクポイント用シート（１２）の「ブレイクポイント」における「行番号」、「記号名称」、「出力有無」に関する情報を取り出し、ブレイクポイント用シート（１２）の「ブレイクポイント」における当該欄（行番号、記号名称、出力有無）に設定する。
【０１０７】
また、ブレイクポイント設定選択画面７４において、操作者（ユーザ）が、入力装置を操作し、「Ｓｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅ条件設定」を選択して「ＯＫ」をクリックすると、セルのコメント（５９）と解析結果シート（定義部）９および解析結果シート（実行部）１０から、図６に示すブレイクポイント用シート（１２）の「ブレイクポイント」における「行番号」、「記号名称」、「出力有無」に関する情報、および、ブレイクポイント用シート（１２）の「Ｓｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅ」における「行番号」、「記号名称」、「レベル」、「項目名称」、「属性」、「桁数」に関する情報を取り出し、ブレイクポイント用シート（１２）の「ブレイクポイント」における当該欄（「行番号」、「記号名称」、「出力有無」）、および、「Ｓｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅ」における当該欄（「行番号」、「記号名称」、「レベル」、「項目名称」、「属性」、「桁数」）に設定する。
【０１０８】
このようにして作成された図６のブレイクポイント用シート（１２）、および、図５のシミュレーション用シート（１１）を用いて、テストコマンド作成部６は、図１１に示す処理を実行して、図１４に示すテストコマンドファイル（１４）を生成する。
【０１０９】
図１４に示すテストコマンドファイル（１４）においては、図６のブレイクポイント用シート（１２）の「ブレイクポイント」における各情報（行番号４３、記号名称４４、出力有無４５）からブレイクポイントのテストコマンド７５（ブレイクポイントを設定するコマンド）が、また、図６のブレイクポイント用シート（１２）の「Ｓｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅ」における各情報（行番号４９、記号名称５０、レベル５１、項目名５２、属性５３、桁数５４、チェックＩＤ５５、値５６、出力文形式５７）からＳｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅのテストコマンド７６が、また、図５のシミュレーション用シート（１１）におけるファイルシミュレーション情報（ファイル名又はモジュール名３０、代表構文３１、シミュレーション区分３２、記号名称３３、レベル３４、項目名３５、属性３６、桁数３７、チェックＩＤ３８、値３９、出力文形式４０）からファイルシミュレーションのテストコマンド７７が、そして、図５のシミュレーション用シート（１１）における外部サブルーチンシミュレーション情報（ファイル名又はモジュール名３０、代表構文３１、シミュレーション区分３２、記号名称３３、レベル３４、項目名３５、属性３６、桁数３７、チェックＩＤ３８、値３９、出力文形式４０）から外部サブルーチンシミュレーションのテストコマンド７８が、それぞれ生成され、テストコマンドファイル１４として出力される。
【０１１０】
このようなテストコマンドファイル１４を生成する処理動作を図１１を用いて説明する。図１１に示すように、テストコマンドファイル１４の生成処理は、プログラムのブレイクポイント及びＳｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅテストコマンドの出力処理６８、ファイルシミュレーション及び外部サブルーチンシミュレーションの出力処理６９の順で行う。
【０１１１】
まず、図６のブレイクポイント用シート（１２）における「ブレイクポイントの表」と「Ｓｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅの表」のそれぞれの行番号、記号名称を比較して問題が無いか否かを判別し、問題があればその旨を示すメッセージを表示し、問題がなければ、当該「ブレイクポイントの表」と「Ｓｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅの表」からテストコマンド文を作成し、テストコマンドファイル（１４）に出力し（ステップ６８）、その後、図５のシミュレーション用シート（１１）を１シートずつ入力してし、全のシートに対して以下の処理を繰り返す。
【０１１２】
すなわち、入力したシミュレーション用シートの内容をチェックして不正の有無を判定し、不正が有れば、その旨を示すメッセージを表示し、不正が無ければ、当該シミュレーション用シートからテストコマンド文を作成し、テストコマンドファイルに出力する（ステップ６９）。
【０１１３】
以上、図１〜図１４Ｃを用いて説明したように、本例では、ソースプログラムのデバッガ用のテストコマンドファイルを作成する際、ソースプログラムの字句解析および構文解析を行い、定義部の解析結果表と実行部の解析結果表とを生成し、定義部の解析結果表における各項目の一覧と各項目に対するデータ値を含む操作者からのデバッグ用設定情報を入力する欄とからなるシミュレーション用シートを生成すると共に、実行部の解析結果表における各命令の一覧と各命令に対する操作者からのブレイクポイントの設定の要否を含むデバッグ用制御情報を入力する欄からなるブレイクポイント用シートを生成し、これらのブレイクポイント用シートとシミュレーション用シートを画面表示し、そして、画面表示されたブレイクポイント用シートおよびシミュレーション用シートに対して、操作者が指定入力した情報を設定し、このような操作者指定入力情報が設定されたブレイクポイント用シートおよびシミュレーション用シートを用いてテストコマンドファイルを生成することを特徴とする。さらに、実行部の解析結果表から、当該ソースプログラムに対応するＰＡＤを生成して表示装置に表示し、表示したＰＡＤにおいて操作者が入力装置を操作して指定した箇所のＰＡＤ生成に用いた実行部の解析結果表における情報を読み出して当該箇所に表示し、そして、表示した実行部の解析結果表における情報を、操作者の入力装置からの操作指示に応じて、ブレイクポイント用シートに設定することを特徴とする。
【０１１４】
このように、本例では、ソースプログラムの解析処理においてテストコマンドファイルを作成するのに必要な項目を取り出し、テストで必要な情報を手入力するためのシート（シミュレーション用シート、ブレイクポイント用シート）および手入力を補助するＰＡＤを作成して画面表示し、操作者にこのシートおよびＰＡＤを使用して、テストで必要な情報を手入力させ、テストコマンドファイルを作成することにより、操作者（作業者）のスキルのレベルやテスト状況の変化にも即座に対応でき、誰でも容易にテストコマンドファイルの作成およびソースプログラムの変更に伴う再作成を行うことができる。
【０１１５】
また、本例においては、処理の流れをボタンで行うようにし、この処理の流れを順番に行えるようにボタンの不活性、活性する機能を備えており、操作者は、操作ごとに活性化したボタンを押下することで簡単に操作が行えるようにしてある。
【０１１６】
また、本例では、ソースプログラムから読み取れた内容で、全てのファイルおよび外部ルーチンを示すシミュレーション用シートとブレイクポイント用シートを作成して表示すると共に、各シートには、テスト処理後の値の表示や分岐処理の値の設定等に必要な、操作者からの設定情報を入力するための欄を設けて表示する。特に、その補助機能として、ＰＡＤを用いることにより、基本はプログラム自体の外部仕様での入力を極力意識した形でテストコマンドを作成できるようにし、かつ、プログラムの内容や言語を知らない初心者でも入力できるようになっている。
【０１１７】
また、本例では、ブレイクポイント用シートにおいて、標準のブレイクポイント作成にチェックされている箇所を外すことにより、標準のブレイクポイントの作成を行わないように制御でき、また、シュミレーション用シートにおいて、シュミレーションを作成するためのチェックを外すことにより、実際のファイルを読み込みテストする場合における不必要なファイルシミュレーションの作成を回避できる。
【０１１８】
これにより、標準のテストコマンドの様に、出力するとプログラムによっては、文が長くなり、テストコマンドが見ずらくなる不具合や、テストで不必要に出力されるテスト結果に、ブレイクポイントの実行結果が表示がされるために、テスト結果が見ずらくなる不具合を回避できる。
【０１１９】
また、本例では、シート自体にファイルの名称をいつも表示し、かつテスト内容がわかるようにしており、作業の途中で作業を中断し、その後、作業を再開した際にも、操作者は、どのような条件でそのような値を設定しているのか、瞬時に思い出すことができ、間違えを最小限にできる。
【０１２０】
尚、本発明は、図１〜図１４Ｃを用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、１つのコンピュータ装置において各処理を実行する構成としているが、複数のコンピュータ装置で分散処理する構成としても良い。
【０１２１】
また、図１においてシミュレーション用シート１１とブレイクポイント用シート１２はメモリ（主記憶装置）に記憶されているが、これらのシミュレーション用シート１１とブレイクポイント用シート１２をハードディスク等の外部記憶装置やＣＤ−ＲＯＭ等の記録媒体に記録しておくことにより、再利用することができる。
【０１２２】
また、コンピュータの構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Flexible Disk）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【０１２３】
【図１】本発明に係るテストコマンドファイル作成システムの構成例を示すブロック図である。
【図２Ａ】図１におけるプログラムソースの第１の具体例を示す説明図である。
【図２Ｂ】図１におけるプログラムソースの第２の具体例を示す説明図である。
【図３】図１における解析結果シート（定義部）の具体例を示す説明図である。
【図４】図１における解析結果シート（実行部）の具体例を示す説明図である。
【図５】図１におけるシミュレーション用シートの具体例を示す説明図である。
【図６】図１におけるブレイクポイント用シートの具体例を示す説明図である。
【図７】図１におけるＰＡＤ作成部で作成されたＰＡＤの具体例を示す説明図である。
【図８】図１におけるテストコマンドファイル作成システムの本発明に係る第１の処理動作例を示すフローチャートである。
【図９】図１におけるテストコマンドファイル作成システムの本発明に係る第２の処理動作例を示すフローチャートである。
【図１０】図１におけるテストコマンドファイル作成システムの本発明に係る第３の処理動作例を示すフローチャートである。
【図１１】図１におけるテストコマンドファイル作成システムの本発明に係る第４の処理動作例を示すフローチャートである。
【図１２】図１におけるテストコマンドファイル作成システムの本発明に係る第５の処理動作例を示すフローチャートである。
【図１３】ブレイクポイント設定選択用の操作画面例を示す説明図である。
【図１４Ａ】図１におけるテストコマンドファイル作成システムが作成したテストコマンドファイルの第１の具体例を示す説明図である。
【図１４Ｂ】図１におけるテストコマンドファイル作成システムが作成したテストコマンドファイルの第２の具体例を示す説明図である。
【図１４Ｃ】図１におけるテストコマンドファイル作成システムが作成したテストコマンドファイルの第３の具体例を示す説明図である。
【符号の説明】
【０１２４】
１：入力装置、１ａ：表示装置、２：プログラム解析部、２ａ：プログラム制御部、３：入力シート作成部、４：ＰＡＤ作成部、５：ＰＡＤ制御部、６：テストコマンドファイル作成部、７：プログラムソース、８：コピー句、９：解析結果シート（定義部）、１０：解析結果シート（実行部）、１１：シミュレーション用シート、１２：ブレイクポイント用シート、１３：ＰＡＤ、１４：テストコマンドファイル、１５：変数部分、１６：実行部分、１７：ＦＩＬＥ論理装置名、１８：構造体記号名、１９：レベル、２０：項目記号名称、２１：属性、２２：桁数、２３：ＳＥＣＴＩＯＮ名、２４：区分、２５：階層レベル、２６：行番号、２７：コーディング文、２８：行挿入、２９：行削除、３０：ファイル又はモジュール名、３１：代表構文、３２：シミュレーション区分、３３：記号名称、３４：レベル、３５：項目名、３６：属性、３７：桁数、３８：チェックＩＤ、３９：値、４０：出力文形式、４１：行挿入、４２：行削除、４３：行番号、４４：記号名称、４５：出力有無、４６：行挿入、４７：行削除、４８：属性変更、４９：行番号、５０：記号名称、５１：レベル、５２：項目名、５３：属性、５４：桁数、５５：チェックＩＤ、５６：値、５７：出力文形式、５８：セル、５９：コメント、６０：プログラムの全行取り込み手順、６１：行番号再付番手順、６２：定義部解析手順、６３：実行部解析手順、６４：シミュレーション用シートの作成処理６４、６５：ブレイクポイント用シートの作成処理、６６：ＣＡＬＬ文で実行される外部サブルーチンのテスト用のシミュレーション用シートの作成処理、６７：処理（セルとコメントの作成処理）、６８：プログラムのブレイクポイント及びＳｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅテストコマンドの出力処理、６９：ファイルシミュレーション及び外部サブルーチンシミュレーションの出力処理、７４：ブレイクポイント設定選択画面、７５：ブレイクポイントのテストコマンド、７６：Ｓｅｔ  ｖａｌｕｅ／Ｄｉｓｐｌａｙ  ｖａｌｕｅのテストコマンド、７７：ファイルシミュレーションのテストコマンド、７８：外部サブルーチンシミュレーションのテストコマンド。
【図１】
0004458491.tif 000002
【図２Ａ】
0004458491.tif 000003
【図２Ｂ】
0004458491.tif 000004
【図３】
0004458491.tif 000005
【図４】
0004458491.tif 000006
【図５】
0004458491.tif 000007
【図６】
0004458491.tif 000008
【図７】
0004458491.tif 000009
【図８】
0004458491.tif 000010
【図９】
0004458491.tif 000011
【図１０】
0004458491.tif 000012
【図１１】
0004458491.tif 000013
【図１２】
0004458491.tif 000014
【図１３】
0004458491.tif 000015
【図１４Ａ】
0004458491.tif 000016
【図１４Ｂ】
0004458491.tif 000017
【図１４Ｃ】
0004458491.tif 000018