(57)【要約】【課題】アプリケーションの動作テストに好適なテストデータを容易に作成できるようにする。【解決手段】データ操作命令を受信する受信部１０１と、データ操作命令からデータ操作の対象となるレコードを示す情報を抽出し、第１情報２０１に記憶させる抽出部１０２と、第１情報２０１に基づいてデータ傾向を推定し、推定したデータ傾向を第２情報に記憶させる推定部１０５と、第２情報に基づいてデータ操作命令に対応する応答を生成する生成部１０６と、を備える。【選択図】図２
2019159778.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのデータ操作命令に対応する応答を行なう情報処理装置において、
データ操作命令を受信する受信部と、
前記データ操作命令からデータ操作の対象となるレコードを示す情報を抽出し、第１情報に記憶させる抽出部と、
前記第１情報に基づいてデータ傾向を推定し、推定した前記データ傾向を第２情報に記憶させる推定部と、
前記第２情報に基づいてデータ操作命令に対応する応答を生成する生成部と、
を備える。
【請求項２】
前記第２情報が、前記応答として用いられる複数の候補値の前記第１情報における出現頻度を示す
ことを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記第２情報が、辞書情報に含まれる複数の値のそれぞれについての前記第１情報における出現頻度を示す
ことを特徴とする、請求項１記載の情報処理装置。
【請求項４】
アプリケーションのデータ操作命令に対応する応答を行なう情報処理装置において、
データ操作命令を受信し、
前記データ操作命令からデータ操作の対象となるレコードを示す情報を抽出して、第１情報に記憶し、
前記第１情報に基づいてデータ傾向を推定し、推定した前記データ傾向を第２情報に記憶し、
前記第２情報に基づいて、データ操作命令に対応する応答を生成する、
処理をプロセッサに実行させる制御プログラム。
【請求項５】
アプリケーションのデータ操作命令を受信する処理と、
前記データ操作命令からデータ操作の対象となるレコードを示す情報を抽出し、第１情報に記憶する処理と、
前記第１情報に基づいてデータ傾向を推定し、推定した前記データ傾向を第２情報に記憶する処理と、
前記第２情報に基づいて、データ操作命令に対応する応答を生成する処理と、
を備える情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置，制御プログラムおよび情報処理方法に関する。
【背景技術】
【０００２】
データベースを利用するアプリケーションの動作テストを行なう場合、実際に運用されるデータベースの特徴に留意した、適切なテストデータが必要とされる。
【０００３】
しかし、運用中のデータベースを動作テストに利用することは、情報保護等の観点から困難である。そのため、従来においては、運用中のデータベースに見立てたテストデータベースを作成し、想定されるテストデータを人手で作成してテストデータベースに格納し、動作テストを行なっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１７８１３６号公報
【特許文献２】特開２００１−２５６０７６号公報
【特許文献３】特開２０１７−６８２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような従来のアプリケーションの動作テスト手法において、テストデータは、アプリケーションの処理論理や運用中データベースのデータ内容等から抽出したデータパターンを組み合わせることにより作成されることが多い。
しかし、これらのデータパターンの全ての組合せを想定することや、今までにない将来格納される可能性のあるデータ値を想定したテストデータを人手で作成することは困難である。
【０００６】
そこで、従来手法においては、アプリケーション作成者が想定できるデータ範囲に限定して動作テストを実施している。しかしながら、データ範囲の絞り込みが作業者の経験やスキルに依存して行なわれるため、動作検証の品質を保証することが困難である。
【０００７】
１つの側面では、本発明は、アプリケーションの動作テストに好適なテストデータを容易に作成できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
このため、この情報処理装置は、アプリケーションのデータ操作命令に対応する応答を行なう情報処理装置において、データ操作命令を受信する受信部と、前記データ操作命令からデータ操作の対象となるレコードを示す情報を抽出し、第１情報に記憶させる抽出部と、前記第１情報に基づいてデータ傾向を推定し、推定した前記データ傾向を第２情報に記憶させる推定部と、前記第２情報に基づいてデータ操作命令に対応する応答を生成する生成部と、を備える。
【発明の効果】
【０００９】
一実施形態によれば、アプリケーションの動作テストに好適なテストデータを容易に作成できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の一例としてのテストシステムの概要を示す図である。
【図２】実施形態の一例としてのテストシステムにおけるテストサーバの機能構成を例示する図である。
【図３】テストサーバのハードウェア構成を例示する図である。
【図４】実施形態の一例としてのテストシステムにおけるＳＱＬ解析後データを例示する図である。
【図５】（ａ），（ｂ），（ｃ）は実施形態の一例としてのテストシステムのＳＱＬ解析部によるＳＱＬ解析後データの生成方法を例示する図である。
【図６】実施形態の一例としてのテストシステムのＳＱＬ解析部によるＳＱＬ解析後データの生成方法の他の例を示す図である。
【図７】実施形態の一例としてのテストシステムのＳＱＬ解析部によるＳＱＬ解析後データの生成方法の他の例を示す図である。
【図８】実施形態の一例としてのテストシステムのＳＱＬ解析部によるＳＱＬ解析後データの生成方法の他の例を示す図である。
【図９】実施形態の一例としてのテストシステムのＤＢ定義取込部による処理を説明するための図である。
【図１０】実施形態の一例としてのテストシステムにおけるデータ作成ルールを説明するための図である。
【図１１】（ａ），（ｂ）は実施形態の一例としてのテストシステムにおけるデータ作成ルールを例示する図である。
【図１２】実施形態の一例としてのテストシステムにおける辞書情報を例示する図である。
【図１３】実施形態の一例としてのテストシステムにおけるルール学習部の処理を説明するための図である。
【図１４】ＳＱＬ解析後データを例示する図である。
【図１５】図４に例示したＳＱＬ解析後データにおける都道府県の辞書の各値の出現頻度を示す図である。
【図１６】図１５に示した各値のＳＱＬ解析後データにおける出現頻度をグラフとして示した図である。
【図１７】実施形態の一例としてのテストシステムのデータ生成処理部によるデータ生成方法を説明するための図である。
【図１８】実施形態の一例としてのテストシステムにおける問い合せ結果出力部の処理を説明するための図である。
【図１９】実施形態の一例としてのテストシステムにおける処理の概要を説明するための図である。
【図２０】実施形態の一例としてのテストシステムにおける処理の概要を説明するためのフローチャートである。
【図２１】実施形態の一例としてのテストシステムにおけるアプリケーションおよびテストサーバの処理を説明するためのフローチャートである。
【図２２】実施形態の一例としてのテストシステムにおけるＳＱＬ解析部の処理を説明するためのフローチャートである。
【図２３】実施形態の一例としてのテストシステムにおけるルール学習部の処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本情報処理装置，制御プログラムおよび情報処理方法にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態および各変形例を組み合わせる等）して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
（Ａ）構成
図１は実施形態の一例としてのテストシステム１の概要を示す図である。
【００１３】
テストシステム１は、データベース（ＤＢ：Database，図示省略）を処理するアプリケーション５１の動作テストを実現するものであり、図１に示すように、アプリケーションサーバ５０とテストサーバ１０とを備える。
【００１４】
アプリケーションサーバ５０は、例えばサーバ機能を備えるコンピュータ（サーバコンピュータ）であり、例えばＣＰＵ（Central Processing Unit）を備える。アプリケーションサーバ５０においては、このＣＰＵを用いてアプリケーション５１を実行する。
【００１５】
アプリケーション５１はデータベースを処理する。アプリケーション５１は、データベースに対してＳＱＬ（Structured Query Language）等のデータベース言語を発行することで、データの操作や定義等を行なう。
【００１６】
本テストシステム１においては、図１に示すように、データベースに代えてデータ生成部１００を備え、アプリケーションサーバ５０（アプリケーション５１）は、このデータ生成部１００に対してＳＱＬ命令文を発行する。データ生成部１００は、アプリケーション５１から発行されたＳＱＬ命令文に対してテストデータを応答することで、データベースであるかのように振る舞う。以下、テストサーバ１０からアプリケーション５１に応答するテストデータを応答データという場合がある。
【００１７】
アプリケーション５１においては、データ生成部１００から応答されたテストデータを用いて、動作検証を行なう。
【００１８】
アプリケーションサーバ５０は、テストサーバ１０とＬＡＮ（Local Area Network）等のネットワークを介して通信可能に接続される。
【００１９】
図２は実施形態の一例としてのテストシステム１におけるテストサーバ１０の機能構成を例示する図、図３はテストサーバ１０のハードウェア構成を例示する図である。
【００２０】
テストサーバ１０は、サーバ機能を備えたコンピュータ（サーバコンピュータ）であり、例えば、図３に示すように、ＣＰＵ１１，メモリ１２，記憶装置１３およびネットワークインタフェース（Inter Face：Ｉ／Ｆ）１４を備える。これらのＣＰＵ１１，メモリ１２，記憶装置１３およびネットワークＩ／Ｆ１４はバス１５によって通信可能に接続されている。
【００２１】
記憶装置１３は、ＨＤＤ（Hard Disk Drive），ＳＳＤ（Solid State Drive），ＳＣＭ（Storage Class Memory）等の記憶装置であって、種々のデータを格納する。テストサーバ１０には１つ以上の記憶装置１３が備えられてもよい。
【００２２】
ネットワークＩ／Ｆ１４は、ネットワークを介してアプリケーションサーバ５０と通信可能に接続する通信インタフェースである。ネットワークＩ／Ｆ１４は、例えば、ＬＡＮインタフェースやＦＣ（Fibre Channel）インタフェースである。
【００２３】
メモリ１２は、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）を含む記憶メモリである。メモリ１２のＲＯＭには、ＯＳ（Operating System）やテストデータ生成機能を実現するためのソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１２上のソフトウェアプログラムは、ＣＰＵ１１に適宜読み込まれて実行される。また、メモリ１２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００２４】
また、メモリ１２のＲＡＭには、後述する、ＳＱＬ解析後データ２０１，データ生成ルール情報２０２，ＤＢ定義情報２０３および辞書情報２０４（例えば図２参照）が格納される。
【００２５】
ＣＰＵ１１は、制御ユニット（制御回路）や演算ユニット（演算回路），キャッシュメモリ（レジスタ群）等を内蔵する処理装置（プロセッサ）であり、種々の制御や演算を行なう。ＣＰＵ１１は、メモリ１２に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００２６】
テストサーバ１０において、ＣＰＵ１１がデータ生成プログラム（制御プログラム）を実行することで、後述するデータ生成部１００としての機能を実現する。
【００２７】
なお、データ生成部１００としての機能を実現するためのプログラム（データ生成プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００２８】
データ生成部１００としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１２）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００２９】
データ生成部１００は、アプリケーションサーバ５０（アプリケーション５１）から発行されるＳＱＬ命令文に対して応答するテストデータ（応答データ）を生成する。
【００３０】
データ生成部１００は、図２に示すように、ＳＱＬ取得部１０１，ＳＱＬ解析部１０２，ルール生成部１０３，データ生成処理部１０６および問い合せ結果出力部１０７としての機能を備える。
【００３１】
ＳＱＬ取得部１０１は、アプリケーションサーバ５０（アプリケーション５１）から入力されるＳＱＬ（データベース言語）命令文（データ操作命令）を取得する。入力（取得）されたＳＱＬ命令文は、メモリ１２等の所定の記憶領域に格納される。ＳＱＬ取得部１０１は、アプリケーション５１のデータ操作命令を受信する受信部として機能する。
【００３２】
ＳＱＬ取得部１０１は、アプリケーション５１に対してＳＱＬ命令文を発行させる指示（ＳＱＬ命令文発行指示）を送信してもよい。これによりアプリケーション５１からＳＱＬ命令文を効率的に取得することができる。
【００３３】
以下、本実施形態においては、アプリケーション５１から発行されるＳＱＬ命令文として、SELECT文，INSERT文，UPDATE文を用いる例について示す。
【００３４】
ＳＱＬ解析部１０２は、ＳＱＬ取得部１０１によって取得されたＳＱＬ命令文を解析し、このＳＱＬ命令文から処理内容（コマンド文）と値とを抽出する。
【００３５】
ＳＱＬ解析部１０２は、ＳＱＬ取得部１０１によって取得されたＳＱＬ命令文から、データベース操作の対象となるレコード（値）を抽出する。以下、ＳＱＬ解析部１０２がＳＱＬ命令文から抽出する情報を、ＳＱＬ値という場合がある。
【００３６】
ＳＱＬ解析部１０２は、抽出した情報をＳＱＬ解析後データ２０１に格納する。
【００３７】
図４は実施形態の一例としてのテストシステム１におけるＳＱＬ解析後データ２０１を例示する図である。
【００３８】
この図４に例示するＳＱＬ解析後データ２０１は、列１〜３の３列を備えたテーブル状に構成され、列毎に同じ属性（データ種類）の値が登録される。
【００３９】
例えば、列１には属性“文字列”の値（例えば、静岡，神奈川・・・）が格納され、列２，３には、それぞれ属性“数値”の値（例えば、3，< 700・・・）が格納される。
【００４０】
ＳＱＬ解析後データ２０１には、アプリケーション５１からＳＱＬ命令文の発行（ＳＱＬアクセスという場合がある）が行なわれる度に値が追加（蓄積）される。
【００４１】
すなわち、ＳＱＬ解析部１０２は、アプリケーション５１から送信されるＳＱＬ命令文（例えば、INSERT文やSELECT文）によってＳＱＬ値（実値）が観測されるたびに、ＳＱＬ解析後データ２０１に値を蓄積する。
【００４２】
ＳＱＬ解析後データ２０１は、後述するルール生成部１０３によるデータ生成ルールの作成に用いられ、データ作成ルールを更新する学習用データとして機能する。
【００４３】
図５（ａ），（ｂ），（ｃ）は実施形態の一例としてのテストシステム１のＳＱＬ解析部１０２によるＳＱＬ解析後データ２０１の生成方法を例示する図である。
【００４４】
図５（ａ）はSELECT文であるＳＱＬ命令文から抽出したＳＱＬ値を例示する。
【００４５】
ＳＱＬ解析部１０２は、アプリケーション５１から入力されたＳＱＬ命令文「SELECT * FROM table WHERE "列1 "='静岡' AND "列3 " < 15000」から、ＳＱＬ値「静岡」および 「< 15000」を抽出する。そして、ＳＱＬ解析部１０２は、抽出したＳＱＬ値「静岡」をＳＱＬ解析後データ２０１の列１に格納し、ＳＱＬ値「< 15000」をＳＱＬ解析後データ２０１の列３に格納する。
【００４６】
図５（ｂ）はINSERT文であるＳＱＬ命令文から抽出したＳＱＬ値を例示する。
【００４７】
ＳＱＬ解析部１０２は、アプリケーション５１から入力されたＳＱＬ命令文「INSERT INTO * table VALUES('静岡',40,15000)」から、ＳＱＬ値「静岡」，「40」および「15000」を抽出する。そして、ＳＱＬ解析部１０２は、抽出したＳＱＬ値「静岡」をＳＱＬ解析後データ２０１の列１に格納し、ＳＱＬ値「40」をＳＱＬ解析後データ２０１の列２に格納し、ＳＱＬ値「15000」をＳＱＬ解析後データ２０１の列３に格納する。
【００４８】
図５（ｃ）はUPDATE文であるＳＱＬ命令文から抽出したＳＱＬ値を例示する。
【００４９】
ＳＱＬ解析部１０２は、アプリケーション５１から入力されたＳＱＬ命令文「UPDATE table SET "列2 " = 40 WHERE "列3 " < 15000」から、ＳＱＬ値「40」および「< 15000」を抽出する。そして、ＳＱＬ解析部１０２は、抽出したＳＱＬ値「40」をＳＱＬ解析後データ２０１の列２に格納し、ＳＱＬ値「< 15000」をＳＱＬ解析後データ２０１の列３に格納する。
【００５０】
図６〜図８は実施形態の一例としてのテストシステム１のＳＱＬ解析部１０２によるＳＱＬ解析後データ２０１の生成方法の他の例を示す図である。
【００５１】
図６に示す例においては、ＳＱＬ解析部１０２は、アプリケーション５１から入力されたＳＱＬ命令文「SELECT * FROM table WHERE "年号" = '昭和' AND "年" < 60」から、ＳＱＬ値「昭和」および「< 60」を抽出する。ＳＱＬ解析部１０２は、抽出したこれらのＳＱＬ値「昭和」および 「< 60」をＳＱＬ解析後データ２０１に格納する。
【００５２】
図７に示す例においては、アプリケーション５１から、データベース内テーブルの“名前”，“年号”，“年”，“月”および“日”に対して、「沼蔵太郎」，「昭和」，「30」，「9」および「12」を登録させるためのINSERT文（ＳＱＬ命令文）が示されている。
【００５３】
ＳＱＬ文における処理対象データをレコードという場合がある。図７に例示するINSERT文においては、ＳＱＬ値「沼蔵太郎」，「昭和」，「30」，「9」および「12」がレコードとして含まれる。
【００５４】
ＳＱＬ解析部１０２は、アプリケーション５１から入力されたINSERT文（ＳＱＬ命令文）からレコードを抽出し、このレコードからＳＱＬ値を抽出する。ＳＱＬ解析部１０２は、抽出したこれらのＳＱＬ値「沼蔵太郎」，「昭和」，「30」，「9」および「12」をＳＱＬ解析後データ２０１に格納する。
【００５５】
図８に示す例においては、アプリケーション５１から、データベース内テーブルに登録されている「沼蔵太郎」，「昭和」，「30」，「9」および「12」のレコードに対して、ＳＱＬ値「30」を「31」に変更（更新）させるためのUPDATE文（ＳＱＬ命令文）が示されている。
【００５６】
ＳＱＬ解析部１０２は、アプリケーション５１から入力されたUPDATE文（ＳＱＬ命令文）からレコードを抽出し、さらに、このレコードからＳＱＬ値を抽出する。ＳＱＬ解析部１０２は、例えば、抽出したＳＱＬ値「31」をＳＱＬ解析後データ２０１に格納する。なお、ＳＱＬ解析部１０２は、ＳＱＬ値「31」とともに、レコードから抽出した「沼蔵太郎」，「昭和」，「30」，「9」および「12」をＳＱＬ解析後データ２０１に格納してもよい。
【００５７】
ＳＱＬ解析部１０２は、ＳＱＬ命令文から、データ操作の対象となるレコードを示す情報を抽出し、抽出した値（第１情報）をＳＱＬ解析後データ２０１としてメモリ１２等に記憶する抽出部として機能する。
【００５８】
ルール生成部１０３は、テストデータを生成するためのデータ生成ルールを生成する。ルール生成部１０３は、図２に示すように、ＤＢ定義取込部１０４およびルール学習部１０５としての機能を備える。
【００５９】
ＤＢ定義取込部１０４は、ユーザやシステム管理者等から入力されるデータベース定義を取り込み、このデータベース定義を用いて初期状態のデータ生成ルールを作成する。以下、データベース定義をＤＢ定義という場合がある。
【００６０】
図９は実施形態の一例としてのテストシステム１のＤＢ定義取込部１０４による処理を説明するための図である。
【００６１】
データベース定義は、データベースの構造を示す情報（型情報）であり、例えば、管理するデータ（列）の名称（列名）やデータ型，文字数等を規定する。データベース定義の構成等は種々変形して実施することができる。
【００６２】
図９に示す例においては、CREATE TABLE文によって示されたデータベース定義を示している。この図９に例示するＤＢ定義は、列名が“名前”，“年号”，“年”，“月”および“日”である列を有するテーブル“Birthday”を定義している（図９の符号Ｐ１参照）。
【００６３】
ＤＢ定義取込部１０４は、このようなＤＢ定義を用いてデータ生成ルールの初期値（初期データ作成ルール）を生成する。図９に示す例においては、ＤＢ定義取込部１０４は、ＤＢ定義として入力されたCREATE TABLE文を実行することで、データが格納されていない初期状態のデータ生成ルールを作成してもよい（図９の符号Ｐ２参照）。
【００６４】
作成されたデータ作成ルールは、データ生成ルール情報２０２としてメモリ１２等の所定の記憶領域に格納される。
【００６５】
ルール学習部１０５はＳＱＬ解析部１０２が抽出したＳＱＬ値を用いてデータ生成ルールを作成する。
【００６６】
図１０は実施形態の一例としてのテストシステム１におけるデータ作成ルールを説明するための図である。
【００６７】
図１０に示す例は、図４に例示したＳＱＬ解析後データ２０１の列１〜３のそれぞれに対応して設けられたデータ作成ルールに対応するものであり、データ作成ルールが、ＳＱＬ解析後データ２０１の各列として取り得る値の確率分布関数として構成されている。
【００６８】
例えば、図１０の列１には、ＳＱＬ解析部１０２の列１データ作成ルールは、確率分布ｆ１で都道府県についての辞書情報２０４から生成されることが示されている。同様に、図１０の列２には、ＳＱＬ解析部１０２の列２データ作成ルールは、確率分布ｆ２により生成されることが示され、図１０の列３には、ＳＱＬ解析部１０２の列３データ作成ルールは、確率分布ｆ３により生成されることが示されている。
【００６９】
データ作成ルールは、ＳＱＬ解析後データ２０１において列（図４に示す例では、列１〜３）として規定されたデータ種類のそれぞれに関し、そのデータ種類としてとり得る各値の出現頻度を示す。
【００７０】
データ生成ルールは、各列のデータ種類（属性）に対して、文字列であれば、頻出する文字パターンから組み立てる文字列の出現頻度、あるいは辞書に含まれる文字列の出現頻度を表す情報が設定される。また、数値であれば値の出現頻度を表す情報がデータ作成ルールとして設定される。
【００７１】
ルール学習部１０５は、これらの情報について、ＳＱＬ解析後データ２０１における出現頻度をそれぞれ求める（計数，推定）する。
【００７２】
以下に示す例においては、出現頻度を示す情報として確率分布を示す関数（確率分布関数）を用いるものとする。
【００７３】
図１１（ａ），（ｂ）は実施形態の一例としてのテストシステム１におけるデータ作成ルールを例示する図である。
【００７４】
なお、これらの図１１（ａ），（ｂ）は、例えば、図５（ｂ）に例示したＳＱＬ解析後データ２０１の列２を構成する各値（データ要素）の確率分布を示す関数ｆ２であり、ＳＱＬ解析後データ２０１の登録（更新）が行なわれる前後でのデータ作成ルールの変化を示す。
【００７５】
データ生成ルールは、ＳＱＬ解析後データ２０１に基づいて作成され、新たにＳＱＬ解析後データ２０１が追加された場合に更新される。
図１１（ａ）はＳＱＬ解析後データ２０１の更新前の列２の確率分布を示す関数ｆ２を示す。この図１１（ａ）に示す状態においては、値「40」の出現頻度は0（回）である。
【００７６】
ここで、列２に値「40」というＳＱＬ解析後データ２０１が追加されると、ルール学習部１０５は、アプリケーション５１が使用するデータベースは値「40」を扱うことがあり得ると判断し、関数ｆ２を更新する。これにより、図１１（ｂ）に示すデータ作成ルール（関数ｆ２）においては、値「40」の出現頻度が、図１１（ａ）に示したデータ作成ルール（関数ｆ２）よりも高くなっている。
【００７７】
ＳＱＬ解析後データ２０１における出現頻度が高い値は、アプリケーション５１による需要が高い値であり、アプリケーション５１よって扱われる確率も高いと推定できる。従って、ＳＱＬ解析後データ２０１における出現頻度を、アプリケーション５１により扱われる確率として取り扱ってもよい。
【００７８】
ルール学習部１０５は、例えば、辞書に含まれる文字列のＳＱＬ解析後データ２０１における出現頻度をデータ作成ルールとして用いてもよい。
【００７９】
図１２は実施形態の一例としてのテストシステム１における辞書情報２０４を例示する図である。
【００８０】
辞書情報２０４は、１種類以上の辞書カテゴリに対して、各辞書カテゴリとしてとり得る値を対応付けて構成されている。
【００８１】
図１２に例示する辞書情報２０４は、「都道府県」および「年号」の２種類の辞書カテゴリを備える。
【００８２】
例えば、辞書カテゴリ「都道府県」には、都道府県としてとり得る値である都道府県名（例えば、北海道，青森，・・・）が値として登録されている。また、辞書カテゴリ「年号」には、年号（元号）としてとり得る値である、平成，昭和，大正等が値として登録されている。
【００８３】
辞書情報２０４には、予め、一般的に辞書としてリスト化されるようなデータを所定のカテゴリ（辞書カテゴリ）毎に収集し登録することで作成してもよい。また、アプリケーション５１において取り扱われるデータ種類に応じた辞書カテゴリのデータを収集し、辞書情報２０４として登録してもよい。また、アプリケーション５１において使用するデータを制限している場合には、その制限に応じた辞書情報２０４を予め用意してもよい。
【００８４】
図１３は実施形態の一例としてのテストシステム１におけるルール学習部１０５の処理を説明するための図である。
【００８５】
ルール学習部１０５は、ＳＱＬ解析後データ２０１に登録された値に基づき、データ作成ルールに登録されるべき値を推定する。
【００８６】
図１３に示す例において、ルール学習部１０５は、ＳＱＬ解析後データ２０１に基づき、データベース内テーブルの“名前”には人名が登録されると推定し、“年号”には、複数種類の年号のうち「昭和」または「平成」が登録されると推定する。さらに、ルール学習部１０５は、年号「昭和」に対しては“年”に1〜64の範囲の自然数が登録されると推定し、特に50以上の値が多いと推定する。また、年号「平成」に対しては“年”に1〜30の範囲の自然数が登録されると推定する。
【００８７】
また、ルール学習部１０５は、“月”には1〜12の範囲の自然数が登録されると推定し、 “日”には1〜31の範囲の自然数が登録されると推定する。
【００８８】
ルール学習部１０５は、ＳＱＬ解析後データ２０１を構成する各列のそれぞれについて、各データの出現頻度の推定に辞書情報２０４を用いるか否かの判定を行なう。
【００８９】
例えば、ルール学習部１０５は、ＳＱＬ解析後データ２０１のあるデータの列属性（データ種類）が文字列データである場合において、当該列の推定に使用する辞書が予め判明している場合には、該当する辞書をデータ生成ルールに指定する。文字列は文字の並びそのものよりも文字列が持っている意味から傾向を推測する方が適当であることから、文字列に対して辞書によるルール付けを試みるのである。
【００９０】
また、ルール学習部１０５は、ＳＱＬ解析後データ２０１を構成するデータの列属性が数値データである場合には、辞書情報２０４を用いずに、値の出現頻度の関数近似を行なう。
【００９１】
さらに、ＳＱＬ解析後データ２０１のあるデータの列属性が文字列データである場合において、当該列に対応する辞書がない場合には、ルール学習部１０５は、文字パターンの推定を行なう。なお、文字パターン（規則性）の推定には既知の種々の手法を用いることができ、その具体的な説明は省略する。
【００９２】
後述するデータ生成処理部１０６は、データ作成ルールを参照して、辞書に登録された値や数値データの中からアプリケーション５１に応答するデータを選択する。
【００９３】
従って、辞書情報２０４の辞書に登録された値やルール学習部１０５によって関数近似が行なわれた数値データは、テストデータの候補となり得る候補値であると言える。
【００９４】
また、データ生成処理部１０６は、データ作成ルールを参照して、推定された文字パターンに従って作成された文字列もアプリケーション５１に応答するデータとして用いる。
【００９５】
従って、このような文字パターンに従って作成される文字列も、テストデータの候補となり得る候補値であると言える。
【００９６】
図１４はＳＱＬ解析後データ２０１を例示する図である。
【００９７】
この図１４に例示するＳＱＬ解析後データ２０１においては、列１に登録された複数の文字列が大文字３文字＋数字４文字という規則性（文字パターン）を有している。
【００９８】
このような場合において、データ生成ルールを正規表現[A-Z]{3}[0-9]{4}と表現することができる。なお、本例においては、数式的な分布関数を使用しない場合について示す。
【００９９】
また、規則性に収まらないＳＱＬ解析後データ２０１が増えた場合には、ルール学習部１０５は、この列データに関する規則性の見直しおよび更新を行なってもよい。
【０１００】
ルール学習部１０５は、ＳＱＬ解析後データ２０１と辞書情報２０４とを用いて、文字列の出現頻度の計上（計数）を行ない、この計上結果に基づいてデータ作成ルールの更新を行なう。
【０１０１】
ＳＱＬ解析後データ２０１に蓄積された値が何らかの辞書カテゴリに分類される場合、ルール学習部１０５は、辞書カテゴリに含まれる全ての値について、ＳＱＬ解析後データ２０１における値の出現頻度を求める。なお、ＳＱＬ解析後データ２０１に含まれていない値の出現頻度は、基本的に0であるものとする。
【０１０２】
以下に、図１２に例示した辞書情報２０４の列１を構成する各値について、図４に例示したＳＱＬ解析後データ２０１における出現頻度を算出する例を示す。
【０１０３】
図４に例示したＳＱＬ解析後データ２０１の列１は、図１２に例示した辞書情報２０４の都道府県の辞書に該当しているものとする。
【０１０４】
ルール学習部１０５は、辞書に含まれる値すべての値（本例においては、４７個の都道府県名）について、ＳＱＬ解析後データ２０１における出現頻度を求める。
【０１０５】
図１５は図４に例示したＳＱＬ解析後データ２０１における都道府県の辞書の各値の出現頻度を示す図であり、図１２に例示した辞書情報２０４の列１を構成する各値について、図４に例示したＳＱＬ解析後データ２０１における出現頻度をテーブル状に示している。また、図１６は図１５に示した各値のＳＱＬ解析後データ２０１における出現頻度をグラフ（分布関数）として示した図である。
【０１０６】
これらの図１５，図１６に示す例においては、ＳＱＬ解析後データ２０１においては、都道府県における「東京」，「神奈川」および「大阪」の出現頻度がいずれも1であり、「静岡」の出現頻度が2であることを示している。
【０１０７】
なお、図４に例示したＳＱＬ解析後データ２０１の列１に含まれる値の種類は、｛静岡，神奈川，東京，大阪｝であるが、ルール学習部１０５は、辞書に含まれる値すべての値について、ＳＱＬ解析後データ２０１における出現頻度を算出する。
【０１０８】
また、図１６に示すように、説明変数に辞書データの値を、また、目的変数に出現頻度をそれぞれ置いたグラフが分布関数になる。
【０１０９】
なお、ＳＱＬ解析後データ２０１の増加に伴って、出現頻度および分布関数も変化する。データ作成ルールの更新は、図１１（ａ），（ｂ）を用いて前述したデータ作成ルールの更新手法と同様に行なわれる。
【０１１０】
ルール学習部１０５は、ＳＱＬ解析部１０２によって記憶されたＳＱＬ解析後データ２０１に基づいて、アプリケーション５１において取り扱われるデータのデータ傾向（数値の範囲、頻出して記憶される文字列、または文字列の出現頻度を示す情報）を推定し、推定したデータ作成ルール（第２情報）をメモリ１２等に記憶する推定部として機能する。
【０１１１】
データ生成処理部１０６は、アプリケーション５１から送信されたＳＱＬ命令文に対して応答する応答データ（テストデータ）を生成する。
【０１１２】
データ生成処理部１０６は、データ作成ルールに基づいて、アプリケーション５１から送信されたＳＱＬ命令文の要求に応答して送信するテストデータ（応答データ）を作成する。すなわち、この応答データが、アプリケーション５１の動作テストに用いられるテストデータとして機能する。従って、データ生成処理部１０６はテストデータを生成する。
【０１１３】
データ生成処理部１０６は、データ作成ルールから推定される値を応答データとして用いる。
【０１１４】
データ生成処理部１０６は、ＳＱＬ解析後データ２０１の各列に対応するデータ作成ルール（確率分布関数）に従って値を決定することにより応答データに用いるレコードを生成する。データ生成処理部１０６は、このようなレコード生成をアプリケーション５１から要求されているレコード数分繰り返すことで応答データ（問い合わせ結果）を生成し、アプリケーション５１に対して、送信されたＳＱＬ命令文への応答として送信する。
【０１１５】
データ生成処理部１０６は、データ作成ルールを参照し、アプリケーション５１から送信されたＳＱＬ命令文に含まれる条件を満たすデータを、辞書の中から抽出することで応答データを作成する。
【０１１６】
例えば、データ生成処理部１０６は、データ作成ルールを参照して、辞書に登録された値や数値データの中からアプリケーション５１に応答するデータを選択する。
【０１１７】
また、データ生成処理部１０６は、データ作成ルールを参照して、推定された文字パターンに従って作成された文字列もアプリケーション５１に応答するデータとして用いる。
【０１１８】
図１７は実施形態の一例としてのテストシステム１のデータ生成処理部１０６によるデータ生成方法を説明するための図である。
【０１１９】
図１７においては、アプリケーション５１からＳＱＬ命令文「SELECT * FROM table WHERE "列2 " < 30」が発行された場合の応答データの生成方法を例示する。
【０１２０】
本例に示すＳＱＬ命令文においては、列２の値が30未満であることを条件としているため、列２に関して、確率分布関数ｆ２について、30未満の範囲における確率分布関数ｆ２を参照し、データを生成している（矢印Ｐ０１参照）。
【０１２１】
また、列１および列３については、データ生成処理部１０６は、データ作成ルール（確率分布関数ｆ１，ｆ３）を参照して、任意のデータを抽出し、列２から抽出したデータと組み合わせて応答データを作成する（矢印Ｐ０２，Ｐ０３参照）。
【０１２２】
このようにしてデータ生成処理部１０６によって生成される応答データは、そのデータ種類やデータ範囲において、アプリケーション５１からの問い合せ結果に対する期待を満たすものである。
【０１２３】
データ生成処理部１０６は、ルール学習部１０５によって記憶されたデータ作成ルールに基づいて、アプリケーション５１からのデータ操作命令に対応する応答を生成する生成部として機能する。
【０１２４】
問い合せ結果出力部１０７は、データ生成処理部１０６によって生成された応答データを、アプリケーションサーバ５０（アプリケーション５１）に対してＳＱＬ命令文（問い合せ）に対する応答として送信（問い合せ結果出力）する。
【０１２５】
図１８は実施形態の一例としてのテストシステム１における問い合せ結果出力部１０７の処理を説明するための図である。
【０１２６】
この図１８においては、図６において例示された、アプリケーション５１からのＳＱＬ命令文「SELECT * FROM table WHERE "年号" = '昭和' AND "年" < 60」に対する応答を行なう例を示している。
【０１２７】
すなわち、問い合せ結果出力部１０７は、年号が昭和であり、且つ、年が60未満との条件を満たすデータ生成処理部１０６によって作成された応答データを、アプリケーション５１に送信する。
【０１２８】
（Ｂ）動作
まず、上述の如く構成された実施形態の一例としてのテストシステム１における処理の概要を、図１９を参照しながら図２０に示すフローチャート（ステップＡ１〜Ａ３）に従って説明する。
【０１２９】
テストシステム１（データ生成部１００）は、アプリケーション５１からのＳＱＬ命令文に対する応答を決定するためのデータ生成ルールを備え、このデータ生成ルールに基づいてテスト対象のアプリケーション５１が期待するデータ範囲の応答データを応答する。
【０１３０】
ステップＡ１において、初期処理として、システム管理者等が、アプリケーション５１と連携するＤＢ定義を入力する（図１９の矢印Ｆ１参照）。ルール生成部１０３においてＤＢ定義取込部１０４が、入力されたＤＢ定義を取り込み、このＤＢ定義を用いて初期状態のデータ生成ルールを作成する。
【０１３１】
ステップＡ２において、データ生成部１００は、データ作成ルールの学習を行なう。すなわち、ＳＱＬ解析部１０２が、アプリケーション５１から発行されるＳＱＬ命令文を解析し（図１９の矢印Ｆ２参照）、ＳＱＬ解析後データ２０１を作成する。ＳＱＬ解析部１０２は、ＳＱＬ解析後データ２０１を用いてデータ作成ルール（データ生成ルール情報２０２）を更新する（図１９の矢印Ｆ３参照）。
【０１３２】
ステップＡ３において、データ生成部１００はアプリケーション５１への応答を行なう。  すなわち、データ生成部１００は、データ作成ルールに基づいてテストデータ（応答データ）を作成し、アプリケーション５１に応答する（図１９の矢印Ｆ４参照）。
【０１３３】
次に、実施形態の一例としてのテストシステム１におけるアプリケーション５１およびテストサーバ１０の処理を、図２１に示すフローチャート（ステップＢ１〜Ｂ５，Ｃ１〜Ｃ６）に従って説明する。なお、図２１中において、ステップＢ１〜Ｂ５はアプリケーション５１による処理を示し、ステップＣ１〜Ｃ６はテストサーバ１０（データ生成部１００）による処理を示す。
【０１３４】
ステップＣ１において、データ生成部１００はアプリケーション５１から接続要求が発行されるのを待つ。
【０１３５】
ステップＢ１において、アプリケーション５１がテストサーバ１０に対して接続要求を発行し、この接続要求がテストサーバ１０に到達する。システム管理者等はＤＢ定義を入力し、この入力されたＤＢ定義はＤＢ定義情報２０３に保存される。
【０１３６】
ＤＢ定義取込部１０４は、ＤＢ定義情報２０３からＤＢ定義を読み出し、この読み出したＤＢ定義を入力して、データ作成ルールの初期値（初期データ作成ルール）を作成する。
【０１３７】
ステップＢ３では、アプリケーション５１によって繰り返し行われる処理に対して、ステップＢ３，Ｂ４の制御を繰り返し実施するループ処理を開始する。
【０１３８】
ステップＢ３では、アプリケーション５１は、テストサーバ１０に対してＳＱＬ命令文を発行する。
【０１３９】
ステップＢ４では、ステップＢ３において発行したＳＱＬ命令文に対するテストサーバ１０からの応答（応答データ，テストデータ）を受信する。
【０１４０】
その後、制御がステップＢ５に進む。なお、ステップＢ５では、ステップＢ２に対応するループ端処理が実施される。ここで、アプリケーション５１による繰り返し処理が完了すると、アプリケーション５１による処理が終了する。
【０１４１】
一方、テストサーバ１０においては、ＳＱＬ取得部１０１が、ステップＢ３においてアプリケーション５１が発行したＳＱＬ命令文を受信する。
【０１４２】
ステップＣ３において、ＳＱＬ解析部１０２が、受信したＳＱＬ命令文から処理内容と値とを抽出し、ＳＱＬ解析後データ２０１に格納する。なお、本処理の詳細は、図２２を用いて後述する。
【０１４３】
ステップＣ４において、ルール学習部１０５が、ＳＱＬ解析後データ２０１と辞書情報２０４とに基づき、データ作成ルールを更新する。なお、本処理の詳細は、図２３を用いて後述する。
【０１４４】
ステップＣ５において、データ生成処理部１０６が、データ作成ルールを用いてアプリケーション５１に対する応答データ（テストデータ，問い合せ結果）を作成する。
【０１４５】
ステップＣ６において、問い合せ結果出力部１０７が、ステップＣ５において作成されたテストデータ（ＳＱＬ命令文に対する問い合せ結果）をアプリケーション５１に応答する。その後、データ生成部１００による処理を終了する。
【０１４６】
次に、実施形態の一例としてのテストシステム１におけるＳＱＬ解析部１０２の処理を、図２２に示すフローチャート（ステップＤ１〜Ｄ３）に従って説明する。
【０１４７】
ステップＤ１において、ＳＱＬ解析部１０２は、アプリケーション５１から受信したＳＱＬ命令文から、ＤＢ操作の対象となるレコードを抽出する。
【０１４８】
ステップＤ２において、ＳＱＬ解析部１０２は、ＤＢ操作の対象レコードの値、または値の範囲を抽出する。
【０１４９】
ステップＤ３において、ＳＱＬ解析部１０２は、抽出した情報をＳＱＬ解析後データ２０１に格納（蓄積）し、処理を終了する。
【０１５０】
次に、実施形態の一例としてのテストシステム１におけるルール学習部１０５の処理を、図２３に示すフローチャート（ステップＥ１〜Ｅ８）に従って説明する。
【０１５１】
ステップＥ１では、ＳＱＬ解析後データ２０１に含まれる全ての列に対して、ステップＥ７までの制御を繰り返し実行するループ処理を開始する。
【０１５２】
また、ステップＥ２では、全てのＳＱＬ解析後データ２０１に対して、ステップＥ３〜Ｅ６までの制御を繰り返し実行するループ処理を開始する。
【０１５３】
ステップＥ３において、ルール学習部１０５は、ＳＱＬ解析後データ２０１を構成するデータ列について、データの出現頻度の推定に辞書情報２０４を用いるか否かの判定を行なう。すなわち、ルール学習部１０５は、判定対象の列の値が辞書情報２０４におけるいずれかの辞書パターンに該当するかを判断する。
【０１５４】
確認の結果、辞書パターンに該当する場合、すなわち、判定に辞書情報２０４を用いる場合（ステップＥ３のＹＥＳルート参照）、ステップＥ４に移行する。ステップＥ４においては、ルール学習部１０５は、列を構成する各値（データ列）と辞書とを照合し、辞書に含まれる各値について、ＳＱＬ解析後データ２０１の列における出現頻度を計上する。
【０１５５】
一方、ステップＥ３における確認の結果、辞書パターンに該当しない場合、すなわち、判定に辞書情報２０４を用いない場合（ステップＥ３のＮＯルート参照）、ステップＥ５に移行する。
【０１５６】
ステップＥ５において、ルール学習部１０５は、列を構成する値（データ列）の属性が数値データである場合には、値の出現頻度の関数近似を行なう。また、列を構成する値（データ列）の属性が文字データである場合には、文字パターンの推定を行なう。ルール学習部１０５は、例えば、特定の文字について次にどのような文字が出現するか推定してもよい。
【０１５７】
その後、ステップＥ６において、ルール学習部１０５は、計上された出現頻度に基づいてデータ作成ルールを更新する。
【０１５８】
ステップＥ７においては、ステップＥ２に対応するループ端処理が実施される。ここで、全てのＳＱＬ解析後データ２０１についての処理が完了すると、制御がステップＥ８に進む。
【０１５９】
ステップＥ８においては、ステップＥ１に対応するループ端処理が実施される。ここで、全てのデータ列についての処理が完了すると、本フローが終了する。
【０１６０】
（Ｃ）効果
このように、実施形態の一例としてのテストシステム１によれば、データ生成処理部１０６が、ルール学習部１０５が作成したデータ作成ルールに基づいて、アプリケーション５１から送信されるＳＱＬ命令文に応答する応答データ（テストデータ）を作成する。そして、問い合せ結果出力部１０７が、この作成された応答データをアプリケーション５１に応答することで、アプリケーション５１に対応するデータベースを作成することなく、アプリケーション５１からのＳＱＬに応答することができる。
【０１６１】
すなわち、アプリケーション５１の動作テストに好適なテストデータを容易に作成できる。
【０１６２】
ルール学習部１０５が作成したデータ作成ルールに基づいて応答データを作成することにより、アプリケーション５１の期待を満たす応答データを作成することができる。
【０１６３】
また、ルール学習部１０５が、アプリケーション５１が発行するＳＱＬ命令文からＳＱＬ解析部１０２が抽出したＳＱＬ値を用いてデータ生成ルールを作成する。これにより、アプリケーション５１が発行するＳＱＬに応じた応答データを作成することができる。また、ＳＱＬ取得部１０１がアプリケーション５１から発行されるＳＱＬ命令文を順次取得し、ＳＱＬ解析部１０２によりＳＱＬ解析後データ２０１にＳＱＬ値が蓄積される。これにより、ルール学習部１０５により作成されるデータ生成ルールの精度が向上し、アプリケーション５１の要求に合った応答データを応答することができる。
【０１６４】
なお、本テストシステム１の初期状態においては、ＳＱＬ解析後データ２０１におけるＳＱＬ値の登録数が少ないので、データ生成処理部１０６は、辞書情報２０４等からランダムに抽出したデータを応答データしてアプリケーション５１に応答してもよい。
【０１６５】
特定のデータへのアクセスの集中や頻出データパターンなど、想定されるアプリケーション５１の運用の特徴を反映した応答データを自動的に作成できる。これにより、人手でデータベースを作成するよりもテスト対象であるアプリケーション５１の処理内容に応じた適切なテストを実現できる。
【０１６６】
新規なアプリケーション５１の導入により、データベースの特徴が変化するような場合においても、変化後の環境下での運用を想定したテストを実現できる。
【０１６７】
大量のデータを応答することもできるため、性能の観点からもテストができる。
【０１６８】
アプリケーション５１のテストに必要なデータをデータベースに格納する必要がないので、テストに使用する資源（ハードウェア資源およびソフトウェア資源）を節約できる。
【０１６９】
新規開発のアプリケーション５１が今までにないデータにアクセスしようとするような動作についても、それに関連するデータを用意することができる。
【０１７０】
（Ｄ）その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１７１】
例えば、図１に例示するテストシステム１においては、アプリケーションサーバ１０とテストサーバ１０とを備え、アプリケーションサーバ５０においてアプリケーション５１を実行し、テストサーバ１０においてデータ生成部１００としての機能を実現しているが、これに限定されるものではない。例えば、アプリケーションサーバ５０にデータ生成部１００としての機能も備えることで、一つのハードウェア上でアプリケーション５１とデータ生成部１００との機能を実現してもよい。
【０１７２】
また、データ生成部１００に備えられるＳＱＬ取得部１０１，ＳＱＬ解析部１０２，ルール生成部１０３，データ生成処理部１０６および問い合せ結果出力部１０７の少なくとも一部の機能を、テストサーバ１０とは別のハードウェアに備えることで機能を分散させてもよい。これによりテストサーバ１０の負荷を軽減することができる。
【０１７３】
ルール学習部１０５は、ルールの推定結果に基づき、データ作成ルールに対するデータの追加登録を行なってもよい。  
ルール学習部１０５は、上述した推定結果に基づき、例えば、本テストサーバ１０に辞書情報２０４として予め登録され辞書から人名として用いられる文字列を１つ以上抽出し、データ作成ルールの“名前”に対応付けてこの抽出した文字列を登録してもよい。
【０１７４】
ルール学習部１０５は、ＳＱＬ文から抽出されたＳＱＬ解析後データ２０１を辞書情報２０４から抽出したデータを用いて補完してもよい。
【０１７５】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１７６】
（Ｅ）付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１７７】
（付記１）
アプリケーションのデータ操作命令に対応する応答を行なう情報処理装置において、
データ操作命令を受信する受信部と、
前記データ操作命令からデータ操作の対象となるレコードを示す情報を抽出し、第１情報に記憶させる抽出部と、
前記第１情報に基づいてデータ傾向を推定し、推定した前記データ傾向を第２情報に記憶させる推定部と、
前記第２情報に基づいてデータ操作命令に対応する応答を生成する生成部と、
を備える。
【０１７８】
（付記２）
前記第２情報が、前記応答として用いられる複数の候補値の前記第１情報における出現頻度を示す
ことを特徴とする、付記１記載の情報処理装置。
【０１７９】
（付記３）
前記第２情報が、辞書情報に含まれる複数の値のそれぞれについての前記第１情報における出現頻度を示す
ことを特徴とする、付記１記載の情報処理装置。
【０１８０】
（付記４）
アプリケーションのデータ操作命令に対応する応答を行なう情報処理装置において、
データ操作命令を受信し、
前記データ操作命令から、データ操作の対象となるレコードを示す情報を抽出し、第１情報に記憶し、
前記第１情報に基づいてデータ傾向を推定し、推定した前記データ傾向を第２情報に記憶し、
前記第２情報に基づいて、データ操作命令に対応する応答を生成する、
処理をプロセッサに実行させる制御プログラム。
【０１８１】
（付記５）
前記第２情報が、前記応答として用いられる複数の候補値の前記第１情報における出現頻度を示す
ことを特徴とする、付記４記載の制御プログラム。
【０１８２】
（付記６）
前記第２情報が、辞書情報に含まれる複数の値のそれぞれについての前記第１情報における出現頻度を示す
ことを特徴とする、付記４記載の制御プログラム。
【０１８３】
（付記７）
アプリケーションのデータ操作命令を受信する処理と、
前記データ操作命令からデータ操作の対象となるレコードを示す情報を抽出し、第１情報に記憶する処理と、
前記第１情報に基づいてデータ傾向を推定し、推定した前記データ傾向を第２情報に記憶させる処理と、
前記第２情報に基づいてデータ操作命令に対応する応答を生成する処理と、
を備える、情報処理方法。
【０１８４】
（付記８）
前記第２情報が、前記応答として用いられる複数の候補値の前記第１情報における出現頻度を示す
ことを特徴とする、付記７記載の情報処理方法。
【０１８５】
（付記９）
前記第２情報が、辞書情報に含まれる複数の値のそれぞれについての前記第１情報における出現頻度を示す
ことを特徴とする、付記７記載の情報処理方法。
【符号の説明】
【０１８６】
１    テストシステム
１０    テストサーバ
１１    ＣＰＵ
１２    メモリ
１３    記憶装置
１４    ネットワークインタフェース
１５    バス
５０    アプリケーションサーバ
５１    アプリケーション
１００    データ生成部
１０１    ＳＱＬ取得部
１０２    ＳＱＬ解析部
１０３    ルール生成部
１０４    ＤＢ定義取込部
１０５    ルール学習部
１０６    データ生成処理部
１０７    問い合せ結果出力部
２０１    ＳＱＬ解析後データ
２０２    データ生成ルール情報
２０３    ＤＢ定義情報
２０４    辞書情報
【図１】
2019159778.tif 000003
【図２】
2019159778.tif 000004
【図３】
2019159778.tif 000005
【図４】
2019159778.tif 000006
【図５】
2019159778.tif 000007
【図６】
2019159778.tif 000008
【図７】
2019159778.tif 000009
【図８】
2019159778.tif 000010
【図９】
2019159778.tif 000011
【図１０】
2019159778.tif 000012
【図１１】
2019159778.tif 000013
【図１２】
2019159778.tif 000014
【図１３】
2019159778.tif 000015
【図１４】
2019159778.tif 000016
【図１５】
2019159778.tif 000017
【図１６】
2019159778.tif 000018
【図１７】
2019159778.tif 000019
【図１８】
2019159778.tif 000020
【図１９】
2019159778.tif 000021
【図２０】
2019159778.tif 000022
【図２１】
2019159778.tif 000023
【図２２】
2019159778.tif 000024
【図２３】
2019159778.tif 000025