説明

プログラムの検査方式

【目的】 パラメ−タの内容が種々異なるマクロ命令を持つテストプログラムを簡単に生成し、マクロ命令で動作する部分を有するプログラムを簡単に検査することができること。
【構成】 テストプログラム中に、該テストプログラムが発行するマクロ命令に必要なパラメ−タのオペランドコ−ドをレコ−ド単位で格納したパラメ−タテ−ブルを設けたうえ、各オペランドコ−ドに対応したパラメ−タを対話形式で入力する入力手段と、この入力手段によって入力されたパラメ−タを格納するパラメ−タ格納手段と、入力されたパラメ−タの前記格納手段への格納アドレスを各パラメ−タに対応したオペランドコ−ドを持つ前記パラメ−タテ−ブルのレコ−ドに格納するパラメ−タ登録手段とを設け、マクロ命令の発行指令に対し、前記パラメ−タテ−ブルに格納されたオペランドコ−ドとパラメ−タの格納アドレスを順次読出し、マクロ命令を実行するプログラムに引き渡す。

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オペレ−ティングシステムのデ−タ管理、ス−パバイザなどのようにマクロ命令で動作する部分を有するプログラムの検査方式に関するものである。
【0002】
【従来の技術】周知のように、オペレ−ティングシステムのデ−タ管理、ス−パバイザ、JOB制御、端末制御などは、マクロ命令で動作する部分を有している。マクロ命令は、マクロ名とパラメ−タによって構成される。そして、パラメ−タとしては、ファイル名、入出力の区別、他のジョブとの排他制御の関係、、インデックスの名称、など多数のものがある。
【0003】そこで、上記のようなマクロ命令にて動作する部分を有するプログラムが各種の条件で正しく動作するかどうかを検証する際には、パラメ−タの内容を種々代えた該当マクロを組み込んだテストプログラムを作成し、このテストプログラムをコンパイルした後に実行させる検査方法が採られる。
【0004】
【発明が解決しようとする課題】しかしながら、マクロ命令の種類は少なくとも20ないし30種類であり、しかもパラメ−タの種類も多数であるので、その全ての組合せに対して正しく動作するかどうかを検査するには、その組合せの全てに対応したテストプログラムを作成しなければならない。このため、テストプログラムを作成するの作業が極めて面倒であるという問題があった。
【0005】また、全てのマクロ命令の仕様について熟知しておかなければならないため、プログラミングに不慣れな者にあっては、テストプログラムを作成するのが極めて困難になるという問題があった。
【0006】本発明の目的は、パラメ−タの内容が種々異なるマクロ命令を持つテストプログラムを簡単に生成し、マクロ命令で動作する部分を有するオペレ−ティングシステムのデ−タ管理部等のプログラムを簡単に検査することができるプログラム検査方式を提供することである。
【0007】
【課題を解決するための手段】本発明は、上記目的を達成するために、テストプログラム中に、該テストプログラムが発行するマクロ命令に必要なパラメ−タのオペランドコ−ドをレコ−ド単位で格納したパラメ−タテ−ブルを設けたうえ、各オペランドコ−ドに対応したパラメ−タを対話形式で入力する入力手段と、この入力手段によって入力されたパラメ−タを格納するパラメ−タ格納手段と、入力されたパラメ−タの前記格納手段への格納アドレスを各パラメ−タに対応したオペランドコ−ドを持つ前記パラメ−タテ−ブルのレコ−ドに格納するパラメ−タ登録手段とを設け、マクロ命令の発行指令に対し、前記パラメ−タテ−ブルに格納されたオペランドコ−ドとパラメ−タの格納アドレスを順次読出し、マクロ命令を実行するプログラムに引き渡し、その引き渡したオペランドコ−ドとパラメ−タ格納アドレスの内容で示されるパラメ−タを基に、マクロ命令を実行させ、その実行結果を出力させるようにした。
【0008】
【作用】上記手段によれば、テストプログラム中に、該テストプログラムが発行するマクロ命令に必要なパラメ−タのオペランドコ−ドをレコ−ド単位で格納したパラメ−タテ−ブルを予め用意しておく。そこで、マクロ命令の発行に際しては、それに必要なパラメ−タを入力手段から入力する。すると、入力されたパラメ−タはパラメ−タ格納手段に格納される。同時に、パラメ−タ登録手段によって、その格納アドレスが対応するオペランドコ−ドを持つパラメ−タテ−ブルのレコ−ドに格納される。この状態でマクロ命令の発行指示を行うと、パラメ−タテ−ブルに格納されたオペランドコ−ドとパラメ−タの格納アドレスが順次読出され、マクロ命令を実行するプログラムに引き渡される。そして、その引き渡したオペランドコ−ドとパラメ−タ格納アドレスの内容で示されるパラメ−タを基にマクロ命令が実行され、その実行結果が出力される。
【0009】従って、必要なパラメ−タを入力し、かつマクロ命令の発行指示を行うといった簡単な作業で任意のパラメ−タからなるマクロ命令を発行し、このマクロ命令によって検査対象のプログラムの動作を検査することができる。
【0010】
【実施例】以下、本発明を図示する実施例に基づいて詳細に説明する。
【0011】図1は、本発明を適用したテストプログラムの構成と動作環境を示すブロック図であり、マクロ命令に必要な各種のパラメ−タ等を対話形式で入力するための対話端末装置1と、入力された各種パラメ−タを記憶する主記憶装置2および外部記憶装置3と、被テストプログラム4のテスト結果を出力するプリンタ5とが設けられている。
【0012】このうち、主記憶装置2の中には、本発明を適用したテストプログラム6が発行するマクロ命令に必要なパラメ−タのオペランドコ−ドをレコ−ド単位で格納したパラメ−タテ−ブル20と、対話端末装置1から対話形式で入力される各オペランドコ−ドに対応したパラメ−タを格納するパラメ−タ格納テ−ブル21と、パラメ−タの繰返し開始指示がなされた以降のパラメ−タを格納する入力情報格納部22が設けられている。
【0013】そして、テストプログラム6には、入力情報解析部60、入力パラメ−タ出力部61、パラメ−タ登録部62、パラメ−タリスト生成部63、マクロ命令発行部64、テスト結果出力部65が設けられている。
【0014】図2は、パラメ−タテ−ブル20、パラメ−タ格納テ−ブル21、パラメ−タリスト7の構成を詳細に示すものであり、パラメ−タテ−ブル20は複数のレコ−ドからなり、各レコ−ドはマクロ命令に必要なパラメ−タのオペランドコ−ド、例えばファイル名NAMEについては「0001」、入出力区分I/Oについては「0002」といったコ−ドを格納するフィ−ルド22と、デ−タ部の指定形式を示す形式コ−ドを格納するフィ−ルド23と、各オペランドコ−ドに対応したパラメ−タの格納アドレスを格納するフィ−ルド24と、各レコ−ドがマクロ命令の発行のために指定されているかどうかを示すオペランド指定有無ビットを格納するフィ−ルド25とから構成されている。
【0015】ここで、フィ−ルド24はオペランドコ−ドのデ−タ部に該当し、この実施例においては形式コ−ドが全て「0001」に設定されていることにより、フィ−ルド24の内容がパラメ−タの格納アドレスを直接示すようになっている。
【0016】また、オペランドコ−ドは上位のものから順に、第1レコ−ドから格納されるようになっている。さらに、フィ−ルド25のオペランド指定有無ビットは、自レコ−ドのオペランドコ−ドが指定されると「00」から「FF」に更新されるようになっている。
【0017】パラメ−タ格納テ−ブル21は、対話端末装置1から入力されるパラメ−タの内容を入力順に格納するように構成されている。このパラメ−タの内容の格納アドレスとパラメ−タテ−ブル20のDD名アドレス(パラメ−タ格納アドレス)とは1対1で対応している。
【0018】図1の入力情報解析部60は、対話端末装置1から入力された情報を解析するもので、入力された情報がマクロ命令に必要なパラメ−タであった場合には、このパラメ−タを入力パラメ−タ出力部61に転送する。しかし、入力された情報がマクロ命令の発行を制御する情報であった場合には、その情報の内容に応じた処理を行なう。なお、この入力情報解析部60は、入力情報の文法チェック処理も行う。例えば、パラメ−タの繰返しを行うラベル名は「NAME=AA」としなければならないのを「NAME、AA」と指定した場合はエラ−とする等である。
【0019】マクロ命令の発行を制御する情報としては、(1)外部記憶装置3に格納しておいたパラメ−タを入力情報解析部60に入力するように指示する入力コマンド、(2)マクロの繰返し開始位置を示すコマンドおよび繰返し回数を指定するためのコマンド、(3)マクロ命令に必要なパラメ−タをパラメ−タテ−ブル20に渡すための制御パラメ−タ、(4)マクロ命令の発行を指示する発行指示コマンド、がある。
【0020】次に、入力パラメ−タ出力部61は、入力されたパラメ−タを外部記憶装置3、入力情報格納部22またはパラメ−タ登録部62に出力するものである。
【0021】パラメ−タ登録部62は、入力されたパラメ−タの内容(ファイル名称など)をパラメ−タ格納テ−ブル21に格納するとともに、その格納アドレスを各パラメ−タに対応したオペランドコ−ドを持つパラメ−タテ−ブル20のレコ−ドに格納するものである。
【0022】パラメ−タリスト生成部63は、上記(4)の制御パラメ−タに応答し、パラメ−タテ−ブル20およびパラメ−タ格納テ−ブル21の内容に基づいて、図2に示すように複数のパラメ−タ群からなるパラメ−タリスト7を生成するものであり、生成されたパラメ−タリストはマクロ命令発行部64を介して被テストプログラム4に出力される。
【0023】テスト結果出力部65は、マクロ命令の実行結果を印字出力するものである。
【0024】次に、以上の構成に係る動作について図3のフロ−チャ−トおよび図4のマクロ命令を含むプログラムリストを参照して説明する。
【0025】まず、入力情報解析部60は、マクロ命令を発行するに際して、対話端末装置1から何等かの情報を受け取ると(ステップ600)、その情報がマクロ命令の発行を制御する情報か、マクロ命令に必要なパラメ−タか、あるいは入力情報の終わりを示すENDコマンドかを解析する。さらに、マクロ命令の発行を制御する情報、またはマクロ命令に必要なパラメ−タであった場合は、その情報が上記(1)〜(4)のいずれに該当する情報であるかを解析し、その解析結果に応じた処理を行う。
【0026】すなわち、受け取った情報がENDコマンドであるかを判定し(ステップ601)、そうであれば処理を終了する。しかし、ENDコマンドでなければ、上記(1)に該当する入力コマンドであるかどうかを判定し(ステップ602)、さらに上記(2)に該当するマクロの繰返し開始位置コマンドまたは繰返し回数指示コマンドであるかどうかを判定し(ステップ604,606)、また上記(4)に該当するマクロ命令の発行指示コマンドか、上記(3)に該当するコマンドであるかどうかを判定する(ステップ607)。
【0027】外部記憶装置3からのパラメ−タ入力コマンドでなかった場合、入力情報が何等かのパラメ−タであると見做し、その入力情報を入力パラメ−タ出力部61を介して外部記憶装置3に格納する。この場合、情報は入力情報解析部60に再度入力して再利用可能な形式で格納される。同時に、プリンタ5に印字出力される(ステップ603)。
【0028】次に入力情報解析部60は、対話端末装置1からの入力情報がマクロの繰返し開始位置コマンドであった場合、このコマンドとそれ以降に入力される情報をマクロ命令の繰返しのためのパラメ−タであると見做し、このパラメ−タを入力パラメ−タ出力部61を介して入力情報格納部22に格納する(ステップ605)。
【0029】例えば、図4に示すようなプログラムリスト8にあっては、ファイル名AAを指すFILEN=AA,入出力区分が”出力”であることをを指すI/O=O,レコ−ド単位の排他制御の仕方を指すEXCL=R,インデックスの値が「10」であることを指すKAREA=10、ファイルを開くマクロ命令であるOPEN,ファイル名AAを指すNAME=AA,マクロGET,PUT、NAME=AA以降の繰返し回数を指定するLOOP=100,AAが対話端末装置1から入力される。すると、これらは入力されたそのままの形で外部記憶装置3に格納される。また、NAME=AAが繰返し開始位置を示すコマンドとして解釈され、このNAME=AAを含め、それ以降のPUTまでのマクロ命令が入力情報格納部22に格納される。
【0030】次に入力情報解析部60は、対話端末装置1からの入力情報がマクロ命令の繰返しコマンドでなく、さらにマクロ命令の発行指示コマンドでもなかった場合は、ステップ606,607の判断によって入力情報が何等かのパラメ−タであると見做し、その入力情報をパラメ−タ登録部62を介してパラメ−タ格納テ−ブル21に入力順に格納し、かつ、入力されたパラメ−タの格納テ−ブル21への格納アドレスを各パラメ−タに対応したオペランドコ−ドを持つパラメ−タテ−ブル20のレコ−ドに格納する。
【0031】例えば、ファイル名AAのOPENに必要な上記各パラメ−タの各格納アドレス(先頭アドレス)が図5(a)に示すように、A05B,A05C,A05Dであったとすると、FILENに対応するオペランドコ−ド「0001」のレコ−ドにはA05B、I/Oに対応するオペランドコ−ド「0003」のレコ−ドにはA05C、EXCLに対応するオペランドコ−ド「0004」のレコ−ドにはA05Dという格納アドレスの値を格納する。そして、この格納アドレスを登録したレコ−ドのフィ−ルド25の内容を「00」から「FF」に更新する。
【0032】この状態で、マクロ命令の発行指示コマンドとして、マクロOPENが対話端末装置1から入力されると、入力情報解析部60はステップ607の判断によりステップ608、609の処理をパラメ−タリスト生成部63,マクロ命令発行部64およびテスト結果出力部65に実行させる。すなわち、パラメ−タリスト生成部63は、パラメ−タテ−ブル20の各レコ−ドのうちフィ−ルド25が「FF」となっているレコ−ドのみを収集し、図2に示したように、オペランドコ−ド30、形式コ−ド31、パラメ−タ格納アドレス(パラメ−タの格納アドレス)32からなる複数のパラメ−タのパラメ−タリスト7を生成する。この場合、パラメタリスト7の最後にリストの終了を示すコ−ド「FFFF」を付加し、パラメタリスト7の完成とする。マクロ命令発行部64は、このパラメ−タリスト7を被テストプログラム4に出力する。
【0033】そこで、被テストプログラム4は入力されたパラメ−タリスト7に基づいてマクロ命令OPENを実行する。そして、その実行結果をテスト結果出力部65に返信する。テスト結果出力部65は、返信されてきたテスト結果をプリンタ5に印字出力させると共に、対話端末装置1の表示部に表示させる(ステップ609)。
【0034】この後、検査手続きはステップ611の繰返し中か、ステップ612の外部記憶装置3から入力中かの判断を経て初期のステップ600に戻るが、図4のプログラムリスト8においては、繰返し回数が指定されるようになっているので、繰返し回数の指示コマンドが対話端末装置1から入力され、かつ繰返し回数の値「100」とラベル名「AA」が入力されると、ステップ606の判断によってステップ617に進み、ここで繰返しカウンタ(図示せず)に対し入力された繰返し回数の値「100」を設定する。次に、繰返しカウンタの値を判定し(ステップ618)、カウント値がマイナスになっていなければ、現在のカウント値を「1」だけ減算する。この後、ステップ619に進み、ここで入力情報格納部22からNAME=AA,GET,PUTというマクロ命令を順に読み出し、ステップ607に進む。すると、NAME=AAがマクロの繰返し開始位置を指示するコマンドであるので、入力情報解析部60はパラメ−タリスト生成部63、マクロ命令発行部64にステップ608,609の処理を実行させる。これにより、GET,PUTなるマクロが再び実行される。すなわち、同一のパラメ−タからなるマクロ命令が2回続けて実行される。
【0035】次に、指定された繰返し回数は100回であるので、ステップ611の判断を経て再びステップ618に戻り、ここで繰返しカウンタのカウント値がマイナスになっているかどうかを判定し、マイナスになっていなければ、再びステップ619,608,609の処理を実行する。
【0036】しかし、繰返しカウンタの値がマイナスになっていたならば、指定された回数だけ同一パラメ−タからなるマクロ命令を発行したことになるので、最初のステップ600に戻り、処理を終了する。
【0037】次に、対話端末装置1から入力された情報が外部記憶装置3からの入力指示コマンドであった場合、入力情報解析部60は、ステップ602の判断によって外部記憶装置3に格納されている情報をENDコマンドが入力されるか、ファイルエンドとなるまで読出す(ステップ613,614,615)。この間に読み出された情報はプリンタ5によって印字出力される(ステップ616)。この外部記憶装置3から読み出された情報は、対話端末装置1から対話形式で入力される情報と同一形式のフォ−マットとなっており、入力情報解析部60で内容が解析される。その結果、外部記憶装置3からの入力情報がマクロ命令の繰返しコマンドでなく、さらにマクロ命令の発行指示コマンドでもなかった場合は、ステップ606,607の判断によって入力情報が何等かのパラメ−タであると見做し、その入力情報をパラメ−タ登録部62を介してパラメ−タ格納テ−ブル21に入力順に格納し、かつ、ステップ610の処理をパラメ−タ登録部62に実行させる。すなわち、パラメ−タ登録部62は、入力されたパラメ−タの格納テ−ブル21への格納アドレスを各パラメ−タに対応したオペランドコ−ドを持つパラメ−タテ−ブル20のレコ−ドに格納する。
【0038】以降は、対話端末装置1から対話形式で操作した場合と同様な動作によってマクロ命令が自動的に発行される。
【0039】従って、この実施例においては、マクロ命令の発行に必要なパラメ−タを対話端末装置1から対話形式で入力し、かつマクロ命令の発行指示コマンドを入力するといった簡単な作業で任意のパラメ−タからなるマクロ命令を発行し、このマクロ命令によって検査対象の被テストプログラム4の動作を検査することができる。特に、対話形式でパラメ−タを入力するので、パラメ−タの内容を容易に変更し、種々の値のパラメ−タからなるマクロ命令を簡単に発行し、被テストプログラム4の動作を充分に検査することができる。従って、パラメ−タを種々変えたテストプログラムを多数作成する必要が全くなくなり、テストプログラムの作成に関わるコストを軽減し、かつマクロ命令の全ての仕様に熟知していなくても、検査対象のマクロ命令に関わる仕様のみを知っていれば良く、初心者であっても効率的に検査を進めることができる。
【0040】また、マクロの発行を制御するためのコマンドも含め、一度入力したパラメ−タを外部記憶装置3に格納し、これを再入力して使用することができるため、同じパラメ−タからなるマクロ命令を何回も発行し、被テストプログラムの繰返し検査を効率的に行うことができる。
【0041】さらに、同一パラメ−タを繰返し使用するための繰返し回数を設定するようにしているため、対話形式で同一パラメ−タを何度も入力するといった作業を省略することができ、効率的に被テストプログラム4の検査を行うことができる。
【0042】
【発明の効果】以上述べたように本発明によれば、テストプログラム中に、該テストプログラムが発行するマクロ命令に必要なパラメ−タのオペランドコ−ドをレコ−ド単位で格納したパラメ−タテ−ブルを設けたうえ、各オペランドコ−ドに対応したパラメ−タを対話形式で入力する入力手段と、この入力手段によって入力されたパラメ−タを格納するパラメ−タ格納手段と、入力されたパラメ−タの前記格納手段への格納アドレスを各パラメ−タに対応したオペランドコ−ドを持つ前記パラメ−タテ−ブルのレコ−ドに格納するパラメ−タ登録手段とを設け、マクロ命令の発行指令に対し、前記パラメ−タテ−ブルに格納されたオペランドコ−ドとパラメ−タの格納アドレスを順次読出し、マクロ命令を実行するプログラムに引き渡し、その引き渡したオペランドコ−ドとパラメ−タ格納アドレスの内容で示されるパラメ−タを基に、マクロ命令を実行させ、その実行結果を出力させるようにしたので、パラメ−タを種々変えたテストプログラムを多数作成することなく、簡単な作業で任意のパラメ−タからなるマクロ命令を発行し、このマクロ命令によって検査対象の被テストプログラムの動作を検査することができる。
【図面の簡単な説明】
【図1】 本発明を適用したテストプログラムの構成と動作環境の実施例を示すブロック図である。
【図2】 パラメ−タテ−ブル、パラメ−タ格納テ−ブルおよびパラメタリストの構成を示す説明図である。
【図3】 被テストプログラムの検査手順を示すフロ−チャ−トである。
【図4】 マクロ命令を含むテストプログラムの一例を示すプログラムリストである。
【図5】 パラメ−タ格納テ−ブルおよびパラメ−タテ−ブルの格納内容の一例を示す説明図である。
【符号の説明】
1…対話端末装置、2…主記憶装置、3…外部記憶装置、4…被テストプログラム、6…テストプログラム、7…パラメ−タリスト、20…パラメ−タテ−ブル、21…パラメ−タ格納テ−ブル、22…入力情報格納部、60…入力情報解析部、62…パラメ−タ登録部、63…パラメ−タリスト生成部、64…マクロ命令発行部。

