(57)【特許請求の範囲】
【請求項１】
被試験対象の機能を指定する機能指定手段と、被試験対象の命令タイプを指定する命令タイプ指定手段と、
上記機能と、命令タイプを指定する第１の指定操作と、被試験対象プログラムにおける処理部、テーブル等の先頭位置、範囲などの被試験対象プログラムの構成を指定する第２の指定操作とを表示する画面制御部と、
上記第２の指定操作による指定形式を格納する格納手段と、
上記第１の指定操作により指定された機能と命令タイプに基づき、上記格納手段から第２の指定操作による指定形式を読み出す呼び出し設定制御手段と、
指定された機能と指定された命令タイプとを結合する結合制御手段と、
上記結合制御手段の出力に基づき、上記指定された命令タイプの命令を選択できるように命令の出現頻度を設定する出現頻度設定手段とを有し、
上記出現頻度設定手段により設定された命令と、命令に対応したオペランドの値、レジスタ番号の値と、上記格納手段から読み出された指定形式に基づき、被試験対象の命令を生成する命令生成手段と、
上記命令生成手段により生成された被試験命令列をソフトシミュレータにより実行させ、実行した結果を正解情報として、被試験対象プログラムに組込む命令実行／実行結果組込み制御手段とを有し、被試験対象の試験を行うテストプログラムを自動的に生成する
ことを特徴とするテストプログラム自動生成システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、情報処理装置を試験するシステムに関し、特にテストプログラムを自動的に生成するテストプログラム自動生成システムに関するものである。
【０００２】
【従来の技術】
従来のテストプログラム自動生成システムにおいては、次のようにしてテストプログラムを自動生成していた。
（１）機能指定によるテスト生成
テストプログラムの自動生成においては、レジスタ干渉試験、オペランド干渉試験、例外事象試験等の試験の対象となる機能毎にテストプログラムを生成している。
【０００３】
上記のような機能毎のテストプログラムを生成するに際し、従来のテストプログラム自動生成システムでは、被試験対象の機能毎の生成手段を独立した制御プログラム単位に分割し、被試験対象の命令もロード命令、ストア命令、分岐命令、演算命令等の命令タイプ（命令形式）別に分けて制御することなく、１つの出現頻度の設定テーブルで制御していた。
【０００４】
図１６は、従来の独立した制御プログラム単位の１例として、試験機能指定によるのテストプログラムの自動生成を説明する図である。
同図において、１１は画面制御部、１３は画面情報ファイル、１５は初期設定部、１８は命令生成機構部、２２はテスト命令列、２４は実行制御部をそれぞれ示している。
【０００５】
キーボード、ディスプレイ等から構成される画面制御部１１から試験機能Ａの人手操作１２により、機能Ａについて任意に設定された情報を画面情報ファイル１３の試験機能Ａ指定値１４に格納する。
初期設定部１５は、乱数発生器１６、出現頻度操作部１７から構成されており、出現頻度操作部１７は、試験機能Ａ指定値１４に基づき、出現頻度設定部１９に記述されている命令の出現頻度を変更する。
【０００６】
命令生成機構部１８は、命令を格納した命令生成テーブル２０、生成命令設定部２１から構成されている。そして、乱数発生器１６からの乱数値と出現頻度設定部１９の内容に基づいて命令生成テーブル２０から命令を生成し、生成命令設定部２１により、テスト命令列２２を設定する。
実行制御部２４は、生成命令組込み制御部２５、生成命令の実行制御部２６、ソフトシミュレータ２７、正解情報の収集・組込み制御部２８、テストプログラム域２９から構成されている。
【０００７】
生成命令組込み制御部２５は、テスト命令列２２をテストプログラム域２９に組み込み、テストプログラム域２９のテスト命令列はソフトシミュレータ２７を用いて生成命令の実行制御部２６により実行される。そして、実行した結果を、正解情報の収集・組込み制御部２８により正解情報としてテストプログラム域２９に組み込む。
（２）試験項目単位の命令生成
従来のテストプログラム自動生成システムでは、被試験対象の機能ごとに命令生成手段が変更になる場合は、制御プログラム単位に分割し、生成手段を独立した構成とし、特殊な制御処理に対応していた。
（３）プログラム名の設定
従来のテストプログラム自動生成システムでは、任意に指定されたプログラム番号をプログラム名としていた。また、複数本のテストプログラム名（番号で指定）を指定する場合には、任意に指定されたプログラム番号から順番に設定していた。
【０００８】
図１７は、従来のプログラム名の設定を説明する図である。同図において、３１は画面制御部、３５は画面情報ファイル、４０は試験項目制御部、４１は出現頻度制御部、４３は命令生成制御部、４４はテスト命令列、５２は番号制御部、４５は実行制御部をそれぞれ示している。
画面制御部３１の試験機能Ａの人手操作３２により任意に設定された情報を画面情報ファイル３５の試験機能Ａ指定値３６に格納する。
【０００９】
更にテストプログラム本数の人手操作３３、テストプログラム名の人手操作３４により、画面情報ファイル３５にテストプログラム本数３７、テストプログラム名３８（例えば、テストプログラム番号の上位３桁）を設定する。
番号制御部５２は、末尾カウンタ５３、レジスタ５４、プログラム番号設定部５５、次生成繰返し制御部５６、から構成されている。
【００１０】
テストプログラム名３８をレジスタ５４に設定し、テストプログラム本数３７を末尾カウンタ５３に設定することにより、第１番目のテストプログラムをレジスタ５４に設定する。
また、試験項目制御部４０、出現頻度制御部４１、命令生成制御部４３によりテスト命令列４４を生成し、実行制御部４５により生成された１テストプログラム５０に対し、レジスタ５４に設定されているテストプログラム名をプログラム番号設定部５５により付与する。
【００１１】
次生成繰返し制御部５６では、末尾カウンタ５３がゼロになるまで、命令生成制御部４３からの、テストプログラムの生成を繰り返す。
これにより、例えば、人手により設定された上位３桁と、プログラム本数に応じて定まる下位３桁の番号を持つプログラム名が設定される。
（４）初期値（シード値）の設定
従来のテストプログラム自動生成システムでは、シード値は自動的に設定していた。図１８は、従来の初期値（シード値）の設定を説明する図である。
【００１２】
同図において、６０はタイマー、６１は画面情報ファイル、６３は疑似乱数発生器、６４は試験項目制御部、６５は出現頻度制御部、６７は命令生成制御部、７０はテスト命令列、７７は実行制御部をそれぞれ示している。
タイマー６０から得られたデータを初期値（シード値）６２として設定し、疑似乱数発生器６３の初期値として使用する。
【００１３】
疑似乱数発生器６３の乱数値に基づき、試験項目制御部６４、出現頻度制御部６５、命令生成制御部６７によってテスト命令列７０を求め、求められたテスト命令列７０を実行制御部７５により実行し、テストプログラムを生成する。
（５）命令ＩＤに基づくプログラム生成
従来のテストプログラム自動生成システムでは、▲１▼命令ＩＤの設定、▲２▼被試験命令数、▲３▼被試験対象プログラム構成の設定、▲４▼アクセス命令のオペランド設定、▲５▼分岐命令のオペランド設定、▲６▼オペランドの範囲設定、▲７▼実行結果（正解情報）の格納、▲８▼チェック・ポイント用命令の設定、▲９▼初期設定を次のように行っていた。
▲１▼命令ＩＤの設定
命令ＩＤはロード、ストア等の各命令に１対１に対応して付与された番号（例えば、00,01,02…等）であり、出現頻度制御部は命令ＩＤを出力し、命令生成テーブルでオペランド部を付加し、命令ＩＤに対応した命令が出力される。
【００１４】
上記被試験命令を生成するための命令ＩＤは、常にランダム・データ発生器からランダム・データを求めて設定していた。
▲２▼被試験命令数
被試験命令数は、設定する領域が固定であるため、固定域の範囲に設定できる被試験命令を対象としていた。
▲３▼被試験対象プログラム構成の設定
テストプログラム域における初期処理部、割込みテーブル、アドレス空間テーブルの先頭アドレスは、固定の領域を設定して使用していた。また、アクセス域、命令生成域、生成された命令列のシミュレータによる実行結果（以下、正解情報という）格納域の先頭アドレスと領域範囲も固定の領域で使用していた。
▲４▼アクセス命令のオペランド設定
アクセス・データ域を固定に設定しているため、その先頭アドレスと領域範囲に基づいて、アクセス命令を生成していた。
▲５▼分岐命令のオペランド設定
分岐するためのオペランド（論理アドレス）は、アドレス空間テーブルに基づく値から算出した分岐範囲に基づいて、分岐命令を生成していた。
▲６▼オペランドの範囲設定
アクセス命令や分岐命令のオペランド範囲はすべてランダムに設定していた。
▲７▼正解情報（実行結果）の格納
生成された命令列の正解情報（実行結果）の格納は、指定されている固定の格納域に各種の正解情報（実行結果）を格納していた。
▲８▼チェック・ポイント用命令の設定
割り込みを発生する命令（例えば、ＳＶＣ等）等のチェック・ポイント用命令の設定個数は、固定の値で設定されていた。また、設定個数は、固定の被試験命令域の大きさにより決定されていた。
▲９▼初期設定部
従来のテストプログラム生成システムにおいては、１つの初期設定部ですべての被試験対象の機能についての制御を行っていた。
【００１５】
図１９は、命令ＩＤに基づくプログラム生成を説明する図である。
同図において、８１は疑似乱数発生器、８２は出現頻度制御部、８６は命令生成制御部、８９はテスト命令列、９８は実行制御部をそれぞれ示している。
出現頻度制御部８２は、試験１１〜ｎｎ専用出現頻度テーブル８３、判定部８４、試験項目１１〜ｎｎ制御部８５から構成されている。
【００１６】
疑似乱数発生器８１からの乱数値と、試験項目１１〜ｎｎ制御部８５の設定指示とを判定部８４で判断し、試験１１〜ｎｎ専用出現頻度テーブル８３から試験項目１１〜ｎｎに応じた生成対象となる命令ＩＤを取り出す。
命令生成制御部８６は、命令生成テーブル８７、生成命令設定部８８、チェック・ポイント制御部９６、生成命令数カウンタ９７から構成されている。
【００１７】
生成対象の命令ＩＤに基づいて、疑似乱数発生器８１からの乱数値と命令生成テーブル８７から被試験命令を生成し、生成命令設定部８８によりテスト命令列８９に設定する。
生成命令設定部８８では、チェック・ポイント制御部９６により、被試験命令列間にチェック・ポイント命令の挿入と、固定値が設定されている生成命令数カウンタ９７により、最大値までの被試験命令を生成する。
【００１８】
命令生成テーブル８７は、テストプログラム域９５の固定番地Ｅに定めるアクセス・データ域の範囲のみにアクセスするように設定されている。
実行制御部９８は、生成命令組込み制御部９１、生成命令実行制御部９２、ソフトシミュレータ９３、正解情報の収集・組込み制御部９４から構成されている。
【００１９】
テスト命令列８９の被試験命令１〜ｎを生成命令組込み制御部９１により、テストプログラム域９５の固定番地Ｆに設定する。
テストプログラム域９５の初期処理部、割込みテーブル、アドレス変換テーブルは、所定の定められた番地に設定されている。
テストプログラム域９５の正解域には、生成命令実行制御部９２とソフトシミュレータ９３により実行された結果が、正解情報の収集・組込み制御部９４により固形番地Ｄに設定される。
（６）指定操作
従来のテストプログラム自動生成システムでは、指定操作は、生成画面のみで操作していた。すなわち、図１７に示したように画面制御部３１により人手操作により指定すると、画面情報ファイルに指定値が設定され、指定値に基づいてテスト生成を行っていた。
【００２０】
【発明が解決しようとする課題】
以上のように、従来のテストプログラム自動生成システムでは、次のような問題をもっていた。
（１）被試験対象の命令を命令タイプ別に分けて制御することなく、出現頻度の設定テーブルも１つで制御していたため命令タイプの指定ができなかった。
（２）被試験対象の機能ごとに生成手段が違うため機能ごと分割した構成となり、制御が複雑、規模が大きくなった。
（３）テストプログラム名は、任意に指定されたプログラム番号をプログラム名とし、複数本の指定の場合には、任意に指定されたプログラム番号から順番に設定していたため、テストプログラム名を自己管理する必要があり煩雑であった。
（４）テストプログラムを生成するための初期データであるシード値は、ランダムな値で自動的に設定していたため、再生成するのが困難であった。
（５）被試験の命令数は、指定の命令域（固定）に設定できる命令数を対象としていたため、テストプログラム実行時間への対応（長くしたり短くしたり）が容易にできなかった。
（６）被試験命令を生成するための命令ＩＤは、常に疑似乱数発生器から、ランダム・データを求めて設定していたため、意図した命令ＩＤの設定が困難であった。
（７）被試験対象プログラムの共通制御部の構成として、初期処理部、割込みテーブル、アドレス空間テーブルの先頭アドレスが、固定の領域を設定して使用しているため、被試験条件により各処理部を移動したい場合には、共通制御部に変更が必要となった。
（８）アクセス域、命令生成域、正解情報（実行結果）格納域の先頭アドレスと領域範囲が固定であるため、テストプログラム実行時間への対応（長くしたり短くしたり）が容易にでず、大小のテストプログラム生成が必要な場合にも生成が困難である欠点があッた。
（９）アクセス命令のオペランドアドレスは、アクセス域を固定に設定しているため、その先頭アドレスと領域範囲に基づいたアクセス命令の生成しかできなかった。また、分岐するためのオペランド（論理アドレス）は、アドレス空間テーブルに基づく値から算出した分岐範囲に基づいた分岐命令の生成しかできなかった。さらに、アクセス命令や分岐命令のオペランド範囲をすべてランダムに設定すると、被試験命令の実行時、ＴＬＢ（アドレス変換バッファ）に対するヒット率が非常に悪くなるといった欠点があった。
（１０）被試験命令の正解情報（実行結果）の格納は、指定された固定の格納域に各種の正解情報（実行結果）を格納しているため、特殊な実行結果域がオーバーするなどの欠点があった。
（１１）チェック・ポイント用命令の設定個数は、固定の値で設定され、固定の被試験命令域の大きさにより決定されているため、チェック・ポイント用命令の設定を容易に変更することができなかった。
（１２）被試験対象のテストプログラムは、１つの初期設定部ですべての被試験対象の機能についての制御を行っているため、被試験機能の機能追加等により、初期設定部が膨大になる傾向の欠点があった。
（１３）指定操作は、生成画面のみで操作しており、複数の生成画面にした場合には、すべての設定操作が必要となり、操作が複雑化し困難となると言った問題を生じていた。
【００２１】
本発明は上記した従来技術の欠点を改善するためになされたものであって、本発明の目的は、指定操作の生成画面が複数の生成画面にした場合にも操作が複雑化しないテストプログラム自動生成システムを提供することにある。
【００２２】
【課題を解決するための手段】
図１〜図３は本発明の原理図であり、図１は被試験対象を命令タイプ、 機能に分けて制御することを可能としたテストプログラム自動生成システムの概略構成を示し、図２はテストプログラム域における初期処理部、 割り込みテーブル等の先頭アドレスなどの変更を容易にしたテストプログラム自動生成システムの概略構成を示し、図３は、本発明のテストプログラム自動生成システムの概略構成を示している。
図１〜図３において、１は操作手段６で指定される試験機能と命令タイプを結合し出現頻度を選定するための出力を発生する結合制御手段、２は被試験対象を試験する命令の出現頻度を設定する出現頻度設定手段、３は被試験対象の命令を生成する命令生成手段、４は命令生成手段３により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段、５は生成されたテストプログラムである。
【００２３】
図１において、以下のようにテストプログラムを自動生成する。
（１）図１に示すように、被試験対象の機能を指定する機能指定手段と、被試験対象の命令タイプを指定する命令タイプ指定手段と、指定された機能と指定された命令タイプとを結合する結合制御手段と、上記制御手段の出力に基づき、上記指定された命令タイプの命令を選択できるように命令の出現頻度を設定する出現頻度設定手段と、被試験対象の機能ごとに、オペランドの値、レジスタ番号の値を特定の値に設定する特化制御手段と、上記出現頻度設定手段により設定された命令と、上記特化制御手段により選定されたオペランドの値、レジスタ番号の値に基づき、被試験対象の命令を生成する命令生成手段と、上記命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００２４】
（２）図１に示すように、被試験対象の機能に対応して付与される番号と、命令タイプに対応して付与される番号とに基づき、被試験対象プログラムにプログラム名を付与するプログラム名設定手段と、指令された上記機能と命令タイプに基づき、被試験対象の命令を生成する命令生成手段と、上記生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００２５】
（３）図１に示すように、生成する被試験対象プログラムの本数を設定するプログラム本数設定手段と、上記設定された本数に応じて各被試験対象プログラムに被試験対象プログラム番号を自動的に設定するプログラム名設定手段を設ける。（４）図１に示すように、テストプログラムを自動的に生成するシステムにおいて、初期値を自動的に設定する自動設定手段と、初期値を任意値に設定する人手操作指示手段と、上記自動設定手段と人手操作指示手段の出力を切り替える切替え手段と、上記指定された機能と指定された命令タイプと、上記切り替え手段が出力する初期値に基づき、被試験対象の命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００２６】
（５）図１に示すように、被試験対象の命令に対応して定められた命令ＩＤをランダムな値に設定する第１の命令ＩＤ設定手段と、上記命令ＩＤを定められた指定値に設定する第２の命令ＩＤ設定手段と、上記第１、第２の設定手段の出力を切り替える切替え手段と、上記指定された機能と指定された命令タイプと、上記切り替え手段が出力する命令ＩＤから被試験対象の命令を生成する命令生成手段と、上記生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００２７】
（６）図１に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象命令の命令数を指定する命令数設定手段と、上記指定された機能と指定された命令タイプと、上記指定された命令数に基づき、被試験対象の命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００２８】
（７）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象プログラムの初期処理部の先頭番地を任意に設定する第１の設定手段と、割込みテーブルの先頭番地を任意に設定する第２の設定手段と、アドレス空間テーブルの先頭を任意に設定する第３の設定手段と、上記第１、第２、第３の設定手段の指定に従い、上記指定された機能と指定された命令タイプに基づき、被試験対象の命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込むとともに、上記第１、第２、第３の設定手段の指定に従って初期処理部、テーブル等を組み込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００２９】
（８）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象プログラムのアクセス・データ域の先頭番地を設定する第１の設定手段と、アクセス・データ域の範囲を設定する第２の設定手段と、命令生成域の先頭番地を設定する第３の設定手段と、命令生成域の範囲を設定する第４の設定手段と、正解情報格納域の先頭番地を設定する第５の設定手段と、正解情報格納域の範囲を設定する第６の設定手段と、上記第１、第２、第３、第４、第５、第６の設定手段の設定位置に従い、上記指定された機能と指定された命令タイプに基づき、被試験対象の命令を生成する命令生成手段と、上記命令生成手段により生成された被試験命令列を実行させ、命令、正解情報等を上記第１、第２、第３、第４、第５、第６の設定位置に従って被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３０】
（９）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象プログラムのアクセスデータ域を任意に設定する第１の設定手段と、被試験対象のアクセス命令に対するアクセス範囲を設定する第２の設定手段と、上記第１、第２の設定手段による指定の範囲で上記指定された機能と指定された命令タイプに基づき、被試験対象のアクセス命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３１】
（１０）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象命令の分岐命令に対する分岐範囲を指定する分岐範囲指定手段と、該記分岐範囲指定手段による指定の分岐範囲で上記指定された機能と指定された命令タイプに基づき、被試験対象の分岐命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３２】
（１１）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象プログラムのアクセスデータ域を任意に設定する第１の設定手段と、被試験対象のアクセス命令に対するアクセス範囲を指定する第２の設定手段と、被試験対象命令の分岐命令に対する分岐範囲を指定する第３の設定手段と、上記第１、第２、第３の設定手段による指定の範囲で上記指定された機能と指定された命令タイプに基づき、被試験対象のアクセス／分岐命令を生成する命令生成手段と、生成される被試験対象の命令に対し範囲指定をランダムな値に設定する第１の範囲設定手段と、範囲指定を固定の値に設定する第２の設定手段と、該第１、第２の設定手段の切替え手段と、上記切り替え手段の出力に基づき、命令のアクセス範囲／分岐範囲をランダムもしくは固定の範囲として、上記指定された機能と指定された命令タイプに基づき、アクセス／分岐命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３３】
（１２）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、指定された機能と指定された命令タイプに基づき、被試験対象の命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段と、正解情報の大きさに従って、被試験対象プログラムに組み込む設定位置を自動的に変化させる制御手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３４】
（１３）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象の命令列に挿入するチェック・ポイント用命令の数値を設定する設定手段と、上記チェック・ポイント数と被試験命令数から、チェック・ポイント用命令の設定箇所を得る設定箇所取得手段と、上記指定された機能と指定された命令タイプと、上記設定箇所取得手段により得られたチェック・ポイント用命令の設定箇所に基づき、被試験対象の命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３５】
（１４）図２に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象の機能を指定する機能指定手段と、指定された機能と指定された命令タイプに基づき、被試験対象の命令を生成する命令生成手段と、該命令生成手段により生成された被試験命令列を実行させ、正解情報を被試験対象プログラムに組込む命令実行／実行結果組込み手段と、被試験対象の各機能毎に被試験対象プログラムの初期処理部を設定し格納する設定制御手段と、上記機能指定手段により指定された被試験対象の機能に応じて設定制御部により格納された初期制御部を自動的に読み出し被試験対象プログラムに組み込む命令実行／実行結果組込み手段とを設け、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３６】
図３は本発明の原理図であり、本発明においては、図３に示すように、テストプログラムを自動的に生成するシステムにおいて、被試験対象の機能を指定する機能指定手段と、被試験対象の命令タイプを指定する命令タイプ指定手段と、上記機能と、命令タイプを指定する第１の指定操作と、被試験対象プログラムにおける処理部、テーブル等の先頭位置、範囲などの被試験対象プログラムの構成を指定する第２の指定操作とを表示する画面制御部と、指定された機能と指定された命令タイプとを結合する結合制御手段と、上記結合制御手段の出力に基づき、上記指定された命令タイプの命令を選択できるように命令の出現頻度を設定する出現頻度設定手段とを設け、上記出現頻度設定手段により設定された命令と、命令に対応したオペランドの値、レジスタ番号の値と、上記格納手段から読み出された指定形式に基づき、被試験対象の命令を生成する命令生成手段と、上記命令生成手段により生成された被試験命令列をソフトシミュレータにより実行させ、実行した結果を正解情報として、被試験対象プログラムに組込む命令実行／実行結果組込み制御手段とを有し、被試験対象の試験を行うテストプログラムを自動的に生成する。
【００３７】
【作用】
図１〜図３において、次のようにしてテストプログラムを生成する。
▲１▼  図１において、結合制御手段１は操作手段６により指定される被試験対象の機能と、命令タイプを結合して、出現頻度を選定するための出力を出現頻度設定手段２に与える。出現頻度設定手段２は、上記機能と命令タイプに基づき、テストプログラムにおける命令の出現頻度を設定し命令生成手段３に与える。
【００３８】
命令生成手段３は操作手段６から与えられる命令数、初期値、命令ＩＤの設定等に基づき、被試験対象を試験するための命令を生成する。なお、上記初期値、命令ＩＤの設定は、切り替え手段６ａ，６ｂによりそれぞれ自動／任意値、ランダム値／指定値に切り替えることができる。
命令生成手段３により生成された命令列は命令実行／実行結果組み込み手段４に与えられ、命令実行／実行結果組み込み手段４はシミュレータにより上記命令列を実行し、正解情報（実行結果）を得てテストプログラム中に組み込み、テストプログラム５を生成する。
【００３９】
プログラム名自動設定手段５ａは前記した操作手段６により設定される試験機能、命令タイプ、操作手段６により設定されるテストプログラムの本数等に基づき、生成されるテストプログラムにプログラム番号を付与する。
上記のようにしてテストプログラムを生成することにより、制御を複雑化したり規模を大きくすることなく、指定された機能、命令タイプに応じたテストプログラムを生成することができ、また、指定された機能、命令タイプに応じたテストプログラム名を付与することができる。
【００４０】
さらに、命令数、初期値、命令ＩＤ等を指定することが可能となり、テストプログラムの実行時間への対応を容易化し、テストプログラムの再生成、テストプログラムへの意図した命令ＩＤの設定が可能となる。
▲２▼  図２に示すように、操作手段６によりテストプログラムにおけるアクセス範囲、分岐範囲を指定し、指定されたアクセス範囲／分岐範囲の命令を生成したり、操作手段６によりチェック・ポイント用命令の挿入位置等を指定し、チェック・ポイント用命令挿入位置制御手段３ａにより指定された位置にチェック・ポイント用命令を挿入することができる。
【００４１】
また、切り替え手段６ｃを設け、アクセス／分岐範囲をランダム値もしくは固定値に切り替えて設定することもできる。
さらに、操作手段６により、初期処理部先頭位置、割り込みテーブル先頭位置、アドレス空間テーブル先頭位置、アクセス・データ域先頭位置およびその範囲、命令生成域先頭位置およびその範囲、正解情報格納位置先頭位置およびその範囲等を指定し、テストプログラムにおける初期処理部、割り込みテーブル、アドレス空間テーブル、アクセス・データ域先頭位置等の位置および／または範囲を指定することもできる。
【００４２】
上記のように、アクセス範囲／分岐範囲を任意に指定したり、初期処理部先頭位置、割り込みテーブル先頭位置、アドレス空間テーブル先頭位置を設定可能とすることにより、試験条件に応じたテストプログラムを生成することができる。また、アクセス命令のアクセス範囲を固定値に設定することができるので、ＴＬＢ（アドレス変換バッファ）に対するヒット率を向上させることができる。
【００４３】
さらに、チェック・ポイント用命令の設定位置を制御できるようにすることにより、ラフなチェックあるいは詳細なチェックを行うテストプログラムを生成でき、目的に応じたテストプログラムを容易に生成することができる。
▲３▼  図２に示すように、正解位置情報設定位置を変化させる手段４ａを設け、正解情報（実行結果）の大きさに応じてテストプログラムにおける正解情報の組み込み位置を変化させる。これにより、実行結果の大きさに応じて、自動的に正解情報の組み込み位置を変化させることができ、正解情報が大きい場合にも領域をオーバ−することなく正解情報を設定することができる。
【００４４】
また、初期処理部設定手段５ｂを設け、予め用意された初期処理部Ａ〜Ｚを機能指定値に応じて選択し、テストプログラム５に組み込む。これにより、機能指定値に応じた初期処理部を持つテストプログラム５を自動的に生成することが可能となる。
▲４▼  図３に示すように、試験機能、命令タイプ等の被試験プログラムの生成条件を指定する第１の指定操作６−１と、被試験対象プログラムにおける処理部、テーブル等の先頭位置、範囲等の被試験対象プログラムの構成を指定する第２の指定操作６−２，６−３，…とを分割して表示する操作手段６と、上記第２の指定操作による指定形式を格納する格納手段６ｅを設ける。
【００４５】
そして、読み出し制御手段６ｄにより、上記第１の指定操作による指定値に基づき上記格納手段６ａから第２の指定操作による指定値を自動的に読み出し、テストプログラムを自動的に生成する。
上記のように、上記第１の指定操作による指定値に基づき、第２の指定操作による指定値を自動的に読み出すことにより、テストプログラム自動生成システムの操作性を向上させることができる。
【００４６】
【実施例】
以下、本発明の実施例を説明する。
（１）機能指定と命令タイプ指定制御を用いたテストプログラムの生成
図４、図５は、同図は、機能指定と命令タイプ指定によるテストプログラムの生成を説明する図である。
【００４７】
図４、図５において、２１１は画面制御部、２２０は画面情報ファイル、２３０は試験項目制御部、２４０は出現頻度制御部、２５０は命令生成制御部、２６０はテスト命令列、２７０は実行制御部をそれぞれ示している。
図４において、画面制御部２１０の試験機能１〜ｎの人手操作２１１、命令タイプ１〜ｎの人手操作２１２により設定された情報を画面情報ファイル２２０の試験機能１〜ｎ指定値２２１、命令タイプ１〜ｎ指定値２２２に格納する。
【００４８】
試験項目制御部２３０は、試験機能２３１、命令タイプ２３２、結合処理部２３３、結合テーブル２３４から構成されている。
試験機能１〜ｎ指定値２２１、命令タイプ１〜ｎ指定値２２２に基づき定められた試験機能２３１、命令タイプ２３２から選択された値により、結合処理部２３３は結合テーブル２３４を選択する。例えば、機能が１、命令タイプが２の場合には、結合テーブル２３４の２行目が選択される。
【００４９】
そして、選択された結合テーブル２３４により、出現頻度制御部２４０の出現頻度テーブル２４１を選択（出現１１制御〜出現ｎｎ制御）し、命令ＩＤの設定を行う。例えば、出現頻度テーブル（出現１１制御〜出現ｎｎ制御）には、出現頻度に応じた比率で命令ＩＤが格納されており、擬似乱数等により命令ＩＤをランダムに選択して、命令タイプ、機能に応じて定まる出現頻度で命令ＩＤを出力する。
【００５０】
図５において、命令生成制御部２５０は、命令生成テーブル２５１、生成命令設定部２５２から構成されている。命令生成テーブル２５１には、次に説明するように命令ＩＤに対応して命令のオペランド部の値を設定するためのデータが格納されており、命令生成制御部２５０は選択された命令ＩＤと疑似乱数発生器（図示せず）が発生する疑似乱数に従って、命令生成テーブル２５１から命令を生成する。そして、生成命令設定部２５２により、テスト命令列２６０に順次被試験命令１〜ｎ２６１を設定する。
【００５１】
図６は、上記した命令生成制御部２５０における命令の生成を説明する図である。
同図（ａ）に示すように、命令生成テーブルには命令ＩＤ毎にＡＮＤ演算とＯＲ演算用のデータ（同図中の1101 1111,0000 1000 ）が格納されており、上記ＡＮＤ演算、ＯＲ演算用のデータと疑似乱数発生器（図示せず）から与えられる疑似乱数とのＡＮＤ演算およびＯＲ演算を行って、命令のオペランド部の値を生成する。
【００５２】
例えば、同図（ｂ）に示すように、命令コードがレジスタ加算の場合に、レジスタ番号（同図のａｄｄ  ＧＲm ，ＧＲn におけるｎ，ｍの値）を次のようにして求める。
まず、疑似乱数発生器が発生する疑似乱数（同図の場合には1011 0011 ) とＡＮＤ演算用データ（同図の場合には1101 1111 ）とのＡＮＤ演算を行い、その結果とＯＲ演算用のデータ（同図の場合には0000 1000 ) とのＯＲ演算を行う。
【００５３】
その結果、同図に示すように0011 1011 （１０進数で３と１１）が得られ、加算命令のレジスタがＧＲ3 ，ＧＲ11となる。
上記のようにＡＮＤ演算用のデータとＯＲ演算用のデータを適宜選定し、それらの値と疑似乱数とのＡＮＤ演算、ＯＲ演算を行うことにより、オペランド、レジスタ番号等の値の範囲を適切な範囲に選定することができる（同図においては、レジスタ番号が０〜７，８〜１５の範囲になるようにＡＮＤ演算用のデータとＯＲ演算用のデータを定めている）。
【００５４】
上記のようにして、命令生成テーブルにより命令ＩＤに対応したオペランド部が生成されると、生成命令設定部２５２は、命令ＩＤに対応した命令コードに上記オペランド部を付加し、命令を生成する。
図５に戻り、実行制御部２７０は、生成命令組込み制御部２７１、生成命令の実行制御部２７２、ソフトシミュレータ２７３、正解情報の収集・組込み制御部２７４、テストプログラム域２７５から構成されている。
【００５５】
生成命令組込み制御部２７１は、テスト命令列２６０をテストプログラム域２７５に組み込み、生成命令の実行制御部２７２はソフトシミュレータ２７３を用いてテスト命令列を実行し、実行結果を得る。
正解情報の収集・組込み制御部２７４は、実行した結果を正解情報としてテストプログラム域２７５に組み込む。
（２）試験項目単位の命令生成
図７は生成命令に対する特化制御について説明する図であり、レジスタ干渉試験、オペランド干渉試験等を行うに際し生成命令のオペランド部を特化（オペランド部の近似値化等）する場合を示している。
【００５６】
同図において、３１１は疑似乱数発生器、３２０は出現頻度制御部、３３０は特化制御部、３４０は命令生成制御部をそれぞれ示しており、疑似乱数発生器３１１、出現頻度制御部３２０、命令生成制御部３４０の構成／動作は前記図４〜図６で説明したものと基本的に同様である。
特化制御部３３０は、上記したように、レジスタ干渉試験、オペランド干渉試験等を行うに際し、オペランドの値を近似化するなど、オペランドの値、レジスタの番号の値を特定の値に設定するために設けられたものであり、生成特化制御部３３１により、疑似乱数発生器３１１からの乱数に対して、試験項目１１〜ｎｎ制御部３２１が出力する各試験項目に沿った特殊な制御を行い、特化した乱数を生成する。例えば、オペランド干渉試験を行う場合には、オペランド部が近似化した値になるように所定の範囲内の乱数を発生し、該乱数により命令のオペランド部を生成する。
【００５７】
出現頻度制御部３２０は、試験１１〜ｎｎ専用出現頻度テーブル３２３、判定部３２２、試験項目１１〜ｎｎ制御部３２１から構成されており、前記したように、疑似乱数発生器３１１からの乱数値と、試験項目１１〜ｎｎ制御部３２１の設定指示とを判定部３２２で判断し、試験１１〜ｎｎ専用出現頻度テーブル３２３から生成対象となる命令ＩＤを取り出す。
【００５８】
命令生成制御部３４０は、デコーダ３４１、ａ〜ｚ命令の生成データ３４３、生成命令設定部３４４から構成されおり、前記したように、取り出された生成対象となる命令ＩＤに基づいて、デコーダ３４１により、ａ〜ｚ命令の生成データ３４３を選択し、特化した乱数に従って命令のオペランド部を生成する。生成された命令は、生成命令設定部３４４により所定の領域に設定される。
【００５９】
さらに、図８により乱数の特化制御の詳細について説明する。
試験項目１１〜ｎｎ制御部４２１により、命令特化ＡＮＤデータ４３３、命令特化ＯＲデータ４３４が、各試験項目に沿った特殊データとして選択される。
疑似乱数発生器４１１からの乱数値４３１と、命令特化ＡＮＤデータ４３３をＡＮＤ（不要情報の削除）を行い、更に命令特化ＯＲデータ４３４により、ＯＲ（要情報の付加）の制御を行い、命令生成対象の乱数として使用する。
【００６０】
すなわち、前記した命令生成制御部におけるオペランド部の生成の場合と同様、命令特化ＡＮＤデータ４３３、命令特化ＯＲデータ４３４を試験項目に応じて設定することにより、命令生成対象となる乱数の特化（乱数の値を特定の値に設定する）をすることができる。これにより、命令生成制御部３４０において生成される命令のオペランド部の値を近似値化する等、特定の値に設定することができる。
（３）プログラム名の設定
図９は、プログラム名の設定について説明する図であり、試験機能、命令タイプ、命令ＩＤモード（後述する）およびプログラム本数に応じて自動的にプログラム名を設定する場合を示している。
【００６１】
同図において、５１０は画面制御部、５２０は画面情報ファイル、５３１は試験項目制御部、５３２は出現頻度制御部、５３４は命令生成制御部、５３５はテスト命令列、５４０はプログラム名設定制御部、５５０は実行制御部をそれぞれ示しており、画面制御部５１０、画面情報ファイル５２０、試験項目制御部５３１、出現頻度制御部５３２、命令生成制御部５３４、テスト命令列５３５、実行制御部５５０の構成／動作は、画面制御部５１０から入力される情報、画面情報ファイル５２０に格納される情報を除き、前記図４〜図８に示したものと基本的に同様である。
【００６２】
画面制御部５１０の試験機能１〜ｎの人手操作５１１、命令タイプ１〜ｎの人手操作５１２、命令ＩＤモードの人手操作５１３、テストプログラム本数の人手操作５１４により設定された情報を画面情報ファイル５２０の試験機能１〜ｎ指定値５２１、命令タイプ１〜ｎ指定値５２２、命令ＩＤモード５２３、テストプログラム本数５２４に格納する。
【００６３】
プログラム名設定制御部５４０は、番号設定部５４１、末尾カウンタ５４３、レジスタ５４４、プログラム番号設定部５４５、次生成繰返し制御部５４６から構成されている。
プログラム名設定制御部５４０の番号設定部５４１において、画面情報ファイル５２０の試験機能１〜ｎ指定値５２１、命令タイプ１〜ｎ指定値５２２、命令ＩＤモード５２３から上位のプログラム名（プログラム番号の上位３桁）を決定しレジスタ５４４に設定する。
【００６４】
さらに、テストプログラム本数５２４を末尾カウンタ５４３に設定することにより、レジスタ５４４にテストプログラム名（番号）を設定する。
一方、試験項目制御部５３１、出現頻度制御部５３２、命令生成制御部５３４によって求めたテスト命令列５３５が実行制御部５５０に与えられ、実行制御部５５０において１〜ｎのテストプログラム５５７が生成される。
【００６５】
そして、プログラム番号設定部５４５は、レジスタ５４４に設定されているテストプログラム名を上記生成された１〜ｎのテストプログラム５５７に対して付与する。
次生成繰返し制御部５４６は、末尾カウンタ５４３がゼロになるまで命令生成制御部５３４によるテスト命令の生成を繰り返し、生成されたテストプログラムに上位３桁が試験機能、命令タイプ、命令ＩＤモードに対応した値を持ち、下位３桁が末尾カウンタの値を持つテストプログラム名が付与される。
（４）初期値（シード値）の設定
図１０は初期値（シード値）の設定について説明する図であり、初期値（シード値）を人手による設定又は自動設定に切り替えて設定できるようにした場合を示している。
【００６６】
同図において、６１０は画面制御部、６２０は画面情報ファイル、６３１は疑似乱数発生器、６３２は試験項目制御部、６３３は出現頻度制御部、６４０は命令生成制御部、６５０はテスト命令列、６６０は実行制御部をそれぞれ示しており、疑似乱数発生器６３１、試験項目制御部６３２、出現頻度制御部６３３、命令生成制御部６４０、テスト命令列６５０、実行制御部６６０の構成／動作は、画面情報ファイル６２０に格納される情報を除き、前記図４〜図８に示したものと基本的に同様である。
【００６７】
画面制御部６１０は、初期値（シード値）の人手操作６１１、切替え制御部６１２、自動設定指示６１４、タイマー６１３、人手操作指示６１５から構成されている。そして、通常は自動設定指示６１４が優先され、タイマー６１３からの初期値（シード）が画面制御部６１０に表示され、切替え制御部６１２により、人手操作指示６１５による任意の初期値（シード）６２１の設定を行う。
【００６８】
すなわち、切替え制御部６１２により、人手操作指示６１５による人手による初期値（シード）の設定と、タイマー６１３による初期値（シード）の自動的な設定を切り替えて設定することができる。
画面情報ファイル６２０の初期値（シード）６２１は疑似乱数発生器６３１の初期値として使用され、順次生成される乱数値に基づき、前記したように、試験項目制御部６３２、出現頻度制御部６３３、命令生成制御部６４０によって求めれたテスト命令列６５０が実行制御部６６０により実行され、テストプログラム６６５が生成される。
（５）命令ＩＤモードの設定制御
図１１は、命令ＩＤモードの設定制御について説明する図であり、命令ＩＤをランダムな値に設定したり、意図した値（例えばシリアルな値）に設定できるようにする場合を示している。
【００６９】
同図において、７１０は画面制御部、７２０は画面情報ファイル、７３１はモード切替え部、７４１は命令ＩＤをシリアルに設定するためのシリアルＩＤ設定制御部、７４２は命令ＩＤ域、７４４は命令ＩＤ取出し制御部、７４３は疑似乱数発生器、７５０は出現頻度制御部、７６０は命令生成制御部、７７０はテスト命令列、７８０は実行制御部をそれぞれ示しており、画面制御部７１０、画面情報ファイル７２０、疑似乱数発生器７４３、出現頻度制御部７５０、命令生成制御部７６０、テスト命令列７７０、実行制御部７８０の構成／動作は、画面制御部７１０から入力される情報、画面情報ファイル７２０に格納される情報を除き、前記図４〜図８に示したものと基本的に同様である。
【００７０】
画面制御部７１０の命令ＩＤ設定モードの人手操作７１１により、画面情報ファイル７２０の命令ＩＤモード値７２１に値が設定される。
設定された命令ＩＤモード値７２１に対して、モード切替え部７３１では、「Ｒ」（ランダム）か「Ｓ」（シリアル）のコード判別を行い、「Ｒ」ならば、疑似乱数発生器７４３が発生する通常の乱数に基づいた生成処理を行い、「Ｓ」ならば、シリアルＩＤ設定制御部７４１により、命令ＩＤ域７４２に命令ＩＤをシリアルに設定する。設定された命令ＩＤは、命令ＩＤ取出し制御部７４４により命令生成制御部７６０に渡され、通常の乱数に基づいた生成処理と同じようにテスト生成を行う。
（６）プログラム構成の入力指定によるテストプログラム生成
図１２、図１３は、プログラム構成の入力指定によるテストプログラムの生成について説明する図であり、生成されたテストプログラム域の初期処理部番地、割込みテーブル番地、アドレス空間テーブル番地等の番地およびその範囲値と、チェック・ポイント数、生成命令数等を設定できるようにした場合を示している。
【００７１】
同図において、８１０は画面制御部、８２０は画面情報ファイル、８３１は疑似乱数発生器、８３２は試験項目制御部、８３３は出現頻度制御部、８３４は生成命令カウンタ、８３５はチェックポイント・カウンタ、８４１は先頭番地の設定制御部、８４２はアクセス範囲変更部、８４３は分岐範囲変更部、８４４は乱数設定レジスタ、８６０は命令生成制御部、８７０はテスト命令列、８８０は実行制御部をそれぞれ示しており、画面制御部８１０、画面情報ファイル８２０、疑似乱数発生器８３１、試験項目制御部８３２、出現頻度制御部８３３、命令生成制御部８６０、テスト命令列８７０、実行制御部８８０の構成／動作は、画面制御部８１０から入力される情報、画面情報ファイル８２０に格納される情報を除き、前記図４〜図８に示したものと基本的に同様である。
【００７２】
画面制御部８１０の命令生成条件の人手操作８１１の任意に指定された値を画面情報ファイル８２０の生成条件値に設定する。
更に、初期処理部番地の人手操作８１２、割込みテーブル番地の人手操作８１３、アドレス空間テーブル番地の人手操作８１４、正解情報番地の人手操作８１５、アクセスデータ番地の人手操作８１６、テスト命令設定番地の人手操作８１７、チェック・ポイント数の設定人手操作８１８、生成命令数の設定人手操作８１９により設定された情報を、画面情報ファイル８２０の初期処理部番地８２２、割込みテーブル番地８２３、アドレス空間テーブル番地８２４、正解情報番地と範囲値８２５、アクセスデータ番地と範囲値８２６、テスト命令設定番地と範囲値８２７、チェック・ポイント数８２８、生成命令数８２９に格納する。
【００７３】
先頭番地の設定制御部８４１は、初期処理部番地８２２〜テスト命令設定番地と範囲値８２７で指定された各番地に各内容のデータを設定する。
アクセス範囲変更部８４２、分岐範囲変更部８４３は、初期処理部番地８２２〜テスト命令設定番地と範囲値８２７により、疑似乱数発生器８３１の乱数を変更し乱数設定レジスタ８４４に設定する。なお、図示しない切替え制御部を設け、切替え制御部により、上記分岐範囲、アクセス範囲をランダムな値もしくは固定値に切替え制御することもできる。
【００７４】
命令生成制御部８６０は、乱数設定レジスタ８４４の値を使用して被試験命令を生成する。
生成命令数カウンタ８３４は、テスト命令列８７０の被試験命令１〜ｎを指定値に従って可変に生成するカウンタであり、該カウンタ値により生成命令数が定められる。
【００７５】
チェックポイント・カウンタ８３５は、生成命令間に設定するチェックポイント命令を指定数に従って可変に設定するカウンタであり、該カウンタ値により生成命令間に設定するチェックポイントの数が定められる。
番地自動設定部８５１は、実行制御部８８０の正解情報の収集・組込み制御部８８４に対し、各種割込み情報の大きさに従って、領域を詰めて正解情報を組み込む設定部である。すなわち、通常、正解域としては所定の大きさの領域が確保され正解情報が書き込まれるが、上記領域に空きがあるとき、番地自動設定部８５１は上記領域を詰めて正解情報を組み込む。
（７）試験機能単位の初期処理部の設定
図１４は試験機能単位の初期処理部の設定について説明する図であり、予め用意された初期処理部を試験機能に対応させて選択し自動的に読み出すことにより、テストプログラム域の初期処理部を自動的に行うようにした場合を示している。
【００７６】
同図において、９１０は画面制御部、９２０は画面情報ファイル、９３２は試験項目制御部、９３３は出現頻度制御部、９３４は命令生成制御部、９４０は設定制御部、９３５はテスト命令列、９５０は実行制御部をそれぞれ示しており、画面制御部９１０、画面情報ファイル９２０、試験項目制御部９３２、出現頻度制御部９３３、命令生成制御部９３４、テスト命令列９３５、実行制御部９５０の構成／動作は前記図４〜図８に示したものと基本的に同様である。
【００７７】
画面制御部９１０の試験機能１〜ｎ指定の人手操作９１１で指定された値
を画面情報ファイル９２０の試験機能１〜ｎ指定値９２１に設定する。
設定された試験機能１〜ｎ指定値９２１に基づき、設定制御部９４０は、処理プログラム９４１から試験機能に対応した初期処理部Ａ〜Ｚを選択し、実行制御部９５０のテストプログラム９５６の初期処理部に格納する。
（８）画面情報ファイルの自動呼出し
図１５は、画面情報ファイルの自動呼出しについて本発明の実施例を説明する図であり、試験機能指定値、命令タイプ指定値等のテストプログラムの生成条件の指定に応じて設定番地や番地範囲等のテストプログラムの構成を指定するデータを自動的に読み出す場合を示している。
【００７８】
同図において、１１０は画面制御部、１２０は画面情報ファイル、１３０は自動呼出し制御部をそれぞれ示しており、同図にはテストプログラム自動生成システムのその他の構成が示されていないが、上記画面制御部１１０、画面情報ファイル１２０およびその他の部分の構成／動作は前記図４〜図１４に示したものと基本的に同様である。
【００７９】
画面制御部１１０の試験機能１〜ｎ指定の人手操作１１１、命令タイプ１〜ｎ指定の人手操作１１２で指定された値を画面情報ファイル１２０の試験機能１〜ｎ指定値１２１、命令タイプ１〜ｎ指定値１２２に設定する。
自動呼出し制御部１３０は、設定された試験機能１〜ｎ指定値１２１と、命令タイプ１〜ｎ指定値１２２に基づき、判定部１３１により、画面情報ファイルＡ，Ｂ，…１３２を選択して呼出し、画面情報ファイル呼び出し設定制御部１３３により、所定の領域に画面情報ファイルを登録・表示する。
【００８０】
上記選択された情報を用いて、以下、前記図４〜図１４で説明したようにテストプログラムが自動生成される。
【００８１】
【発明の効果】
以上説明したように本発明は以下の効果を得ることができる。
（１）被試験対象の機能と命令タイプを指定し、指定された機能と命令タイプに応じた出現頻度を設定して命令を生成することにより、特殊な命令タイプ、指定された機能を対象とした被試験対象の命令を生成することが可能となる。
【００８２】
また、機能ごとに正解情報を解析し、テストプログラムに組み込むことにより、機能に対応したテストプログラムの自動生成が可能となる。
さらに、機能毎に命令生成を特化する制御手段を設けたので、オペランド部を近似化する等、特殊な命令を生成することができ、レジスタ干渉試験、オペランド干渉試験等を行うテストプログラムの自動生成が可能となる。
（２）機能に付与される番号と命令タイプに付与される番号とから被試験対象プログラム名を付与することができ、また、生成する被試験対象プログラムの本数を設定することにより、被試験対象プログラム名の設定を自動化することができる。
（３）初期値（シード値）の設定を自動的に設定される値もしくは任意値に設定することができるので、自動的に設定したシード値から生成されたテストプログラムを、初期値（シード値）の設定を任意値に設定することにより再生成することができ、試験効率の向上を図ることができる。
（４）命令ＩＤ（被試験対象の命令に付随する番号）の設定をランダムな値もしくは指定値に設定することができ、ランダム生成以外に意図した命令ＩＤを設定することができ、試験精度の向上を図ることができる。
（５）被試験対象命令の命令数を指定できるので、試験時間が短い場合には、被試験対象命令の命令数を少なくし、試験時間が多い場合には、被試験対象命令の命令数を大きくする等の試験条件に対応した被試験対象命令の生成が可能となり、試験効率の向上を図ることができる。
（６）被試験対象プログラムを構成する初期処理部、割込みテーブル、アドレス空間テーブル、アクセス・データ域、命令生成域、正解情報域（実行結果格納域）の先頭アドレスや領域範囲を設定したり、アクセス命令や分岐命令のオペランド・アドレスに対するアクセス範囲を指定することができるので、生成される被試験対象プログラムの構成を可変な構成することが可能となり、試験条件に対応したテストプログラムの自動生成が可能となる。
（７）命令のアクセス範囲／分岐範囲をランダムもしくは固定の範囲としたアクセス／分岐命令を生成することができる。このため、試験条件に応じたテストプログラムの生成が可能になるとともに、アクセス命令のアクセス範囲を固定に指定することにより、被試験命令のオペランド・アドレスを固定のアドレスに設定することが可能となり、被試験命令の実行時、ＴＬＢ（アドレス変換バッファ）に対するヒット率の向上を図った試験が可能となる。
（８）正解情報（実行結果）の大きさに従って、被試験対象プログラムに組み込む設定位置を自動的に変化させることができるので、特殊な実行結果情報の場合にも領域をオーバーすることなく設定が可能となり、テストプログラムの開発効率の向上を図ることができる。
（９）被試験対象の命令列に挿入するチェック・ポイント用命令の数やチェック・ポイント用命令の設定箇所を制御できるので、ラフなチェックや詳細なチェックをするテストプログラムの生成が可能となり、試験精度の向上を図った試験が可能となる。
（１０）被試験対象プログラムの初期処理部を機能ごとに自動的に読み出すことができ、機能に対応したテストプログラムを自動的に生成することが可能となる。
（１１）試験機能、命令タイプ等の被試験プログラムの生成条件を指定する操作画面の指定操作により、処理部、テーブル、命令生成域等の先頭位置および／またはこれらの範囲等、被試験対象プログラムの構成を規定するデータを設定した操作画面を自動的に読み出して、それらの指定値に対応したテストプログラムを自動的に生成することができるので、テストプログラム自動生成システムの操作性を向上させることができる。
【図面の簡単な説明】
【図１】本発明の原理図（その１）である。
【図２】本発明の原理図（その２）である。
【図３】本発明の原理図（その３）である。
【図４】機能指定と命令タイプ指定によるテスト生成を説明する図である。
【図５】機能指定と命令タイプ指定によるテスト生成を説明する図である。
【図６】命令生成制御部における命令生成を説明する図である。
【図７】生成命令の特化制御を説明する図である。
【図８】特化制御部の詳細を説明する図である。
【図９】プログラム名の設定を説明する図である。
【図１０】初期値（シード値）の設定を説明する図である。
【図１１】命令ＩＤ切替え制御を説明する図である。
【図１２】プログラム構成の入力指定によるテスト生成を説明する図である。
【図１３】プログラム構成の入力指定によるテスト生成を説明する図である。
【図１４】機能単位の初期処理部の自動的設定を説明する図である。
【図１５】画面情報ファイルの自動呼び出しを説明する図である。
【図１６】従来の試験機能指定によるテスト生成を説明する図である。
【図１７】従来のテストプログラム名の設定を説明する図である。
【図１８】従来の初期値（シード値）の設定を説明する図である。
【図１９】従来の命令ＩＤに基づくプログラム生成を説明する図である。
【符号の説明】
１１０，２１０，５１０，６１０，７１０，８１０，９１０
画面制御部
１２０，２２０，５２０，６２０，７２０，８２０，９２０
画面情報ファイル
１２１  ２２１  ５２１  ９２１                試験機能１〜ｎ指定値
１２２  ２２２  ５２２  命令タイプ１〜ｎ指定値
１３０  自動呼出し制御部
１３１  ３２２  判定部
１３２  画面情報ファイルＡ，Ｂ，…
１３３  画面情報ファイル呼び出し設定制御部
２３０  ５３１  ６３２  ８３２  ９３２    試験項目制御部
２３１  試験機能
２３２  命令タイプ
２３３  結合処理部
２３４  結合テーブル
２４０  ３２０  ５３２  ６３３  ７５０  ８３３  ９３３
出現頻度制御部
２４１  出現頻度テーブル
２５０  ３４０  ５３４  ６４０  ７６０  ８６０  ９３４
命令生成制御部
２５１  命令生成テーブル
２５２  ３４４  生成命令設定部
２６０  ５３５  ６５０  ７７０  ８７０  ９３５  テスト命令列
２６１  被試験命令１〜ｎ
２７０  ５５０  ６６０  ８８０  ７８０  ９５０  実行制御部
２７１  ５５１  ６６１  ７８１  ８８１  ９５１  生成命令組込み制御部
２７２  ５５２  ６６２  ７８２  ８８２  ９５２  生成命令の実行制御部
２７３  ５５３  ６６３  ７８３  ８８３  ９５３  ソフトシミュレータ
２７４  ５５４  ８８４  ７８４  ８８４    正解情報の収集・組込み制御部
２７５  ５５７  ６６５  ７８５  ８８５  ９５６  テストプログラム
３１１  ４１１  ６３１  ７４３  ８３１          疑似乱数発生器
３３０  特化制御部
３２１  試験項目１１〜ｎｎ制御部
３２３  試験１１〜ｎｎ専用出現頻度テーブル
３４１  デコーダ
３４３  ａ〜ｚ命令の生成データ
４２１  試験項目１１〜ｎｎ制御部
４３３  命令特化ＡＮＤデータ
４３４  命令特化ＯＲデータ
４３１  乱数値
５２３  命令ＩＤモード
５２４  テストプログラム本数
５４０  プログラム名設定制御部
５４１  番号設定部
５４３  末尾カウンタ
５４４  レジスタ
５４５  プログラム番号設定部
５４６  次生成繰返し制御部
６１２  切替え制御部
６１３  タイマー
６２１  初期値（シード）
７２１  命令ＩＤモード値
７３１  モード切替え部
７４１  シリアルＩＤ設定制御部
７４２  命令ＩＤ域
７４４  命令ＩＤ取出し制御部
８３４  生成命令カウンタ
８３５  チェックポイント・カウンタ
８４１  先頭番地の設定制御部
８４２  アクセス範囲変更部
８４３  分岐範囲変更部
８４４  乱数設定レジスタ
８２２  初期処理部番地
８２３  割込みテーブル番地
８２４  アドレス空間テーブル番地
８２５  正解情報番地と範囲値
８２６  アクセスデータ番地と範囲値
８２７  テスト命令設定番地と範囲値
８２８  チェック・ポイント数
８２９  生成命令数
８５１  番地自動設定部
９４０  設定制御部
【図１】
0003838999.tif 000002
【図２】
0003838999.tif 000003
【図３】
0003838999.tif 000004
【図４】
0003838999.tif 000005
【図５】
0003838999.tif 000006
【図６】
0003838999.tif 000007
【図７】
0003838999.tif 000008
【図８】
0003838999.tif 000009
【図９】
0003838999.tif 000010
【図１０】
0003838999.tif 000011
【図１１】
0003838999.tif 000012
【図１２】
0003838999.tif 000013
【図１３】
0003838999.tif 000014
【図１４】
0003838999.tif 000015
【図１５】
0003838999.tif 000016
【図１６】
0003838999.tif 000017
【図１７】
0003838999.tif 000018
【図１８】
0003838999.tif 000019
【図１９】
0003838999.tif 000020