(57)【特許請求の範囲】
【請求項１】
テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、当該データの属性を示すデータ項目の情報と、前記業務アプリケーションによって用いられるデータを記憶するデータベースに含まれるテーブルの項目間の参照関係を示す主キー及び外部キー、又は、前記業務アプリケーションのテストデータを前記データベースの何れから取得するかが利用者によって設定されたＳＱＬ文とを取得するデータ情報取得部と、
前記データの項目ごとに、前記データ情報取得部によって取得されたデータ項目の情報と、前記主キー及び前記外部キー、又は、前記ＳＱＬ文とのうち少なくとも一方に応じたテストデータを生成するデータ生成部と、
を有することを特徴とするデータ生成装置。
【請求項２】
テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、前記テスト対象の業務アプリケーションによって用いられるデータを記憶するデータベースから当該データのデータ項目の情報と、テーブル定義又は前記業務アプリケーションのテストデータを前記データベースの何れから取得するかが利用者によって設定されたＳＱＬ文とを取得するデータ情報取得部と、
前記データの項目ごとに、前記テーブル定義又は前記ＳＱＬ文によって参照関係が定義されたテーブル間の対応するデータ項目に対応するデータが登録されていない場合、当該参照関係が定義されたテーブル間の参照情報として、前記データ情報取得部によって取得されたデータ項目の情報に応じたデータを生成するデータ生成部と、
を有することを特徴とするデータ生成装置。
【請求項３】
テスト対象の業務アプリケーションにおける画面のソースコードから当該画面に入力されるデータのデータ項目の情報を取得し、前記テスト対象の業務アプリケーションによって用いられるデータを記憶するデータベースから利用者によって設定されたＳＱＬ文に対応する、データ間の参照関係を示す参照情報を取得するデータ情報取得部と、
前記データの項目ごとに、前記データ情報取得部によって取得されたデータ項目の情報及び参照情報の参照関係のうち少なくとも一方に応じたテストデータを生成するデータ生成部と、
を有することを特徴とするデータ生成装置。
【請求項４】
テスト内容を受け付ける受付部と、
前記受付部によって受付けられたテスト内容が負荷テストであった場合に、テスト対象の業務アプリケーションによって用いられるデータを記憶するデータベースから当該データのデータ項目の情報と、テーブル定義又は利用者によって設定されたＳＱＬ文に対応する、データ間の参照関係を示す参照情報とを取得するデータベース情報取得部と、
前記受付部によって受付けられたテスト内容が入力テスト又は表示テストであった場合に、前記テスト対象の業務アプリケーションにおける画面のソースコードから当該画面に入力されるデータのデータ項目の情報を取得する画面情報取得部と
前記データの項目ごとに、前記データベース情報取得部又は前記画面情報取得部によって取得されたデータ項目の情報、参照情報の参照関係のうち少なくとも一方に応じたテストデータを生成するデータ生成部と、
を有することを特徴とするデータ生成装置。
【請求項５】
テスト対象の業務アプリケーションによって用いられるデータを記憶するデータベースから、前記テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、
当該データの属性を示すデータ項目の情報と、当該データベースに含まれるテーブルの項目間の参照関係を示す主キー及び外部キー、又は、前記業務アプリケーションのテストデータを前記データベースの何れから取得するかが利用者によって設定されたＳＱＬ文とを取得するデータ情報取得手順と、
前記データの項目ごとに、前記データ情報取得手順によって取得されたデータ項目の情報と、前記主キー及び前記外部キー、又は、前記ＳＱＬ文とのうち少なくとも一方に応じたテストデータを生成するデータ生成手順と、
をコンピュータに実行させることを特徴とするデータ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ生成装置及びデータ生成プログラムに関する。
【背景技術】
【０００２】
従来、ＷｅｂブラウザやＧＵＩ（Graphical  User  Interface）を利用した業務アプリケーションプログラムの開発においては、開発した業務アプリケーションプログラムに係るテストが行われる。このようなテストでは、テストを実行する担当者が、テキストエディタ（text  editor）などを用いてテスト内容に応じたテストデータを作成し、作成したテストデータを用いて各種テストが行われる。
【０００３】
例えば、担当者は、業務アプリケーションの画面から入力する入力値のテストデータを作成し、作成した入力値のテストデータを用いて、業務アプリケーションが入力値に対して想定通りに動作するか否かをテストする。また、担当者は、業務アプリケーションの画面に表示される表示値のテストデータを作成し、作成した表示値のテストデータを用いて、表示される値が想定通りであるか否かをテストする。また、担当者は、大量のテストデータを用いて、業務アプリケーションの処理が遅滞することなく実行されるか否かをテストする。
【０００４】
ここで、業務アプリケーションプログラムのテストに用いられるテストデータを作成するためのいくつかの技術が知られている。例えば、テストデータを作成するための技術としては、既存のテストデータに類似したテストデータを作成する技術が知られている。また、例えば、既存のデータベースからデータの定義情報やキー情報を元に、データの参照関係の整合性を維持したテストデータを作成する技術が知られている。また、例えば、データベースに記憶されたテーブル間の対応関係を元に、データの参照関係の整合性を維持したテストデータを作成する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１４０１６６号公報
【特許文献２】特開２００８−２２６０５６号公報
【特許文献３】特開２００９−９９１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、データ間の整合性が維持されたテストデータを容易に作成することができないという課題があった。例えば、上述した従来技術では、既存のテストデータとは類似しないテストデータを作成することが困難であり、新たな参照関係の整合性を維持したテストデータを容易に作成することができない。また、例えば、上述した従来技術では、データに関する定義情報やキー情報、或いはテーブル間の対応関係に関する情報がない場合にはテストデータを作成することができず、データ間の参照関係の整合性が維持されたテストデータを容易に作成することができない。
【０００７】
そこで、本開示の技術は、上述した従来技術の問題に鑑みて、データ間の整合性が維持されたテストデータを容易に作成することを可能にするデータ生成装置及びデータ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、開示の装置は、データ情報取得部とデータ生成部とを有する。データ情報取得部は、テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、当該データの属性を示すデータ項目の情報と、前記業務アプリケーションによって用いられるデータに関するデータ間の参照関係を示す参照情報を取得する。データ生成部は、前記データの項目ごとに、前記データ情報取得部によって取得されたデータ項目の情報及び参照情報の参照関係のうち少なくとも一方に応じたテストデータを生成する。
【発明の効果】
【０００９】
開示の装置は、データ間の整合性が維持されたテストデータを容易に作成することを可能にする。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るテストデータ生成装置の構成の一例を示す図である。
【図２】図２は、実施例１に係る表示装置によって表示出力されるＧＵＩの第１の例を示す図である。
【図３】図３は、実施例１に係るデータベース情報取得部によって取得される情報を説明するための図である。
【図４】図４は、実施例１に係るデータ種別の一例を示す図である。
【図５Ａ】図５Ａは、実施例１に係る参照情報の一例を示す図である。
【図５Ｂ】図５Ｂは、実施例１に係るテストデータ構造作成制御部による処理の一例を説明するための図である。
【図５Ｃ】図５Ｃは、実施例１に係るテストデータ構造入力受付部によって受付けられるＳＱＬ文の一例を示す図である。
【図６】図６は、実施例１に係るテストデータ生成部によって生成されるテストデータの第１の例を示す図である。
【図７】図７は、実施例１に係る業務アプリケーションの画面の一例を説明するための図である。
【図８】図８は、実施例１に係る画面処理のソースコードの一例を示す図である。
【図９】図９は、実施例１に係る入力チェックの外部定義の一例を示す図である。
【図１０】図１０は、実施例１に係るフレームワークのチェック定義の一例を示す図である。
【図１１】図１１は、実施例１に係る表示装置によって表示出力されるＧＵＩの第２の例を示す図である。
【図１２Ａ】図１２Ａは、実施例１に係るテストデータ生成部によって生成されるテストデータの第２の例を示す図である。
【図１２Ｂ】図１２Ｂは、実施例１に係るテストデータ生成部によって生成されるテストデータの第３の例を示す図である。
【図１３】図１３は実施例１に係るテストデータ生成装置によって表示されるテストデータ検索画面の一例を示す図である。
【図１４】図１４は、実施例１に係るテストデータ生成装置によるデータベースからのデータ種別の取得処理の手順を説明するためのフローチャートである。
【図１５】図１５は、実施例１に係るテストデータ生成装置によるデータ項目の参照関係の決定処理の手順を説明するためのフローチャートである。
【図１６】図１６は、実施例１に係るテストデータ生成装置によるテストデータ生成処理の第１の手順を説明するためのフローチャートである。
【図１７】図１７は、実施例１に係るテストデータ生成装置によるテストデータ生成処理の第２の手順として関連データの作成を説明するためのフローチャートである。
【図１８】図１８は、実施例１に係るテストデータ生成装置によるテストデータ生成処理の第３の手順を説明するためのフローチャートである。
【図１９】図１９は、実施例１に係るテストデータ生成装置による画面処理実装のソースコードからのデータ種別の取得処理の手順を説明するためのフローチャートである。
【図２０】図２０は、実施例１に係るテストデータ生成装置によるフレームワーク入力チェック定義からのデータ項目ごとの情報の取得処理の手順を説明するためのフローチャートである。
【図２１】図２１は、実施例１に係るテストデータ生成装置によるテストデータ生成処理の第４の手順を説明するためのフローチャートである。
【図２２】図２２は、実施例２に係るデータ生成プログラムを実行するコンピュータを説明するための図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本願の開示するデータ生成装置及びデータ生成プログラムの実施例を詳細に説明する。なお、本願の開示するデータ生成装置及びデータ生成プログラムは、以下の実施例により限定されるものではない。
【実施例１】
【００１２】
実施例１に係るテストデータ生成装置は、業務アプリケーションの開発に際して実行されるプログラムテストに用いられるテストデータを生成する。具体的には、実施例１に係るテストデータ生成装置は、テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、当該データの属性を示すデータ項目の情報を取得する。そして、実施例１に係るテストデータ生成装置は、業務アプリケーションによって用いられるデータに関するデータ間の参照関係を示す参照情報を取得する。そして、実施例１に係るテストデータ生成装置は、データの項目ごとに、データの属性及び参照情報の参照関係のうち少なくとも一方に応じたテストデータを生成する。
【００１３】
例えば、実施例１に係るテストデータ生成装置は、データベースの定義又は画面処理を実装するソースコードから、テストデータを生成するデータ項目ごとにデータの属性を示すデータ項目の情報を取得する。そして、実施例１に係るテストデータ生成装置は、データ項目ごとに、テーブルの対応関係、或いは、ユーザによって設定されたＳＱＬ（Structured  Query  Language）文からデータ間の参照関係を取得する。そして、実施例１に係るテストデータ生成装置は、データ項目ごとに、データの属性に応じたテストデータや、参照関係に応じたテストデータなどを生成する。従って、実施例１に係るテストデータ生成装置は、例えば、既存のテストデータとは類似しないテストデータを作成することができる。また、実施例１に係るテストデータ生成装置は、データに関する定義情報やキー情報、或いはテーブル間の対応関係に関する情報がない場合であっても、ＳＱＬ文を用いることでテストデータを作成することができる。その結果、実施例１に係るテストデータ生成装置は、データ間の整合性が維持されたテストデータを容易に作成することを可能にする。
【００１４】
ここで、まず、実施例１に係るテストデータ生成装置の構成を説明する。図１は、実施例１に係るテストデータ生成装置１００の構成の一例を示す図である。図１に示すように、テストデータ生成装置１００は、入力装置１１０と、表示装置１２０と、テストデータ構造作成制御部１３０と、データ情報取得部１４０と、テストデータ構造入力受付部１５０と、テストデータ作成制御部１６０と、データベースデータ取得部１７０と、テストデータ生成部１８０と、関連データ生成部１９０とを有する。そして、テストデータ生成装置１００は、図１に示すように、業務アプリケーションが実行される端末２００及び各種データが記憶されたデータベース３００に接続される。そして、テストデータ生成装置１００は、図１に示すように、データベース３００によって記憶された各種データ及び端末２００によって記憶された業務アプリケーションのソースファイル／データの定義ファイル２０１などを用いて、負荷テスト用テストデータ１８１、表示テスト用テストデータ１８２、入力テスト用テストデータ１８３及び関連データ１９１などを生成する。
【００１５】
端末２００は、例えば、開発フレームワークを用いて作成された業務アプリケーションのソースファイル及び開発フレームワークの定義ファイルなどを記憶する。そして、端末２００は、記憶した業務アプリケーションに係る各種処理を実行する。データベース３００は、例えば、端末２００によって実行される業務アプリケーションに用いられる各種データ及びテーブル間の参照関係などを示すリレーショナルデータベースなどを記憶する。
【００１６】
負荷テスト用テストデータ１８１は、業務アプリケーションの処理が遅滞することなく実行されるか否かをテストするためのテストデータである。表示テスト用テストデータ１８２は、業務アプリケーションの画面に表示される値が想定通りであるか否かをテストするためのテストデータである。入力テスト用テストデータ１８３は、業務アプリケーションの画面から入力された入力値に対して業務アプリケーションが想定通りに動作するか否かをテストするためのテストデータである。なお、関連データ１９１については後述する。
【００１７】
入力装置１１０は、例えば、キーボード、マウスなどであり、ユーザによる種々の情報の入力処理を受付ける。一例を挙げると、入力装置１１０は、テスト内容を示す情報や、テストデータを生成する際の参照先を示すＳＱＬ文などの入力処理を受付ける。表示装置１２０は、例えば、ディスプレイなどであり、後述するテストデータ構造作成制御部１３０による制御の元、ユーザに対して処理結果を表示出力する。一例を挙げると、表示装置１２０は、ユーザに対してＧＵＩを介してテストデータの生成過程を表示出力する。
【００１８】
図２は、実施例１に係る表示装置１２０によって表示出力されるＧＵＩの第１の例を示す図である。例えば、表示装置１２０は、図２に示すように、「ＰＴ（Program  Test）データ生成ツール」ウィンドウを表示出力する。表示装置１２０によって表示出力される「ＰＴ（Program  Test）データ生成ツール」ウィンドウは、図２に示すように、「生成データ設定」タブと「ＤＢ接続設定」タブとを有する。「生成データ設定」タブは、テストデータを生成する際の設定事項が表示されるタブであり、テストデータの生成対象となるデータに関する情報が表示される。
【００１９】
「生成データ設定」タブは、図２に示すように、「生成対象」、「テーブル名」、「日本語名」及び「生成データ件数」が対応付けられた上側のウィンドウと、「カラムＮｏ」、「項目名」、「タイプ」、「桁数」、「日本語名」、「データ生成方法」、「データ桁数」及び「データ生成パターン」が対応付けられた下側のウィンドウとを有する。上側のウィンドウにおいては、テストデータの生成対象となるデータが含まれるテーブルに関する情報が表示される。例えば、上側のウィンドウにおいては、図２に示すように、「テーブル名：Ｍ＿ＳＨＡＩＮ、日本語名：社員マスタ（共通）」が表示される。また、上側のウィンドウにおける「生成対象」は、ユーザがテストデータの生成対象となるテーブルを選択する領域である。また、「生成データ件数」は、生成するテストデータの件数がユーザによって入力される領域である。
【００２０】
下側のウィンドウにおいては、上側のウィンドウにおいて選択されたテーブルに含まれるデータの項目ごとの情報が表示される。例えば、下側のウィンドウにおいては、図２に示すように、「カラムＮｏ：１、項目名：ＳＯＳＨＩＫＩＺＵ＿ＣＤ、タイプ：ｖａｒｃｈａｒ、桁数：６、日本語名：組織図コード、データ生成方法：全角日本語、データ桁数：６」などが表示される。上記した情報は、上側のウィンドウの「テーブル名：Ｍ＿ＳＥＤＡＩ、日本語名：世代管理マスタ（共通）」がユーザによって選択された場合に、選択されたテーブルに含まれるデータの項目について下側のウィンドウに表示される。なお、下側のウィンドウにおける項目ごとの情報の詳細については、後述する。また、「ＤＢ接続設定」タブは、テストデータ生成装置１００とデータベース３００との接続設定が表示されるタブである。
【００２１】
図１に戻って、テストデータ構造作成制御部１３０は、作成するテストデータの構造決定に係る各種処理を制御する。具体的には、テストデータ構造作成制御部１３０は、まず、ユーザによって指定されたテスト内容に基づいて、データの項目ごとの情報の取得先を選択する。より具体的には、テストデータ構造作成制御部１３０は、入力装置１１０を介して入力されたテスト内容の情報に基づいて、データの項目ごとの情報の取得先としてデータベース３００又は端末２００のどちらか一方を選択する。
【００２２】
例えば、テストデータ構造作成制御部１３０は、テスト内容が負荷テストである旨の情報を受付けると、取得先としてデータベース３００を選択し、データベース３００よって記憶されたテーブルの情報からデータの項目ごとの情報を取得するように後述するデータ情報取得部１４０のデータベース情報取得部１４１を制御する。また、テストデータ構造作成制御部１３０は、テスト内容が表示テスト又は入力テストである旨の情報を受付けると、取得先として端末２００を選択し、端末２００よって記憶された業務アプリケーションのソースコード又はフレームワークの定義ファイルからデータの項目ごとの情報を取得するように後述するデータ情報取得部１４０の画面情報取得部１４２を制御する。
【００２３】
そして、テストデータ構造作成制御部１３０は、データ情報取得部１４０のデータベース情報取得部１４１又は画面情報取得部１４２によって取得されたデータの項目ごとの情報を反映させた情報を内部メモリに記憶して、記憶した情報に基づいてウィンドウを表示装置１２０に表示させるように制御する。以下では、まず、データベース３００からデータ項目の情報を取得して、負荷テスト用テストデータを生成する場合について説明した後に、端末２００からデータ項目の情報を取得して、入力テスト用テストデータを生成する場合について説明する。
【００２４】
データ情報取得部１４０は、図１に示すように、データベース情報取得部１４１と、画面情報取得部１４２とを有し、テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、当該データの属性を示すデータ項目の情報と、前記業務アプリケーションによって用いられるデータに関するデータ間の参照関係を示す参照情報を取得する。データベース情報取得部１４１は、テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、当該データの属性を示すデータ項目の情報を取得する。具体的には、データベース情報取得部１４１は、テストデータ構造作成制御部１３０の制御の元、テスト対象の業務アプリケーションによって用いられるデータに関する情報を記憶するデータベース３００から、当該データのテーブル情報を取得する。そして、データベース情報取得部１４１は、テストデータの生成対象となるテーブルがユーザによって選択されると、選択されたテーブルに含まれるデータの項目ごとの情報を取得する。
【００２５】
図３は、実施例１に係るデータベース情報取得部１４１によって取得される情報を説明するための図である。図３においては、データベース情報取得部１４１によってデータの項目ごとの情報が取得された後の状態について示す。例えば、データベース情報取得部１４１は、まず、図３の領域（２）に示す「テーブル名：Ｍ＿ＳＨＡＩＮ、日本語名：社員マスタ（共通）」などのテーブル情報をデータベース３００から取得する。そして、図３の領域（１）に示すように、ユーザによってテーブル情報から「テーブル名：Ｍ＿ＳＥＤＡＩ、日本語名：世代管理マスタ（共通）」のテーブルが選択されると、データベース情報取得部１４１は、図３の領域（３）及び（４）に示すように、選択された「テーブル名：Ｍ＿ＳＥＤＡＩ、日本語名：世代管理マスタ（共通）」のテーブルに含まれるデータの項目ごとに、当該データの属性を示すデータ項目の情報をデータベース３００から取得する。例えば、データベース情報取得部１４１は、「項目名：ＳＯＳＨＩＫＩＺＵ＿ＣＤ」のデータ種別「タイプ：ｖａｒｃｈａｒ、桁数：６、日本語名：組織図コード」を取得する。さらに、データベース情報取得部１４１は、項目ごとにデータの参照関係をデータベース３００から取得する。図３の領域（５）にプルダウン方式で示されたデータ生成方法は、データベース情報取得部１４１によって取得されたデータ項目の情報及びデータの参照関係に基づいて、テストデータ構造作成制御部１３０によって表示する内容が決定される。また、図３の領域（６）に示すデータ生成パターンは、図３の領域（５）に示すプルダウンからユーザによって選択されたデータ生成方法に基づいて、参照先の情報が表示される。
【００２６】
ここで、図３の領域（４）〜（６）に設定される内容の詳細について説明する。図３の領域（４）に示す「タイプ」とは、データ項目のタイプを意味し、例えば、数値、文字、日付などがある。すなわち、図３の「タイプ」は、各項目のデータがどのような文字列で作成されるかを示したものであり、例えば、「ｖａｒｃｈａｒ」は、データが日本語などの文字によって生成されることを示す。また、図３の「ｉｎｔ」は、データが数値によって生成されることを示し、「ｄａｔｅｔｉｍｅ」はデータが日付形式によって生成されることを示す。次に「桁数」とは、データ項目の最大の桁数を意味する。例えば、桁数「８」は８桁以下のデータで作成される文字列であることを示す。次に「日本語名」とはデータ項目の名称を日本語で表した名称を示す。これらの文字列の情報は、データベース３００に記憶される定義情報から取得される。
【００２７】
図３の領域（５）に示すデータ生成方法は、タイプの情報及びデータベース情報取得部１４１によって取得された情報に基づいて、すなわち、図３の領域（４）に示された情報に基づいて、テストデータ構造作成制御部１３０によってデータ種別が設定される。図４は、実施例１に係るデータ種別の一例を示す図である。例えば、データ生成方法には、データ項目の情報に基づいて、図４に示されるデータ種別の何れかが自動選択されて設定される。例えば、「タイプ」が「ｄａｔａｔｉｍｅ」で、桁数が「８」の場合には、データ種別として「日付型＿日付（ＹＹＹＹＭＭＤＤ形式）」が選択される。別の例として、「タイプ」が「ｖａｒｃｈａｒ」で、桁数が「６」の場合、データ種別として「文字型＿半角＆数字」が選択される。ここで、データ種別を選択する基準として、データタイプの日本語名がどの様な文字列で表現されているかによって判断してもよい。例えば、データタイプの日本語名が「〜コード」の文字列で表される場合は、必要とされるテストデータが数値コードであると判断して「文字型＿半角＆数字」を選択する。
【００２８】
一方、参照関係を示す参照情報がデータベース３００に記憶されている場合には、テストデータ構造作成制御部１３０は、以下に記載するように、データ生成方法とデータ生成パターンとを設定する。図５Ａは、実施例１に係る参照情報の一例を示す図である。図５Ａにおいては、主キー（ＰＫ：Primary  Key）と外部キー（ＦＫ：Foreign  Key）とにより参照関係が示された参照情報を示す。例えば、図５Ａに示す商品データを対象としたテストデータを生成する際に、「項目：カテゴリコード」のデータは、参照先のカテゴリデータにおけるカテゴリコードを利用するようにデータ生成方法及びデータ生成パターンが設定される。
【００２９】
図５Ｂは、実施例１に係るテストデータ構造作成制御部１３０による処理の一例を説明するための図である。図５においては、「項目：カテゴリコード（ＣＡＴＥＧＯＲＹ＿ＣＤ）」を対象とした場合のウィンドウの一部を示す。図５Ａに示す参照情報がデータベース３００に記憶されており、データベース情報取得部１４１によって取得されると、テストデータ構造作成制御部１３０は、図５Ｂに示すように、データ生成方法を「外部参照」と設定する。そして、テストデータ構造作成制御部１３０は、図５Ｂに示すように、カテゴリデータのカテゴリコードが参照先である旨の情報である「Ｍ＿ＣＡＴＥＧＯＲＹ．ＣＡＴＥＧＯＲＹ＿ＣＤ」をデータ生成パターンに設定する。また、データ生成方法としてユーザの選択により「ランダム生成」又は「ＳＱＬ設定」を設定することも可能である。データ生成方法が「ランダム生成」の場合は、データタイプの「タイプ」及び「桁数」に整合性が合う形式にデータを生成する方法となる。データ生成方法が「ＳＱＬ設定」の場合は、データ生成パターンにＳＱＬ文を設定して、設定されたＳＱＬに応じてデータを生成する方法となる。この場合、ＳＱＬ文はデータ生成パターンに設定する。なお、データ生成方法は、図３及び図５Ｂに示すように、プルダウンである。すなわち、データ生成方法として設定される内容は、複数設定することが可能であり、最終的なデータ生成方法はユーザによって選択されるようにすることが可能である。
【００３０】
図１に戻って、テストデータ構造入力受付部１５０は、入力装置１１０を介してユーザから入力された設定を図３に示すウィンドウに反映する。例えば、テストデータ構造入力受付部１５０は、テストデータの生成対象となるテーブル選択や、プルダウンによるデータ生成方法の選択を受付けて、各設定項目に反映させる。また、テストデータ構造入力受付部１５０は、データの項目ごとに生成するデータ件数を受付けて、ウィンドウ内の「生成データ件数」に反映する。
【００３１】
さらに、テストデータ構造入力受付部１５０は、データ生成方法に「ＳＱＬ設定」が設定された場合には、参照情報としてＳＱＬ文を受付けて、ウィンドウ内のデータ生成パターンに反映させる。図５Ｃは、実施例１に係るテストデータ構造入力受付部１５０によって受付けられるＳＱＬ文の一例を示す図である。例えば、テストデータ構造入力受付部１５０は、図５Ｃに示すように、「部門マスタから部門コードのデータを選択する」旨のＳＱＬ文「ＳＥＬＥＣＴ  ＢＵＭＯＮ＿ＣＤ  ＦＲＯＭ  Ｍ＿ＢＵＭＯＮ」を入力装置１１０を介して受付け、データ生成パターンに設定する。同様に、テストデータ構造入力受付部１５０は、図５Ｃに示すように、「部門マスタから部門コードのデータを選択する際に、部門コードが０１０から２５０までのデータを選択する」旨のＳＱＬ文「ＳＥＬＥＣＴ  ＢＵＭＯＮ＿ＣＤ  ＦＲＯＭ  Ｍ＿ＢＵＭＯＮ  ＷＨＥＲＥ  ＢＵＭＯＮ＿ＣＤ  ＢＥＴＷＥＥＮ  ‘０１０’ＡＮＤ‘２５０’」を入力装置１１０を介して受付け、データ生成パターンに設定する。
【００３２】
図１に戻って、テストデータ作成制御部１６０は、テストデータ構造作成制御部１３０及びテストデータ構造入力受付部によって設定されたウィンドウの情報に基づいたテストデータの生成に係る各種処理を制御する。具体的には、テストデータ作成制御部１６０は、後述するデータベースデータ取得部１７０、テストデータ生成部１８０、関連データ生成部１９０による処理を制御する。
【００３３】
データベースデータ取得部１７０は、テストデータ構造作成制御部１３０及びテストデータ構造入力受付部１５０によって設定されたウィンドウの情報に基づいて、テストデータの生成に用いられるデータをデータベース３００から取得する。例えば、データ生成方法に「外部参照」が設定されている場合に、データベースデータ取得部１７０は、図５Ａに示す「カテゴリデータ」から「カテゴリコード」のデータをデータベース３００から取得する。
【００３４】
テストデータ生成部１８０は、データの項目ごとに、データベース情報取得部１４１によって取得されたデータタイプの情報に基づいて設定されたデータ種別の属性又は参照情報又はＳＱＬ設定又はランダム生成のうち少なくとも１つに応じたテストデータを生成する。具体的には、テストデータ生成部１８０は、ウィンドウの情報に含まれるデータ生成方法及びデータ生成パターンに基づいてテストデータを生成する。
【００３５】
例えば、テストデータ生成部１８０は、データ生成パターンが設定されていない場合には、データ生成方法の設定内容に応じたテストデータを、設定された件数生成する。一例を挙げると、図３の「ＳＯＳＨＩＫＩＺＵ＿ＣＤ」のテストデータを生成する場合には、データ生成パターンが設定されておらず、データ生成方法が、データ種別である「データ生成方法：全角日本語」であることから、テストデータ生成部１８０は、６文字の全角日本語のランダムな文字列をテストデータとして生成する。同様に、データ生成方法が「ランダム生成」の場合は、データタイプの「タイプ」及び「桁数」に整合性が合う形式にデータがランダムに生成される。例えば、タイプが「ｉｎｔ」で桁数が「３」の場合には、テストデータ生成部１８０は、ランダムな３桁の数字をテストデータとして生成する。
【００３６】
一方、データ生成パターンが設定されている場合には、テストデータ生成部１８０は、データ生成方法及びデータ生成パターンの設定内容に応じたテストデータを、設定された件数生成する。一例を挙げると、図５Ｂの「ＣＡＴＥＧＯＲＹ＿ＣＤ」のテストデータを生成する場合には、データ生成方法が「外部参照」であり、データ生成パターンに参照先として「Ｍ＿ＣＡＴＥＧＯＲＹ．ＣＡＴＥＧＯＲＹ＿ＣＤ」が設定されていることから、テストデータ生成部１８０は、外部参照の参照先として「Ｍ＿ＣＡＴＥＧＯＲＹ．ＣＡＴＥＧＯＲＹ＿ＣＤ」を参照して、「ＣＡＴＥＧＯＲＹ＿ＣＤ」のテストデータを生成する。具体的には、データベースデータ取得部１７０がデータベース３００より「Ｍ＿ＣＡＴＥＧＯＲＹ」テーブルに登録されている「ＣＡＴＥＧＯＲＹ＿ＣＤ」の値を複数取得する。そして、テストデータ生成部１８０は、取得された複数データから任意にデータ選択してテストデータとして生成する。同様に、データ生成方法が「ＳＱＬ設定」であり、データ生成パターンにＳＱＬ文が設定されていた場合には、テストデータ生成部１８０は、ＳＱＬ文に記載された参照先のデータをテストデータとして生成する。具体的には、データベースデータ取得部１７０は、設定されたＳＱＬ文をデータベース３００で実行し、実行結果として複数データを取得する。テストデータ生成部１８０は、データベースデータ取得部１７０が実行結果として取得した複数データから任意にデータを選択し、当該項目のテストデータとして生成する。
【００３７】
図６は、実施例１に係るテストデータ生成部１８０によって生成されるテストデータの第１の例を示す図である。図６においては、図３に示すウィンドウに設定された情報に基づいて生成されたテストデータを示す。例えば、テストデータ生成部１８０は、図６に示すように、「組織図コード：組織１−１、世代コード：２０、利用開始年月日：２１年４月１日、利用終了年月日：２２年３月３１日、カレント区分：１１１１、登録日付：２００９０３３１、登録社員コード：社員ＩＤ０１１１、更新日付：２００９１２１１、更新社員コード：社員ＩＤ０２２２」とするテストデータを生成してデータベース３００に格納させる。同様に、テストデータ生成部１８０は、図６に示すように、世代管理データのテストデータを生成する。
【００３８】
図１に戻って、関連データ生成部１９０は、参照関係を示す参照情報が設定されたデータ間のテストデータを生成する際に、参照先にデータが登録されていない場合に、参照先のデータを関連データとして生成する。具体的には、データ生成方法として外部参照が設定されており、データ生成パターンに設定された参照先にデータが登録されていない場合に、データ種別に応じたデータを関連データ１９１として生成して、生成したデータをデータベース３００に登録する。
【００３９】
例えば、関連データ生成部１９０は、図５Ｂのデータ生成パターンに示す参照先「Ｍ＿ＣＡＴＥＧＯＲＹ．ＣＡＴＥＧＯＲＹ＿ＣＤ」にデータが登録されていない場合に、同一カラム内の「タイプ」、「桁数」を参照する。そして、「タイプ」が「ｖａｒｃｈａｒ」であり。「桁数」が「６」であることから、関連データ生成部１９０は、６文字の文字データを生成する。そして、関連データ生成部は、生成したデータを「Ｍ＿ＣＡＴＥＧＯＲＹ．ＣＡＴＥＧＯＲＹ＿ＣＤ」に登録する。
【００４０】
上述したように、実施例１に係るテストデータ生成装置１００は、負荷テスト用テストデータを生成する場合に、データベース３００からデータ項目の情報を取得してテストデータを生成する。続いて、端末２００からデータ項目の情報を取得して、入力テスト用テストデータを生成する場合について説明する。
【００４１】
図１に戻って、画面情報取得部１４２は、テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、当該データの属性を示すデータ項目の情報を取得する。具体的には、画面情報取得部１４２は、テストデータ構造作成制御部１３０の制御の元、テスト対象の業務アプリケーションの画面処理が実装されたソースコード又はフレームワーク定義を端末２００から取得する。図７は、実施例１に係る業務アプリケーションの画面の一例を説明するための図である。例えば、実施例１に係る業務アプリケーションの画面としては、図７に示すように、「商品コード」、「メーカーコード」、「メーカー商品コード」、「商品名」、「カテゴリコード」、「商品説明」及び「単価」の入力項目が設定された商品情報編集の画面がある。以下では、画面処理が実装されたソースコードからデータ項目の情報を取得する場合について説明した後、フレームワーク定義からデータ項目の情報を取得する場合について説明する。
【００４２】
画面処理が実装されたソースコードからデータ項目の情報を取得する場合には、画面情報取得部１４２は、フレームワークの画面共通処理クラスを継承するソースコードの一覧を取得することにより、図７に示すような画面処理が実装されたプログラムの一覧を取得する。そして、画面情報取得部１４２は、テストデータを生成するデータ項目を取得したソースコードの入力チェック実装箇所から取得する。
【００４３】
図８は、実施例１に係る画面処理のソースコードの一例を示す図である。図８においては、図７に示す画面の入力チェック処理が実装されたソースコードについて示す。例えば、画面情報取得部１４２は、まず、フレームワークの入力チェック処理メソッドの一覧から対象となる変数名を取得する。一例を挙げると、画面情報取得部１４２は、図８に示すソースコードから「Ｓｅｔ  Ｄｅｆａｕｌｔ  Ｖａｌｉｄａｔｉｏｎ」メソッドの一覧を取得する。そして、画面情報取得部１４２は、取得したメソッドの引数からテストデータの生成対象となる項目を取得する。一例を挙げると、画面情報取得部１４２は、図８に示す「ｖａｌｉｄａｔｏｒ．Ｓｅｔ  Ｄｅｆａｕｌｔ  Ｖａｌｉｄａｔｉｏｎ（Ｍｅ．ＳｅａｒｃｈＳｈｏｈｉｎＣｄ，“商品コード（検索）”，ＩｎｐｕｔＶａｌｉｄａｔｏｒ．ＣｈｅｃｋＴｙｐｅ．ＬｅｎｇｔｈＣｈｅｃｋ，０，４）」から、「ＳｅａｒｃｈＳｈｏｈｉｎＣｄ」を項目名、「“商品コード（検索）”」を日本語名として取得する。
【００４４】
フレームワーク定義からデータ項目の情報を取得する場合には、画面情報取得部１４２は、フレームワークの入力チェック定義より、入力チェックが定義されている画面一覧を取得する。図９は、実施例１に係る入力チェックの外部定義の一例を示す図である。例えば、画面情報取得部１４２は、図９に示すように、＜Ｓｃｒｅｅｎ  ｉｄ＝・・・＞〜＜／Ｓｃｒｅｅｎ＞となっているＳｃｒｅｅｎタグの項目を画面一覧として取得する。そして、画面情報取得部１４２は、画面の入力チェック定義より入力チェックの定義タグを取得する。例えば、画面情報取得部１４２は、図９に示す「Ｃｈｅｃｋ」タグを入力チェックの定義タグとして取得する。
【００４５】
そして、画面情報取得部１４２は、取得したＣｈｅｃｋタグからテストデータの生成対象となる項目を取得する。例えば、画面情報取得部１４２は、図９に示す＜Ｃｈｅｃｋ  ＤｉｓｐｌａｙＮａｍｅ＝“商品コード”ＣｏｎｔｒｏｌＩｄ＝“ＳｈｏｈｉｎＣｄ”Ｎａｍｅ＝“商品コード”＞から、「ＳｈｏｈｉｎＣｄ」を項目名、「“商品コード”」を日本語名として取得する。
【００４６】
ここで、画面情報取得部１４２は、フレームワークのチェック定義を参照して、取得したデータの項目ごとにタイプなどのデータタイプを設定する。図１０は、実施例１に係るフレームワークのチェック定義の一例を示す図である。図１０に示すように、フレームワークのチェック定義には、入力チェック種類（Ｃｈｅｃｋ  Ｔｙｐｅ）ごとに、入力チェックの内容と、チェックの概要と、入力チェックの条件１及び２が対応付けられている。
【００４７】
例えば、図８に示す「日本語名：商品コード」についてデータ種別を設定する場合には、「日本語名：商品コード」に係る入力チェック処理メソッドが「ｖａｌｉｄａｔｏｒ．Ｓｅｔ  Ｄｅｆａｕｌｔ  Ｖａｌｉｄａｔｉｏｎ（Ｍｅ．ＳｈｏｈｉｎＣｄ，“商品コード”，ＩｎｐｕｔＶａｌｉｄａｔｏｒ．ＣｈｅｃｋＴｙｐｅ．ＮｕｌｌＣｈｅｃｋ，，，）」、「ｖａｌｉｄａｔｏｒ．Ｓｅｔ  Ｄｅｆａｕｌｔ  Ｖａｌｉｄａｔｉｏｎ（Ｍｅ．ＳｈｏｈｉｎＣｄ，“商品コード”，ＩｎｐｕｔＶａｌｉｄａｔｏｒ．ＣｈｅｃｋＴｙｐｅ．ＬｅｎｇｔｈＣｈｅｃｋ，０，４）」、「ｖａｌｉｄａｔｏｒ．Ｓｅｔ  Ｄｅｆａｕｌｔ  Ｖａｌｉｄａｔｉｏｎ（Ｍｅ．ＳｈｏｈｉｎＣｄ，“商品コード”，ＩｎｐｕｔＶａｌｉｄａｔｏｒ．ＣｈｅｃｋＴｙｐｅ．Ｎａｔｕｒａｌ  Ｎｕｍｂｅｒ  Ｃｈｅｃｋ，，，）」であることから「タイプ：数値」、「桁数：４桁」、「日本語名：商品コード」、「データ生成方法：数値」、「データ桁数：４桁」とするデータ種別が設定される。
【００４８】
また、例えば、図９に示す「日本語名：伝票番号」についてデータタイプを設定する場合には、「日本語名：伝票番号」に係るＣｈｅｃｋタグが、＜Ｃｈｅｃｋ  ＣｈｅｃｋＴｙｐｅ＝“Ｎａｔｕｒａｌ  Ｎｕｍｂｅｒ  Ｃｈｅｃｋ”＞、＜Ｃｈｅｃｋ  Ａｒｇ１＝“１００００”Ａｒｇ２＝“９９９９９”ＣｈｅｃｋＴｙｐｅ＝“Ｒａｎｇｅ  Ｃｈｅｃｋ”／＞、＜Ｃｈｅｃｋ  Ａｒｇ１＝“０”Ａｒｇ２＝“５”ＣｈｅｃｋＴｙｐｅ＝“Ｌｅｎｇｔｈ  Ｃｈｅｃｋ”／＞であり、チェック定義として「Ｎａｔｕｒａｌ  Ｎｕｍｂｅｒ  Ｃｈｅｃｋ」及び「Ｒａｎｇｅ  Ｃｈｅｃｋ」で１００００〜９９９９９、「Ｌｅｎｇｔｈ  Ｃｈｅｃｋ」で０〜５文字が定義されていることから、「タイプ：数値」、「桁数：５桁」、「日本語名：伝票番号」、「データ生成パターン：１００００〜９９９９９が、異常値、正常値、閾値として設定される」が設定される。
【００４９】
上述した画面情報取得部１４２によるデータ項目の情報の取得においても、テストデータ構造作成制御部１３０によってウィンドウが表示出力される。図１１は、実施例１に係る表示装置によって表示出力されるＧＵＩの第２の例を示す図である。例えば、図１１に示すように、画面情報取得部１４２によってソースコードから画面名が取得され、「商品情報編集マスタ」がテストデータ生成の対象として選択されると、商品情報編集マスタに含まれる入力項目が展開され、項目ごとに「タイプ」、「桁数」、「日本語名」、「データ生成方法」、「データ桁数」及び「データ生成パターン」が設定される。ここで、図１１の領域（５）に示すデータ生成パターンには、外部参照としてＳＱＬ文が設定される。
【００５０】
テストデータ生成部１８０は、上記したウィンドウに設定された情報に基づいてテストデータを生成する。図１２Ａは、実施例１に係るテストデータ生成部によって生成されるテストデータの第２の例を示す図である。図１２Ａにおいては、図１１に示すウィンドウに設定された情報に基づいて生成されたテストデータを示す。
【００５１】
例えば、テストデータ生成部１８０は、図１２Ａに示すように、端末２００の業務アプリケーションに入力するためのテストデータとして、「商品コード：Ｓ０００２、メーカーコード：Ｆ００１、メーカー商品コード：２８４７５６８４、商品名：えんぴつＸ、カテゴリコード：０１、商品説明：文房具、単価：２００」とするテストデータを生成して入力用テストデータ１８３として出力する。同様に、テストデータ生成部１８０は、図１２Ａに示すように、端末２００の業務アプリケーションで表示するためにデータベース３００に登録するテストデータとして、商品データのテストデータとして表示用テストデータ１８２を出力する。また、関連データ生成部１９０は、参照先のテストデータを生成する。図１２Ｂは、実施例１に係るテストデータ生成部によって生成されるテストデータの第３の例を示す図である。例えば、データ生成方法が「外部参照」、データ生成パターンが「ＣＡＴＥＧＯＲＹ．ＣＡＴＥＧＯＲＹ＿ＣＤ」と設定されている場合に、関連データ生成部１９０は、図１２Ｂに示すように、「カテゴリコード：０１、カテゴリ名：文具」とする関連データ１９１を生成してデータベース３００に格納させる。
【００５２】
上述したように、実施例１に係るテストデータ生成装置１００は、データベースの定義や、画面処理が実装されたソースコード、フレームワークの定義を用いて、業務アプリケーションのテストデータを生成する。そして、実施例１に係るテストデータ生成装置１００は、生成したテストデータをデータベース３００又は端末２００に格納させる。実施例１に係るテストデータ生成装置１００は、このようにして生成したテストデータの検索を実行させることも可能である。図１３は実施例１に係るテストデータ生成装置１００によって表示されるテストデータ検索画面の一例を示す図である。
【００５３】
例えば、実施例１に係るテストデータ生成装置１００は、図１３に示すように、「商品コード」、「メーカーコード」及び「メーカー商品コード」などの複数の検索条件を受付けて、受け付けた検索結果の論理積の検索結果を表示させることも可能である。
【００５４】
次に、図１４〜図２１を用いて、実施例１に係るテストデータ生成装置１００の処理の手順を説明する。図１４は、実施例１に係るテストデータ生成装置１００によるデータベースからのデータ種別の取得処理の手順を説明するためのフローチャートである。なお、図１４においては、テスト内容に応じたデータ種別の取得先が決定された後の処理について示す。
【００５５】
図１４に示すように、実施例１に係るテストデータ生成装置１００においては、データベース情報取得部１４１が、データベース３００よりテーブル一覧を取得する（ステップＳ１０１）。そして、テストデータ構造入力受付部１５０が、テストデータを作成する対象テーブルの選択を受け付ける（ステップＳ１０２）。その後、データベース情報取得部１４１が、テストデータを作成するデータ項目を選択されたテーブルより取得する（ステップＳ１０３）。
【００５６】
そして、テストデータ構造入力受付部１５０が、テストデータを作成するデータ項目の変更／入力を受け付ける（ステップＳ１０４）。その後、データベース情報取得部１４１が、データベース３００より対象テーブルのデータ項目の情報を取得する（ステップＳ１０５）。そして、テストデータ構造入力受付部１５０が、データ項目の情報の変更／入力を受付ける（ステップＳ１０６）。続いて、テストデータ構造作成制御部１３０が、データ項目ごとにデータ種別を決定する（ステップＳ１０７）。そして、テストデータ構造入力受付部１５０が、データ項目ごとにデータ種別の変更を受付け（ステップＳ１０８）、データ生成パターンの入力を受け付けて（ステップＳ１０９）、処理を終了する。
【００５７】
図１５は、実施例１に係るテストデータ生成装置１００によるデータ項目の参照関係の決定処理の手順を説明するためのフローチャートである。なお、図１５においては、データ項目が決定された後の処理について示す。
【００５８】
図１５に示すように、実施例１に係るテストデータ生成装置１００においては、データベース情報取得部１４１が、データベース３００よりテーブルの関連情報を取得する（ステップＳ２０１）。そして、テストデータ構造作成制御部１３０が、データベース情報取得部１４１によって取得されたテーブルの関連情報よりデータ項目ごとの関連を決定する（ステップＳ２０２）。その後、テストデータ構造入力受付部１５０が、データ項目の関連の入力を受け付けて（ステップＳ２０３）、処理を終了する。
【００５９】
図１６は、実施例１に係るテストデータ生成装置１００によるテストデータ生成処理の第１の手順を説明するためのフローチャートである。なお、図１６においては、データ項目ごとの情報がデータベース３００より取得された場合のテストデータ生成処理について示す。また、図１６においては、データ項目ごとのデータ生成方法及びデータ生成パターンが設定された後の処理について示す。
【００６０】
図１６に示すように、実施例１に係るテストデータ生成装置１００においては、テストデータ生成部１８０が、データ項目のデータ生成パターンを取得し（ステップＳ３０１）、データ生成パターンにデータ種別が設定されているか否かを判定する（ステップＳ３０２）。ここで、データ生成パターンにデータ種別が設定されている場合には（ステップＳ３０２肯定）、テストデータ生成部１８０が、データ種別に応じたテストデータを作成して（ステップＳ３０３）、設定された件数を生成したか否かを判定する（ステップＳ３０４）。
【００６１】
ここで、設定された件数を生成していない場合には（ステップＳ３０４否定）、テストデータ生成部１８０が、ステップＳ３０３に戻って、データ種別に応じたテストデータを作成する。一方、設定された件数を生成した場合には（ステップＳ３０４肯定）、テストデータ生成部１８０が、ステップＳ３１０の判定を実行する。
【００６２】
ステップＳ３０２において、データ生成パターンにデータ種別が設定されていない場合には（ステップＳ３０２否定）、テストデータ生成部１８０が、データ生成パターンに応じたテストデータを生成する。データ生成パターンがランダム生成設定の場合には（ステップＳ３０５）、テストデータ生成部１８０が、データタイプに応じたテストデータをランダムに生成して(ステップＳ３０６)、設定された件数を生成したか否かを判定する（ステップＳ３０７）。
【００６３】
ここで、設定された件数を生成していない場合には（ステップＳ３０７否定）、テストデータ生成部１８０が、ステップＳ３０６に戻って、ランダム生成設定の場合の処理を実行する。一方、設定された件数を生成した場合には（ステップＳ３０７肯定）、テストデータ生成部１８０が、ステップＳ３１０の判定を実行する。同様に、データ生成パターンが外部参照設定の場合（ステップＳ３０８）及びＳＱＬ設定の場合（ステップＳ３０９）についても、各設定でテストデータを生成して設定された件数を生成したか否かを判定する（ステップＳ３０７）。なお、データ生成パターンが外部参照設定の場合のテストデータ生成処理の手順及びＳＱＬ設定の場合のテストデータ生成処理の手順については、それぞれ図１７及び１８において説明する。
【００６４】
各設定におけるテストデータを設定された件数生成した場合には（ステップＳ３０４肯定、ステップＳ３０７肯定）、テストデータ生成部１８０が、全てのデータ項目について処理したか否かを判定する（ステップＳ３１０）。ここで、全てのデータ項目について処理していない場合には（ステップＳ３１０否定）、テストデータ生成部１８０は、ステップＳ３０１に戻って、未処理のデータ項目のデータ生成パターンを取得する。一方、全てのデータ項目について処理した場合には（ステップＳ３１０肯定）、テストデータ生成部１８０は、処理を終了する。
【００６５】
図１７は、実施例１に係るテストデータ生成装置１００によるテストデータ生成処理の第２の手順として関連データの作成を説明するためのフローチャートである。なお、図１７においては、図１６におけるステップＳ３０８とステップＳ３０７との間の処理について示す。
【００６６】
図１７に示すように、実施例１に係るテストデータ生成装置１００においては、データ生成パターンが外部参照設定の場合には（図１６、ステップＳ３０８）、データベース情報取得部１４１が、参照先のテーブルに登録データがあるか否かを判定する（ステップＳ３１１）。ここで、参照先のテーブルに登録データがある場合には（ステップＳ３１１肯定）、データベースデータ取得部１７０は、参照先テーブルより登録データの一覧を取得する（ステップＳ３１２）。
【００６７】
そして、テストデータ生成部１８０が、取得したデータよりランダムに値を１つ選択して（ステップＳ３１３）、選択したデータをテストデータとして生成して（ステップＳ３１４）、処理を終了する。一方、ステップＳ３１２の判定において、参照先のテーブルに登録データがない場合には（ステップＳ３１１否定）、関連データ生成部１９０が、データタイプに応じてテストデータを生成して（ステップＳ３１５）、生成したデータが参照先のテーブルにあるか否かを判定する（ステップＳ３１６）。
【００６８】
ここで、生成したデータが参照先のテーブルにある場合には（ステップＳ３１６肯定）、関連データ生成部が処理を終了する。一方、生成したデータが参照先のテーブルにない場合には（ステップＳ３１６否定）、関連データ生成部１９０が、参照先テーブルにキーデータを関連データ１９１として作成して（ステップＳ３１８）、処理を終了する。なお、図１７に示す処理が終了すると、図１６に示すステップＳ３０７の判定処理が実行される。
【００６９】
図１８は、実施例１に係るテストデータ生成装置１００によるテストデータ生成処理の第３の手順を説明するためのフローチャートである。なお、図１８においては、図１６におけるステップＳ３１０とステップＳ３０８との間の処理について示す。
【００７０】
図１８に示すように、実施例１に係るテストデータ生成装置１００においては、データ生成パターンがＳＱＬ設定の場合には（図１６、ステップＳ３０９）、テストデータ生成部１８０が、ＳＱＬのチェックが設定されているか否かをデータ生成パターンの設定から判定する（ステップＳ３１８）。ここで、ＳＱＬのチェックが設定されていない場合には（ステップＳ３１８否定）、テストデータ生成部１８０が、ＳＱＬの実行結果の一覧を取得する（ステップＳ３１９）。
【００７１】
そして、テストデータ生成部１８０が、取得したデータよりランダムに値を１つ選択して（ステップＳ３２０）、選択したデータをテストデータとして生成して（ステップＳ３２１）、処理を終了する。一方、ＳＱＬのチェックが設定されている場合には（ステップＳ３１８肯定）、テストデータ生成部１８０が、データタイプに応じてテストデータを生成して（ステップＳ３２２）、データ生成パターンに設定されているＳＱＬをデータベースデータ取得部１７０で実行する。そして、データベースデータ取得部１７０が、ＳＱＬの実行結果に生成したデータが含まれるか否かを判定する（ステップＳ３２３）。
【００７２】
ここで、ＳＱＬの実行結果に生成したデータが含まれない場合には（ステップＳ３２３否定）、テストデータ生成部１８０が、データ参照エラーであると判定して、データを生成せずに（ステップＳ３２４）、処理を終了する。一方、ＳＱＬの実行結果に生成したデータが含まれる場合には（ステップＳ３２３肯定）、テストデータ生成部１８０が、処理を終了する。なお、図１８に示す処理が終了すると、図１６に示すステップＳ３０７の判定処理が実行される。
【００７３】
図１９は、実施例１に係るテストデータ生成装置１００による画面処理実装のソースコードからのデータ種別の取得処理の手順を説明するためのフローチャートである。なお、図１９においては、テスト内容に応じたデータ種別の取得先が決定された後の処理について示す。
【００７４】
図１９に示すように、実施例１に係るテストデータ生成装置１００においては、画面情報取得部１４２が、端末２００より画面処理実装のソース一覧を取得する（ステップＳ４０１）。そして、テストデータ構造入力受付部１５０が、テストデータを作成する画面の選択を受け付ける（ステップＳ４０２）。その後、画面情報取得部１４２が、テストデータを作成するデータ項目を画面ソースの入力チェック実装箇所より取得する（ステップＳ４０３）。
【００７５】
そして、テストデータ構造入力受付部１５０が、テストデータを作成するデータ項目の変更／入力を受け付ける（ステップＳ４０４）。その後、画面情報取得部１４２が、入力チェック実装より対象画面のチェック定義情報を取得して、テストデータ作成項目とする（ステップＳ４０５）。そして、テストデータ構造入力受付部１５０が、データ項目の情報の変更／入力を受付ける（ステップＳ４０６）。続いて、テストデータ構造作成制御部１３０が、データ生成パターンの入力を受け付けて（ステップＳ４０７）、処理を終了する。
【００７６】
図２０は、実施例１に係るテストデータ生成装置１００によるフレームワーク入力チェック定義からのデータ項目ごとの情報の取得処理の手順を説明するためのフローチャートである。なお、図２０においては、テスト内容に応じたデータ項目ごとの情報の取得先が決定された後の処理について示す。
【００７７】
図２０に示すように、実施例１に係るテストデータ生成装置１００においては、画面情報取得部１４２が、端末２００より入力チェック定義が定義されている画面一覧を取得する（ステップＳ５０１）。そして、テストデータ構造入力受付部１５０が、テストデータを作成する画面の選択を受け付ける（ステップＳ５０２）。その後、画面情報取得部１４２が、テストデータを作成するデータ項目を画面の入力チェック定義より取得する（ステップＳ５０３）。
【００７８】
そして、テストデータ構造入力受付部１５０が、テストデータを作成するデータ項目の変更／入力を受け付ける（ステップＳ５０４）。その後、画面情報取得部１４２が、入力チェック定義より対象画面のチェック定義情報を取得して、テストデータ作成項目とする（ステップＳ５０５）。そして、テストデータ構造入力受付部１５０が、データ項目の情報の変更／入力を受付ける（ステップＳ５０６）。続いて、テストデータ構造作成制御部１３０が、データ生成パターンの入力を受け付けて（ステップＳ５０７）、処理を終了する。
【００７９】
図２１は、実施例１に係るテストデータ生成装置によるテストデータ生成処理の第４の手順を説明するためのフローチャートである。なお、図２１においては、データ項目ごとのデータ種別が画面処理を実装するソースコード又はフレームワークの入力チェック定義より取得された場合のテストデータ生成処理について示す。また、図２１においては、データ項目ごとのデータタイプ、データ生成方法及びデータ生成パターンが設定された後の処理について示す。
【００８０】
図２１に示すように、実施例１に係るテストデータ生成装置１００においては、テストデータ生成部１８０が、データ項目のデータ生成パターンを取得し（ステップＳ６０１）、データ生成パターンにデータ種別が設定されているか否かを判定する（ステップＳ６０２）。ここで、データ生成パターンにデータ種別が設定されている場合には（ステップＳ６０２肯定）、テストデータ生成部１８０が、データ種別に応じたテストデータを作成して（ステップＳ６０３）、設定された件数を生成したか否かを判定する（ステップＳ６０４）。
【００８１】
ここで、設定された件数を生成していない場合には（ステップＳ６０４否定）、テストデータ生成部１８０が、ステップＳ６０３に戻って、データ種別に応じたテストデータを作成する。一方、設定された件数を生成した場合には（ステップＳ６０４肯定）、テストデータ生成部１８０が、ステップＳ６０９の判定を実行する。
【００８２】
ステップＳ６０２において、データ生成パターンにデータ種別が設定されていない場合には（ステップＳ６０２否定）、テストデータ生成部１８０が、データ生成パターンに応じたテストデータを生成する。データ生成パターンがランダム生成設定の場合には（ステップＳ６０５）、テストデータ生成部１８０が、データタイプに応じてテストデータをランダムに生成して(ステップＳ６０６)、設定された件数を生成したか否かを判定する（ステップＳ６０７）。
【００８３】
ここで、設定された件数を生成していない場合には（ステップＳ６０７否定）、テストデータ生成部１８０が、ステップＳ６０５に戻って、ランダム生成設定の場合の処理を実行する。一方、設定された件数を生成した場合には（ステップＳ６０７肯定）、テストデータ生成部１８０が、ステップＳ６０９の判定を実行する。同様に、データ生成パターンがＳＱＬ設定の場合（ステップＳ６０８）についても、各設定でテストデータを作成して設定された件数を生成したか否かを判定する（ステップＳ６０７）。なお、データ生成パターンがＳＱＬ設定の場合のテストデータ生成処理の手順については、図１８と同様である。
【００８４】
各設定におけるテストデータを設定された件数生成した場合には（ステップＳ６０４肯定、ステップＳ６０７肯定）、テストデータ生成部１８０が、全てのデータ項目について処理したか否かを判定する（ステップＳ６０９）。ここで、全てのデータ項目について処理していない場合には（ステップＳ６０９否定）、テストデータ生成部１８０は、ステップＳ６０１に戻って、未処理のデータ項目のデータ生成パターンを取得する。一方、全てのデータ項目について処理した場合には（ステップＳ６０９肯定）、テストデータ生成部１８０は、処理を終了する。
【００８５】
上述したように、実施例１によれば、データベース情報取得部１４１又は画面情報取得部１４２が、テスト対象の業務アプリケーションによって用いられるデータの項目ごとに、当該データの属性を示すデータ項目の情報を取得し、テストデータ構造作成制御部１３０がデータ種別を設定する。また、データベース情報取得部１４１又は画面情報取得部１４２が、業務アプリケーションによって用いられるデータに関するデータ間の参照関係を示す参照情報を取得する。そして、テストデータ生成部１８０が、データの項目ごとに、テストデータ構造作成制御部１３０によって設定されたデータ種別の属性及び参照情報の参照関係のうち少なくとも一方に応じたテストデータを生成する。従って、実施例１に係るテストデータ生成装置１００は、例えば、既存のテストデータとは類似しないテストデータを作成したり、データに関する定義情報やキー情報、或いはテーブル間の対応関係に関する情報がない場合にテストデータを作成したりすることができ、データ間の参照関係の整合性が維持されたテストデータを容易に作成することを可能にする。
【００８６】
また、実施例１によれば、データベース情報取得部１４１は、テスト対象の業務アプリケーションによって用いられるデータに関する情報を記憶するデータベース３００から当該データのデータ項目の情報を取得する。また、データベース情報取得部１４１は、データベース３００によって記憶されたテーブル定義又は利用者によって設定されたＳＱＬ文により参照情報を取得する。そして、テストデータ生成部１８０は、テーブル定義によって参照関係が定義されたテーブル間において、参照情報が含まれていない場合に、当該参照関係が定義されたテーブル間の参照情報として、データベース情報取得部１４１によって取得されたデータ種別に応じたデータを生成する。従って、実施例１に係るテストデータ生成装置１００は、データ間の整合性を維持したテストデータを利用者が所望する分量だけ生成することを可能にする。
【００８７】
また、実施例１によれば、画面情報取得部１４２は、テスト対象の業務アプリケーションにおける画面のソースコードから当該画面に入力されるデータのデータ項目の情報を取得する。また、画面情報取得部１４２は、利用者によって設定されたＳＱＬ文により参照情報を取得する。従って、実施例１に係るテストデータ生成装置１００は、データ間の整合性を確実に維持したテストデータを生成することを可能にする。
【００８８】
また、実施例１によれば、テストデータ構造入力受付部１５０がテスト内容を受け付ける。そして、データベース情報取得部１４１は、テストデータ構造入力受付部１５０によって受付けられたテスト内容が負荷テストであった場合に、テスト対象の業務アプリケーションによって用いられるデータに関する情報を記憶するデータベース３００から当該データのデータ項目の情報を取得する。画面情報取得部１４２は、テストデータ構造入力受付部１５０によって受付けられたテスト内容が入力テスト又は表示テストであった場合に、テスト対象の業務アプリケーションにおける画面のソースコードから当該画面に入力されるデータのデータ項目の情報を取得する。また、データベース情報取得部１４１は、テストデータ構造入力受付部１５０によって受付けられたテスト内容が負荷テストであった場合に、データベース３００によって記憶されたテーブル定義又は利用者によって設定されたＳＱＬ文により参照情報を取得する。そして、画面情報取得部１４２は、テストデータ構造入力受付部１５０によって受付けられたテスト内容が入力テスト又は表示テストであった場合に、利用者によって設定されたＳＱＬ文により参照情報を取得する。従って、実施例１に係るテストデータ生成装置１００は、テスト内容に応じたテストデータを自動で生成することを可能にする。
【００８９】
例えば、従来技術では、データ項目の情報等に応じて、ランダムに大量のテストデータを生成することが可能であるが、データ間の整合性が確保されていない場合が多い。その結果、データ間に整合性が維持されていないテストデータを用いて業務アプリケーションのテストを行うこととなり、テスト時に問題が発生した際に、テストデータの問題なのか、業務アプリケーションの問題なのか判別することが困難になる場合があった。さらに、従来技術では、データ間の整合性が維持されていないために、作成されたテストデータを画面から登録する場合において、例えば、画面からの入力をプルダウンにより選択する必要があるにも関わらず、作成されたテストデータの入力がプルダウンでは選択できないという問題が発生する場合があった。
【００９０】
本実施例に係るテストデータ生成装置１００では、データ間の整合性が維持されたテストデータを大量に生成することを可能にするとともに、テスト特性に合わせたテストデータを容易に生成することを可能する。その結果、本実施例に係るテストデータ生成装置１００は、業務アプリケーションのテストを正確に行うことも可能にする。
【実施例２】
【００９１】
さて、これまで実施例１について説明したが、上述した実施例１以外にも、種々の異なる形態にて実施されてよいものである。
【００９２】
上述した実施例１では、データベースからのデータ項目ごとの情報の取得と、画面処理を実装したソースコード又はフレームワーク入力チェック定義からのデータ項目ごとのっ情報の取得とを両方実行するテストデータ生成装置１００について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、どちらか一方を実行する場合であってもよい。
【００９３】
また、例えば、データベースからのデータ項目ごとの情報の取得を実行する装置と、画面処理を実装したソースコード又はフレームワーク入力チェック定義からのデータ項目ごとの情報の取得を実行する装置とを接続して、実施例１に係るテストデータ生成装置１００と同様の処理を実行するようにしてもよい。
【００９４】
上述した実施例１では、テストデータ生成装置１００が端末２００及びデータベース３００から独立している場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、テストデータ生成装置１００が端末２００に内蔵される場合であってもよい。
【００９５】
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示すデータベース情報取得部１４１と画面情報取得部１４２とを１つの情報取得部として統合してもよい。また、一方で、図１に示すテストデータ構造作成制御部１３０を、データ生成方法及びデータ生成パターンを設定する設定部と、表示装置１２０にＧＵＩを表示出力させる表示制御部とに分散してもよい。
【００９６】
また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。例えば、生成するテストデータの件数の入力処理を自動で行ってもよい。かかる場合には、例えば、過去に生成したデータの件数を元に、生成するデータの件数を自動で決定するようにしてもよい。また、テストデータ生成部１８０をテストデータ生成装置１００の外部装置としてネットワーク経由で接続するようにしてもよい。
【００９７】
[データ生成プログラム]
ところで、上記実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本実施例はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図２２を用いて上記実施例１に示したテストデータ生成装置１００と同様の機能を有するデータ生成プログラムを実行するコンピュータの一例を説明する。図２２は、実施例２に係るデータ生成プログラムを実行するコンピュータを説明するための図である。
【００９８】
図２２に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０とを有する。また、図２３に示すように、コンピュータ１０００は、例えば、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００９９】
メモリ１０１０は、図２２に示すように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図２２に示すように、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、図２２に示すように、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、図２２に示すように、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、図２３に示すように、例えばディスプレイ１１３０に接続される。
【０１００】
ここで、図２２に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、データ生成プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、例えばハードディスクに記憶される。具体的には、上述した実施例で説明したデータ情報取得部１４０と同様の処理を実行するデータ情報取得手順と、テストデータ生成部１８０と同様の処理を実行するデータ生成手順とが記述されたプログラムモジュール１０９３が、ハードディスクに記憶される。
【０１０１】
また、上述した実施例で説明したテストデータ構造作成制御部１３０の内部メモリに記憶されるデータのように、規則検査プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、ＣＰＵ１０２０が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてＲＡＭ１０１２に読み出し、データ情報取得手順、データ生成手順を実行する。
【０１０２】
なお、データ生成プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１０３】
１００  テストデータ生成装置
１１０  入力装置
１２０  表示装置
１３０  テストデータ構造作成制御部
１４０  データ情報取得部
１４１  データベース情報取得部
１４２  画面情報取得部
１５０  テストデータ構造入力受付部
１６０  テストデータ作成制御
１７０  データベースデータ取得部
１８０  テストデータ生成部
１９０  関連データ生成部
２００  端末
３００  データベース
【図１】
0005651050.tif 000002
【図２】
0005651050.tif 000003
【図３】
0005651050.tif 000004
【図４】
0005651050.tif 000005
【図５Ａ】
0005651050.tif 000006
【図５Ｂ】
0005651050.tif 000007
【図５Ｃ】
0005651050.tif 000008
【図６】
0005651050.tif 000009
【図７】
0005651050.tif 000010
【図８】
0005651050.tif 000011
【図９】
0005651050.tif 000012
【図１０】
0005651050.tif 000013
【図１１】
0005651050.tif 000014
【図１２Ａ】
0005651050.tif 000015
【図１２Ｂ】
0005651050.tif 000016
【図１３】
0005651050.tif 000017
【図１４】
0005651050.tif 000018
【図１５】
0005651050.tif 000019
【図１６】
0005651050.tif 000020
【図１７】
0005651050.tif 000021
【図１８】
0005651050.tif 000022
【図１９】
0005651050.tif 000023
【図２０】
0005651050.tif 000024
【図２１】
0005651050.tif 000025
【図２２】
0005651050.tif 000026