【特許請求の範囲】
【請求項1】 テストプログラム中に、該テストプログラムが発行するマクロ命令に必要なパラメ−タのオペランドコ−ドをレコ−ド単位で格納したパラメ−タテ−ブルを設けたうえ、各オペランドコ−ドに対応したパラメ−タを対話形式で入力する入力手段と、この入力手段によって入力されたパラメ−タを格納するパラメ−タ格納手段と、入力されたパラメ−タの前記格納手段への格納アドレスを各パラメ−タに対応したオペランドコ−ドを持つ前記パラメ−タテ−ブルのレコ−ドに格納するパラメ−タ登録手段とを設け、マクロ命令の発行指令に対し、前記パラメ−タテ−ブルに格納されたオペランドコ−ドとパラメ−タの格納アドレスを順次読出し、マクロ命令を実行するプログラムに引き渡し、その引き渡したオペランドコ−ドとパラメ−タ格納アドレスの内容で示されるパラメ−タを基に、マクロ命令を実行させ、その実行結果を出力させることを特徴とするプログラムの検査方式。
【請求項2】入力手段から入力されたパラメ−タを外部記憶手段に記憶させ、その記憶したパラメ−タを再読出して前記パラメ−タ格納手段に格納し、その格納アドレスの内容で示されるパラメ−タを基に、マクロ命令を再実行させることを特徴とする請求項1記載のプログラムの検査方式。
【請求項3】入力したパラメ−タの繰返し実行を指示する制御コマンドを設け、この制御コマンドで指示された回数だけ、入力したパラメ−タからなるマクロ命令を実行させることを特徴とする請求項1または2記載のプログラムの検査方式。

【図1】
image rotate


【図2】
image rotate


【図4】
image rotate


【図3】
image rotate


【図5】
image rotate


【公開番号】特開平5−81073
【公開日】平成5年(1993)4月2日
【国際特許分類】
【出願番号】特願平3−241218
【出願日】平成3年(1991)9月20日
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)