(57)【要約】      （修正有）【課題】  データ項目名を利用したテストデータを生成するシステムであって、複数のデータフォーマットを連携させるためのデータ変換プログラムの動作検証を行う上で効果的なテストデータの生成方法を提供すること。【解決手段】  入力データのデータフォーマット情報１２の属性として与えられるデータ項目名を、テストデータのインスタンス値とする。従って、テストデータ作成条件の定義２２およびプログラムの動作検証作業に関わる工数を削減できるものである。【選択図】  図１
2005174007.tif 000002
【特許請求の範囲】
【請求項１】
開発プログラム用のテストデータを生成するためのテストデータ生成システムにおいて、入力データに基づいてデータフォーマットの定義を生成するデータフォーマット生成部とテストデータを生成するテストデータ生成部とを有し、上記データフォーマット生成部が入力データのデータ項目名を含む属性が定義されたデータフォーマットの定義を生成したとき、上記テストデータ生成部は上記データ項目名をテストデータのインスタンス値として出力することを特徴とするテストデータ生成システム。
【請求項２】
請求項１記載のテストデータ生成システムにおいて、上記データフォーマット生成部が入力データのデータ項目名とデータ型を含む属性が定義されたデータフォーマットの定義を生成したとき、上記データ型が文字列である場合には、上記テストデータ生成部は上記データ項目名をテストデータのインスタンス値として出力することを特徴とするテストデータ生成システム。
【請求項３】
請求項１記載のテストデータ生成システムにおいて、上記データフォーマット生成部が入力データのデータ項目ごとに別に定義されるデータ生成条件を生成したとき、上記テストデータ生成部は、上記データ生成条件がユーザによって定義されているデータ項目についてはユーザによって定義されたデータ生成条件によってテストデータを生成し、上記データ生成条件がユーザによって定義されていないデータ項目についてはデータ項目名をテストデータのインスタンス値として出力することを特徴とするテストデータ生成システム。
【請求項４】
一方のデータ形式のデータを他のデータ形式のデータに変換するプログラム用のテストデータを生成するためのテストデータ生成システムにおいて、上記プログラムの入力データに対するデータフォーマットの定義を行うデータフォーマット生成部と、該データフォーマット生成部によって得られたデータフォーマットの定義を記憶するデータフォーマット情報部と、該データフォーマット情報部に記憶されたデータ項目名およびデータ型を参照することにより、上記プログラムのテスト実行に必要なテストデータを生成する第１のテストデータ生成部と、を有するテストデータ生成システム。
【請求項５】
請求項４記載のテストデータ生成システムにおいて、更に、上記データフォーマット情報部のデータ項目について、所定のデータ生成条件についての定義を生成するデータ生成条件生成部と、該データ生成条件生成部によって得られたデータ生成条件の定義を記憶するデータ生成条件情報部と、上記第１のテストデータ生成部からの実行指示を受けることにより、上記データ生成条件情報部のデータ生成条件を参照し、その内容にしたがってテストデータを生成する第２のテストデータ生成部と、を有するテストデータ生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータフォーマットを連携させるためのデータ変換プログラムの動作検証を行う上で必要となるテストデータの生成システムに関する。
【背景技術】
【０００２】
アプリケーションシステム連携のためには、扱うデータのデータ構造、型、およびコード体系といったデータ形式の変換が不可欠となる。近年では、データ変換を行うための製品が数多く出ており、これらの製品においては、データ項目間の変換定義情報を取得し変換プログラムを生成することができる。
【０００３】
一般的に、プログラム開発では、その動作検証のためにテストデータを用意し、これを入力データとしてプログラムの実行を行い、その出力結果を検証する。
【０００４】
テストデータは、特開平05-134896号公報に記載されているように、通常、データ項目ごとにテストデータ作成条件をユーザが定義することにより生成されるか、又は、実データからユーザに指定された生成パターンにしたがって生成される。
【０００５】
【特許文献１】特開平05-134896号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の従来技術によるテストデータの生成方式は、一般的なプログラム開発においては、非常に有効であると言えるが、特に開発プログラムがデータ変換プログラムとなる場合では、以下のような課題がある。
【０００７】
従来技術では、テストデータ作成条件を全データ項目に渡って定義・関連付けを行う必要があるが、データ変換プログラムにおいては、その多くが文字列データの単純マッピング処理である。文字列型データに対するテストデータは、基本的に文字列であるならなんでもよいことが殆どである。従って、テストデータ作成条件の定義行為が、無駄な作業となる。
【０００８】
実データに近いテストデータを生成した場合、データ変換プログラム実行結果から得られる出力データは、フォーマット変換結果（データ項目の並び順）の検証に関して、非常に見づらいものとなる。すなわち、これを安易に理解できるのは、実データをよく見慣れているエンドユーザ等に限られる。
【０００９】
本発明の目的は、テストデータ生成に関わる手間を省略することができると共に、開発プログラムの動作検証に関わる工数を削減することができるテストデータ生成システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明では、テストデータのインスタンス値として、入力データのデータフォーマット情報の属性として与えられるデータ項目名を用いる。
【００１１】
本発明では、データ型が文字列であるデータ項目についてのみ、データ項目名をインスタンス値としてテストデータを生成する。開発者が特に、データ生成条件を定義した場合には、そのデータ項目のテストデータ生成に関しては、データ生成条件によりテストデータを生成し、それ以外のデータ項目については、データ項目名をテストデータのインスタンス値として出力する。
【発明の効果】
【００１２】
本発明によると、テストデータ生成に関わる手間を省略することができると共に、開発プログラムの動作検証に関わる工数を削減することができる。
【発明を実施するための最良の形態】
【００１３】
図１を参照して本発明によるテストデータ生成システムの例を説明する。本例のテストデータ生成システムは、第１のテストデータ生成部１０と第２のテストデータ生成部２０と入力部３０とを有する。第１のテストデータ生成部１０は、データフォーマット生成部１１、データフォーマット情報部１２、及び、データ項目名によるテストデータ生成部１３を有する。第２のテストデータ生成部２０は、データ生成条件生成部２１、データ生成条件情報部２２、及び、生成条件によるテストデータ生成部２３を有する。
【００１４】
データフォーマット生成部１１は、入力部３０を介して作業者により入力された、開発プログラムの入力データに対するデータフォーマットの定義処理を行う。
【００１５】
データフォーマット情報部１２は、データフォーマット生成部１１によって生成されたデータフォーマットの定義を記憶し処理する。データフォーマット情報部１２に記憶された情報の例は、図２を参照して説明する。
【００１６】
データ項目名によるテストデータ生成部１３は、データフォーマット情報部１２からデータ項目名およびデータ型を参照することにより、開発プログラムのテスト実行に必要となるテストデータを生成する。また、データ項目名によるテストデータ生成部１３は、データ生成条件情報部２２を参照することにより、必要に応じて、生成条件によるテストデータ生成部２３に、テストデータ生成処理の代行指示を行う。
【００１７】
データ生成条件生成部２１は、データフォーマット情報部１２の各データ項目について、入力部３０を介して作業者により特に入力されたとき、データ生成条件の定義処理を行う。
【００１８】
データ生成条件情報部２２は、データ生成条件生成部２１によって生成されたデータ生成条件の定義を記憶し処理する。データ生成条件情報部２２に記憶された情報の例は、図３を参照して説明する。
【００１９】
生成条件によるテストデータ生成部２３は、データ項目名によるテストデータ生成部１３からの実行指示を受けることにより、データ生成条件情報部２２のデータ生成条件を参照し、その内容にしたがってテストデータを生成する。
【００２０】
本例のテストデータ生成システムは、プログラムに基づく逐次実行機能を有するＣＰＵ、プログラムおよびデータを実行時に記憶するメモリ、プログラムおよびデータを記録する磁気記憶装置、キーボードとテレビ画面を有する入出力装置を備えたコンピュータによって構成されてよい。磁気記憶装置に対するデータ取得・還元は、ＬＡＮ等のネットワークを用いて、コンピュータの外部より、データ転送によって行ってもよい。
【００２１】
図２を参照して、データフォーマット情報部１２に記憶されたデータフォーマットの定義情報の例を説明する。データフォーマット情報部１２には、データ項目を一意に識別するためのレコードキーとなる管理ＩＤ１２０１、データフォーマットを一意に識別するためのデータフォーマット名１２０２、データ項目名１２０３、及び、データ型１２０４の間の対応を保持するテーブル定義情報が記憶されている。１行目のレコード１２０５は、「管理ＩＤ“００１”の、データフォーマット名は“支払ファイル”、データ項目名は“支払予定日”、そのデータ型は“文字列”である。」ことを意味する。また、ここに掲げた項目以外に、必要であればデータフォーマット情報に関わるフィールドやリンクテーブルを別途設けても構わない。
【００２２】
図３を参照して、データ生成条件情報部２２に記憶されたデータ生成条件の定義情報の例を説明する。データ生成条件情報部２２には、データ項目を一意に識別するためのレコードキーとなる管理ＩＤ２２０１、及び、生成条件２２０２の間の対応を保持するテーブル定義情報が記憶されている。例えば、１行目のレコード２２０３は、「管理ＩＤ“００２”の生成条件は“＝１００００”である。」ことを意味する。また、ここに掲げた項目以外に、必要であればデータ生成条件情報に関わるフィールドやリンクテーブルを別途設けても構わない。
【００２３】
図４を参照してデータフォーマット生成部１１及びデータフォーマット情報部１２の動作を説明する。ステップ１１０１にて、データフォーマット生成部１１は、作業者が入力装置３０を介して入力した、１つのデータ項目のデータフォーマット名、データ項目名、データ型の取得を行う。また、データフォーマット生成部１１は、取得情報について、データフォーマット情報部１２を参照することにより、重複等のデータの妥当性のチェックを行う。
【００２４】
ステップ１１０２にて、データフォーマット生成部１１は、定義が完了したかどうかを判断する。例えば、作業者が入力装置３０を介して定義完了ボタンを押したことを検知することによって判断する。定義が完了した場合はステップ１１０３に進む。
【００２５】
ステップ１１０３にて、データフォーマット情報部１２は、取得した全てのデータ項目ごとに次の処理を行う。管理ＩＤ１２０１として、ユニークキーを自動採番する。データフォーマット名１２０２として、取得したデータフォーマット名を設定する。データ項目名１２０３として、取得したデータ項目名を設定する。データ型１２０４として、取得したデータ型を設定する。こうして得られたレコードを追加・更新する。
【００２６】
図５を参照して、データ生成条件生成部２１及びデータ生成条件情報部２２の動作を説明する。ステップ２１０１にて、データ生成条件生成部２１は、作業者が入力装置３０を介して入力した、１つのデータ項目の管理ＩＤ、生成条件種別、生成条件の取得を行う。作業者は、入力を行うとき、データフォーマット情報部１２を参照して、生成条件の定義を行うデータ項目をあらかじめ指定することにより、管理ＩＤを取得してもよい。
【００２７】
ステップ２１０２にて、データ生成条件生成部２１は、定義が完了したかどうかを判断する。例えば、作業者が入力装置３０を介して定義完了ボタンを押したことを検知することによって判断する。定義が完了した場合はステップ２１０３に進む。
【００２８】
ステップ２１０３にて、データ生成条件情報部２２は、取得した全ての生成条件ごとに次の処理を行う。管理ＩＤ２２０１として、取得した管理ＩＤを設定する。生成条件種別２２０２として、取得した生成条件種別を設定する。生成条件２２０３として、取得した生成条件を設定する。こうして得られたレコードを追加・更新する。
【００２９】
図６を参照してデータ項目名によるテストデータ生成部１３の動作を説明する。本例では、テストデータのインスタンス値として、入力データのデータフォーマット情報の属性として与えられるデータ項目名を用いる。
【００３０】
しかしながら、１つのデータフォーマットに対して、全てのデータ項目のインスタンス値を一様にデータ項目名として与えることによって、テストデータを生成した場合、以下のような不具合が生ずることがある。
【００３１】
（１）データ型属性が数値等の文字列以外の場合、開発プログラム実行時、データ型不一致に関わるエラーが出力される場合がある。
【００３２】
（２）開発プログラム仕様等の理由により、データ項目によっては、データ生成条件を定義することによって、テストデータ生成を行う必要がある。
【００３３】
従って、以下に説明するように、データ型が文字列であるデータ項目についてのみ、データ項目名をインスタンス値としてテストデータを生成する。開発者が特に、データ生成条件を定義した場合には、そのデータ項目のテストデータ生成に関しては、データ生成条件によりテストデータを生成し、それ以外のデータ項目については、データ項目名をテストデータのインスタンス値として出力する。
【００３４】
ステップ１３０１では、作業者によって入力された、これから生成するテストデータのデータフォーマット名の取得を行う。例えば、作業者は、ディスプレイ装置の画面上に表示されたデータフォーマット情報テーブル（図２）から、所望のデータフォーマット名１２０２を選択することができる。本例では、作業者は、データフォーマット名として、“支払ファイル”を入力したものとする。
【００３５】
ステップ１３０２では、ステップ１３０１で取得したデータフォーマット名について、データフォーマット情報部１２に記憶されているテーブルから、「データフォーマット名１２０２＝ステップ１３０１で取得したデータフォーマット名」となる全てのレコードを取得する。取得したレコードでは、ステップ１３０１で取得したデータフォーマット名において定義された管理ＩＤ１２０１、データ項目名１２０３、データ型１２０４の対応を参照することができる。本例では、データフォーマット名として、“支払ファイル”を取得したから、データフォーマット情報部１２から、管理ＩＤが“００１”、“００２”、“００３”である３つのレコードを取得する。
【００３６】
ステップ１３０３では、１つのレコードに着目し、そのデータ項目のデータ生成条件が別途定義されているかどうかを確認する。これは、データ生成条件情報部２２に記憶されているデータ生成条件情報テーブル（図３）から、「管理ＩＤ（２２０１）＝該レコードの管理ＩＤ（１２０１）」となるレコードが存在するかどうかを判定することにより確認することができる。本例では、データフォーマット情報部１２から、管理ＩＤが“００１”、“００２”、“００３”である３つのレコードを取得したから、管理ＩＤが“００３”であるレコードのみデータ生成条件が定義されているということになる。データ生成条件確認の結果、定義されていない場合は、ステップ１３０４の処理を行い、定義されている場合は、ステップ１３０７の処理を行う。
【００３７】
ステップ１３０４では、ステップ１３０２で取得した１つのレコードにおいて、データ項目のデータ型が文字列属性かどうかを確認する。本例では、管理ＩＤが“００１”であるレコードのデータ型は“文字列”であるが、管理ＩＤが“００２”であるレコードのデータ型は“数値”であり“文字列”ではない。データ型確認の結果、“文字列”である場合は、ステップ１３０５の処理を行い、“文字列”でない場合は、ステップ１３０６の処理を行う。
【００３８】
ステップ１３０５では、ステップ１３０２で取得したレコードのデータ項目名を出力する。本例では、管理ＩＤが“００１”であるレコードにおいては、“支払予定日”を出力することになる。
【００３９】
ステップ１３０６では、ＮＵＬＬ値を出力する。本例では、管理ＩＤが“００２”であるレコードの場合、ＮＵＬＬ値を出力する。
【００４０】
ステップ１３０７では、生成条件によるテストデータ生成部２３に対して、データ生成条件実行指示を行うとともに、ステップ１３０２で取得したレコードの管理ＩＤを受け渡す。本例では、管理ＩＤが“００３”であるレコードの場合、生成条件によるテストデータ生成部２３がテストデータを生成する。
【００４１】
ステップ１３０８では、ステップ１３０２で取得した全てのレコードについて、テストデータを生成したかを確認する。生成した場合は、ステップ１３０９を行い、そうでない場合は、ステップ１３０３を繰り返し行う。
【００４２】
ステップ１３０９では、ステップ１３０２で取得したデータフォーマット情報にしたがって、ステップ１３０５〜１３０７にて生成した各データ項目におけるデータを結合することによって、最終的なデータフォーマットとしてのテストデータを出力する。
【００４３】
図７を参照して生成条件によるテストデータ生成部２３の動作を説明する。ステップ２３０１では、ステップ１３０７（図６）から受け渡された管理ＩＤの取得を行う。本例では、管理ＩＤとして、“００３”が入力されたものとする。
【００４４】
ステップ２３０２では、ステップ２３０１で取得した管理ＩＤについて、データ生成条件情報部２２に記憶されているデータ生成条件情報テーブル（図３）から、「管理ＩＤ（２２０１）＝ステップ２３０１で取得した管理ＩＤ」となるレコードを取得し、ステップ２３０１で取得した管理ＩＤに対応する生成条件２２０２を取得する。本例では、管理ＩＤとして、“００３”を取得したから、データ生成条件情報部２２から、生成条件として“＝‘ＡＴ’”を取得する。
【００４５】
ステップ２３０３では、ステップ２３０２で取得した生成条件の実行を行う。ステップ２３０４では、ステップ２３０３の実行の結果を、ステップ１３０７へ受け渡す。
【００４６】
本例によると、従来必要とされていたテストデータ生成条件の定義を、特に必要としない限り、行う必要がなくなり、テストデータの生成に関わる手数を省略することができる。
【００４７】
更に、開発プログラム実行結果から得られる出力データには、入力データフォーマットのデータ項目名が出力されるので、入力フォーマットに対する出力フォーマットの対比が非常に安易に行うことができる。従って、開発プログラムの動作検証に関わる工数を削減することができる。
【００４８】
特に、本発明により生成されるテストデータは、データ変換処理によく見られるような、大部分が文字列の交換を行うプログラムや、取り扱うデータ項目の数が多いプログラムのテストにおいて、非常に効果的である。
【００４９】
以上、本発明の例を説明したが、本発明は上述の例に限定されるものではなく、特許請求の範囲にて様々な変更が可能であることは、当業者に理解されよう。
【図面の簡単な説明】
【００５０】
【図１】本発明のテストデータ生成システムの構成を示す図である。
【図２】データフォーマット情報の例を示す図である。
【図３】データ生成条件情報の例を示す図である。
【図４】データフォーマット生成部の処理手順を示す流れ図である。
【図５】データ生成条件生成部の処理手順を示す流れ図である。
【図６】データ項目名によるテストデータ生成部の処理手順を示す流れ図である。
【図７】生成条件によるテストデータ生成部の処理手順を示す流れ図である。
【符号の説明】
【００５１】
１…テストデータ生成システム、１１…データフォーマット生成部、１２…データフォーマット情報部、１３…データ項目名によるテストデータ生成部、２１…データ生成条件生成部、２２…データ生成条件情報部、２３…生成条件によるテストデータ生成部、３０…入力部
【図１】
2005174007.tif 000003
【図２】
2005174007.tif 000004
【図３】
2005174007.tif 000005
【図４】
2005174007.tif 000006
【図５】
2005174007.tif 000007
【図６】
2005174007.tif 000008
【図７】
2005174007.tif 000009