(57)【特許請求の範囲】
【請求項１】
コンピュータに、
マスタデータに基づいて生成したテストデータを第１の記憶部に記憶し、
前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、
特定した前記位置に対応するデータを前記テストデータから抽出して第２の記憶部に記憶させ、
前記第２の記憶部に記憶されたデータに基づいて検証処理を実行し、
前記実行は、前記被検証プログラムによる前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象データを前記第２の記憶部から読み出し、または、前記書き込み命令の対象データを前記第２の記憶部に書き込み、前記命令の完了を前記被検証プログラムに通知し、前記被検証プログラムによる前記位置に対応するデータ以外のデータに対する書き込み命令に応答して前記命令の完了を前記被検証プログラムに通知する、
ことを実行させることを特徴とする制御プログラム。
【請求項２】
コンピュータに、
マスタデータに基づいて生成したテストデータを第１の記憶部に記憶し、
前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、
特定した前記位置に対応するデータを前記テストデータから抽出して第２の記憶部に記憶させ、
前記第２の記憶部に記憶されたデータに基づいて検証処理を実行し、
前記実行は、前記被検証プログラムによる前記マスタデータの読み出し命令、及び、前記被検証プログラムによる前記テストデータに対する書き込み命令に応答して、前記命令の完了を前記被検証プログラムに通知する、
ことを実行させることを特徴とする制御プログラム。
【請求項３】
第１の記憶部と、
第２の記憶部と、
マスタデータに基づいて生成したテストデータを前記第１の記憶部に記憶し、前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、特定した前記位置に対応するデータを前記テストデータから抽出して前記第２の記憶部に記憶させ、前記第２の記憶部に記憶されたデータに基づいて検証処理を実行する処理部と、を有し
前記処理部は、前記実行において、前記被検証プログラムによる前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象データを前記第２の記憶部から読み出し、または、前記書き込み命令の対象データを前記第２の記憶部に書き込み、前記命令の完了を前記被検証プログラムに通知し、前記被検証プログラムによる前記位置に対応するデータ以外のデータに対する書き込み命令に応答して前記命令の完了を前記被検証プログラムに通知する、
制御装置。
【請求項４】
第１の記憶部と、
第２の記憶部と、
マスタデータに基づいて生成したテストデータを前記第１の記憶部に記憶し、前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、特定した前記位置に対応するデータを前記テストデータから抽出して前記第２の記憶部に記憶させ、前記第２の記憶部に記憶されたデータに基づいて検証処理を実行する処理部と、を有し
前記処理部は、前記実行において、前記被検証プログラムによる前記マスタデータの読み出し命令、及び、前記被検証プログラムによる前記テストデータに対する書き込み命令に応答して、前記命令の完了を前記被検証プログラムに通知する、
制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、制御方法、及び、制御装置に関する。
【背景技術】
【０００２】
近年のビックデータ化に伴いソフトウェア（プログラム）が扱うデータ量が増大し、ＩＣＴ（Information and Communication Technology：ＩＣＴ）環境が大規模化している。大規模データを扱うＩＣＴ環境では、膨大なデータを格納するために、大容量の記憶装置を備える。
【０００３】
ソフトウェアの処理では、扱うデータ量が小さい場合には障害として顕在化しない事象が、データ量の増大に伴い、障害として顕在化する場合がある。したがって、ソフトウェアの動作の検証は、実際の運用環境と同様の大規模データを用いて行われる。例えば、検証装置は、大規模データが記憶された大容量の記憶装置にアクセスして、ソフトウェアの動作検証を行う。
【０００４】
ソフトウェアの動作検証に関する技術は、例えば、特許文献１、２に記載される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１-０２２６０９号公報
【特許文献２】特開平０７-２４９０１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、実際の運用環境と同様の大規模データを用いて動作検証を行う場合、大容量の記憶装置を用意することにより、動作検証にかかるコストが増大する。一方、コストの増大を抑えるために、動作検証に用いるデータの容量を抑制する場合、実際の運用環境のデータの構成と異なる構成に基づいて動作検証を行うことになる。これにより、運用環境と同様の動作検証が担保されず、ソフトウェアの動作検証の精度が低下する場合がある。
【０００７】
１つの側面では、本発明は、プログラムの動作検証の精度の低下を抑制する制御プログラム、制御方法、及び、制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、コンピュータに、マスタデータに基づいて生成したテストデータを第１の記憶部に記憶し、前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、特定した前記位置に対応するデータを前記テストデータから抽出して第２の記憶部に記憶させ、前記第２の記憶部に記憶されたデータに基づいて検証処理を実行する、ことを実行させる。
【発明の効果】
【０００９】
１つの側面によれば、プログラムの動作検証の精度の低下を抑制する。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態におけるテストシステムの構成を示す図である。
【図２】図１に示した検証装置１００の検証処理の概要を模式的に説明する図である。
【図３】マスタデータＭｄのデータ例の一部を示す図である。
【図４】テストデータＴｄのデータ例の一部を示す図である。
【図５】本実施の形態における検証の概要を説明するフローチャート図である。
【図６】本実施の形態における検証装置１００（図１、図２）のハードウェア構成図である。
【図７】図６に示したリード領域テーブル６０の一例を示す図である。
【図８】図６に示した抜粋テストデータＴｄｘの一部のデータ例を示す図である。
【図９】図６に示したアドレス変換テーブル７０の一例を示す図である。
【図１０】図６に示した検証装置１００のドライバプログラム１０のソフトウェアブロックの構成図である。
【図１１】本実施の形態におけるソフトウェアプログラム２０の検証の流れを説明するフローチャート図である。
【図１２】第１の準備工程（図１１のＳ１１）の処理を模式的に説明する図である。
【図１３】第１の準備工程（図１１のＳ１１）の処理の詳細を説明するフローチャート図である。
【図１４】図１３の工程Ｓ２３の処理の詳細を説明するフローチャート図である。
【図１５】第２の準備工程（図１１のＳ１２）の処理の概要を模式的に説明する図である。
【図１６】第２の準備工程（図１１のＳ１２）の処理の詳細を説明するフローチャート図である。
【図１７】抜粋テストデータＴｄｘ及びアドレス変換テーブル７０の生成処理（図１６の工程Ｓ４１）を説明するフローチャート図である。
【図１８】検証工程（図１１のＳ１３）の処理の概要を模式的に説明する図である。
【図１９】検証工程（図１１のＳ１３）の処理の詳細を説明するフローチャート図である。
【発明を実施するための形態】
【００１１】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１２】
［検証システム］
図１は、本実施の形態におけるテストシステムの構成を示す図である。図１に示す検証システムは、検証装置（制御装置）１００と、ストレージ装置ＳＤ１、ＳＤ２（ストレージ装置ＳＤともいう）を有する。検証装置１００は、ストレージ装置ＳＤ１、ＳＤ２と接続する。
【００１３】
図１に示す検証装置１００は、ソフトウェアの機能が適切に動作するか否か、また、ソフトウェアの性能が所定の基準を満たすか否か等の検証処理を行う。検証装置１００は、ソフトウェアの検証処理を、例えば、ソフトウェアの開発時や、機能追加及び障害修正に伴うバージョンアップの際に行う。
【００１４】
検証装置１００では、テストプログラム３０、検証処理の対象となるソフトウェア（検証対象のソフトウェアともいう）２０、及び、ドライバプログラム（制御プログラム）１０が動作する。テストプログラム３０は、検証対象のソフトウェア２０に、検証処理の実行を指示するプログラムである。ドライバプログラム１０は、例えば、検証装置１００で動作するオペレーションシステム（図示せず）が含むプログラムであって、ストレージ装置ＳＤに対するアクセス処理を制御する。
【００１５】
本実施の形態において、検証対象のソフトウェア２０は、例えば、データベース管理システム（DataBase Management System：ＤＢＭＳ）のソフトウェアである。ＤＢＭＳのソフトウェアは、アクセス要求に応じたデータベースへのアクセス処理や、データベースの構築や管理等を行う。
【００１６】
なお、検証対象のソフトウェア２０は、ＤＢＭＳのソフトウェアの例に限定されるものではなく、ファイルシステムのソフトウェアや、データに基づいて演算処理等を行うソフトウェア等であってもよい。
【００１７】
検証対象のソフトウェア２０がＤＢＭＳのソフトウェアである場合、検証装置１００は、ＤＢＭＳソフトウェアの、データベースへのアクセス処理やデータベースの構築処理が適切に動作するか否かを検証する。検証装置１００は、基本的なアクセス処理（データの書き込み、読み出し、検索処理等）の検証に加えて、検証対象のソフトウェア２０を使用する運用環境を想定した検証処理を行う。
【００１８】
例えば、検証装置１００は、検証対象のソフトウェア２０による、大容量のデータベースの生成処理や、大容量のデータベースに対するアクセス処理が適切に動作するか否かを検証する。検証装置１００は、検証対象のソフトウェア２０による、大容量のデータベースの先頭、最後尾等の境界に位置するデータのアクセス処理や、任意の数のデータのアクセス処理が適切に動作するか否かを検証する。また、検証装置１００は、検証対象のソフトウェア２０による、大容量のデータベースのアクセス処理の性能が、所定の基準を満たすか否かを検証する。
【００１９】
図１に示すストレージ装置ＳＤ１は、マスタデータＭｄを記憶する。本実施の形態におけるマスタデータＭｄは、テストデータＴｄの元となるデータである。マスタデータＭｄは、例えば、実際の検証対象のソフトウェア２０の運用環境で用いられるデータであって、大容量のデータである。検証装置１００は、マスタデータＭｄを元に、検証内容に応じた、様々なバリエーションのテストデータＴｄを生成する。マスタデータＭｄの一例を、図３にしたがって後述する。
【００２０】
図１に示すストレージ装置ＳＤ２は、テストデータＴｄや、検証処理の結果等の情報を記憶する。本実施の形態におけるテストデータＴｄは、ソフトウェア２０の検証処理に用いるデータである。テストデータＴｄは、検証内容に応じたデータを有する。テストデータＴｄは、例えば、マスタデータＭｄが含む一部のデータｄｄ−１〜ｄｄ−４（データｄｄともいう）、または、全部のデータ、及び、マスタデータＭｄが含むデータを加工したデータを有する。テストデータＴｄの一例を、図４にしたがって後述する。
【００２１】
なお、図１の例によると、マスタデータＭｄとテストデータＴｄは異なるストレージ装置ＳＤ１、ＳＤ２に記憶されているが、同一のストレージ装置ＳＤに記憶されていてもよい。また、テストデータＴｄは、検証装置１００内の記憶領域に格納されていてもよい。
【００２２】
次に、検証処理の一連の流れを説明する。テストプログラム３０がテストの開始を指示すると、検証対象のソフトウェア２０は、ストレージ装置ＳＤ１が記憶するマスタデータＭｄのデータｄｄを読み出して必要に応じて加工し、ストレージ装置ＳＤ２に書き込む。この処理を繰り返すことによって、検証対象のソフトウェア２０は、マスタデータＭｄに基づいてテストデータＴｄを生成する。
【００２３】
テストデータＴｄの生成が完了すると、検証対象のソフトウェア２０は、テストプログラム３０の指示にしたがって、ストレージ装置ＳＤ２に記憶されたテストデータＴｄに対するアクセス処理を行う。検証対象のソフトウェア２０は、アクセス処理の結果を、検証処理の結果情報としてストレージ装置ＳＤ２に記憶する。テストプログラム３０は、例えば、結果情報と期待値との比較結果に基づいて、検証対象のソフトウェア２０が適切に動作したか否かを判定する。
【００２４】
このように、検証装置１００は、テストプログラム３０にしたがって、ソフトウェアプログラム２０の機能を実行することにより、機能が適切に動作することを検証する。即ち、検証装置１００は、テストデータＴｄの生成処理を通して、検証対象のソフトウェア２０による、大容量のデータの読み出しや、大容量のデータの書き込みが適切に動作したか否かを検証する。また、検証装置１００は、テストデータＴｄに対するアクセス処理を通して、検証対象のソフトウェア２０のアクセス処理が適切に動作したか否かを検証する。
【００２５】
図２は、図１に示した検証装置１００の検証処理の概要を模式的に説明する図である。図１で前述したとおり、検証装置１００では、テストプログラム３０、検証対象のソフトウェア２０、及び、ドライバプログラム１０が動作する。図１で前述したとおり、検証装置１００は、マスタデータＭｄに基づくテストデータＴｄの生成処理Ｆ１と、生成したテストデータＴｄを用いた検証処理Ｆ２とを行う。
【００２６】
テストデータＴｄの生成処理Ｆ１では、テストプログラム３０は、検証対象のソフトウェア２０に、マスタデータＭｄの読み出し命令（リード命令）、及び、読み出したデータのストレージ装置ＳＤ２への書き込み命令（ライト命令）等を発行する。
【００２７】
検証対象のソフトウェア２０は、テストプログラム３０から受け付けた命令にしたがって、ドライバプログラム１０に、ライト命令及びリード命令を出力する。ドライバプログラム１０は、検証対象のソフトウェア２０から受け付けた命令に応答して、ストレージ装置ＳＤに記憶された各データにアクセスする。
【００２８】
テストデータＴｄを用いた検証処理Ｆ２では、テストプログラム３０は、検証対象のソフトウェア２０に、テストデータＴｄの読み出し命令（リード命令）、及び、テストデータＴｄに対する書き込み命令（ライト命令）等を発行する。
【００２９】
検証対象のソフトウェア２０は、テストプログラム３０から受け付けた命令にしたがって、ドライバプログラム１０に、ライト命令及びリード命令を発行する。ドライバプログラム１０は、検証対象のソフトウェア２０から受け付けた命令に応答して、ストレージ装置ＳＤ２に記憶されたテストデータＴｄにアクセスする。
【００３０】
ここで、図３、図４にしたがって、マスタデータＭｄ、及び、テストデータＴｄの一例を説明する。本実施の形態におけるマスタデータＭｄ及びテストデータＴｄは、ＣＳＶ（Comma-Separated Values：ＣＳＶ）形式のデータである。ただし、この例に限定されるものではなく、マスタデータＭｄ、及び、テストデータＴｄは、別の形式（例えば、バイナリ形式等）のデータであってもよい。
【００３１】
［マスタデータＭｄ］
図３は、マスタデータＭｄのデータ例の一部を示す図である。図３に示すマスタデータＭｄはデータの一部であって、実際には多量のデータを有する。
【００３２】
図３に示すマスタデータＭｄは、プロフェッショナルスポーツに関する情報を有するデータであって、２種類のデータ群Ｍｄ−１、Ｍｄ−２を有する。図３の（Ａ）に示すマスタデータＭｄ−１は、選手情報を有するデータ群であって、図３の（Ｂ）に示すマスタデータＭｄ−２は、チーム情報を有するデータ群である。
【００３３】
図３の（Ａ）に示す、選手情報を有するマスタデータＭｄ−１の各データは、データを識別する識別情報（Ｎｏ）、名前情報、所属情報、背番号情報、及び、得点数情報を有する。例えば、識別情報「１」のデータは、名前情報「ＰＯＮＥＭＥ」、所属情報「浦和ブルージェイズ」、背番号情報「１０」、特定数情報「２５２」を有する。同様にして、識別情報「２」のデータは、名前情報「ＷＡＨＩ」、所属情報「浦和ブルージェイズ」、背番号情報「２１」、特定数情報「１０８」を有する。他のデータについても同様である。
【００３４】
また、図３の（Ｂ）に示す、チーム情報を有するマスタデータＭｄ−２の各データは、データを識別する識別情報（Ｎｏ）、名称情報、優勝回数情報、及び、所在地情報を有する。例えば、識別情報「１」のデータは、名称情報「浦和ブルージェイズ」、優勝回数情報「７」、所在地情報「浦和」を有する。同様にして、識別情報「２」のデータは、名称情報「広島フレッチェ」、優勝回数情報「１」、所在地情報「広島」を有する。他のデータについても同様である。
【００３５】
［テストデータＴｄ］
図４は、テストデータＴｄのデータ例の一部を示す図である。図４に示すテストデータＴｄはデータの一部であって、テストデータＴｄは実際には多量のデータを有する。
【００３６】
テストプログラム３０は、検証対象のソフトウェア２０に指示することによって、図３に示すマスタデータＭｄに基づいて、図４に示すテストデータＴｄを生成する。このとき、テストプログラム３０は、マスタデータＭｄに加えて、予め生成した、生成規則やランダム値の生成に用いる論理等に基づいて、テストデータＴｄを生成してもよい。
【００３７】
図４の例によると、テストプログラム３０は、図３の（Ａ）（Ｂ）に示したマスタデータＭｄを組み合わせたテストデータＴｄを生成する。具体的に、図４のテストデータＴｄは、図３の（Ａ）（Ｂ）の各データ群が有する所属情報をキーにして、各データ群を組み合わせて生成したデータである。
【００３８】
図４に示すテストデータＴｄの各データは、データを識別する識別情報、名前情報、所属情報、背番号情報、得点数情報、及び、優勝回数情報を有する。例えば、識別情報「１」のデータは、名前情報「ＰＯＮＥＭＥ」、所属情報「浦和ブルージェイズ」、背番号情報「１０」、特定数情報「２５２」、及び、所属情報「浦和ブルージェイズ」に対応する優勝回数情報「７」を有する。同様にして、識別情報「４」のデータは、名前情報「ＨＩＳＡ」、所属情報「広島フレッチェ」、背番号情報「９」、特定数情報「１３６」、及び、所属情報「広島フレッチェ」に対応する優勝回数情報「１」を有する。他のデータについても同様である。
【００３９】
また、テストプログラム３０は、他のデータと情報が重複するデータや、不正な情報を有するデータを任意に追加した、テストデータＴｄを生成してもよい。図４に示すテストデータＴｄは、識別情報「１」のデータと情報が重複する、識別情報「５」のデータや、名前情報や所属情報等に不正な情報を有する識別情報「６」のデータを含む。
【００４０】
図１〜図４で説明してきたとおり、検証装置１００は、マスタデータＭｄからデータを読み出してテストデータＴｄを生成し、生成したテストデータＴｄに基づいて検証を行う。実際の運用環境と同様の環境を想定した検証を行う場合、検証装置１００は、例えば、大容量のテストデータＴｄを用いた検証処理を行う。
【００４１】
テストデータＴｄのサイズが大きい場合、テストデータＴｄを記憶するために、大容量の記憶領域を備える記憶装置（例えば、図１、図２に示すストレージ装置ＳＤ２）を用意する必要があり、検証処理に要するコストが高くなる。一方、コストを抑えるために、テストデータＴｄのサイズを抑制する場合、実際の運用環境のデータの構成と異なる構成に基づいて動作検証を行うことになり、ソフトウェアの動作検証の精度が低下する場合がある。
【００４２】
また、テストデータＴｄのサイズが大きい場合、検証装置１００は、図１に示したように、検証装置１００と通信を介して接続する大容量のストレージ装置ＳＤ２にテストデータＴｄを記憶し、ストレージ装置ＳＤ２にアクセスすることにより、検証処理を行う。通信を介してストレージ装置ＳＤ２にアクセスする場合、アクセス処理に時間がかかり、検証処理にかかる時間も長くなる。
【００４３】
［本実施の形態の概要］
したがって、本実施の形態の検証装置１００は、マスタデータＭｄに基づいて生成したテストデータＴｄを第１の記憶部（ストレージ装置ＳＤ等）に記憶する。また、検証装置１００は、テストデータＴｄのうち、生成したテストデータＴｄを用いた処理を被検証プログラム（検証対象のソフトウェア）２０が実行する際に読み出されたデータの位置を特定する。そして、検証装置１００は、特定した位置に対応するデータをテストデータＴｄから抽出して第２の記憶部（補助記憶装置２０２）に記憶させ、第２の記憶部に記憶されたデータに基づいて検証処理を実行する。
【００４４】
図５は、本実施の形態における検証の概要を説明するフローチャート図である。
【００４５】
Ｓ１：検証装置１００は、検証処理の実行前に、マスタデータＭｄに基づいて生成したテストデータＴｄをストレージ装置ＳＤ等に記憶し、テストデータＴｄのうち、検証対象のソフトウェア２０が実行する際に読み出されたデータの位置を特定する。
【００４６】
検証装置１００は、例えば、検証処理の実行前に、図２で説明した、テストデータＴｄの生成処理Ｆ１と検証処理Ｆ２とを実行する。そして、検証装置１００は、テストデータＴｄが含むデータのうち、検証処理Ｆ２の際に読み出されるデータを特定する。
【００４７】
Ｓ２：検証装置１００は、検証処理を実行する際に、工程Ｓ１で特定した、位置に対応するデータを、テストデータＴｄから抽出し、検証装置１００内の補助記憶装置２０２等の記憶領域に記憶する。
【００４８】
Ｓ３：検証装置１００は、記憶領域に記憶したデータに基づいて検証処理Ｆ２を実行する。検証処理Ｆ２の実行の際に、検証対象のソフトウェア２０によって読み出されるデータは、記憶領域に記憶されている。したがって、検証装置１００は、検証対象のソフトウェア２０による、当該データに対する読み出し及び書き込みを検証できる。一方、検証対象のソフトウェア２０によって読み出されないデータは、記憶領域に記憶されていないものの、読み出し対象とならないため、必ずしも記憶領域に記憶されている必要がない。
【００４９】
このように、本実施の形態における検証装置１００は、検証処理Ｆ２の実行の際に読み出されるデータを予め特定し、特定したデータを選択的に記憶領域に記憶し、当該記憶したデータに基づく検証処理を実現する。検証処理Ｆ２の際に読み出されるデータは、テストデータＴｄのうち、一部のデータである。これにより、検証装置１００は、検証処理Ｆ２の際に、記憶領域に記憶するデータの容量を抑制することができる。
【００５０】
したがって、運用環境と同様の大容量のテストデータＴｄを用いた検証処理を行う場合であっても、検証処理に用いる記憶領域の容量を抑えることにより、検証にかかるコストを抑えることが可能になる。したがって、検証装置１００は、ソフトウェア２０の動作検証にかかるコストを抑えることにより、動作検証の精度の低下を抑制できる。
【００５１】
また、記憶領域に記憶するデータの容量を抑制可能になることにより、検証装置１００は、検証処理に用いるテストデータＴｄを、検証装置１００内の記憶領域（ローカルの記憶領域）に格納できる。ローカルの記憶領域に対するアクセス速度は、ストレージ装置ＳＤ（図１、図２）に対するアクセス速度より速い。したがって、検証装置１００は、ローカルの記憶領域に格納したデータを用いて、より高速に、検証処理を行うことができ、検証処理にかかる時間を短縮できる。
【００５２】
また、本実施の形態における検証装置１００は、検証処理Ｆ２の実行時に、記憶領域に記憶されていないデータ（即ち、検証処理Ｆ２の際に読み出されないデータ）に対する書き込みを行わない。これにより、書き込みにかかる時間を短縮可能になるため、検証装置１００は、検証処理の実行にかかる時間をより短縮することができる。
【００５３】
［検証装置１００のハードウェア構成］
図６は、本実施の形態における検証装置１００（図１、図２）のハードウェア構成図である。検証装置１００は、例えば、ＣＰＵ（Central Processing Unit：ＣＰＵ）１０１、メインメモリ２０１や補助記憶装置２０２等を備えるメモリ１０２、通信インタフェース部１０３、外部インタフェース部１０４を有する。各部は、バス１０６を介して相互に接続する。
【００５４】
ＣＰＵ１０１は、バス１０６を介してメモリ１０２等と接続するとともに、検証装置１００全体の制御を行う。通信インタフェース部１０３は、インターネット等を介して、他の機器（図示せず）と接続する。ＲＡＭ（Random Access Memory：ＲＡＭ）等を示すメインメモリ２０１は、ＣＰＵ１０１が処理を行うデータ等を記憶する。また、外部インタフェース部１０４は、ストレージ装置ＳＤ等（図１、図２）と接続する。
【００５５】
補助記憶装置２０２は、ＣＰＵ１０１が実行するオペレーションシステムのプログラムを格納する領域（図示せず）を備える。また、補助記憶装置２０２は、ソフトウェアプログラム格納領域２０、ドライバプログラム格納領域１０、テストプログラム格納領域３０を備える。また、補助記憶装置２０２は、リード領域テーブル格納領域６０、抜粋テストデータ格納領域Ｔｄｘ、及び、アドレス変換テーブル格納領域７０を有する。補助記憶装置２０２は、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等を示す。
【００５６】
ソフトウェアプログラム格納領域２０のソフトウェアプログラム（以下、ソフトウェアプログラム２０と称する）は、ＣＰＵ１０１の実行によって、ソフトウェアプログラム（検証対象のソフトウェア）２０の処理を実現する。前述したとおり、ソフトウェアプログラム２０は、例えば、ＤＢＭＳのソフトウェアである。
【００５７】
テストプログラム格納領域３０のテストプログラム（以下、テストプログラム３０と称する）は、ＣＰＵ１０１の実行によって、テストプログラム３０の処理を実現する。テストプログラム３０は、各処理Ｆ１、Ｆ２の開始及び終了や、各処理Ｆ１、Ｆ２におけるアクセス処理の指示を、ソフトウェアプログラム２０に出力する。
【００５８】
ドライバプログラム格納領域１０のドライバプログラム（以下、ドライバプログラム１０と称する）は、ＣＰＵ１０１の実行によって、ストレージ装置ＳＤに対するアクセス処理等を実現する。ドライバプログラム１０は、ソフトウェアプログラム２０による、リード命令やライト命令等のアクセス命令に応答して当該命令に対応する処理を行い、処理結果をソフトウェアプログラム２０に出力する。ドライバプログラム１０の詳細は、図１０のソフトウェアブロック図にしたがって後述する。
【００５９】
なお、例えば、ソフトウェアプログラム２０の検証処理を行うユーザは、検証時にオペレーションシステム（図示せず）が有するドライバプログラム１０を、本実施の形態におけるドライバプログラム１０に置き換える。
【００６０】
リード領域テーブル格納領域６０のリード領域テーブル（以下、リード領域テーブル６０と称する）は、ドライバプログラム１０が生成し、参照するテーブルである。リード領域テーブル６０は、テストデータＴｄ（図４）が有するデータのうち、検証処理Ｆ２においてソフトウェアプログラム２０が読み出す対象のデータを特定する情報を有するテーブルである。リード領域テーブル６０の詳細は、図７で後述する。
【００６１】
抜粋テストデータ格納領域Ｔｄｘの抜粋テストデータ（以下、抜粋テストデータＴｄｘと称する）は、テストデータＴｄ（図４）が有するデータのうち、検証処理Ｆ２にてソフトウェアプログラム２０が読み出す対象のデータを選択的に有するデータである。抜粋テストデータＴｄｘの詳細は、図８で後述する。
【００６２】
アドレス変換テーブル格納領域７０のアドレス変換テーブル（以下、アドレス変換テーブル７０と称する）は、抜粋テストデータＴｄｘが有する各データの、テストデータＴｄ内のアドレスと、抜粋テストデータＴｄｘ内のアドレスとの対応情報を有する。アドレス変換テーブル７０の詳細は、図９で後述する。
【００６３】
［リード領域テーブル６０］
図７は、図６に示したリード領域テーブル６０の一例を示す図である。リード領域テーブル６０は、前述したとおり、テストデータＴｄが有するデータのうち、検証処理Ｆ２の際に読み出されるデータを識別する情報を有する。言い換えると、リード領域テーブル６０は、テストデータＴｄが記憶された記憶領域のうち、ソフトウェアプログラム２０がリード命令の対象とする記憶領域を識別する情報を有する。
【００６４】
図７の例に示すリード領域テーブル６０は、テストデータＴｄの先頭位置からのオフセットに対応するブロック番号（０〜Ｎ）と、当該ブロック番号のデータが読み出されたか否かを示すリードフラグの値とを有する。
【００６５】
ブロック番号は、テストデータＴｄが記憶されたストレージ装置ＳＤ２の領域を、所定のサイズの領域に区分したブロックｂｋの識別情報である。本実施の形態では、説明を簡易にするために、ブロックｂｋのサイズが、テストデータＴｄが有する各データのサイズと同一である場合を例示する。図７の例では、テストデータＴｄの先頭のブロックｂｋから順に、ブロック番号「０」「１」「２」と称する。
【００６６】
図７の例によると、ブロック番号「０」、「１」、「５」、「６４」、「２８７」、「２８９」、「２９０」のリードフラグは、値「ＯＮ」である。これは、ブロック番号「０」、「１」、「５」、「６４」、「２８７」、「２８９」、「２９０」の領域に記憶されたデータが、検証処理Ｆ２の際に、ソフトウェアプログラム２０による読み出されることを示す。
【００６７】
［抜粋テストデータＴｄｘ］
図８は、図６に示した抜粋テストデータＴｄｘの一部のデータ例を示す図である。図８に示す抜粋テストデータＴｄｘはデータの一部であって、抜粋テストデータＴｄｘは実際には多量のデータを有する。
【００６８】
抜粋テストデータＴｄｘは、図４に示したテストデータＴｄが有するデータのうち、検証処理Ｆ２の際に読み出されるデータを有する。言い換えると、抜粋テストデータＴｄｘは、テストデータＴｄが有するデータのうち、図７に示したリード領域テーブル６０上で、リードフラグが値「ＯＮ」のブロック番号の領域に記憶されたデータを有する。
【００６９】
図７に示したリード領域テーブル６０によると、例えば、ブロック番号「０」「１」「５」の領域に記憶されたデータのリードフラグの値が「ＯＮ」を示す。したがって、図８の例によると、抜粋テストデータＴｄｘは、テストデータＴｄ（図４）が有するデータのうち、ブロック番号「０」「１」「５」の領域に記憶された識別情報「１」「２」「６」のデータを有する。また、図８に図示していないが、他のリードフラグの値が「ＯＮ」のブロック番号についても同様にして、抜粋テストデータＴｄｘは当該ブロック番号の領域のデータを有する。
【００７０】
図８の例によると、抜粋テストデータＴｄｘは、検証処理Ｆ２で読み出しの対象にならない、ブロック番号「２」〜「４」の領域に記憶された識別情報「３」〜「５」のデータを有しない。したがって、例えば、識別情報「６」のデータの、テストデータＴｄ内のオフセットと、抜粋テストデータＴｄｘ内のオフセットとは異なる。
【００７１】
したがって、ドライバプログラム１０は、図９に示すアドレス変換テーブル７０にしたがって、ソフトウェアプログラム２０から受信したアクセス要求の対象アドレス（テストデータＴｄ内のアドレス）を、抜粋テストデータＴｄｘ内のアドレスに変換する。
【００７２】
［アドレス変換テーブル７０］
図９は、図６に示したアドレス変換テーブル７０の一例を示す図である。アドレス変換テーブル７０は、図８に示した抜粋テストデータＴｄｘが有する各データの、テストデータＴｄ（図４）内のアドレス（オフセット）と、抜粋テストデータＴｄｘ（図８）内のアドレス（オフセット）との対応情報を有する。
【００７３】
図９の矢印７０−１が示す対応情報は、例えば、図７に示した識別情報「６」のデータの、テストデータＴｄ内のオフセット「０ｘ２ａ０００００」と、抜粋テストデータＴｄｘ内のオフセット「０ｘ１００００００」を示す。アドレス変換テーブル７０は、抜粋テストデータＴｄｘが有する他のデータ（例えば、識別情報「１」「２」のデータ等）についても、同様にして、当該データのテストデータＴｄ内のアドレスと、抜粋テストデータＴｄｘ内のアドレスとの対応情報を有する。
【００７４】
［検証装置１００のソフトウェアブロック］
図１０は、図６に示した検証装置１００のドライバプログラム１０のソフトウェアブロックの構成図である。ドライバプログラム１０は、例えば、制御モジュール１１１、アクセスモジュール１１２、リード領域テーブル生成モジュール１１３、抜粋テストデータ生成モジュール１１４を有する。
【００７５】
制御モジュール１１１は、各モジュール１１２〜１１４の制御を行う。アクセスモジュール１１２は、ソフトウェアプログラム２０からアクセス命令を受け付け、実行対象の処理Ｆ１、Ｆ２、及び、アクセス命令に応じて、マスタデータＭｄ、テストデータＴｄ、抜粋テストデータＴｄｘに対するアクセス処理を行う。また、アクセスモジュール１１２は、アドレス変換テーブル７０を参照し、アドレスに応じてアドレスを変換し、変換したアドレスに基づくアクセス処理を行う。
【００７６】
リード領域テーブル生成モジュール１１３は、テストデータＴｄ（図４）が有するデータのうち、検証処理Ｆ２の際に読み出されるテストデータＴｄ内の領域を特定し、リード領域テーブル６０（図７）を生成する。リード領域テーブル生成モジュール１１３の処理の詳細は、図１４のフローチャート図にしたがって後述する。
【００７７】
抜粋テストデータ生成モジュール１１４は、リード領域テーブル６０（図７）とテストデータＴｄ（図４）とに基づいて、抜粋テストデータＴｄｘ（図８）、及び、アドレス変換テーブル７０（図９）を生成する。抜粋テストデータ生成モジュール１１４の処理の詳細は、図１７にしたがって後述する。
【００７８】
［検証の流れ］
図１１は、本実施の形態におけるソフトウェアプログラム２０の検証の流れを説明するフローチャート図である。
【００７９】
Ｓ１１：検証装置１００は、第１の準備工程を行う。第１の準備工程は、テストデータＴｄの生成処理Ｆ１−１（図１１に図示せず）と、テストデータＴｄを用いたソフトウェアプログラム２０の検証処理Ｆ２−１（図１１に図示せず）を行う。
【００８０】
検証装置１００は、テストデータＴｄの生成処理Ｆ１−１にしたがってテストデータＴｄを生成し、検証処理Ｆ２−１にしたがってリード領域テーブル６０を生成する。工程Ｓ１１の処理の詳細は、図１２〜図１４にしたがって後述する。
【００８１】
Ｓ１２：検証装置１００は、第２の準備工程を行う。第２の準備工程は、リード領域テーブル６０とテストデータＴｄとに基づく、抜粋テストデータＴｄｘ及びアドレス変換テーブル７０の生成処理を行う。工程Ｓ１２の処理の詳細は、図１５〜図１７にしたがって後述する。
【００８２】
生成した抜粋テストデータＴｄｘ及びアドレス変換テーブル７０は、例えば、検証工程（Ｓ１３）を行う検証装置１００の補助記憶装置２０２に格納される。なお、本実施の形態は、第１、第２の準備工程を行う検証装置１００と、検証工程（Ｓ１３）を行う検証装置１００とが同一である場合を例示する。
【００８３】
Ｓ１３：検証装置１００は、検証工程を行う。検証工程は、テストデータＴｄの生成処理Ｆ１−２（図１１に図示せず）と、ソフトウェアプログラム２０の検証処理Ｆ２−２（図１１に図示せず）を行う。工程Ｓ１３の処理の詳細は、図１８、図１９にしたがって後述する。
【００８４】
（テストデータＴｄの生成処理Ｆ１−２）
検証装置１００は、工程Ｓ１２にしたがって、検証処理に用いる抜粋テストデータＴｄｘを生成済みである。ただし、図１で前述したとおり、検証装置１００は、テストデータＴｄの生成処理を通して、検証対象のソフトウェア２０による、大容量のデータの読み出しや、大容量のデータの書き込みが適切に動作したか否かを検証する。したがって、検証装置１００は、検証工程（Ｓ１３）においても、テストデータＴｄの生成処理Ｆ１−２を行う。
【００８５】
また、実際の運用環境と同様のテストデータＴｄを用いた検証処理を行う場合、テストデータＴｄの元となるマスタデータＭｄは、多量の、運用環境と同様のデータを含んでいることが望ましい。ただし、マスタデータＭｄの容量の増大に伴ってマスタデータＭｄの読み出し時のオーバヘッドが増加し、マスタデータＭｄの読み出し処理に時間が長くなる。即ち、テストデータＴｄの生成処理にかかる時間が増大する。
【００８６】
なお、本実施の形態のように、マスタデータＭｄが、検証装置１００と通信を介して接続するストレージ装置ＳＤ１に記憶されている場合、マスタデータＭｄの読み出し処理にかかる時間はさらに長くなり、テストデータＴｄの生成処理にかかる時間が増大する。
【００８７】
したがって、検証工程Ｓ１３におけるテストデータＴｄの生成処理Ｆ１−２では、以下の処理を行う。ドライバプログラム１０は、ソフトウェアプログラム２０によるマスタデータＭｄのリード命令、及び、テストデータＴｄに対するリード命令に応答して、命令の完了をソフトウェアプログラム２０に通知する。即ち、ドライバプログラム１０は、マスタデータＭｄのリード命令、及び、テストデータＴｄに対するリード命令に応答して処理を行わずに、制御をソフトウェアプログラム２０に戻す。
【００８８】
これにより、ドライバプログラム１０は、マスタデータＭｄの読み出し、及び、テストデータＴｄへの書き込みを省略でき、テストデータＴｄの生成処理Ｆ１−２にかかる時間を短縮可能になる。テストデータＴｄの生成処理Ｆ１−２の時間の短縮により、ドライバプログラム１０は、検証処理にかかる時間を短縮できる。例えば、障害修正や機能追加等が高頻度に生じるソフトウェアプログラム２０の場合、検証処理にかかる時間の短縮により、より効率的に、簡易に、ソフトウェアプログラム２０を提供可能になる。
【００８９】
（検証処理Ｆ２−２）
検証工程Ｓ１３における検証処理Ｆ２−２では、検証装置１００は、補助記憶装置２０２に記憶した抜粋テストデータＴｄｘとアドレス変換テーブル７０に基づいて、ソフトウェアプログラム２０の検証処理を行う。
【００９０】
したがって、ドライバプログラム１０は、ソフトウェアプログラム２０による、検証処理Ｆ２の際に読み出される（位置情報に対応する）データのリード命令に応答し、リード命令の対象データを第２の記憶部（補助記憶装置２０２等の記憶領域）から読み出す。または、ドライバプログラム１０は、検証処理Ｆ２の際に読み出されるデータに対するライト命令に応答し、ライト命令の対象データを第２の記憶部に書き込む。そして、ドライバプログラム１０は、命令の完了をソフトウェアプログラム２０に通知する。
【００９１】
即ち、ドライバプログラム１０は、抜粋テストデータＴｄｘに含まれるデータに対するリード命令またはライト命令に応答して命令の処理を行い、命令の完了をソフトウェアプログラム２０に通知する。
【００９２】
また、ドライバプログラム１０は、ソフトウェアプログラム２０による、検証処理Ｆ２の際に読み出される（位置情報に対応する）データ以外のデータに対するライト命令に応答して、命令の完了をソフトウェアプログラム２０に通知する。即ち、ドライバプログラム１０は、抜粋テストデータＴｄｘに含まれないデータに対するライト命令に応答して、命令の処理を行わずに、命令の完了をソフトウェアプログラム２０に通知する。
【００９３】
このように、ドライバプログラム１０は、抜粋テストデータＴｄｘに含まれないデータに対するライト命令に応答して書き込みを行わずに、制御をソフトウェアプログラム２０に戻す。これにより、ドライバプログラム１０は、テストデータＴｄの一部のデータのみを有する抜粋テストデータＴｄｘに基づいた、ソフトウェアプログラム２０の検証を実現する。
【００９４】
また、抜粋テストデータＴｄｘに含まれないデータに対する書き込みを行わないことにより、書き込みにかかる時間を短縮可能になる。したがって、検証装置１００は、検証処理の実行にかかる時間をより短縮することができる。
【００９５】
（検証を繰り返し行う場合）
ソフトウェアプログラム２０の検証者は、第１の準備工程（Ｓ１１）、及び、第２の準備工程（Ｓ１２）を１回実施し、検証工程（Ｓ１３）を、ソフトウェアプログラム２０の機能追加や障害修正等に伴うレグレッションテストの都度、実施する。即ち、検証者は、１回の、第１の準備工程（Ｓ１１）及び第２の準備工程（Ｓ１２）にしたがって生成した、抜粋テストデータＴｄｘ及びアドレス変換テーブル７０を用いて、繰り返しソフトウェアプログラム２０の検証（Ｓ１３）を行う。
【００９６】
このように、検証装置１００は、テストデータＴｄから、ソフトウェアプログラム２０が実行する際に読み出されるデータを抽出して記憶したデータに基づいて、検証処理の実行を繰り返す。
【００９７】
したがって、あるソフトウェアプログラム２０に対して、抜粋テストデータＴｄｘ及びアドレス変換テーブル７０の生成処理は１回のみ実行されればよい。これにより、検証装置１００は、２回目以降は、抜粋テストデータＴｄｘ及びアドレス変換テーブル７０の生成処理を省略可能になるため、検証にかかる時間を短縮することができる。したがって、検証処理に用いる記憶領域の容量を抑えるとともに、より効率的に、簡易に、ソフトウェアプログラム２０の検証を行うことが可能になる。
【００９８】
また、マスタデータＭｄは、例えば、検証装置１００が有する記憶領域（補助記憶装置）２０２とは異なる別の記憶領域であって、アクセス速度が当該記憶領域に対するアクセス速度より遅い別の記憶領域（ストレージ装置ＳＤ１）に記憶される。これに対し、抜粋テストデータＴｄｘは、テストデータＴｄに対して容量が小さいため、検証装置１００が有する記憶領域に格納可能である。したがって、検証装置１００は、検証装置１００内に位置する記憶領域に記憶した抜粋テストデータＴｄｘに基づいて、高速に、検証処理を実行できる。
【００９９】
次に、図１２〜図１９にしたがって、図１１で説明した、工程Ｓ１１〜Ｓ１３の各工程の詳細を、順次説明する。初めに、図１２〜図１４にしたがって、第１の準備工程（Ｓ１１）を説明する。
【０１００】
［第１の準備工程（図１１のＳ１１）の概要］
図１２は、第１の準備工程（図１１のＳ１１）の処理を模式的に説明する図である。図１２において、図２で示したものと同一のものは、同一の記号で示す。図１２は、第１の準備工程（工程Ｓ１１）における、テストデータＴｄの生成処理Ｆ１−１、及び、生成したテストデータＴｄを用いたソフトウェアプログラム２０の検証処理Ｆ２−１を示す。
（テストデータＴｄの生成処理Ｆ１−１）
検証装置１００は、図２で説明したとおり、マスタデータＭｄから読み出したデータｄｄに基づいて、テストデータＴｄを生成する。
【０１０１】
テストプログラム３０は、マスタデータＭｄに対するリード命令を、ソフトウェアプログラム２０を介して（ｘ１）、ドライバプログラム１０に出力する（ｘ２）。ドライバプログラム１０は、受信したリード命令に応答して、ストレージ装置ＳＤ１に記憶されたマスタデータＭｄを読み出し（ｘ３）、読み出したデータｄｄをソフトウェアプログラム２０を介して（ｘ２）、テストプログラム３０に出力する（ｘ１）。
【０１０２】
テストプログラム３０は、マスタデータＭｄから読み出したデータｄｄを必要に応じて加工し、データｄｄのテストデータＴｄに対するライト命令を、ソフトウェアプログラム２０を介して（ｘ４）、ドライバプログラム１０に出力する（ｘ５）。ドライバプログラム１０は、受信したライト命令に応答して、ストレージ装置ＳＤ２に記憶されたテストデータＴｄにデータｄｄを書き込む（ｘ６）。
【０１０３】
同様にして、ドライバプログラム１０は、テストプログラム３０にしたがってソフトウェアプログラム２０から受信した命令にしたがって、マスタデータＭｄやテストデータＴｄに対するアクセス処理を行う（ｘ１１〜ｘ１６）。このアクセス処理を繰り返すことによって、ドライバプログラム１０は、テストデータＴｄを生成する。
【０１０４】
テストデータＴｄの生成が完了すると、ドライバプログラム１０は、後続の検証処理Ｆ２−１に伴うテストデータＴｄの更新に備えて、生成したテストデータＴｄを複写して、退避しておく（図示せず）。具体的に、ドライバプログラム１０は、抜粋テストデータＴｄｘの生成処理（図１１のＳ１２）に用いるために、更新前のテストデータＴｄを退避する。
【０１０５】
（検証処理Ｆ２−１）
検証装置１００は、生成したテストデータＴｄを用いて、予め定めた検証項目に応じた、ソフトウェアプログラム２０の検証処理を行う。
【０１０６】
テストプログラム３０は、検証内容に応じて、テストデータＴｄのアクセス命令（リード命令、ライト命令）を、ソフトウェアプログラム２０を介して（ｙ１、ｙ４、ｙ１１、ｙ１４）、ドライバプログラム１０に出力する（ｙ２、ｙ５、ｙ１２、ｙ１５）。ドライバプログラム１０は、受信したアクセス命令に応答して、ストレージ装置ＳＤ２に記憶されたテストデータＴｄの対象のデータに対して、アクセス命令に対応する処理を行う（ｙ３、ｙ６、ｙ１３、ｙ１６）。
【０１０７】
図１２の例によると、ドライバプログラム１０は、テストデータＴｄ内の領域ａ１、ａ２のデータを読み出す（ｙ３、ｙ１３）。また、ドライバプログラム１０は、テストデータＴｄ内の領域ａ２に対してデータを書き込み（ｙ６）、領域ａ３に対してデータを書き込む（ｙ１６）。図１２の例によると、検証処理Ｆ２−１において、領域ａ３のデータに対する書き込みは行われるものの、読み出しは行われない。
【０１０８】
したがって、ドライバプログラム１０は、テストデータＴｄが有するデータ（領域）のうち、リード命令の対象となるデータ（領域ａ１、ａ２等）を特定する。そして、ドライバプログラム１０は、領域ａ１、ａ２に対応するブロック番号「０」「１」のリードフラグを値「ＯＮ」に設定した、リード領域テーブル６０を生成し（ｙ１７）、ストレージ装置ＳＤ２に記憶する。
【０１０９】
［第１の準備工程（図１１のＳ１１）の処理の詳細］
図１３は、第１の準備工程（図１１のＳ１１）の処理の詳細を説明するフローチャート図である。
【０１１０】
Ｓ２１：検証装置１００は、図２で説明したとおり、テストデータＴｄの生成処理Ｆ１−１として、マスタデータＭｄから読み出したデータｄｄに基づいて、テストデータＴｄを生成し、ストレージ装置ＳＤ２に記憶する。工程Ｓ２１におけるドライバプログラム１０の処理の詳細は、図１９のフローチャート図で後述する。
【０１１１】
Ｓ２２：テストデータＴｄの生成処理の完了通知をテストプログラム３０から受信すると、ドライバプログラム１０の制御モジュール１１１は、生成したテストデータＴｄを複写し、退避する。前述したとおり、制御モジュール１１１は、後続の工程Ｓ２３に伴うテストデータＴｄの更新に備えて、テストデータＴｄを複写して退避する。
【０１１２】
Ｓ２３：検証装置１００は、検証処理Ｆ２−１として、生成したテストデータＴｄを用いたソフトウェアプログラム２０の検証処理を行う。
【０１１３】
図１２で説明したとおり、ドライバプログラム１０のアクセスモジュール１１２は、ソフトウェアプログラム２０から受信したアクセス命令（リード命令、ライト命令）に応答して、テストデータＴｄに対するアクセス処理を行う。
【０１１４】
このとき、リード領域テーブル生成モジュール１１３は、リード領域テーブル６０（図７）を生成し、ストレージ装置ＳＤ２に記憶する。なお、リード領域テーブル生成モジュール１１３は、リード領域テーブル６０を検証装置１００内の補助記憶装置２０２に記憶してもよい。
【０１１５】
次に、図１４のフローチャート図にしたがって、工程Ｓ２３の処理の詳細を説明する。
【０１１６】
［（図１３のＳ２３）リード領域テーブル６０の生成処理］
図１４は、図１３の工程Ｓ２３の処理の詳細を説明するフローチャート図である。
【０１１７】
Ｓ３１：ドライバプログラム１０の制御モジュール１１１は、ソフトウェアプログラム２０からアクセス命令を受信した際に、アクセス命令の種別を取得する。
【０１１８】
Ｓ３２：制御モジュール１１１は、取得した種別が、リード命令であるか否かを判定する。
【０１１９】
Ｓ３３：リード命令であると判定した場合（Ｓ３２のＹｅｓ）、リード領域テーブル生成モジュール１１３は、リード命令のパラメータ（オフセット、サイズ）を取得する。そして、リード領域テーブル生成モジュール１１３は、オフセットとサイズとに基づいて、リード命令の対象の領域に対応するブロック番号を取得（特定）する。
【０１２０】
Ｓ３４：リード領域テーブル生成モジュール１１３は、取得（特定）したブロック番号に対応する、リード領域テーブル６０内のリードフラグを値「ＯＮ」に設定する。
【０１２１】
具体的に、識別情報「１」のデータに対するリード命令を受信した場合、リード領域テーブル生成モジュール１１３は、読み出されるデータのテストデータＴｄ内の位置情報として、識別情報「１」のデータに対応するブロック番号「０」を特定する。そして、リード領域テーブル生成モジュール１１３は、ブロック番号「０」に対応する、リード領域テーブル６０内のリードフラグを値「ＯＮ」に設定する。他の領域のデータを読み出した場合についても同様である。
【０１２２】
Ｓ３５：アクセスモジュール１１２は、リード命令実行する。
【０１２３】
Ｓ３６：アクセスモジュール１１２は、リード命令の処理の復帰値（戻り値）をセットし、リード命令の呼び出し元のソフトウェアプログラム２０に制御を戻す。
【０１２４】
Ｓ３７：一方、工程Ｓ３１で取得した種別がライト命令であると判定した場合（Ｓ３２のＮｏ）、アクセスモジュール１１２は、ライト命令を実行する。
【０１２５】
Ｓ３８：アクセスモジュール１１２は、ライト命令の処理の復帰値（戻り値）をセットし、ライト命令の呼び出し元のソフトウェアプログラム２０に制御を戻す。
【０１２６】
次に、図１５〜図１７にしたがって、第２の準備工程（図１１のＳ１２）を説明する。まず、図１５にしたがって、第２の準備工程の概要を説明する。
【０１２７】
［第２の準備工程（図１１のＳ１２）の概要］
図１５は、第２の準備工程（図１１のＳ１２）の処理の概要を模式的に説明する図である。図１５において、図１２で示したものと同一のものは、同一の記号で示す。図１５は、第２の準備工程における、抜粋テストデータＴｄｘ、及び、アドレス変換テーブル７０の生成処理を示す。
【０１２８】
本実施の形態によると、リード領域テーブル６０は、領域（領域ａ１、ａ２、…、ａｋ等）に対応するブロック番号（「０」「１」…等）のリードフラグが値「ＯＮ」である旨の情報を有する。したがって、図１５に示すように、ドライバプログラム１０の抜粋テストデータ生成モジュール１１４は、退避したテストデータＴｄが有するデータのうち、領域（領域ａ１、ａ２、…、ａｋ等）のデータを有する、抜粋テストデータＴｄｘを生成する。
【０１２９】
検証処理Ｆ−２の際に読み出されるデータは、テストデータＴｄが有するデータの一部のデータである。また、検証処理Ｆ−２の際に読み出されるデータは、検証内容によっては、テストデータＴｄが有するデータのうち、極一部のデータを示す。したがって、検証の内容によっては、抜粋テストデータＴｄｘの容量を、テストデータＴｄに対して大幅に抑制することが可能になる。
【０１３０】
また、抜粋テストデータ生成モジュール１１４は、領域（領域ａ１、ａ２、…、ａｋ等）に記憶されたデータの、テストデータＴｄ内のアドレスと、抜粋テストデータＴｄｘ内のアドレスとの対応関係を有する、アドレス変換テーブル７０を生成する。
【０１３１】
［第２の準備工程（図１１のＳ１２）の詳細］
図１６は、第２の準備工程（図１１のＳ１２）の処理の詳細を説明するフローチャート図である。
【０１３２】
Ｓ４１：抜粋テストデータ生成モジュール１１４は、リード領域テーブル６０（図７）とテストデータＴｄ（図４）とに基づいて、抜粋テストデータＴｄｘ（図８）及びアドレス変換テーブル７０（図９）を生成する。工程Ｓ４１の処理の詳細は、図１７のフローチャート図で後述する。
【０１３３】
Ｓ４２：ドライバプログラム１０の制御モジュール１１１は、モード設定を、テストデータＴｄ生成処理Ｆ１に設定する。
【０１３４】
Ｓ４３：制御モジュール１１１は、テストケースを指定するテストプログラムの識別番号を設定する。例えば、テストデータＴｄはテストケースに応じて異なるため、抜粋テストデータＴｄｘについても、テストケースに応じて異なる。
【０１３５】
Ｓ４４：検証者は、対象のテストケースを指定するテストプログラムに対応する、抜粋テストデータＴｄｘ及びアドレス変換テーブル７０を、検証工程（Ｓ１３）を行う検証装置１００の補助記憶装置２０２（図６）に記憶する。
【０１３６】
次に、図１７のフローチャート図にしたがって、工程Ｓ４１に示す、抜粋テストデータＴｄｘ及びアドレス変換テーブル７０の生成処理を説明する。
【０１３７】
［（図１６のＳ４１）抜粋テストデータＴｄｘ、アドレス変換テーブル７０の生成処理］
図１７は、抜粋テストデータＴｄｘ及びアドレス変換テーブル７０の生成処理（図１６の工程Ｓ４１）を説明するフローチャート図である。
【０１３８】
Ｓ５１：抜粋テストデータ生成モジュール１１４は、変数「Ｋ」に値「１」を設定する。
【０１３９】
Ｓ５２：抜粋テストデータ生成モジュール１１４は、リード領域テーブル６０の、変数「Ｋ」のブロック番号のリードフラグの値を取得する。
【０１４０】
Ｓ５３：抜粋テストデータ生成モジュール１１４は、取得したリードフラグの値が値「ＯＮ」であるか否かを判定する。
【０１４１】
Ｓ５４：値「ＯＮ」である場合（Ｓ５３のＹｅｓ）、抜粋テストデータ生成モジュール１１４は、テストデータＴｄから、変数「Ｋ」のブロック番号の領域のデータを読み出す。
【０１４２】
Ｓ５５：抜粋テストデータ生成モジュール１１４は、テストデータＴｄから読み出したデータの、テストデータＴｄ内の先頭位置からのオフセット値を取得する。
【０１４３】
Ｓ５６：抜粋テストデータ生成モジュール１１４は、テストデータＴｄから読み出したデータを、抜粋テストデータＴｄｘに書き込む。
【０１４４】
Ｓ５７：抜粋テストデータ生成モジュール１１４は、工程Ｓ５６で抜粋テストデータＴｄｘに書き込んだデータの、抜粋テストデータＴｄｘ内の先頭位置からのオフセットを取得する。
【０１４５】
Ｓ５８：抜粋テストデータ生成モジュール１１４は、工程Ｓ５６で抜粋テストデータＴｄｘに書き込んだデータの、テストデータＴｄ内のオフセットと抜粋テストデータＴｄｘ内のオフセットとの対応情報を、アドレス変換テーブル７０に書き込む（追加する）。
【０１４６】
例えば、抜粋テストデータ生成モジュール１１４は、図９に示したように、識別情報「６」のデータについて、テストデータＴｄ内のオフセット「０ｘ２ａ０００００」と、抜粋テストデータＴｄｘ内のオフセット「０ｘ１００００００」を取得する。そして、抜粋テストデータ生成モジュール１１４は、取得したオフセットの対応情報を、アドレス変換テーブル７０に書き込む。
【０１４７】
Ｓ５９：値「ＯＮ」ではない場合（Ｓ５３のＮｏ）、または、工程Ｓ５８の後、抜粋テストデータ生成モジュール１１４は、変数「Ｋ」の値をインクリメントする。
【０１４８】
Ｓ６０：抜粋テストデータ生成モジュール１１４は、リード領域テーブル６０の終端に達したか否かを判定する。リード領域テーブル６０の終端に達した場合（Ｓ６０のＹｅｓ）、抜粋テストデータ生成モジュール１１４は処理を終了する。一方、終端に達していない場合（Ｓ６０のＮｏ）、抜粋テストデータ生成モジュール１１４は、工程Ｓ５２に遷移する。
【０１４９】
次に、図１８、図１９にしたがって、検証工程（図１１のＳ１３）を説明する。まず、図１８にしたがって、検証工程の概要を説明する。
【０１５０】
［検証工程（図１１のＳ１３）の概要］
図１８は、検証工程（図１１のＳ１３）の処理の概要を模式的に説明する図である。図１８において、図１２、図１５で示したものと同一のものは、同一の記号で示す。図１８は、検証工程（Ｓ１３）における、テストデータＴｄの生成処理Ｆ１−２、及び、ソフトウェアプログラム２０の検証処理Ｆ２−２を示す。
【０１５１】
（テストデータＴｄの生成処理Ｆ１−２）
検証装置１００は、第１の準備工程（図１１のＳ１１）と同様にして、マスタデータＭｄから読み出したデータｄｄに基づいて、テストデータＴｄを生成する。
【０１５２】
第１の準備工程（Ｓ１１）と同様にして、テストプログラム３０は、マスタデータＭｄに対するリード命令を（ｘ２１）、ソフトウェアプログラム２０を介して、ドライバプログラム１０に出力する（ｘ２２）。ただし、図１８の例に示すように、検証工程（Ｓ１３）では、ドライバプログラム１０は、受信したリード命令に応答して、マスタデータＭｄを読み出し処理を行うことなく（ｘ２３：点線）、制御をソフトウェアプログラム２０に戻す（ｘ２２）。
【０１５３】
また、テストプログラム３０は、データｄｄのテストデータＴｄに対するライト命令を（ｘ２４）、ソフトウェアプログラム２０を介して、ドライバプログラム１０に出力する（ｘ２５）。ドライバプログラム１０は、リード命令と同様にして、受信したライト命令に応答して、テストデータＴｄにデータの書き込み処理を行うことなく（ｘ２６：点線）、制御をソフトウェアプログラム２０に戻す。
【０１５４】
同様にして、ドライバプログラム１０は、マスタデータＭｄに対するリード命令、及び、テストデータＴｄに対するライト命令を行うことなく、制御を呼び出し元に戻す（ｘ３１〜ｘ３６）。
【０１５５】
これにより、ドライバプログラム１０は、マスタデータＭｄの読み出し、及び、テストデータＴｄへの書き込みを省略でき、テストデータＴｄの生成処理Ｆ１−２にかかる時間を短縮可能になる。
【０１５６】
（検証処理Ｆ２−２）
検証装置１００は、第１の準備工程（図１１のＳ１１）と同様にして、ソフトウェアプログラム２０の検証処理を行う。ただし、検証工程Ｓ１３では、検証装置１００は、補助記憶装置２０２に記憶した抜粋テストデータＴｄｘとアドレス変換テーブル７０に基づいて、ソフトウェアプログラム２０の検証処理を行う。
【０１５７】
図１１で前述したとおり、ドライバプログラム１０は、検証処理Ｆ２の際に読み出されるデータに対する、リード命令またはライト命令に応答して、命令に応じた処理を行った後、命令の完了をソフトウェアプログラム２０に通知する。一方、ドライバプログラム１０は、読み出されないデータに対するライト命令に応答して、処理を行うことなく、命令の完了をソフトウェアプログラム２０に通知する。これにより、ドライバプログラム１０は、テストデータＴｄの一部のデータのみを有する抜粋テストデータＴｄｘに基づいた、ソフトウェアプログラム２０の検証を実現する。
【０１５８】
具体的に、テストプログラム３０は、テストデータＴｄのアクセス命令（リード命令、ライト命令）を、ソフトウェアプログラム２０を介して（ｙ２１、ｙ２４、ｙ３１、ｙ３４）、ドライバプログラム１０に出力する（ｙ２２、ｙ２５、ｙ３２、ｙ３５）。検証工程Ｓ１３では、ドライバプログラム１０は、受信したアクセス命令に応答して、アクセス命令の対象のアドレスが、検証処理Ｆ２の際に読み出されるデータを示す場合に、アクセス命令に応じた処理を行う。
【０１５９】
本実施の形態において、ソフトウェアプログラム２０から受信したアクセス命令（ｙ２２、ｙ２５、ｙ３２）の対象のアドレス（テストデータＴｄ内の領域ａ１、ａ２のアドレス）は、検証処理Ｆ２の際に読み出されるデータを示す。したがって、ドライバプログラム１０は、アドレス変換テーブル７０に基づいて、アクセス命令の対象アドレス（テストデータＴｄ内の領域ａ１、ａ２のアドレス）を、抜粋テストデータＴｄｘのアドレスに変換する。そして、ドライバプログラム１０は、変換後のアドレスに対してアクセス処理を行う（ｙ２３ｘ、ｙ２６ｘ、ｙ３３ｘ）。
【０１６０】
このように、ドライバプログラム１０は、検証処理Ｆ２の際に読み出される（位置情報に対応する）データのリード命令に応答し、リード命令の対象アドレスを対応する第２の記憶部のアドレスに変換して、対象データを変換後のアドレスから読み出す。または、ドライバプログラム１０は、検証処理Ｆ２の際に読み出されるデータに対するライト命令に応答し、ライト命令の対象アドレスを対応する第２の記憶部のアドレスに変換して、対象データを変換後のアドレスに書き込む。
【０１６１】
このように、ドライバプログラム１０は、ソフトウェアプログラム２０から受信したアクセス命令の対象のアドレスを、抜粋テストデータＴｄｘのアドレスに変換する。これにより、ドライバプログラム１０は、テストデータＴｄの一部のデータのみを有する抜粋テストデータＴｄｘに基づく、ソフトウェアプログラム２０の検証を実現できる。
【０１６２】
一方、ソフトウェアプログラム２０から受信したライト命令（ｙ３５）の対象のアドレスは、テストデータＴｄ内の領域ａ３のアドレスであって、検証処理Ｆ２の際に読み出されるデータを示していない（ｙ３６）。したがって、ドライバプログラム１０は、ライト命令の受信に応答して、ライト命令の完了をソフトウェアプログラム２０に通知する。即ち、ドライバプログラム１０は、ライト命令の処理を行わずに、制御をソフトウェアプログラム２０に戻す。
【０１６３】
次に、図１９のフローチャート図にしたがって、図１８に示した、検証工程（図１１のＳ１３）の処理の詳細を説明する。
【０１６４】
［検証工程（図１１のＳ１３）の詳細］
図１９は、検証工程（図１１のＳ１３）の処理の詳細を説明するフローチャート図である。
【０１６５】
検証工程（Ｓ１３）におけるテストデータＴｄの生成処理Ｆ１−２の場合、テストプログラム３０は、アクセス命令の対象のアドレスに、マスタデータＭｄやテストデータＴｄのアドレスとは異なる、ダミーアドレスを指定する。
【０１６６】
Ｓ６１：ドライバプログラム１０のアクセスモジュール１１２は、実行対象のモード（処理）を判定する。
【０１６７】
Ｓ６２：モードがテストデータＴｄの生成処理Ｆ１を示す場合（Ｓ６１：生成処理）、アクセスモジュール１１２は、アクセス対象のアドレスが、予め指定されたダミーアドレス以上の値であるか否かを判定する。ダミーアドレス以上の値のアドレスは、当該アドレスがダミーアドレスであることを示す。
【０１６８】
Ｓ６３：アクセス対象のアドレスがダミーアドレスより小さい値である（Ｓ６２のＮｏ）、第１の準備工程（Ｓ１１）におけるテストデータＴｄの生成処理Ｆ１−１の場合を示す。したがって、アクセスモジュール１１２は、ソフトウェアプログラム２０から受信したアクセス命令に応答して、アクセス命令を実行する。
【０１６９】
一方、アクセス対象のアドレスがダミーアドレス以上の値である場合（Ｓ６２のＹｅｓ）、アクセスモジュール１１２は、マスタデータＭｄの読み出し、及び、テストデータＴｄへの書き込みを実行せずに、ソフトウェアプログラム２０に制御を戻す。即ち、アクセスモジュール１１２は、テストデータＴｄの生成処理を省略する。
【０１７０】
Ｓ６４：モードが検証処理Ｆ２を示す場合（Ｓ６１：検証処理）、アクセスモジュール１１２は、ソフトウェアプログラム２０から受信したアクセス命令が、リード命令であるかライト命令であるかを判定する。
【０１７１】
Ｓ６５：アクセス命令がライト命令である場合（Ｓ６４：ライト命令）、アクセスモジュール１１２は、ライト命令の対象のアドレスが、アドレス変換テーブル７０に含まれるか否かを判定する。即ち、アクセスモジュール１１２は、ライト命令の対象のアドレスが、検証処理Ｆ２−２の際に読み出されるデータのアドレスであるか否かを示す。
【０１７２】
ライト命令の対象のアドレスがアドレス変換テーブル７０に含まれない場合（Ｓ６５のＮｏ）、アクセスモジュール１１２は、ライト命令の処理を行うことなく、ソフトウェアプログラム２０に制御を戻す。
【０１７３】
Ｓ６６：ライト命令の対象のアドレスがアドレス変換テーブル７０に含まれる場合（Ｓ６５のＹｅｓ）、または、アクセス命令がリード命令である場合（Ｓ６４：リード命令）、アクセスモジュール１１２は、アドレスの変換処理を行う。具体的に、アクセスモジュール１１２は、アドレス変換テーブル７０を参照し、アクセス対象のアドレス（テストデータＴｄ内のアドレス）を、抜粋テストデータＴｄｘのアドレスに変換する。
【０１７４】
Ｓ６７：アクセスモジュール１１２は、変換後のアドレスにしたがって、抜粋テストデータＴｄｘ内のデータのリード命令またはライト命令を実行する。
【０１７５】
これにより、ソフトウェアプログラム２０からのアクセス命令に応答して、アクセス命令が対象とする、抜粋テストデータＴｄｘ内のデータにアクセスすることが可能になる。即ち、ドライバプログラム１０は、抜粋テストデータＴｄｘに基づいた、ソフトウェアプログラム２０の検証を実現する。
【０１７６】
［他の実施の形態］
上記の実施の形態によると、抜粋テストデータＴｄｘ、及び、アドレス変換テーブル７０を検証装置１００の補助記憶装置２０２に記憶する場合を例示した。ただし、この例に限定されるものではない。抜粋テストデータＴｄｘ、及び、アドレス変換テーブル７０は、検証装置１００と接続するストレージ装置ＳＤ２に記憶されてもよい。
【０１７７】
また、上記の実施の形態によると、検証装置１００は、検証工程（Ｓ１３）の際に、テストデータＴｄの生成処理Ｆ１−２を行う。ただし、検証装置１００は、検証工程（Ｓ１３）の際に、テストデータＴｄの生成処理Ｆ１−２自体を実行しなくてもよい。検証装置１００は、例えば、検証工程（Ｓ１３）の際に、検証処理Ｆ２−２のみを実行してもよい。
【０１７８】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１７９】
（付記１）
コンピュータに、
マスタデータに基づいて生成したテストデータを第１の記憶部に記憶し、
前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、
特定した前記位置に対応するデータを前記テストデータから抽出して第２の記憶部に記憶させ、
前記第２の記憶部に記憶されたデータに基づいて検証処理を実行する、
ことを実行させることを特徴とする制御プログラム。
【０１８０】
（付記２）
付記１において、
前記実行は、前記被検証プログラムによる前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象データを前記第２の記憶部から読み出し、または、前記書き込み命令の対象データを前記第２の記憶部に書き込み、前記命令の完了を前記被検証プログラムに通知し、前記被検証プログラムによる前記位置に対応するデータ以外のデータに対する書き込み命令に応答して前記命令の完了を前記被検証プログラムに通知する、
制御プログラム。
【０１８１】
（付記３）
付記２において、
前記実行は、前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象アドレスを、当該対象アドレスに対応する前記第２の記憶部のアドレスに変換して、前記対象データを変換後のアドレスから読み出し、または、前記書き込み命令の対象アドレスを、当該対象アドレスに対応する前記第２の記憶部のアドレスに変換して、前記対象データを変換後のアドレスに書き込み、前記命令の完了を前記被検証プログラムに通知する、
制御プログラム。
【０１８２】
（付記４）
付記１乃至３のいずれかにおいて、
前記実行は、前記被検証プログラムによる前記マスタデータの読み出し命令、及び、前記被検証プログラムによる前記テストデータに対する書き込み命令に応答して、前記命令の完了を前記被検証プログラムに通知する、
制御プログラム。
【０１８３】
（付記５）
付記１乃至４のいずれかにおいて、
前記実行は、前記第２の記憶部に記憶した前記データに基づいて前記検証処理の実行を繰り返す、
制御プログラム。
【０１８４】
（付記６）
付記１乃至５のいずれかにおいて、
前記第１の記憶部に対するアクセス速度は、前記第２の記憶部に対するアクセス速度より遅い、
制御プログラム。
【０１８５】
（付記７）
処理部が、マスタデータに基づいて生成したテストデータを第１の記憶部に記憶し、
処理部が、前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、
処理部が、特定した前記位置に対応するデータを前記テストデータから抽出して第２の記憶部に記憶させ、
処理部が、前記第２の記憶部に記憶されたデータに基づいて検証処理を実行する、
制御方法。
【０１８６】
（付記８）
付記７において、
前記実行は、前記被検証プログラムによる前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象データを前記第２の記憶部から読み出し、または、前記書き込み命令の対象データを前記第２の記憶部に書き込み、前記命令の完了を前記被検証プログラムに通知し、前記被検証プログラムによる前記位置に対応するデータ以外のデータに対する書き込み命令に応答して前記命令の完了を前記被検証プログラムに通知する、
制御方法。
【０１８７】
（付記９）
付記８において、
前記実行は、前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象アドレスを、当該対象アドレスに対応する前記第２の記憶部のアドレスに変換して、前記対象データを変換後のアドレスから読み出し、または、前記書き込み命令の対象アドレスを、当該対象アドレスに対応する前記第２の記憶部のアドレスに変換して、前記対象データを変換後のアドレスに書き込み、前記命令の完了を前記被検証プログラムに通知する、
制御方法。
【０１８８】
（付記１０）
付記７乃至９のいずれかにおいて、
前記実行は、前記被検証プログラムによる前記マスタデータの読み出し命令、及び、前記被検証プログラムによる前記テストデータに対する書き込み命令に応答して、前記命令の完了を前記被検証プログラムに通知する、
制御方法。
【０１８９】
（付記１１）
付記７乃至１０のいずれかにおいて、
前記実行は、前記第２の記憶部に記憶した前記データに基づいて前記検証処理の実行を繰り返す、
制御方法。
【０１９０】
（付記１２）
付記７乃至１１のいずれかにおいて、
前記第１の記憶部に対するアクセス速度は、前記第２の記憶部に対するアクセス速度より遅い、
制御方法。
【０１９１】
（付記１３）
第１の記憶部と、
第２の記憶部と、
マスタデータに基づいて生成したテストデータを前記第１の記憶部に記憶し、前記テストデータのうち、生成した前記テストデータを用いた処理を被検証プログラムが実行する際に読み出されたデータの位置を特定し、特定した前記位置に対応するデータを前記テストデータから抽出して前記第２の記憶部に記憶させ、前記第２の記憶部に記憶されたデータに基づいて検証処理を実行する処理部と、
を有する制御装置。
【０１９２】
（付記１４）
付記１３において、
前記処理部は、前記被検証プログラムによる前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象データを前記第２の記憶部から読み出し、または、前記書き込み命令の対象データを前記第２の記憶部に書き込み、前記命令の完了を前記被検証プログラムに通知し、前記被検証プログラムによる前記位置に対応するデータ以外のデータに対する書き込み命令に応答して前記命令の完了を前記被検証プログラムに通知する、
制御装置。
【０１９３】
（付記１５）
付記１４において、
前記処理部は、前記位置に対応するデータの読み出し命令または書き込み命令に応答し、前記読み出し命令の対象アドレスを、当該対象アドレスに対応する前記第２の記憶部のアドレスに変換して、前記対象データを変換後のアドレスから読み出し、または、前記書き込み命令の対象アドレスを、当該対象アドレスに対応する前記第２の記憶部のアドレスに変換して、前記対象データを変換後のアドレスに書き込み、前記命令の完了を前記被検証プログラムに通知する、
制御装置。
【０１９４】
（付記１６）
付記１３乃至１５のいずれかにおいて、
前記処理部は、前記被検証プログラムによる前記マスタデータの読み出し命令、及び、前記被検証プログラムによる前記テストデータに対する書き込み命令に応答して、前記命令の完了を前記被検証プログラムに通知する、
制御装置。
【０１９５】
（付記１７）
付記１３乃至１６のいずれかにおいて、
前記処理部は、前記第２の記憶部に記憶した前記データに基づいて前記検証処理の実行を繰り返す、
制御装置。
【０１９６】
（付記１８）
付記１３乃至１７のいずれかにおいて、
前記第１の記憶部に対するアクセス速度は、前記第２の記憶部に対するアクセス速度より遅い、
制御装置。
【符号の説明】
【０１９７】
１００：検証装置、ＳＤ１：ストレージ装置、ＳＤ２：ストレージ装置、１０：ドライバプログラム、２０：ソフトウェアプログラム、３０：テストプログラム、Ｍｄ：マスタデータ、Ｔｄ：テストデータ、Ｔｄｘ：抜粋テストデータ
【図１】
0006503908.tif 000002
【図２】
0006503908.tif 000003
【図３】
0006503908.tif 000004
【図４】
0006503908.tif 000005
【図５】
0006503908.tif 000006
【図６】
0006503908.tif 000007
【図７】
0006503908.tif 000008
【図８】
0006503908.tif 000009
【図９】
0006503908.tif 000010
【図１０】
0006503908.tif 000011
【図１１】
0006503908.tif 000012
【図１２】
0006503908.tif 000013
【図１３】
0006503908.tif 000014
【図１４】
0006503908.tif 000015
【図１５】
0006503908.tif 000016
【図１６】
0006503908.tif 000017
【図１７】
0006503908.tif 000018
【図１８】
0006503908.tif 000019
【図１９】
0006503908.tif 000020