(57)【特許請求の範囲】
【請求項１】
リグレッションテストの対象のプログラムを識別可能な情報を含むキー情報に基づいて本番環境の所定期間における通信情報から抽出された前記本番環境のデータベースに対する前記プログラムに係る要求と前記要求の応答である要求応答とを記憶装置から読み出し、前記要求応答に含まれる行数が前記要求により処理された行数を確認するための確認要求を所定のデータベースサーバに送信したときの応答に含まれる行数より多いか否かを判定する解析部と、
前記解析部による判定結果に基づいて、前記要求応答を満たすように行の挿入要求を作成して前記所定のデータベースサーバに送信する実行部と、
を備えることを特徴とするテストデータ作成装置。
【請求項２】
前記要求は、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文であり、
前記要求応答は、前記ＳＱＬ文の応答であるＳＱＬ文応答であり、
前記解析部は、前記ＳＱＬ文がＳＥＬＥＣＴ文である場合、前記ＳＱＬ文応答に含まれる行数が前記ＳＱＬ文を前記所定のデータベースサーバに送信したときの応答に含まれる行数より多いか否かを判定し、前記ＳＱＬ文がＤＥＬＥＴＥ文またはＵＰＤＡＴＥ文である場合、前記ＳＱＬ文応答に含まれる前記ＳＱＬ文により削除または更新された行数が、前記ＳＱＬ文にＷＨＥＲＥ句がある場合は前記ＷＨＥＲＥ句を含むＳＥＬＥＣＴ文であってＦＲＯＭ句の表名を前記ＳＱＬ文の表名としたＳＥＬＥＣＴ文を前記所定のデータベースサーバに送信したときの応答に含まれる行数より多いか否かを判定し、
前記実行部は、前記解析部による判定結果に基づいて、前記ＳＱＬ文にＷＨＥＲＥ句がある場合は前記ＷＨＥＲＥ句を満たすように列値を追加するＩＮＳＥＲＴ文を作成して前記所定のデータベースサーバに送信する、
ことを特徴とする請求項１に記載のテストデータ作成装置。
【請求項３】
前記ＳＱＬ文および前記ＳＱＬ文応答から表名、列名、および列値を抽出し、抽出した列値から列の型を判定し、抽出した表名および列名、並びに判定した型を用いて前記ＳＱＬ文に対応した表を作成するための表作成用ＳＱＬ文を作成する表作成部を備えることを特徴とする請求項２に記載のテストデータ作成装置。
【請求項４】
前記表作成部は、抽出した列値に基づいて列のサイズを設定することを特徴とする請求項３に記載のテストデータ作成装置。
【請求項５】
ユーザに係るユーザ情報に基づいて前記リグレッションテストを行うためのテスト環境のデータベースサーバに接続するデータベース接続部を備え、
前記データベース接続部は、前記テスト環境のデータベースサーバにおいて前記表作成用ＳＱＬ文により作成される表を格納可能な表領域と前記キー情報とが対応付けられた情報に基づいて、前記表作成用ＳＱＬ文により作成される表を格納する表領域を決定し、決定した表領域を前記ユーザに割り当てるように前記テスト環境のデータベースサーバに指示し、
前記表作成部は、前記テスト環境のデータベースサーバに前記表作成用ＳＱＬ文を送信する、
ことを特徴とする請求項３に記載のテストデータ作成装置。
【請求項６】
前記実行部で作成されたＩＮＳＥＲＴ文を記憶装置に記憶して管理するＳＱＬ管理部と、
前記ＳＱＬ管理部からＩＮＳＥＲＴ文を取得し、前記リグレッションテストを行うためのテスト環境のデータベースサーバに前記ＩＮＳＥＲＴ文を送信するデータベース再構築部と、
を備えることを特徴とする請求項２に記載のテストデータ作成装置。
【請求項７】
前記ＳＱＬ管理部は、前記キー情報に対応付けてＩＮＳＥＲＴ文を管理し、
前記データベース再構築部は、入力装置を介して入力されたキー情報に対応付けられたＩＮＳＥＲＴ文を前記ＳＱＬ管理部から取得する、
ことを特徴とする請求項６に記載のテストデータ作成装置。
【請求項８】
解析部が、リグレッションテストの対象のプログラムを識別可能な情報を含むキー情報に基づいて本番環境の所定期間における通信情報から抽出された前記本番環境のデータベースに対する前記プログラムに係る要求と前記要求の応答である要求応答とを記憶装置から読み出し、前記要求応答に含まれる行数が前記要求により処理された行数を確認するための確認要求を所定のデータベースサーバに送信したときの応答に含まれる行数より多いか否かを判定する第１のステップと、
実行部が、前記第１のステップでの判定結果に基づいて、前記要求応答を満たすように行の挿入要求を作成して前記所定のデータベースサーバに送信する第２のステップと、
を備えることを特徴とするテストデータ作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はテストデータ作成装置およびテストデータ作成方法に関し、例えば本番環境の通信情報を解析してテストに必要なデータを作成可能なテストデータ作成装置およびテストデータ作成方法に適用して好適なものである。
【背景技術】
【０００２】
従来、アプリケーションサーバ上で動作するアプリケーション（ＡＰ）のプログラムを変更する場合、その変更によって予想外の影響が現れていないかどうかを確認するテスト（リグレッションテスト）が、例えば、以下の手順で行われる。【０００３】
（手順１）
本番環境においてテスト対象のＡＰが動作するＨＴＴＰ（Hypertext  Transfer  Protocol）要求および当該ＨＴＴＰ要求に対するＨＴＴＰ応答をキャプチャしてテスト環境のクライアントに保存する。【０００４】
（手順２）
本番環境からキャプチャしたＨＴＴＰ要求をテスト環境のＷｅｂサーバに送信する。【０００５】
（手順３）
テスト環境のＷｅｂサーバから送信されたＨＴＴＰ応答と本番環境からキャプチャしたＨＴＴＰ応答とを比較し、一致していた場合、正常と判定する。【０００６】
ここで、変更後のＡＰが正常な場合にＷｅｂサーバから送信されたＨＴＴＰ応答と本番環境からキャプチャしたＨＴＴＰ応答とが一致するためには、例えば、本番環境でＡＰが動作する直前の時点でのＤＢ（database）内の表内容と同一の表内容がテスト環境のＤＢ内に作成されている必要がある。【０００７】
しかしながら、本番環境のＤＢ内の表内容は、業務中、刻一刻と状態が変化し、特定のタイミングの表内容を複製することは困難である。【０００８】
そこで、リグレッションテストでは、業務の終了後に、当該ＡＰがアクセスするＤＢサーバのＤＢについて複製が行われ、ＤＢの更新前および更新後のデータの状態を記録したファイル（ジャーナルファイル）がＤＢサーバから取得され、複製されたＤＢとジャーナルファイルとから、リグレッションテストを行う時点のＤＢが再現される。【０００９】
しかしながら、ジャーナルファイルに記録されているのはＤＢに行われた全ての処理に対するＤＢの更新前および更新後のデータの状態であるため、ジャーナルファイルからＡＰが動作する直前のタイミングを判断することは困難である。すなわち、どのタイミングのジャーナルファイルをもとにＤＢを戻せばよいかを判定することが難しいために再現が困難となる。仮に再現できたとしても、ＡＰの動作に必要な表内容のみの再現といったことはできず、ＡＰの動作に不要な表内容も作成されてしまうため、余分にディスクを消費してしまう。また、企業が扱うデータ量が増えてＤＢが大規模化しているが、リグレッションテストに不要なデータが再現されているので、本番環境のＤＢを再現するのに時間がかかってしまう。【００１０】
この点、テスト用ＤＢを用意することなしに、かつ本番用ＤＢのロールバックを行うことなしにテストを行う技術が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平２−１２５３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１に記載の技術では、本番環境に対して、本番用ＤＢに間接的にアクセスするための変更を行う必要があるため、本番環境に影響を与えてしまう問題がある。【００１３】
本発明は以上の点を考慮してなされたもので、リグレッションテストに必要なデータを適切に作成可能なテストデータ作成装置を提案しようとするものである。
【課題を解決するための手段】
【００１４】
かかる課題を解決するため本発明においては、リグレッションテストの対象のプログラムを識別可能な情報を含むキー情報に基づいて本番環境の所定期間における通信情報から抽出された前記本番環境のデータベースに対する前記プログラムに係る要求と前記要求の応答である要求応答とを記憶装置から読み出し、前記要求応答に含まれる行数が前記要求により処理された行数を確認するための確認要求を所定のデータベースサーバに送信したときの応答に含まれる行数より多いか否かを判定する解析部と、前記解析部による判定結果に基づいて、前記要求応答を満たすように行の挿入要求を作成して前記所定のデータベースサーバに送信する実行部と、を設けるようにした。【００１５】
また本発明においては、解析部が、リグレッションテストの対象のプログラムを識別可能な情報を含むキー情報に基づいて本番環境の所定期間における通信情報から抽出された前記本番環境のデータベースに対する前記プログラムに係る要求と前記要求の応答である要求応答とを記憶装置から読み出し、前記要求応答に含まれる行数が前記要求により処理された行数を確認するための確認要求を所定のデータベースサーバに送信したときの応答に含まれる行数より多いか否かを判定する第１のステップと、実行部が、前記第１のステップでの判定結果に基づいて、前記要求応答を満たすように行の挿入要求を作成して前記所定のデータベースサーバに送信する第２のステップと、を設けるようにした。【００１６】
上記構成によれば、確認要求を所定のデータベースサーバに送信したときの応答に含まれる行数と要求応答に含まれる行数との差数に基づいて、要求応答を満たすように行の挿入要求が作成されて所定のデータベースサーバに送信されるので、リグレッションテストに用いるデータのみのデータベースを構築することができる。
【発明の効果】
【００１７】
本発明によれば、リグレッションテストに必要なデータを適切に作成可能なテストデータ作成装置を実現することができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態による計算機システムの構成の一例を示す図である。
【図２】第１の実施の形態によるテスト用ＤＢ作成装置のハードウェア構成の一例を示す図である。
【図３】第１の実施の形態によるキー情報一覧の一例を示す図である。
【図４】第１の実施の形態によるテスト環境一覧の一例を示す図である。
【図５】第１の実施の形態による表構成要素管理テーブルの一例を示す図である。
【図６】第１の実施の形態による生成済ＳＱＬ管理テーブルの一例を示す図である。
【図７】第１の実施の形態によるテスト環境の一例を示す図である。
【図８】第１の実施の形態による計算機システムにおけるタイムチャートの一例を示す図である。
【図９】第１の実施の形態による計算機システムにおけるタイムチャートの一例を示す図である。
【図１０】第１の実施の形態によるテスト環境の新規構築に係るフローチャートの一例を示す図である。
【図１１】第１の実施の形態による表作成処理に係るフローチャートの一例を示す図である。
【図１２】第１の実施の形態による列一覧更新処理（ＳＥＬＥＣＴ）に係るフローチャートの一例を示す図である。
【図１３】第１の実施の形態によるＷＨＥＲＥ句解析処理に係るフローチャートの一例を示す図である。
【図１４】第１の実施の形態によるサイズ設定処理に係るフローチャートの一例を示す図である。
【図１５】第１の実施の形態によるサイズ更新処理に係るフローチャートの一例を示す図である。
【図１６】第１の実施の形態による列一覧更新処理（ＤＥＬＥＴＥ）に係るフローチャートの一例を示す図である。
【図１７】第１の実施の形態による列一覧更新処理（ＩＮＳＥＲＴ）に係るフローチャートの一例を示す図である。
【図１８】第１の実施の形態による列一覧更新処理（ＵＰＤＡＴＥ）に係るフローチャートの一例を示す図である。
【図１９】第１の実施の形態による行追加処理に係るフローチャートの一例を示す図である。
【図２０】第１の実施の形態によるテスト環境３００の再構築に係るフローチャートの一例を示す図である。
【図２１】第１の実施の形態によるＤＢ構築先自動選択処理に係るフローチャートの一例を示す図である。
【図２２】第１の実施の形態による入力画面の一例を示す図である。
【図２３】第１の実施の形態によるＳＱＬ実行前の本番環境、実行されたＳＱＬ文およびその応答、ＳＱＬ実行後の本番環境の一例を示す図である。
【図２４】第１の実施の形態によるＳＱＬ文およびその応答の解析例を示す図である。
【図２５】第１の実施の形態によるＳＱＬ文およびその応答の解析例、並びに表の作成例を示す図である。
【図２６】第１の実施の形態によるＳＱＬ文およびその応答の解析例、並びに行の追加例を示す図である。
【図２７】第１の実施の形態による入力画面の一例を示す図である。
【図２８】第１の実施の形態によるリグレッションテスト用ＤＢの再構築例を示す図である。
【図２９】第１の実施の形態による入力画面の一例を示す図である。
【図３０】第１の実施の形態によるリグレッションテスト用ＤＢの再構築例を示す図である。
【発明を実施するための形態】
【００１９】
以下図面について、本発明の一実施の形態を詳述する。
【００２０】
（１）第１の実施の形態
図１において、１は全体として第１の実施の形態による計算機システムを示す。計算機システム１は、本番環境１００と、テスト用ＤＢ作成装置２００と、テスト環境３００とを含んで構成される。かかる計算機システム１では、本番環境１００のＡＰが複数の機能を有し、複数の機能のうちの所定の機能を改修したときに変更を加えていない機能の動作が従来と変わらないことを確かめるリグレッションテストに用いるデータをテスト用ＤＢ作成装置２００がテスト環境３００に構築することができる。以下、詳細について説明する。
【００２１】
（１−１）本番環境１００の構成
本番環境１００では、クライアント装置１１０は、スイッチ１２０を介してＷｅｂサーバ１３０と通信可能に接続され、Ｗｅｂサーバ１３０は、スイッチ１４０を介してＡＰサーバ１５０と通信可能に接続され、ＡＰサーバ１５０は、スイッチ１６０を介してＤＢサーバ１７０と通信可能に接続される。
【００２２】
かかる本番環境１００では、Ｗｅｂサーバ１３０は、クライアント装置１１０（Ｗｅｂブラウザ）からのリクエスト（ＨＴＴＰ要求）を受け、必要に応じてＡＰサーバ１５０にリクエストを送り、ＨＴＴＰ要求に対する結果（ＨＴＴＰ応答）をクライアント装置１１０に返す。ＡＰサーバ１５０は、Ｗｅｂサーバ１３０から受け取ったリクエストをもとに、ＡＰ（在庫管理ＡＰ１５１、勤怠管理ＡＰ１５２、売上管理ＡＰ１５３など）を実行し、Ｗｅｂサーバ１３０に実行結果を返す。なお、ＡＰは、必要に応じてＤＢサーバ１７０にリクエスト（ＳＱＬ（Structured  Query  Language）文）を送り、返ってきた結果（ＳＱＬ文応答）をもとに処理を行う。ＤＢサーバ１７０は、ＡＰサーバ１５０から受け取ったリクエストをもとに、ＤＢ１７１のデータを参照したり更新したりし、ＡＰサーバ１５０に結果を返す。
【００２３】
スイッチ１２０は、ミラーリング機能を有し、テスト用ＤＢ作成装置２００からの指示に基づいてクライアント装置１１０とＷｅｂサーバ１３０と間に流れる電文（ＨＴＴＰパケット）をコピーしてキャプチャし、キャプチャした電文をテスト用ＤＢ作成装置２００に送信する。スイッチ１４０は、ミラーリング機能を有し、テスト用ＤＢ作成装置２００からの指示に基づいてＷｅｂサーバ１３０とＡＰサーバ１５０と間に流れる電文（ＡＪＰ（Apache  Jserv  Protocol）パケット）をコピーしてキャプチャし、キャプチャした電文をテスト用ＤＢ作成装置２００に送信する。スイッチ１６０は、ミラーリング機能を有し、テスト用ＤＢ作成装置２００からの指示に基づいてＡＰサーバ１５０とＤＢサーバ１７０と間に流れる電文（ＳＱＬパケット）をコピーしてキャプチャし、キャプチャした電文をテスト用ＤＢ作成装置２００に送信する。
【００２４】
（１−２）テスト用ＤＢ作成装置２００の構成
テスト用ＤＢ作成装置２００は、リグレッションテストに必要なデータを作成可能なテストデータ作成装置の一例であり、入力部２１０、電文解析部２２０、ＤＢ接続部２３０、ＳＱＬ抽出部２４０、表作成部２５０、行追加部２６０、ＳＱＬ管理部２７０、およびＤＢ再構築部２８０を備える。
【００２５】
入力部２１０は、ユーザからの各種の入力を受け付け、入力された情報を電文解析部２２０、ＤＢ接続部２３０等に送信したり、入力された情報をキー情報一覧２９１等として格納したりする。
【００２６】
電文解析部２２０は、入力部２１０からの入力（キャプチャ開始指示）に基づいて、スイッチ１２０、スイッチ１４０、およびスイッチ１６０のミラーリング機能を利用し、各装置間に流れる電文（通信情報）の取得を開始する。また、電文解析部２２０は、入力部２１０からの入力（キャプチャ終了指示）に基づいて、電文の取得を終了する。また、電文解析部２２０は、ＨＴＴＰパケットのペア（要求および応答）、当該ＨＴＴＰパケットに対応するＡＪＰパケットのペア（要求および応答）、および当該ＨＴＴＰパケットに対応するＳＱＬパケットのペア（要求および応答）を関連付けた解析済電文一覧２９２を作成して格納する。なお、解析済電文一覧２９２を作成する方法については限定されるものではなく、例えば、国際公開第２０１６／１８９６０４号を利用してもよい。
【００２７】
ＳＱＬ抽出部２４０は、キー情報一覧２９１と解析済電文一覧２９２とに基づいてキー情報に係るＳＱＬ文およびその応答（当該ＳＱＬ文の応答であるＳＱＬ文応答）を抽出する。ＳＱＬ抽出部２４０は、抽出したＳＱＬ文およびその応答を抽出済ＳＱＬ一覧２９３として格納する。
【００２８】
表作成部２５０は、抽出済ＳＱＬ一覧２９３に基づいて表を作成するためのＳＱＬ文を作成し、予め入力されたテスト環境一覧２９４に基づいてＤＢ接続部２３０により接続されたテスト環境３００のＤＢサーバ３４０のＤＢ３４１に表を作成する。
【００２９】
より詳細には、表作成部２５０は、抽出済ＳＱＬ一覧２９３を解析するＳＱＬ解析部２５１、ＳＱＬ解析部２５１の解析結果に基づいて表名を作成する表名作成部２５２、ＳＱＬ解析部２５１の解析結果に基づいて列名を作成する列名作成部２５３、表名作成部２５２により作成された表名、および列名作成部２５３により作成された列名に基づくＳＱＬ文を作成して実行するＳＱＬ実行部２５４を備える。なお、表名作成部２５２により作成された表名は、表構成要素管理テーブル２９５（表一覧）に記憶され、列名作成部２５３により作成された列名は、表構成要素管理テーブル２９５（列一覧）に記憶される。また、ＳＱＬ実行部２５４により実行されるＳＱＬ文は、ＳＱＬ管理部２７０に送信され、ＳＱＬ管理部２７０は、当該ＳＱＬ文を生成済ＳＱＬ管理テーブル２９６に格納する。
【００３０】
行追加部２６０は、抽出済ＳＱＬ一覧２９３を解析するＳＱＬ解析部２６１と、ＳＱＬ解析部２６１の解析結果に基づいて追加する行のＳＱＬ文を作成して実行するＳＱＬ実行部２６２とを備える。なお、ＳＱＬ実行部２６２により実行されるＳＱＬ文は、ＳＱＬ管理部２７０に送信され、ＳＱＬ管理部２７０は、当該ＳＱＬ文を生成済ＳＱＬ管理テーブル２９６に格納する。
【００３１】
（１−３）テスト環境３００の構成
テスト環境３００は、基本的には、本番環境１００と同様に、クライアント装置３１０、Ｗｅｂサーバ３２０、ＡＰサーバ３３０、およびＤＢサーバ３４０を含んで構成される。ただし、ＡＰサーバ３３０の在庫管理ＡＰ３３１の機能Ｄ’３３２は、ＡＰサーバ１５０の在庫管理ＡＰ１５１の機能Ｄ１５７を改修した後の機能であり、テスト環境３００では、機能Ａ１５４、機能Ｂ１５５および機能Ｃ１５６に影響がないことを確認するリグレッションテストが行われる。
【００３２】
なお、本実施の形態では、テスト環境３００（例えば、ＤＢサーバ３４０）は、複数設けられる場合があるが、個々の区別を要しない場合は、テスト環境３００（ＤＢサーバ３４０）として説明する。
【００３３】
（１−４）テスト用ＤＢ作成装置２００のハードウェア構成
図２は、テスト用ＤＢ作成装置２００のハードウェア構成の一例を示す。なお、クライアント装置１１０，３１０、Ｗｅｂサーバ１３０，３２０、ＡＰサーバ１５０，３３０、およびＤＢサーバ１７０，３４０については、テスト用ＤＢ作成装置２００のハードウェア構成と基本的に同様であるので、詳細な説明を省略する。
【００３４】
図２に示すように、テスト用ＤＢ作成装置２００は、制御装置２０１、記憶装置２０２、通信装置２０３、入力装置２０４、および出力装置２０５を含んで構成される。
【００３５】
制御装置２０１は、ＣＰＵ（Central  Processing  Unit）等であり、演算処理および制御処理を実行し、各種プログラムに従ってテスト用ＤＢ作成装置２００内の動作全般を制御する。
【００３６】
記憶装置２０２は、ＲＡＭ（Read  Access  Memory）、ＲＯＭ（Read  Only  Memory）、ＨＤＤ（Hard  Disk  Drive）などであり、各種の情報（プログラム、データ、テーブル等）を記憶する。記憶装置２０２に記憶されたプログラムを制御装置２０１が実行することにより、上述したテスト用ＤＢ作成装置２００の各種の機能（入力部２１０、電文解析部２２０、ＤＢ接続部２３０、ＳＱＬ抽出部２４０、表作成部２５０、行追加部２６０、ＳＱＬ管理部２７０、ＤＢ再構築部２８０等）が実現される。なお、テスト用ＤＢ作成装置２００の各機能の一部または全部は、回路などのハードウェアにより構成されてもよい。
【００３７】
通信装置２０３は、例えば、ネットワークに接続するための通信デバイス等で構成された通信インタフェースである。なお、通信装置２０３は、無線ＬＡＮ（Local  Area  Network）対応通信装置であってもよいし、ワイヤレスＵＳＢ（Universal  Serial  Bus）対応通信装置であってもよいし、有線による通信を行うワイヤー通信装置であってもよいし、その他の通信装置であってもよい。
【００３８】
入力装置２０４は、ポインティングデバイス、キーボード、タッチパネル、ボタン、マイク、スイッチ、レバーなどであり、ユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、制御装置２０１に出力する入力制御回路などを含んで構成される。
【００３９】
出力装置２０５は、ＣＲＴ（Cathode  Ray  Tube）ディスプレイ装置、ＬＣＤ（Liquid  Crystal  Display）装置、ＯＬＥＤ（Organic Light  Emitting  Display）装置、ランプなどの表示装置と、スピーカおよびヘッドホンなどの音声出力装置とを含んで構成される。
【００４０】
（１−５）記憶装置２０２に記憶されるデータ例
図３は、キー情報一覧２９１の一例を示す。図３に示すように、キー情報一覧２９１には、キーＮｏ．とキー情報とが対応付けられた情報が格納される。キー情報は、電文内に含まれるＡＰサーバ１５０のＡＰの機能（機能Ａ１５４、機能Ｂ１５５、機能Ｃ１５６等）を特定可能なデータを含み、例えば、「http://AA/BB/CC/xx」（xxは、ＡＰサーバ１５０のＡＰの機能を識別可能なデータ）を含む。
【００４１】
図４は、テスト環境一覧２９４の一例を示す。図４に示すように、テスト環境一覧２９４には、環境Ｎｏ．、テスト環境３００に設けられるＤＢサーバ３４０のＩＰアドレス、当該ＤＢサーバ３４０との通信に使用するポート番号、および当該ＤＢサーバ３４０のＤＢにおける表領域名が対応付けられた情報が格納される。なお、ユーザ（テスト実施者など）は、テスト用ＤＢ作成装置２００に対し、事前にテスト環境一覧２９４を記載した外部ファイルを作成し、入力装置２０４等を介して事前に入力（登録）してもよいし、テスト環境３００の構築時に入力してもよい。
【００４２】
図５は、表構成要素管理テーブル２９５の一例を示す。図５に示すように、表構成要素管理テーブル２９５には、表Ｎｏ．と表名とが対応付けられた情報を含む表一覧２９５Ａと、列Ｎｏ．と列名と列の型と列のサイズとが対応付けられた情報を含む列一覧２９５Ｂとが格納される。列一覧２９５Ｂは、表Ｎｏ．（表名）ごとに設けられ、本例では、表Ｎｏ．１に対応して列一覧２９５Ｂ１が設けられ、表Ｎｏ．２に対応して列一覧２９５Ｂ２が設けられる。
【００４３】
なお、本実施の形態では、列のサイズを指定可能な列の型（データ型）としてＣＨＡＲＡＣＴＥＲ型を例に挙げ、列のサイズが規定された列の型としてＩＮＴＥＧＥＲ型を例に挙げて説明するが、ＣＨＡＲＡＣＴＥＲ  ＶＡＲＹＩＮＧ型、ＳＭＡＬＬＩＮＴ型、ＤＡＴＥ型、ＢＯＯＬＥＡＮ型など、その他のデータ型であってもよい。
【００４４】
図６は、生成済ＳＱＬ管理テーブル２９６の一例を示す。図６に示すように、生成済ＳＱＬ管理テーブル２９６には、キーＮｏ．とキー情報とが対応付けられた情報を含むキー情報一覧２９６Ａと、ＳＱＬ  Ｎｏ．とＳＱＬ文とが対応付けられた情報を含むＳＱＬ一覧２９６Ｂと、環境Ｎｏ．の情報を含む作成済環境一覧２９６Ｃとが格納される。ＳＱＬ一覧２９６Ｂおよび作成済環境一覧２９６Ｃは、キーＮｏ．（キー情報）ごとに設けられる。本例では、キーＮｏ．１に対応してＳＱＬ一覧２９６Ｂ１および作成済環境一覧２９６Ｃ１が設けられ、キーＮｏ．２に対応してＳＱＬ一覧２９６Ｂ２および作成済環境一覧２９６Ｃ２が設けられ、キーＮｏ．３に対応してＳＱＬ一覧２９６Ｂ３および作成済環境一覧２９６Ｃ３が設けられる。
【００４５】
（１−６）テスト環境３００の新規構築の例
テスト環境３００（リグレッションテストに必要な表および行を含むリグレッションテスト用ＤＢ）を構築する際の主な流れは下記のようになる。
【００４６】
（順序１−１）
ユーザは、テスト用ＤＢ作成装置２００に対してパケットのキャプチャ開始を指示する。
【００４７】
（順序１−２）
ユーザは、本番環境１００でリグレッションテストの対象のプログラム（ここでは機能Ａ１５４、機能Ｂ１５５、および機能Ｃ１５６)に対するリクエストが全て実行された後にテスト用ＤＢ作成装置２００に対してパケットのキャプチャ終了を指示する。
【００４８】
（順序１−３）
ユーザは、リグレッションテストの対象のプログラムが動作するＨＴＴＰリクエストを特定するキー情報（キー情報一覧２９１）、ＤＢサーバ３４０（ＤＢ３４１）に接続するための情報（ＤＢ接続情報）入力し、テスト用ＤＢ作成装置２００に対してテスト環境３００の構築を指示（実施）する。
【００４９】
ここでは、ユーザは、機能Ａ１５４、機能Ｂ１５５、および機能Ｃ１５６のリグレッションテストを実施したいため、キー情報として機能Ａ１５４が動作するＨＴＴＰリクエストのキー情報「http://AA/BB/CC/aa」、機能Ｂ１５５が動作するＨＴＴＰリクエストのキー情報「http://AA/BB/CC/bb」、および機能Ｃ１５６が動作するＨＴＴＰリクエストのキー情報「http://AA/BB/CC/cc」を入力する。また、ユーザは、ＤＢ接続情報として、ＩＤ（ユーザを識別可能なユーザ情報の一例）およびパスワードを入力する。
【００５０】
（順序１−４）
テスト用ＤＢ作成装置２００は、テスト環境一覧２９４のうち、環境Ｎｏ．１の環境のＤＢサーバ３４０に対して接続要求を行う。
【００５１】
（順序１−５）
テスト用ＤＢ作成装置２００は、抽出済ＳＱＬ一覧２９３から入力されたキー情報に対応するＳＱＬ文およびその応答の組を抽出する。
【００５２】
（順序１−６）
テスト用ＤＢ作成装置２００は、ＳＱＬ文およびその応答に基づいて表を作成するためのＳＱＬ文を生成する。生成したＳＱＬ文をＤＢサーバ３４０に送信するとともに、対応するキー情報のＳＱＬ一覧２９６Ｂ（生成済ＳＱＬ管理テーブル２９６）に生成したＳＱＬ文を追加する。この際、テスト用ＤＢ作成装置２００は、対応するキー情報の作成済環境一覧２９６Ｃ（生成済ＳＱＬ管理テーブル２９６）に環境Ｎｏ．１を追加する。
【００５３】
（順序１−７）
テスト用ＤＢ作成装置２００は、ＳＱＬ文およびその応答に基づいて行を追加するためのＳＱＬ文を生成する。テスト用ＤＢ作成装置２００は、生成したＳＱＬ文をＤＢサーバ３４０に送信するとともに、対応するキー情報のＳＱＬ一覧２９６Ｂに生成したＳＱＬ文を追加する。
【００５４】
図７は、上記順序に従って、リグレッションテストに必要な表および行が構築されたときのテスト環境３００（図４に示すテスト環境一覧２９４に対応するテスト環境３００Ａおよびテスト環境３００Ｂ）の一例を示す。図７に示すように、使用可能な表領域（ＤＢサーバ３４０Ａの第１表領域３５０Ａ、第２表領域３６０Ａ、若しくは第３表領域３７０Ａ、またはＤＢサーバ３４０Ｂの第１表領域３５０Ｂ）にリグレッションテストに必要な表内容（表Ａ３５１Ａ、表Ｂ３５２Ａ、表Ｃ３５３Ａ）が抽出済ＳＱＬ一覧２９３に基づいて作成される。なお、詳細は後述するが、本実施の形態では、生成済ＳＱＬ管理テーブル２９６に基づいて使用可能な表領域にリグレッションテストに必要な表内容を再構築することもできる。
【００５５】
（１−７）テスト環境３００の新規構築の流れ
図８は、計算機システム１におけるタイムチャートの一例を示す。まず、入力装置２０４が各装置間の電文（パケット）のキャプチャを開始するためのユーザ４００による操作を受け付けると（ＳＱ１１）、入力部２１０は、キャプチャ開始指示を生成し、生成したキャプチャ開始指示を電文解析部２２０に送信する（ＳＱ１２）。電文解析部２２０は、キャプチャ開始指示を受信すると、各装置間の電文のコピーを取得する（ＳＱ１３）。
【００５６】
その後、入力装置２０４が各装置間の電文のキャプチャを終了するためのユーザ４００による操作を受け付けると（ＳＱ１４）、入力部２１０は、キャプチャ終了指示を生成し、生成したキャプチャ終了指示を電文解析部２２０に送信する（ＳＱ１５）。なお、電文解析部２２０は、キャプチャ終了指示を受信すると、各装置間の電文のコピーの取得を終了する。
【００５７】
また、入力装置２０４がキー情報およびＤＢ接続情報を入力するためのユーザ４００による操作を受け付けると（ＳＱ１６）、入力部２１０は、入力されたキー情報をＳＱＬ管理部２７０に送信し（ＳＱ１７）、入力されたＤＢ接続情報をＤＢ接続部２３０に送信する（ＳＱ１８）。
【００５８】
ＤＢ接続部２３０は、ＤＢ接続情報およびテスト環境一覧２９４の環境Ｎｏ．１の情報を用いてテスト環境３００のＤＢサーバ３４０と接続すると（ＳＱ１９）、接続をした旨の通知（ＤＢ接続済通知）を表作成部２５０に送信する（ＳＱ２０）。
【００５９】
また、入力部２１０は、入力されたキー情報をＳＱＬ抽出部２４０に送信する（ＳＱ２１）。ＳＱＬ抽出部２４０は、キー情報を受信すると、電文解析部２２０により所定期間（キャプチャ開始指示からキャプチャ終了指示までの期間）の本番環境１００の通信情報から抽出されて解析された解析済電文一覧２９２を記憶装置２０２から読み出し（ＳＱ２２）、キー情報一覧２９１と解析済電文一覧２９２とに基づいて抽出済ＳＱＬ一覧２９３を作成し、記憶装置２０２に格納すると共に、表作成部２５０に送信する（ＳＱ２３）。
【００６０】
表作成部２５０は、抽出済ＳＱＬ一覧２９３を受信すると、抽出済ＳＱＬ一覧２９３を解析し、表作成用ＳＱＬ文（ＣＲＥＡＴＥ  ＴＡＢＬＥ文：ＤＢに表を作成するための作成要求の一例）を作成し、ＳＱＬ管理部２７０に送信し（ＳＱ２４）、テスト環境３００のＤＢサーバ３４０に送信する（ＳＱ２５）。なお、ＳＱＬ管理部２７０は、表作成用ＳＱＬ文を受信すると、生成済ＳＱＬ管理テーブル２９６に格納する。また、テスト環境３００のＤＢサーバ３４０は、表作成用ＳＱＬ文に従ってＤＢ３４１に表を作成する。そして、表作成部２５０は、表の作成が完了した旨の応答をＤＢサーバ３４０から受信すると、表の作成を完了した旨の通知（表作成済通知）を行追加部２６０に送信する（ＳＱ２６）。
【００６１】
また、ＳＱＬ抽出部２４０は、作成した抽出済ＳＱＬ一覧２９３を行追加部２６０に送信する（ＳＱ２７）。行追加部２６０は、抽出済ＳＱＬ一覧２９３を受信すると、行追加用ＳＱＬ文（ＩＮＳＥＲＴ文：ＤＢに行を挿入するための挿入要求の一例）を作成し、ＳＱＬ管理部２７０に送信し（ＳＱ２８）、テスト環境３００のＤＢサーバ３４０に送信する（ＳＱ２９）。なお、ＳＱＬ管理部２７０は、行追加用ＳＱＬ文を受信すると、生成済ＳＱＬ管理テーブル２９６に格納する。また、テスト環境３００のＤＢサーバ３４０は、行追加用ＳＱＬ文に従って、先に作成した表に行を追加する。
【００６２】
（１−８）テスト環境３００の再構築の流れ
図９は、計算機システム１におけるタイムチャートの一例を示す。テスト環境３００の再構築をする際、入力装置２０４がキー情報およびＤＢ接続情報を入力するためのユーザ４００による操作を受け付けると（ＳＱ３１）、入力部２１０は、入力されたキー情報をＳＱＬ管理部２７０に送信し（ＳＱ３２）、入力されたＤＢ接続情報をＤＢ接続部２３０に送信する（ＳＱ３３）。
【００６３】
ＳＱＬ管理部２７０は、キー情報を受信すると、キー情報ごとにＳＱＬ一覧２９６Ｂおよび作成済環境一覧２９６Ｃを読み出し、キー情報に対応付けられた環境Ｎｏ．をＤＢ接続部２３０に送信する（ＳＱ３４）。
【００６４】
ＤＢ接続部２３０は、ＤＢ接続情報と環境Ｎｏ.とに基づいてテスト環境（ここではテスト環境３００、ＤＢサーバ３４０として説明する。）を特定し、テスト環境３００のＤＢサーバ３４０と接続すると（ＳＱ３５）、接続をした旨の通知（ＤＢ接続済通知）をＳＱＬ管理部２７０に送信する（ＳＱ３６）。
【００６５】
ＳＱＬ管理部２７０は、ＤＢ接続済通知を受信すると、キー情報に対応付けられたＳＱＬ一覧２９６ＢをＤＢ再構築部２８０に送信する（ＳＱ３７）。ＤＢ再構築部２８０は、ＳＱＬ一覧２９６Ｂを受信すると、ＳＱＬ一覧２９６ＢのＳＱＬ文をテスト環境３００のＤＢサーバ３４０に送信する（ＳＱ３８）。テスト環境３００のＤＢサーバ３４０は、ＳＱＬ文に従って、表を作成し、作成した表に行を追加する。
【００６６】
（１−９）テスト用ＤＢ作成装置２００における処理
（テスト環境３００の新規構築に係る処理）
図１０は、テスト用ＤＢ作成装置２００が実行するテスト環境３００の新規構築に係る処理（フローチャート）の一例を示す。
【００６７】
本番環境１００における各装置間の電文（パケット）のキャプチャを開始するためのユーザ４００による操作を入力装置２０４が受け付けると、入力部２１０は、キャプチャ開始指示を生成し、生成したキャプチャ開始指示を電文解析部２２０に送信する（ステップＳ１１）。
【００６８】
続いて、電文解析部２２０は、本番環境１００における各装置間の電文のコピーを取得し（ステップＳ１２）、電文の関連付けを行い、解析済電文一覧２９２として格納する（ステップＳ１３）。続いて、電文解析部２２０は、キャプチャ終了指示を受信したか否かを判定する（ステップＳ１４）。電文解析部２２０は、受信したと判定した場合、ステップＳ１５に処理を移し、受信していないと判定した場合、ステップＳ１２に処理を移す。
【００６９】
ステップＳ１５では、キー情報およびＤＢ接続情報を入力するためのユーザ４００による操作を入力装置２０４が受け付けると、入力部２１０は、入力されたキー情報をＳＱＬ管理部２７０に送信し、入力されたＤＢ接続情報をＤＢ接続部２３０に送信する。
【００７０】
続いて、ＳＱＬ管理部２７０は、ＳＱＬ文の保存が有効であるか否か（ＳＱＬ保存機能を使用するか否か）を判定する（ステップＳ１６）。なお、ＳＱＬ保存機能を使用するか否かについては、ステップＳ１５などで事前にユーザにより入力され、ＳＱＬ保存機能が使用された場合、テスト環境３００の再構築が可能となる。ＳＱＬ管理部２７０は、有効であると判定した場合、ステップＳ１７に処理を移し、有効でないと判定した場合、ステップＳ１８に処理を移す。ステップＳ１７では、入力部２１０は、キー情報をキー情報一覧２９１に追加し、ステップＳ１８に処理を移す。
【００７１】
ステップＳ１８では、ＤＢ接続部２３０は、記憶装置２０２からテスト環境一覧２９４を読み込み、ステップＳ１９に処理を移す。
【００７２】
ステップＳ１９では、ＳＱＬ管理部２７０は、テスト環境３００の自動選択が有効であるか否か（環境自動選択機能を使用するか否か）を判定する。なお、環境自動選択機能を使用するか否かについては、ステップＳ１５などで事前にユーザにより入力され、環境自動選択機能が使用された場合、テスト環境３００において適切な表領域に表を作成可能となる。ＳＱＬ管理部２７０は、有効であると判定した場合、ステップＳ２０に処理を移し、有効でないと判定した場合、ステップＳ２１に処理を移す。
【００７３】
ステップＳ２０では、ＳＱＬ管理部２７０は、キー情報一覧２９１の各キー情報に対応した作成済環境一覧２９６Ｃの環境Ｎｏ．に「１」を追加（設定）する。
【００７４】
ステップＳ２１では、ＤＢ接続部２３０は、ＤＢ接続情報に基づいて、テスト環境一覧２９４の環境Ｎｏ．１のＤＢサーバ（テスト環境３００の新規構築に係る処理ではＤＢサーバ３４０として説明する。）に接続要求する。
【００７５】
続いて、ＤＢ接続部２３０は、テスト環境一覧２９４の環境Ｎｏ．１の表領域をＤＢ接続情報で指定されたユーザに割り当てる旨の指示（割当指示：ＡＬＴＥＲ  ＵＳＥＲ文など）をＤＢサーバ３４０に送信し（ステップＳ２２）、ステップＳ２３に処理を移す。なお、ＤＢサーバ３４０は、割当指示を受信すると、指定されたユーザに表領域を割り当てる。
【００７６】
続いて、ＳＱＬ抽出部２４０は、キー情報一覧２９１と解析済電文一覧２９２とに基づいてＳＱＬ文およびその応答を抽出し、抽出済ＳＱＬ一覧２９３に格納し（ステップＳ２３）、ステップＳ２４に処理を移す。
【００７７】
なお、キー情報に係るＳＱＬ文およびその応答を抽出する方法については限定されるものではない。例えば、ＳＱＬ抽出部２４０は、解析済電文一覧２９２から関連付けられた電文を読み込み、読み込んだ電文についてＨＴＴＰパケットを参照し、入力されたキー情報が含まれる場合のみ、ＨＴＴＰパケットに関連付けられたＳＱＬパケット（ＳＱＬ文およびその応答）を抽出する処理を解析済の全電文に対して実施する。
【００７８】
続いて、表作成部２５０は、表作成処理を行い（ステップＳ２４）、ステップＳ２５に処理を移す。なお、表作成処理では、割り当てられた表領域に表が作成される。
【００７９】
続いて、行追加部２６０は、行追加処理を行い（ステップＳ２５）、テスト環境３００の新規構築に係る処理を終了する。なお、行追加処理では、ステップＳ２４で作成された表に行が追加される。
【００８０】
（表作成処理）
図１１は、表作成部２５０が実行する表作成処理に係るフローチャートの一例を示す。
【００８１】
ＳＱＬ解析部２５１は、抽出済ＳＱＬ一覧２９３から１組の電文（ＳＱＬ文およびその応答）を読み出し（ステップＳ３１）、ステップＳ３２に処理を移す。
【００８２】
ステップＳ３２では、ＳＱＬ解析部２５１は、読み出した電文を解析し、所定のＳＱＬ文（ＳＥＬＥＣＴ文、ＵＰＤＡＴＥ文、ＩＮＳＥＲＴ文、およびＤＥＬＥＴＥ文のうちの何れか）であるか否かを判定する。ＳＱＬ解析部２５１は、所定のＳＱＬ文であると判定した場合、ステップＳ３３に処理を移し、所定のＳＱＬ文でないと判定した場合、ステップＳ４０に処理を移す。
【００８３】
ステップＳ３３では、ＳＱＬ解析部２５１は、ＳＱＬ文に含まれる表名が表構成要素管理テーブル２９５の表一覧２９５Ａに存在するか否かを判定する。ＳＱＬ解析部２５１は、存在すると判定した場合、ステップＳ３５に処理を移し、存在しないと判定した場合、ステップＳ３４に処理を移す。
【００８４】
ステップＳ３４では、表名作成部２５２は、表構成要素管理テーブル２９５の表一覧２９５Ａに表名を追加し、ステップＳ３５に処理を移す。
【００８５】
ステップＳ３５では、ＳＱＬ解析部２５１は、電文に含まれるＳＱＬ文の種別に基づいて処理を振り分ける。ＳＱＬ解析部２５１は、電文に含まれるＳＱＬ文の種別が、ＳＥＬＥＣＴ文である場合はステップＳ３６に処理を移し、ＤＥＬＥＴＥ文である場合はステップＳ３７に処理を移し、ＩＮＳＥＲＴ文である場合はステップＳ３８に処理を移し、ＵＰＤＡＴＥ文である場合はステップＳ３９に処理を移す。
【００８６】
ステップＳ３６では、列一覧更新処理（ＳＥＬＥＣＴ）が行われ、ステップＳ４０に処理が移される。なお、詳細については後述するが、列一覧更新処理（ＳＥＬＥＣＴ）では、電文に含まれるＳＥＬＥＣＴ文に基づいて表構成要素管理テーブル２９５の列一覧２９５Ｂが更新され得る。
【００８７】
ステップＳ３７では、列一覧更新処理（ＤＥＬＥＴＥ）が行われ、ステップＳ４０に処理が移される。なお、詳細については後述するが、列一覧更新処理（ＤＥＬＥＴＥ）では、電文に含まれるＤＥＬＥＴＥ文に基づいて表構成要素管理テーブル２９５の列一覧２９５Ｂが更新され得る。
【００８８】
ステップＳ３８では、列一覧更新処理（ＩＮＳＥＲＴ）が行われ、ステップＳ４０に処理が移される。なお、詳細については後述するが、列一覧更新処理（ＩＮＳＥＲＴ）では、電文に含まれるＩＮＳＥＲＴ文に基づいて表構成要素管理テーブル２９５の列一覧２９５Ｂが更新され得る。
【００８９】
ステップＳ３９では、列一覧更新処理（ＵＰＤＡＴＥ）が行われ、ステップＳ４０に処理が移される。なお、詳細については後述するが、列一覧更新処理（ＵＰＤＡＴＥ）では、電文に含まれるＵＰＤＡＴＥ文に基づいて表構成要素管理テーブル２９５の列一覧２９５Ｂが更新され得る。
【００９０】
ステップＳ４０では、ＳＱＬ解析部２５１は、処理対象が抽出済ＳＱＬ一覧２９３の末尾に到達したか否かを判定する。ＳＱＬ解析部２５１は、到達したと判定した場合、ステップＳ４１に処理を移し、到達していないと判定した場合、ステップＳ３１に処理を移す。
【００９１】
ステップＳ４１では、ＳＱＬ実行部２５４は、表構成要素管理テーブル２９５の表一覧２９５Ａおよび列一覧２９５Ｂに基づいて表作成用ＳＱＬ文（ＣＲＥＡＴＥ  ＴＡＢＬＥ文）を作成し、ステップＳ４２に処理を移す。
【００９２】
ステップＳ４２では、ＳＱＬ実行部２５４は、ＳＱＬ文の保存が有効であるか否か（ＳＱＬ保存機能を使用するか否か）を判定する。ＳＱＬ実行部２５４は、有効であると判定した場合、ステップＳ４３に処理を移し、有効でないと判定した場合、ステップＳ４４に処理を移す。
【００９３】
ステップＳ４３では、ＳＱＬ実行部２５４は、表作成用ＳＱＬ文をＳＱＬ管理部２７０に送信（保存指示）し、ステップＳ４４に処理を移す。なお、ＳＱＬ管理部２７０は、表作成用ＳＱＬ文を受信すると、当該表作成用ＳＱＬ文を生成済ＳＱＬ管理テーブル２９６に追加（保存）する。
【００９４】
ステップＳ４４では、ＳＱＬ実行部２５４は、ＤＢサーバ３４０に表作成用ＳＱＬ文を送信し、表作成処理を終了する。なお、ＤＢサーバ３４０は、受信した表作成用ＳＱＬ文に従って表を作成する。
【００９５】
上述の表作成処理によれば、ＳＱＬ文から自動でリグレッションテストに必要な表を作成することができるので、表の定義などの入力をする必要がなく、リグレッションテスト用ＤＢを構築する時間を短縮できる。また、手入力による誤りが無くなり、より確実にリグレッションテスト用ＤＢを構築できる。
【００９６】
（列一覧更新処理（ＳＥＬＥＣＴ））
図１２は、表作成部２５０が実行する列一覧更新処理（ＳＥＬＥＣＴ）に係るフローチャートの一例を示す。
【００９７】
ＳＱＬ解析部２５１は、ステップＳ３１で読み出したＳＱＬ文（要求）にＷＨＥＲＥ句が含まれているか否かを判定する（ステップＳ５１）。ＳＱＬ解析部２５１は、含まれていると判定した場合、ステップＳ５２に処理を移し、含まれていないと判定した場合、ステップＳ５３に処理を移す。
【００９８】
ステップＳ５２では、ＷＨＥＲＥ句解析処理が行われ、ステップＳ５３に処理が移される。なお、詳細については後述するが、ＷＨＥＲＥ句解析処理では、ＳＱＬ文のＷＨＥＲＥ句に基づいて表構成要素管理テーブル２９５の列一覧２９５Ｂが更新され得る。
【００９９】
ステップＳ５３では、ＳＱＬ解析部２５１は、ＳＱＬ文の応答に含まれる列名および列値一覧を１組取り出し、ステップＳ５４に処理を移す。
【０１００】
ステップＳ５４では、ＳＱＬ解析部２５１は、読み出した列名がＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂに既に登録されているか否かを判定する。ＳＱＬ解析部２５１は、登録されていると判定した場合、ステップＳ５８に処理を移し、登録されていないと判定した場合、ステップＳ５５に処理を移す。
【０１０１】
ステップＳ５５では、列名作成部２５３は、読み出した列名をＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂに追加し、ステップＳ５６に処理を移す。
【０１０２】
ステップＳ５６では、列名作成部２５３は、読み出した列値から列の型を特定（判定）して列一覧２９５Ｂの型に設定し、ステップＳ５７に処理を移す。例えば、列名作成部２５３は、読み出した列値が整数値である場合、ＩＮＴＥＧＥＲ型であると判定し、読み出した列値が「‘」で囲まれた数字、文字などである場合、ＣＨＡＲＡＣＴＥＲ型であると判定する。
【０１０３】
ステップＳ５７では、サイズ設定処理が行われ、ステップＳ６０に処理が移される。なお、詳細については後述するが、サイズ設定処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのサイズが設定され得る。
【０１０４】
ステップＳ５８では、ＳＱＬ解析部２５１は、列一覧２９５Ｂのサイズの更新が有効であるか否かを判定する。ＳＱＬ解析部２５１は、有効であると判定した場合、ステップＳ５９に処理を移し、有効でないと判定した場合、ステップＳ６０に処理を移す。なお、本実施の形態では、列一覧２９５Ｂのサイズの更新が有効とするか否かを判定可能な情報が管理者などにより予め設定されている。
【０１０５】
ステップＳ５９では、サイズ更新処理が行われ、ステップＳ６０に処理が移される。なお、詳細については後述するが、サイズ更新処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのサイズが更新され得る。
【０１０６】
ステップＳ６０では、ＳＱＬ解析部２５１は、処理対象の列（列名および列値一覧）がＳＱＬ文の応答の最終列に到達したか否かを判定する。ＳＱＬ解析部２５１は、到達したと判定した場合、列一覧更新処理（ＳＥＬＥＣＴ）を終了し、到達していないと判定した場合、ステップＳ５３に処理を移す。
【０１０７】
（ＷＨＥＲＥ句解析処理）
図１３は、表作成部２５０が実行するＷＨＥＲＥ句解析処理に係るフローチャートの一例を示す。
【０１０８】
ＳＱＬ解析部２５１は、ＳＱＬ文のＷＨＥＲＥ句から列名および列値の組を１つ取り出し（ステップＳ６１）、ステップＳ６２に処理を移す。
【０１０９】
ステップＳ６２では、ＳＱＬ解析部２５１は、読み出した列名がＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂに既に登録されているか否かを判定する。ＳＱＬ解析部２５１は、登録されていると判定した場合、ステップＳ６６に処理を移し、登録されていないと判定した場合、ステップＳ６３に処理を移す。
【０１１０】
ステップＳ６３では、列名作成部２５３は、読み出した列名をＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂに追加し、ステップＳ６４に処理を移す。
【０１１１】
ステップＳ６４では、列名作成部２５３は、ステップＳ５６と同様に、読み出した列値から列の型を特定（判定）して列一覧２９５Ｂの型に設定し、ステップＳ６５に処理を移す。
【０１１２】
ステップＳ６５では、サイズ設定処理が行われ、ステップＳ６８に処理が移される。なお、詳細については後述するが、サイズ設定処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのサイズが設定され得る。
【０１１３】
ステップＳ６６では、ＳＱＬ解析部２５１は、ステップＳ５８と同様に、列一覧２９５Ｂのサイズの更新が有効であるか否かを判定する。ＳＱＬ解析部２５１は、有効であると判定した場合、ステップＳ６７に処理を移し、有効でないと判定した場合、ステップＳ６８に処理を移す。
【０１１４】
ステップＳ６７では、サイズ更新処理が行われ、ステップＳ６８に処理が移される。なお、詳細については後述するが、サイズ更新処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのサイズが更新され得る。
【０１１５】
ステップＳ６８では、ＳＱＬ解析部２５１は、処理対象の組（列名および列値）がＷＨＥＲＥ句の末尾に到達したか否かを判定する。ＳＱＬ解析部２５１は、到達したと判定した場合、ＷＨＥＲＥ句解析処理を終了し、到達していないと判定した場合、ステップＳ６１に処理を移す。
【０１１６】
（サイズ設定処理）
図１４は、表作成部２５０が実行するサイズ設定処理に係るフローチャートの一例を示す。
【０１１７】
ＳＱＬ解析部２５１は、列値から判定した型が列のサイズを指定可能な列の型（本例ではＣＨＡＲＡＣＴＥＲ型）であるか否かを判定する（ステップＳ７１）。ＳＱＬ解析部２５１は、列値から判定した型がＣＨＡＲＡＣＴＥＲ型であると判定した場合、ステップＳ７２に処理を移し、列値から判定した型がＣＨＡＲＡＣＴＥＲ型でないと判定した場合、サイズ設定処理を終了する。
【０１１８】
ステップＳ７２では、ＳＱＬ解析部２５１は、ステップＳ５８と同様に、列一覧２９５Ｂのサイズの更新が有効であるか否かを判定する。ＳＱＬ解析部２５１は、有効であると判定した場合、ステップＳ７３に処理を移し、有効でないと判定した場合、ステップＳ７６に処理を移す。
【０１１９】
ステップＳ７３では、ＳＱＬ解析部２５１は、サイズ設定処理の呼び出し元が列一覧更新処理（ＳＥＬＥＣＴ）であるか否かを判定する。ＳＱＬ解析部２５１は、サイズ設定処理の呼び出し元が列一覧更新処理（ＳＥＬＥＣＴ）であると判定した場合、ステップＳ７４に処理を移し、サイズ設定処理の呼び出し元が列一覧更新処理（ＳＥＬＥＣＴ）でないと判定した場合、ステップＳ７５に処理を移す。
【０１２０】
ステップＳ７４では、列名作成部２５３は、列値一覧の中で最大のサイズを処理対象の列一覧２９５Ｂの列のサイズに設定し、サイズ設定処理を終了する。
【０１２１】
ステップＳ７５では、列名作成部２５３は、列値のサイズを処理対象の列一覧２９５Ｂの列のサイズに設定し、サイズ設定処理を終了する。
【０１２２】
ステップＳ７６では、列名作成部２５３は、ＣＨＡＲＡＣＴＥＲ型の最大のサイズを処理対象の列一覧２９５Ｂの列のサイズに設定し、サイズ設定処理を終了する。
【０１２３】
（サイズ更新処理）
図１５は、表作成部２５０が実行するサイズ更新処理に係るフローチャートの一例を示す。
【０１２４】
ＳＱＬ解析部２５１は、列値から判定した型が列のサイズを指定可能な列の型（本例ではＣＨＡＲＡＣＴＥＲ型）であるか否かを判定する（ステップＳ８１）。ＳＱＬ解析部２５１は、列値から判定した型がＣＨＡＲＡＣＴＥＲ型であると判定した場合、ステップＳ８２に処理を移し、列値から判定した型がＣＨＡＲＡＣＴＥＲ型でないと判定した場合、サイズ更新処理を終了する。
【０１２５】
ステップＳ８２では、ＳＱＬ解析部２５１は、サイズ更新処理の呼び出し元が列一覧更新処理（ＳＥＬＥＣＴ）であるか否かを判定する。ＳＱＬ解析部２５１は、サイズ更新処理の呼び出し元が列一覧更新処理（ＳＥＬＥＣＴ）であると判定した場合、ステップＳ８３に処理を移し、サイズ更新処理の呼び出し元が列一覧更新処理（ＳＥＬＥＣＴ）でないと判定した場合、ステップＳ８４に処理を移す。
【０１２６】
ステップＳ８３では、ＳＱＬ解析部２５１は、列値一覧の中で最大のサイズを変数ｓに格納し、ステップＳ８５に処理を移す。
【０１２７】
ステップＳ８４では、ＳＱＬ解析部２５１は、列値のサイズを変数ｓに格納し、ステップＳ８５に処理を移す。
【０１２８】
ステップＳ８５では、ＳＱＬ解析部２５１は、変数ｓの値が処理対象の列一覧２９５Ｂの列のサイズよりも大きいか否かを判定する。ＳＱＬ解析部２５１は、変数ｓの値が処理対象の列一覧２９５Ｂの列のサイズよりも大きいと判定した場合、ステップＳ８６に処理を移し、変数ｓの値が処理対象の列一覧２９５Ｂの列のサイズ以下であると判定した場合、サイズ変更処理を終了する。
【０１２９】
ステップＳ８６では、列名作成部２５３は、変数ｓの値で処理対象の列一覧２９５Ｂの列のサイズを更新し、サイズ変更処理を終了する。
【０１３０】
上述したサイズ変更処理によれば、表作成時に列のサイズをリグレッションテストに影響がない範囲で必要最小限とすることが可能となる。
【０１３１】
（列一覧更新処理（ＤＥＬＥＴＥ））
図１６は、表作成部２５０が実行する列一覧更新処理（ＤＥＬＥＴＥ）に係るフローチャートの一例を示す。
【０１３２】
ステップＳ９１では、ＷＨＥＲＥ句解析処理が行われ、列一覧更新処理（ＤＥＬＥＴＥ）を終了する。なお、ＷＨＥＲＥ句解析処理では、ＳＱＬ文のＷＨＥＲＥ句に基づいて表構成要素管理テーブル２９５の列一覧２９５Ｂが更新され得る。
【０１３３】
（列一覧更新処理（ＩＮＳＥＲＴ））
図１７は、表作成部２５０が実行する列一覧更新処理（ＩＮＳＥＲＴ）に係るフローチャートの一例を示す。
【０１３４】
ＳＱＬ解析部２５１は、変数ｉに「１」を代入し（ステップＳ１０１）、ステップＳ１０２に処理を移す。
【０１３５】
ステップＳ１０２では、ＳＱＬ解析部２５１は、ＳＱＬ文のＩＮＴＯ句に列名が含まれているか否かを判定する。ＳＱＬ解析部２５１は、含まれていると判定した場合、ステップＳ１０３に処理を移し、含まれていないと判定した場合、ステップＳ１０４に処理を移す。
【０１３６】
ステップＳ１０３では、ＳＱＬ解析部２５１は、ＩＮＴＯ句のｉ番目の列名を変数ｒｏｗｎａｍｅに代入し、ステップＳ１０５に処理を移す。
【０１３７】
ステップＳ１０４では、ＳＱＬ解析部２５１は、デフォルトの値を変数ｒｏｗｎａｍｅに代入し、ステップＳ１０５に処理を移す。デフォルトの値としては、適宜の値を用いることができるが、本実施の形態では、「ＲＯＷ＋変数ｉの値」（ＲＯＷ１、ＲＯＷ２等）を用いる場合を例に挙げて説明する。
【０１３８】
ステップＳ１０５では、ＳＱＬ解析部２５１は、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのｉ番目の列の列名が既に登録されているか否かを判定する。ＳＱＬ解析部２５１は、登録されていると判定した場合、ステップＳ１０９に処理を移し、登録されていないと判定した場合、ステップＳ１０６に処理を移す。
【０１３９】
ステップＳ１０６では、列名作成部２５３は、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのｉ番目の列の列名にｒｏｗｎａｍｅを追加（設定）し、ステップＳ１０７に処理を移す。
【０１４０】
ステップＳ１０７では、列名作成部２５３は、ＶＡＬＵＥＳ句のｉ番目の列値から型を特定（判定）してＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのｉ番目の列の型に設定し、ステップＳ１０７に処理を移す。なお、型を特定（判定）する方法については、ステップＳ５６と同様である。
【０１４１】
ステップＳ１０８では、サイズ設定処理が行われ、ステップＳ１１１に処理が移される。なお、サイズ設定処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのｉ番目の列のサイズが設定され得る。
【０１４２】
ステップＳ１０９では、ＳＱＬ解析部２５１は、ステップＳ５８と同様に、列一覧２９５Ｂのサイズの更新が有効であるか否かを判定する。ＳＱＬ解析部２５１は、有効であると判定した場合、ステップＳ１１０に処理を移し、有効でないと判定した場合、ステップＳ１１１に処理を移す。
【０１４３】
ステップＳ１１０では、サイズ更新処理が行われ、ステップＳ１１１に処理が移される。なお、サイズ更新処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのｉ番目の列のサイズが更新され得る。
【０１４４】
ステップＳ１１１では、ＳＱＬ解析部２５１は、変数ｉに「１」を加算し、ステップＳ１１２に処理を移す。
【０１４５】
ステップＳ１１２では、ＳＱＬ解析部２５１は、変数ｉの値がＶＡＬＵＥＳ句の列値の個数を超えたか否かを判定する。ＳＱＬ解析部２５１は、超えたと判定した場合、列一覧更新処理（ＩＮＳＥＲＴ）を終了し、超えていないと判定した場合、ステップＳ１０２に処理を移す。
【０１４６】
（列一覧更新処理（ＵＰＤＡＴＥ））
図１８は、表作成部２５０が実行する列一覧更新処理（ＵＰＤＡＴＥ）に係るフローチャートの一例を示す。
【０１４７】
ＳＱＬ解析部２５１は、ステップＳ３１で読み出したＳＱＬ文のＳＥＴ句から列名および列値の組を１つ取り出し（ステップＳ１２１）、ステップＳ１２２に処理を移す。
【０１４８】
ステップＳ１２２では、ＳＱＬ解析部２５１は、読み出した列名がＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂに既に登録されているか否かを判定する。ＳＱＬ解析部２５１は、登録されていると判定した場合、ステップＳ１２６に処理を移し、登録されていないと判定した場合、ステップＳ１２３に処理を移す。
【０１４９】
ステップＳ１２３では、列名作成部２５３は、読み出した列名をＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂに追加し、ステップＳ１２４に処理を移す。
【０１５０】
ステップＳ１２４では、列名作成部２５３は、ステップＳ５６と同様に、読み出した列値から列の型を特定（判定）してＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂの型に設定し、ステップＳ１２５に処理を移す。
【０１５１】
ステップＳ１２５では、サイズ設定処理が行われ、ステップＳ１２８に処理が移される。なお、サイズ設定処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのサイズが設定され得る。
【０１５２】
ステップＳ１２６では、ＳＱＬ解析部２５１は、ステップＳ５８と同様に、列一覧２９５Ｂのサイズの更新が有効であるか否かを判定する。ＳＱＬ解析部２５１は、有効であると判定した場合、ステップＳ１２７に処理を移し、有効でないと判定した場合、ステップＳ１２８に処理を移す。
【０１５３】
ステップＳ１２７では、サイズ更新処理が行われ、ステップＳ１２８に処理が移される。なお、サイズ更新処理では、ＳＱＬ文に含まれる表名に対応する列一覧２９５Ｂのサイズが更新され得る。
【０１５４】
ステップＳ１２８では、ＳＱＬ解析部２５１は、処理対象の組（列名および列値）がＳＥＴ句の末尾に到達したか否かを判定する。ＳＱＬ解析部２５１は、到達したと判定した場合、ステップＳ１２９に処理を移し、到達していないと判定した場合、ステップＳ１２１に処理を移す。
【０１５５】
ステップＳ１２９では、ＳＱＬ解析部２５１は、ＳＱＬ文（要求）にＷＨＥＲＥ句が含まれているか否かを判定する。ＳＱＬ解析部２５１は、含まれていると判定した場合、ステップＳ１３０に処理を移し、含まれていないと判定した場合、列一覧更新処理（ＵＰＤＡＴＥ）を終了する。
【０１５６】
ステップＳ１３０では、ＷＨＥＲＥ句解析処理が行われ、列一覧更新処理（ＵＰＤＡＴＥ）が終了する。なお、ＷＨＥＲＥ句解析処理では、ＳＱＬ文のＷＨＥＲＥ句に基づいて表構成要素管理テーブル２９５の列一覧２９５Ｂが更新され得る。
【０１５７】
（行追加処理）
図１９は、行追加部２６０が実行する行追加処理に係るフローチャートの一例を示す。
【０１５８】
ＳＱＬ解析部２６１は、抽出済ＳＱＬ一覧２９３から１組の電文（ＳＱＬ文およびその応答）を読み出し（ステップＳ１３１）、ステップＳ１３２に処理を移す。
【０１５９】
ステップＳ１３２では、ＳＱＬ解析部２６１は、読み出した電文を解析し、電文に含まれるＳＱＬ文がＳＥＬＥＣＴ文であるか否かを判定する。ＳＱＬ解析部２６１は、ＳＥＬＥＣＴ文であると判定した場合、ステップＳ１３３に処理を移し、ＳＥＬＥＣＴ文でないと判定した場合、ステップＳ１３６に処理を移す。
【０１６０】
ステップＳ１３３では、ＳＱＬ解析部２６１は、ＳＱＬ文により処理（ここでは検索）された行数を確認するために、読み出したＳＥＬＥＣＴ文（要求により処理された行数を確認するための確認要求の一例）をＤＢサーバ３４０に送信し、ステップＳ１３４に処理を移す。
【０１６１】
ステップＳ１３４では、ＳＱＬ解析部２６１は、読み出したＳＱＬ文（ＳＥＬＥＣＴ文）の応答の行数がＤＢサーバ３４０からの応答の行数より多いか否かを判定する。ＳＱＬ解析部２６１は、読み出したＳＱＬ文（ＳＥＬＥＣＴ文）の応答の行数がＤＢサーバ３４０からの応答の行数より多いと判定した場合、ステップＳ１３５に処理を移し、読み出したＳＱＬ文（ＳＥＬＥＣＴ文）の応答の行数がＤＢサーバ３４０からの応答の行数より多くないと判定した場合、ステップＳ１４３に処理を移す。
【０１６２】
ステップＳ１３５では、ＳＱＬ実行部２６２は、読み出したＳＱＬ文（ＳＥＬＥＣＴ文）の応答の行数（行数）とＤＢサーバ３４０からの応答の行数との差数分の行追加用ＳＱＬ文、より具体的には読み出したＳＱＬ文の応答を満たす行追加用ＳＱＬ文（ＳＥＬＥＣＴ文のＷＨＥＲＥ句を満たすように列値を追加するＩＮＳＥＲＴ文）を作成し、ステップＳ１４０に処理を移す。なお、ＩＮＳＥＲＴ文の作成において、列値が不明の場合はデフォルトの値が設定される。
【０１６３】
ステップＳ１３６では、ＳＱＬ解析部２６１は、電文に含まれるＳＱＬ文がＤＥＬＥＴＥ文またはＵＰＤＡＴＥ文であるか否かを判定する。ＳＱＬ解析部２６１は、ＤＥＬＥＴＥ文またはＵＰＤＡＴＥ文であると判定した場合、ステップＳ１３７に処理を移し、ＤＥＬＥＴＥ文でもＵＰＤＡＴＥ文でもないと判定した場合、ステップＳ１４３に処理を移す。
【０１６４】
ステップＳ１３７では、ＳＱＬ解析部２６１は、ＳＱＬ文により処理（ここでは削除または更新）された行数を確認するための行数確認用ＳＱＬ文（要求により処理された行数を確認するための確認要求の一例であり、より具体的には、ＳＥＬＥＣＴ  *  ＦＲＯＭ  ＳＱＬ文から読み取った表名  ＷＨＥＲＥ  ＳＱＬ文の条件（ＤＥＬＥＴＥ文のＷＨＥＲＥ句またはＵＰＤＡＴＥ文のＷＨＥＲＥ句））を作成し、ＤＢサーバ３４０に送信する。
【０１６５】
ステップＳ１３８では、ＳＱＬ解析部２６１は、ＤＥＬＥＴＥされた行数またはＵＰＤＡＴＥされた行数がＤＢサーバ３４０からの応答の行数より多いか否かを判定する。ＳＱＬ解析部２６１は、ＤＥＬＥＴＥされた行数またはＵＰＤＡＴＥされた行数がＤＢサーバ３４０からの応答の行数より多いと判定した場合、ステップＳ１３９に処理を移し、ＤＥＬＥＴＥされた行数またはＵＰＤＡＴＥされた行数がＤＢサーバ３４０からの応答の行数より多くないと判定した場合、ステップＳ１４３に処理を移す。
【０１６６】
ステップＳ１３９では、ＳＱＬ実行部２６２は、行数確認用ＳＱＬ文の応答の行数とＤＢサーバ３４０からの応答の行数との差数分の行追加用ＳＱＬ文、より具体的には読み出したＳＱＬ文の応答を満たす行追加用ＳＱＬ文（ＤＥＬＥＴＥ文のＷＨＥＲＥ句またはＵＰＤＡＴＥ文のＷＨＥＲＥ句を満たすように列値を追加するＩＮＳＥＲＴ文）を作成し、ステップＳ１４０に処理を移す。なお、ＩＮＳＥＲＴ文の作成において、列値が不明の場合はデフォルトの値が設定される。
【０１６７】
ステップＳ１４０では、ＳＱＬ実行部２６２は、行追加用ＳＱＬ文をＤＢサーバ３４０に送信し、ステップＳ１４１に処理を移す。なお、ＤＢサーバ３４０は、受信した行追加用ＳＱＬ文に従って、ステップＳ４４で作成した表に行を追加する。
【０１６８】
ステップＳ１４１では、ＳＱＬ解析部２６１は、ＳＱＬ文の保存が有効であるか否か（ＳＱＬ保存機能を使用するか否か）を判定する。ＳＱＬ解析部２６１は、有効であると判定した場合、ステップＳ１４２に処理を移し、有効でないと判定した場合、ステップＳ１４３に処理を移す。
【０１６９】
ステップＳ１４２では、ＳＱＬ解析部２６１は、行追加用ＳＱＬ文をＳＱＬ管理部２７０に送信（保存指示）し、ステップＳ１４３に処理を移す。なお、ＳＱＬ管理部２７０は、行追加用ＳＱＬ文を受信すると、当該行追加用ＳＱＬ文を生成済ＳＱＬ管理テーブル２９６に追加（保存）する。
【０１７０】
ステップＳ１４３では、ＳＱＬ解析部２６１は、処理対象の電文（ＳＱＬ文およびその応答）が抽出済ＳＱＬ一覧２９３の末尾に到達したか否かを判定する。ＳＱＬ解析部２５１は、到達したと判定した場合、行追加処理を終了し、到達していないと判定した場合、ステップＳ１３１に処理を移す。
【０１７１】
（テスト環境３００の再構築に係る処理）
図２０は、テスト用ＤＢ作成装置２００が実行するテスト環境３００の再構築に係る処理（フローチャート）の一例を示す。
【０１７２】
キー情報およびＤＢ接続情報を入力するためのユーザ４００による操作を入力装置２０４が受け付けると、入力部２１０は、入力されたキー情報をＳＱＬ管理部２７０に送信し、入力されたＤＢ接続情報をＤＢ接続部２３０に送信し（ステップＳ１５１）、ステップＳ１５２に処理を移す。
【０１７３】
ステップＳ１５２では、ＤＢ接続部２３０は、記憶装置２０２からテスト環境一覧２９４を読み込み、ステップＳ１５３に処理を移す。
【０１７４】
ステップＳ１５３では、ＤＢ接続部２３０は、ＤＢ構築先の自動選択が有効であるか否か（環境自動選択機能を使用するか否か）を判定する。ＤＢ接続部２３０は、有効であると判定した場合、ステップＳ１５４に処理を移し、有効でないと判定した場合、ステップＳ１５５に処理を移す。
【０１７５】
ステップＳ１５４では、ＤＢ構築先自動選択処理が行われ、ステップＳ１５７に処理が移される。なお、詳細については後述するが、ＤＢ構築先自動選択処理では、キー情報に応じて表領域が割り当てられる。
【０１７６】
ステップＳ１５５では、ＤＢ接続部２３０は、ＤＢ接続情報を用いて、テスト環境一覧２９４の環境Ｎｏ．１のＤＢサーバ（テスト環境３００の再構築に係る処理ではＤＢサーバ３４０として説明する。）に接続要求を行い、ステップＳ１５６に処理を移す。
【０１７７】
ステップＳ１５６では、ＤＢ接続部２３０は、テスト環境一覧２９４の環境Ｎｏ．１の表領域をＤＢ接続情報で指定されたユーザに割り当てる割当指示をＤＢサーバ３４０に送信し、ステップＳ１５７に処理を移す。なお、ＤＢサーバ３４０は、割当指示に従ってテスト環境一覧２９４の環境Ｎｏ．１の表領域をＤＢ接続情報で指定されたユーザに割り当てる。
【０１７８】
ステップＳ１５７では、ＳＱＬ管理部２７０は、入力されたキー情報の一覧からキー情報を１つ取り出し、ステップＳ１５８に処理を移す。
【０１７９】
ステップＳ１５８では、ＳＱＬ管理部２７０は、取り出したキー情報に一致するキー情報をキー情報一覧２９１から検索し、ステップＳ１５９に処理を移す。
【０１８０】
ステップＳ１５９では、ＳＱＬ管理部２７０は、一致するキー情報が存在するか否かを判定する。ＳＱＬ管理部２７０は、存在すると判定した場合、ステップＳ１６０に処理を移し、存在しないと判定した場合、ステップＳ１６３に処理を移す。
【０１８１】
ステップＳ１６０では、ＳＱＬ管理部２７０は、生成済ＳＱＬ管理テーブル２９６から取り出したキー情報に対応するＳＱＬ一覧２９６ＢからＳＱＬ文を１つ読み込み、ＤＢ再構築部２８０に送信し、ステップＳ１６１に処理を移す。
【０１８２】
ステップＳ１６１では、ＤＢ再構築部２８０は、ＳＱＬ文をＤＢサーバ３４０に送信し、ステップＳ１６２に処理を移す。
【０１８３】
ステップＳ１６２では、ＳＱＬ管理部２７０は、処理対象がＳＱＬ一覧の末尾に到達したか否かを判定する。ＳＱＬ管理部２７０は、到達したと判定した場合、ステップＳ１６３に処理を移し、到達していないと判定した場合、ステップＳ１６０に処理を移す。
【０１８４】
ステップＳ１６３では、ＳＱＬ管理部２７０は、処理対象が入力されたキー情報の一覧の末尾に到達したか否かを判定する。ＳＱＬ管理部２７０は、到達したと判定した場合、テスト環境３００の再構築に係る処理を終了し、到達していないと判定した場合、ステップＳ１５７に処理を移す。
【０１８５】
（ＤＢ構築先自動選択処理）
図２１は、ＤＢ接続部２３０が実行するＤＢ構築先自動選択処理に係るフローチャートの一例を示す。
【０１８６】
ＤＢ接続部２３０は、変数ｉに「１」を代入し（ステップＳ１７１）、ステップＳ１７２に処理を移す。
【０１８７】
ステップＳ１７２では、ＤＢ接続部２３０は、キー情報一覧２９１の各キー情報に対応する作成済環境一覧２９６Ｃの中に１つでも環境Ｎｏ．ｉが存在するか否かを判定する。ＤＢ接続部２３０は、存在すると判定した場合、ステップＳ１７３に処理を移し、存在しないと判定した場合、ステップＳ１７６に処理を移す。
【０１８８】
ステップＳ１７３では、ＤＢ接続部２３０は、変数ｉに「１」を加算し、ステップＳ１７４に処理を移す。
【０１８９】
ステップＳ１７４では、ＤＢ接続部２３０は、変数ｉの値がテスト環境一覧２９４における環境Ｎｏ．の最大値を超えるか否かを判定する。ＤＢ接続部２３０は、超えると判定した場合、ステップＳ１７５に処理を移し、超えないと判定した場合、ステップＳ１７２に処理を移す。
【０１９０】
ステップＳ１７５では、ＤＢ接続部２３０は、ＤＢ構築（テスト環境３００の再構築）を中断し、ＤＢ構築先自動選択処理を終了する。
【０１９１】
ステップＳ１７６では、ＤＢ接続部２３０は、テスト環境一覧２９４の環境Ｎｏ．ｉのＤＢサーバに接続要求を行い、ステップＳ１７７に処理を移す。
【０１９２】
ステップＳ１７７では、ＤＢ接続部２３０は、テスト環境一覧２９４の環境Ｎｏ．ｉの表領域をＤＢ接続情報で指定されたユーザに割り当てる割当指示を環境Ｎｏ．ｉのＤＢサーバに送信し、ステップＳ１７８に処理を移す。なお、環境Ｎｏ．ｉのＤＢサーバは、割当指示に従ってテスト環境一覧２９４の環境Ｎｏ．ｉの表領域をＤＢ接続情報で指定されたユーザに割り当てる。
【０１９３】
ステップＳ１７８では、ＤＢ接続部２３０は、キー情報一覧２９１の各キー情報に対応する作成済環境一覧２９６Ｃに環境Ｎｏ．ｉを追加し、ＤＢ構築先自動選択処理を終了する。
【０１９４】
上述したテスト環境３００の再構築に係る処理によれば、リグレッションテストの実施後に同様のリグレッションテストを実施したい場合、再度本番環境１００の電文を解析する必要がないため、テスト環境３００（リグレッションテスト用ＤＢ）の再構築にかかる時間を短縮することができる。
【０１９５】
また、上述したテスト環境３００の再構築に係る処理によれば、キー情報によりリグレッションテストの対象の機能を指定可能であり、ユーザに応じて表領域が割り当てられるので、複数のユーザが異なるテスト環境３００でリグレッションテストを分担している場合に、個々のテスト環境３００に必要なリグレッションテスト用ＤＢのみを構築することができる。また、個々のテスト環境３００に必要なリグレッションテスト用ＤＢのみが構築されるので、個々のテスト環境３００のデータ容量を削減できる。
【０１９６】
（１−１０）入力画面
図２２は、各種の情報の入力を受け付ける入力画面の一例（開始画面５００）を示す。開始画面５００は、キー情報を入力可能なキー情報入力領域５０１と、ＤＢ接続情報を入力可能なＤＢ接続情報入力領域５０２と、使用する機能（本例では、ＳＱＬ保存機能、ＳＱＬ再生機能、環境自動選択機能）を選択可能な選択領域５０３，５０４，５０５と、入力した内容および選択した内容の取り込みを実行するための実行ボタン５０６と含んで構成される。
【０１９７】
例えば、ＳＱＬ保存機能のＳＱＬ再生機能の選択可能な選択領域５０３にチェックがされて（選択領域５０４にチェックがされずに）実行ボタン５０６が押下された場合、ステップＳ１６以降の処理が実行される。また例えば、ＳＱＬ再生機能の選択領域５０４にチェックがされて実行ボタン５０６が押下された場合、ステップＳ１５２以降の処理が実行される。
【０１９８】
（１−１１）表作成および行追加の例
図２３〜図２６を参照して表作成および行追加の例について説明する。より具体的には、キャプチャ開始指示およびキャプチャ終了指示間に本番環境１００から取得された電文に基づいて、ＳＱＬ文６０２，６０４，６０６，６０８，６１０およびその応答６０３，６０５，６０７，６０９，６１１が抽出済ＳＱＬ一覧２９３に格納され、抽出済ＳＱＬ一覧２９３に基づいて表が作成され、抽出済ＳＱＬ一覧２９３に基づいて行が追加される例について説明する。
【０１９９】
図２３は、ＳＱＬ文実行前の本番環境１００のＤＢ１７１の内容６０１と、実行されたＳＱＬ文６０２，６０４，６０６，６０８，６１０およびその応答６０３，６０５，６０７，６０９，６１１と、ＳＱＬ文実行後の本番環境１００のＤＢ１７１の内容６１２とを示す。
【０２００】
図２４は、ＳＱＬ文６０２およびその応答６０３の解析例を示す。
【０２０１】
まず、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０２およびその応答６０３（１組の電文）が読み込まれる。ここで、ＳＱＬ文６０２の表名「ＳＴＯＲＥ１＿ＳＴＯＣＫ」は、表構成要素管理テーブル２９５の表一覧７０１に存在しないので、表一覧７０１に表名「ＳＴＯＲＥ１＿ＳＴＯＣＫ」が追加される（処理７０２：ステップＳ３４等）。
【０２０２】
続いて、ＳＱＬ文６０２の応答６０３から列名「ＮＡＭＥ」および列値一覧「ａｐｐｌｅ、ｏｒａｎｇｅ」が取り出される。ここで、列名「ＮＡＭＥ」は、表構成要素管理テーブル２９５の表名に対応する列一覧７０３に存在しないので、列一覧７０３に列名「ＮＡＭＥ」が設定され、列値一覧の値が文字列であるから列の型がＣＨＡＲＡＣＴＥＲ型と判定されるので、列一覧７０３の型に「ＣＨＡＲＡＣＴＥＲ型」が設定され、本例ではサイズ更新を有効に設定していないので、ＣＨＡＲＡＣＴＥＲ型の最大のサイズ（本例では「３００００」）が設定される（処理７０４：ステップＳ５５、ステップＳ５６、ステップＳ７６等）。
【０２０３】
図２５は、ＳＱＬ文６０４，６０６，６０８，６１０およびその応答６０５，６０７，６０９，６１１の解析例、並びに表の作成例を示す。
【０２０４】
まず、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０４およびその応答６０５（２番目の１組の電文）が読み込まれる。ここで、ＳＱＬ文６０４の表名「ＳＴＯＲＥ２＿ＳＴＯＣＫ」は、表構成要素管理テーブル２９５の表一覧７０１に存在しないので、表一覧７０１に表名「ＳＴＯＲＥ２＿ＳＴＯＣＫ」が追加される（処理８０１：ステップＳ３４等）。
【０２０５】
続いて、ＳＱＬ文６０４の応答６０５から列名「ＮＡＭＥ」および列値一覧「ｂａｎａｎａ、ｓｔｒａｗｂｅｒｒｙ」が取り出される。ここで、列名「ＮＡＭＥ」は、表構成要素管理テーブル２９５の表名に対応する列一覧８０２に存在しないので、列一覧８０２に列名「ＮＡＭＥ」が設定され、列値一覧の値が文字列であるから列の型がＣＨＡＲＡＣＴＥＲ型と判定されるので、列一覧８０２の型に「ＣＨＡＲＡＣＴＥＲ型」が設定され、本例ではサイズ更新を有効に設定していないので、ＣＨＡＲＡＣＴＥＲ型の最大のサイズ（本例では「３００００」）が設定される（処理８０３：ステップＳ５５、ステップＳ５６、ステップＳ７６等）。
【０２０６】
続いて、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０６およびその応答６０７（３番目の１組の電文）が読み込まれる。ここで、ＳＱＬ文６０４の表名「ＳＴＯＲＥ１＿ＳＴＯＣＫ」は、表構成要素管理テーブル２９５の表一覧７０１に存在するので、表一覧７０１の更新は行われない。
【０２０７】
また、ＳＱＬ文６０６のＶＡＬＵＥＳ句に示されるように、表名「ＳＴＯＲＥ１＿ＳＴＯＣＫ」には、列が３つあるので、列一覧７０３に登録されていない、２番目の列および３番目の列名（ただし、列名が不明であるのでデフォルトの値）が列一覧７０３に設定され、列値一覧の値が「‘」で囲まれてなく、整数値であるから列の型がＩＮＴＥＧＥＲ型と判定されるので、列一覧７０３の型に「ＩＮＴＥＧＥＲ型」が設定される（処理８０４：ステップＳ１０４、ステップＳ１０７等）。
【０２０８】
続いて、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０８およびその応答６０９（４番目の１組の電文）が読み込まれるが、表を更新するための新たな情報も列を更新するための新たな情報もないので、表一覧７０１、列一覧７０３、および列一覧８０２の更新は行われない。
【０２０９】
続いて、抽出済ＳＱＬ一覧２９３からＳＱＬ文６１０およびその応答６１１（５番目（最後）の１組の電文）が読み込まれる。なお、ＳＱＬ文６１０は、ＳＥＬＥＣＴ文、ＵＰＤＡＴＥ文、ＩＮＳＥＲＴ文、ＤＥＬＥＴＥ文の何れでもないので、表一覧７０１、列一覧７０３、および列一覧８０２の更新は行われない。
【０２１０】
抽出済ＳＱＬ一覧２９３の全ての電文の組についての解析が終わると、表一覧７０１、列一覧７０３、および列一覧８０２に基づいて表作成用ＳＱＬ文（本例では、ＳＱＬ文８０５およびＳＱＬ文８０６）が作成される（ステップＳ４１）。
【０２１１】
そして、ＳＱＬ文８０５がＤＢサーバ３４０に送信され、行のない空の表である表８０７がＤＢ３４１に作成され、ＳＱＬ文８０６がＤＢサーバ３４０に送信され、行のない空の表である表８０８がＤＢ３４１に作成される（ステップＳ４４）。
【０２１２】
図２６は、ＳＱＬ文６０２，６０４，６０６，６０８，６１０およびその応答６０３，６０５，６０７，６０９，６１１の解析例、並びに行の追加例を示す。
【０２１３】
まず、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０２およびその応答６０３（１番目の１組の電文）が読み込まれる。続いて、ＳＱＬ文６０２がＤＢサーバ３４０に送信され、その応答の行数「０」（表８０７には未だ行が格納されていないため）と応答６０３の行数「２」とが比較され、不足分（２行分）のＩＮＳＥＲＴ文９０１が作成される（処理９０２：ステップＳ１３３、ステップＳ１３４、ステップＳ１３５等）。この際、表８０７のＲＯＷ２およびＲＯＷ３の列値が不明であるので、デフォルトの値（任意の値を設定可能であるが、本例では、「１００」および「０」）がセットされる。そして、ＩＮＳＥＲＴ文９０１がＤＢサーバ３４０に送信され、ＤＢ３４１の表８０７に行が２件追加される（ステップＳ１４０）。
【０２１４】
続いて、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０４およびその応答６０５（２番目の１組の電文）が読み込まれる。同様に、ＳＱＬ文６０４がＤＢサーバ３４０に送信され、その応答の行数「０」（表８０８には未だ行が格納されていないため）と応答６０５の行数「２」とが比較され、不足分（２行分）のＩＮＳＥＲＴ文９０３が作成される（処理９０４：ステップＳ１３３、ステップＳ１３４、ステップＳ１３５等）。そして、ＩＮＳＥＲＴ文９０３がＤＢサーバ３４０に送信され、ＤＢ３４１の表８０８に行が２件追加される（ステップＳ１４０）。
【０２１５】
続いて、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０６およびその応答６０７（３番目の１組の電文）が読み込まれる。ＳＱＬ文６０６は、ＩＮＳＥＲＴ文であるので、行追加に係る処理（ＩＮＳＥＲＴ文の作成および送信）は行われない。
【０２１６】
続いて、抽出済ＳＱＬ一覧２９３からＳＱＬ文６０８およびその応答６０９（４番目の１組の電文）が読み込まれる。ＳＱＬ文６０６に基づいて行数を確認するための行数確認用ＳＱＬ文「ＳＥＬＥＣＴ  *  ＦＲＯＭ  ＳＱＬ文６０６から読み取った表名「ＳＴＯＲＥ２＿ＳＴＯＣＫ」  ＷＨＥＲＥ  ＮＡＭＥ＝‘ｂａｎａｎａ’」が作成され、行数確認用ＳＱＬ文がＤＢサーバ３４０に送信される。行数確認用ＳＱＬ文の応答の行数「１」が応答６０３の行数「１」と同じであるので、行追加に係る処理（ＩＮＳＥＲＴ文の作成および送信）は行われない。
【０２１７】
続いて、抽出済ＳＱＬ一覧２９３からＳＱＬ文６１０およびその応答６１１（５番目（最後）の１組の電文）が読み込まれる。なお、ＳＱＬ文６１０は、ＳＥＬＥＣＴ文、ＤＥＬＥＴＥ文、ＵＰＤＡＴＥ文の何れでもないので、行追加に係る処理（ＩＮＳＥＲＴ文の作成および送信）は行われない。
【０２１８】
上述したように表および行が追加された図２６に示すＤＢ３４１に対してＳＱＬ文６０２，６０４，６０６，６０８，６１０が実行された場合、その応答は、応答６０３，６０５，６０７，６０９，６１１となることがわかる。つまり、本実施の形態によれば、リグレッションテストに必要な表および行のみが構築される。
【０２１９】
（１−１２）テスト環境３００の再構築の例
図２７〜図３０を参照して、テスト環境３００（リグレッションテスト用ＤＢ）を再構築する例について説明する。以下では、新規構築時に図６に示す生成済ＳＱＬ管理テーブル２９６が生成され、テスト環境３００の状態が図７に示す状態である場合に、図２７に示す入力内容に基づいて機能Ａ１５４および機能Ｃ１５６のリグレッションテストを実施するためのリグレッションテスト用ＤＢの再構築が指示されたときのテスト環境３００の状態を図２８に示す。引き続き、図２９に示す入力内容に基づいて機能Ｂ１５５のリグレッションテストを実施するためのリグレッションテスト用ＤＢの再構築が指示されたときのテスト環境３００の状態を図３０に示す。
【０２２０】
機能Ａ１５４および機能Ｃ１５６のリグレッションテスト用ＤＢを再構築する場合の主な流れは、以下のようになる。
【０２２１】
（順序２−１）
ユーザは、図２７に示す開始画面１０００を介して、機能Ａ１５４が動作するＨＴＴＰリクエストのキー情報「http://AA/BB/CC/aa」および機能Ｃ１５６が動作するＨＴＴＰリクエストのキー情報「http://AA/BB/CC/cc」をキー情報入力領域１００１に入力する。また、ユーザは、ＤＢサーバ３４０Ａに接続するためのＩＤおよびパスワードをＤＢ接続情報入力領域１００２に入力する。さらに、ユーザは、「ＳＱＬ再生機能を使用する」の選択領域１００３にチェックを入れ、この例はオプションとして「環境自動選択機能を使用する」の選択領域１００４にチェックを入れ、実行ボタン１００５をクリックする。
【０２２２】
（順序２−２）
テスト用ＤＢ作成装置２００は、キー情報「http://AA/BB/CC/aa」および「http://AA/BB/CC/cc」に対応する作成済環境一覧２９６Ｃ（生成済ＳＱＬ管理テーブル２９６）を検索し、これらに存在しない中で最も番号が小さい環境Ｎｏ．２を構築先として選択し、ＤＢサーバ３４０Ａに接続要求を行う。また、テスト用ＤＢ作成装置２００は、キー情報「http://AA/BB/CC/aa」に対応する作成済環境一覧２９６Ｃ１に環境Ｎｏ．２を示す情報１１０１および「http://AA/BB/CC/cc」に対応する作成済環境一覧２９６Ｃ３に環境Ｎｏ．２を示す情報１１０２を追加する。
【０２２３】
（順序２−３）
テスト用ＤＢ作成装置２００は、キー情報「http://AA/BB/CC/aa」に関連付けられたＳＱＬ文１１０３および「http://AA/BB/CC/cc」に関連付けられたＳＱＬ文１１０４を実行する。これにより、図２８に示すように、環境Ｎｏ．２の第２表領域３６０Ａに機能Ａ１５４および機能Ｃ１５６のリグレッションテストに必要な表Ａ１１０５および表Ｃ１１０６が作成され、それぞれの表に機能Ａ１５４および機能Ｃ１５６のリグレッションテストに必要な行が追加される。
【０２２４】
続いて、機能Ｂ１５５のリグレッションテスト用ＤＢを再構築する場合の主な流れは、以下のようになる。
【０２２５】
（順序３−１）
ユーザは、図２９に示す開始画面１２００を介して、機能Ｂ１５５が動作するＨＴＴＰリクエストのキー情報「http://AA/BB/CC/bb」をキー情報入力領域１２０１入力する。また、ユーザは、ＤＢサーバ３４０Ａに接続するためのＩＤおよびパスワードをＤＢ接続情報入力領域１２０２に入力する。さらに、ユーザは、「ＳＱＬ再生機能を使用する」の選択領域１２０３にチェックを入れ、この例はオプションとして「環境自動選択機能を使用する」の選択領域１２０４にチェックを入れ、実行ボタン１２０５をクリックする。
【０２２６】
（順序３−２）
テスト用ＤＢ作成装置２００は、キー情報「http://AA/BB/CC/bb」に対応する作成済環境一覧２９６Ｃ（生成済ＳＱＬ管理テーブル２９６）を検索し、最も番号が小さい環境Ｎｏ．２を構築先として選択し、ＤＢサーバ３４０Ａに接続要求を行う。また、テスト用ＤＢ作成装置２００は、キー情報「http://AA/BB/CC/bb」に対応する作成済環境一覧２９６Ｃ２に環境Ｎｏ．２を示す情報１３０１を追加する。
【０２２７】
（順序３−３）
テスト用ＤＢ作成装置２００は、キー情報「http://AA/BB/CC/bb」に関連付けられたＳＱＬ文１３０２を実行する。これにより、図３０に示すように、環境Ｎｏ．２の第２表領域３６０Ａに機能Ｂ１５５のリグレッションテストに必要な表Ｂ１３０３が作成され、表Ｂ１３０３に機能Ｂ１５５のリグレッションテストに必要な行が追加される。
【０２２８】
（１−１３）本実施の形態の効果
上述した実施の形態によれば、リグレッションテストに必要な表および行のみをリグレッションテスト用ＤＢに構築するので、リグレッションテスト用ＤＢを迅速かつ適切に準備できるようになる。
【０２２９】
また、上述した実施の形態によれば、リグレッションテスト用ＤＢを新規構築した際のＳＱＬ文を記憶することにより、リグレッションテスト用ＤＢを迅速かつ確実に再現することができる。
【０２３０】
（２）他の実施の形態
なお上述の実施の形態においては、本発明をテスト用ＤＢ作成装置２００に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のテストデータ作成装置に広く適用することができる。
【０２３１】
また上述の実施の形態においては、表を作成してから行を追加する場合について述べたが、本発明はこれに限らず、リグレッションテストに必要な表の情報を仕様書などから把握して作成できる場合、別途に作成した表に行を追加するようにしてもよい。
【０２３２】
また上述の実施の形態においては、表を作成して行を追加するＤＢをテスト環境３００のＤＢ３４１とした場合について述べたが、本発明はこれに限らず、テスト環境３００とは異なるＤＢ等、所定のＤＢに表を作成して行を追加するようにしてもよい。この構成によれば、テスト環境３００の有無にかかわらず、リグレッションテスト用ＤＢを作成することができる。
【０２３３】
また上述の実施の形態においては、本番環境１００のあるＡＰが複数の機能（広義にはプログラム）を有し、その中の機能のリグレッションテストを行う場合について述べたが、本発明はこれに限らず、本番環境１００の複数のＡＰの中の一または複数のＡＰ（広義にはプログラム）のリグレッションテストを行う場合に適用にしてもよい。この場合、例えば、キー情報については、電文内に含まれるＡＰサーバ１５０のＡＰ（在庫管理ＡＰ１５１、勤怠管理ＡＰ１５２、売上管理ＡＰ１５３等）を特定可能なデータを含み、例えば、「http://AA/BB/CC/」（AA/BB/CC/は、ＡＰサーバ１５０のＡＰを識別可能なデータ）としてもよい。
【０２３４】
また上述の実施の形態においては、本発明をＳＱＬに適用した場合について述べたが、本発明はこれに限らず、その他のデータベース言語にも適用することができる。
【０２３５】
また上述の実施の形態においては、ネットワーク装置の一例としてスイッチ１２０，１４０，１６０を示したが、ネットワーク装置はスイッチに限定されず、同様の機能を有する装置であってもよい。
【０２３６】
また上述の実施の形態においては、テスト用ＤＢ作成装置２００が、Ｗｅｂシステム上を流れる電文を解析する場合について説明したが、かかる例に限定されず、Ｗｅｂシステム以外でもクライアント装置１１０を含む装置の種類が３種類以上であり、装置間の電文が、要求及び応答電文を送信するプロトコルである場合であれば本発明を適用して電文を解析し、リグレッションテスト用に必要なデータを生成することができる。例えば、ＯＬＴＰ（オンライントランザクション処理）システムなどに適用することができる。
【符号の説明】
【０２３７】
１……計算機システム、１００……本番環境、２００……テスト用ＤＢ作成装置、２１０……入力部、２２０……電文解析部、２３０……ＤＢ接続部、２４０……ＳＱＬ抽出部、２５０……表作成部、２６０……行追加部、２７０……ＳＱＬ管理部、２８０……ＤＢ再構築部、３００……テスト環境。
【図１】
0006695504.tif 000002
【図２】
0006695504.tif 000003
【図３】
0006695504.tif 000004
【図４】
0006695504.tif 000005
【図５】
0006695504.tif 000006
【図６】
0006695504.tif 000007
【図７】
0006695504.tif 000008
【図８】
0006695504.tif 000009
【図９】
0006695504.tif 000010
【図１０】
0006695504.tif 000011
【図１１】
0006695504.tif 000012
【図１２】
0006695504.tif 000013
【図１３】
0006695504.tif 000014
【図１４】
0006695504.tif 000015
【図１５】
0006695504.tif 000016
【図１６】
0006695504.tif 000017
【図１７】
0006695504.tif 000018
【図１８】
0006695504.tif 000019
【図１９】
0006695504.tif 000020
【図２０】
0006695504.tif 000021
【図２１】
0006695504.tif 000022
【図２２】
0006695504.tif 000023
【図２３】
0006695504.tif 000024
【図２４】
0006695504.tif 000025
【図２５】
0006695504.tif 000026
【図２６】
0006695504.tif 000027
【図２７】
0006695504.tif 000028
【図２８】
0006695504.tif 000029
【図２９】
0006695504.tif 000030
【図３０】
0006695504.tif 000031