JP6882892B2 - データ生成 - Google Patents

データ生成 Download PDF

Info

Publication number
JP6882892B2
JP6882892B2 JP2016536923A JP2016536923A JP6882892B2 JP 6882892 B2 JP6882892 B2 JP 6882892B2 JP 2016536923 A JP2016536923 A JP 2016536923A JP 2016536923 A JP2016536923 A JP 2016536923A JP 6882892 B2 JP6882892 B2 JP 6882892B2
Authority
JP
Japan
Prior art keywords
data
fields
record
content
processing application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016536923A
Other languages
English (en)
Other versions
JP2017500646A5 (ja
JP2017500646A (ja
Inventor
エー. イスマン,マーシャル
エー. イスマン,マーシャル
アラン エプスタイン,リチャード
アラン エプスタイン,リチャード
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2017500646A publication Critical patent/JP2017500646A/ja
Publication of JP2017500646A5 publication Critical patent/JP2017500646A5/ja
Application granted granted Critical
Publication of JP6882892B2 publication Critical patent/JP6882892B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

優先権の主張
本願は、2013年12月18日に出願された米国特許出願第61/917,727号に対する優先権を主張し、同出願は参照によりすべての内容が本明細書に組み込まれる。
本記載はデータ生成に関する。
データ処理アプリケーションの開発時に、開発者は生産環境の外で作業をすることがあり、生産データを入手することができない場合がある。データ処理アプリケーションが生産時に実際のデータで正しく動作することを保証するために、データ処理アプリケーションの開発および試験時に実際的なデータを使用することがある。
一般的な態様において、方法は、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数を示すデータを受け取る工程と、1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数の特定のフィールド各々の内容の基準を決定する工程と、内容の基準に基づいて特定のフィールド各々の内容を生成する工程と、特定のフィールド各々に、生成された内容を入れる工程とを含む。
実施形態は、以下の特徴の1つまたは複数も含むことができる。
内容を生成する工程は、特定のフィールド各々についてのフォーマットの指定に基づいて内容を生成する工程を含む。フォーマットの指定は、ストリング、小数、整数、日付、または日時、の1つまたは複数を含む内容の種類を指示する。上記方法は、ユーザインターフェースを通じてフォーマットの指定を受け取る工程を含む。
上記方法は、特定のフィールドの1つまたは複数を含む新しいレコードを作成する工程と、新しいレコードの上記特定のフィールドに内容を入れる工程とを含む。
特定のフィールド各々に生成された内容を入れる工程は、特定のフィールドの1つまたは複数について、既に存在する内容に変更を加える工程を含む。
フィールド各々に内容を入れる工程は、1つまたは複数の既に存在するレコードに特定のフィールドを作成する工程を含む。
内容の基準は、目標値、目標とする値の範囲、目標とする値の分布、最大値、または最小値、の1つまたは複数を含む。
内容の基準は、生成される内容について特定の値を含む。
内容の基準は、1つまたは複数のフィールドの2つ以上に含める内容の組み合わせの目標を指示する。
上記方法は、ユーザインターフェースを通じて内容の基準を受け取る工程を含む。
内容を生成する工程は、生成モードに基づいて内容を生成する工程を含む。
生成モードは、(i)複数のレコード各々のフィールドの1つまたは複数について、ランダムな内容を生成すること、(ii)複数のレコード各々のフィールドの1つまたは複数について、一意の内容を生成すること、および(iii)複数のレコード各々のフィールドの1つまたは複数のフィールドの内容を、利用可能な内容のセットから選択すること、の1つまたは複数を含む。
上記方法は、生成された内容を含む1つまたは複数のレコードをデータ処理アプリケーションに提供する工程を含む。
内容の基準は、特定の規則をデータ処理アプリケーションによって実行させるように決定される。
内容の基準を決定する工程は、実行された回数が最小閾値回数よりも少なかった特定の規則を特定する工程と、その特定の規則を少なくとも最小閾値回数実行させるように内容の基準を決定する工程とを含む。
フォーマットの指定は内容の種類を含む。
一般的な態様において、方法は、ユーザインターフェースを通じてフォーマットの指定を受け取る工程と、ユーザインターフェースを通じて内容の基準を受け取る工程と、ユーザインターフェースを通じて、内容が生成されるモードの指示を受け取る工程と、指示されたモードに従って内容を生成する工程であって、生成される内容はフォーマットの指定と内容の基準とを満たす、工程と、レコード中にフィールドを作成する工程であって、フィールドは生成された内容を含む、工程とを含む。
実施形態は、以下の特徴の1つまたは複数を含むことができる。
上記モードは、(i)複数のレコード各々にランダムな内容を生成すること、(ii)複数のレコード各々に一意の内容を生成すること、および(iii)複数のレコード各々の内容を、利用可能な内容のセットから選択すること、の1つまたは複数を含む。
内容の基準を受け取る工程は、ユーザインターフェースに表示された1つまたは複数の内容の基準からの内容の基準の選択を受け取ることを含む。
フォーマットの指定を受け取る工程は、ユーザインターフェースに表示された1つまたは複数のフォーマットの指定からのフォーマットの指定の選択を受け取ることを含む。
フォーマットの指定は、ストリング、小数、整数、日付、または日時、の1つまたは複数などの内容の種類を指示する。
内容の基準は、内容の最大値、内容の最小値、および内容の値の範囲、の1つまたは複数を指示する。
内容の基準は内容について特定の値を指示する。
内容の基準は、内容の目標分布を指示する。
内容の基準は、2つ以上のフィールドに含める内容の組み合わせの目標を指示する。
内容生成モードの指示を受け取る工程は、ユーザインターフェースに表示された1つまたは複数の内容生成モードからの内容生成モードの選択を受け取ることを含む。
上記方法は、新しいレコードを作成する工程を含む。レコードにフィールドを作成する工程は、新しいレコードにフィールドを作成する工程を含む。
上記方法は、第2のフォーマットの指定、第2の内容の基準、および第2のモードの指示を受け取る工程と、指示された第2のモードに従って第2の内容を生成する工程であって、生成される内容は第2のフォーマットの指定と第2の内容の基準とを満たす、工程と、レコード中の既存のフィールドの内容を生成された第2の内容に置き換える工程とを含む。
一般的な態様において、非一時的なコンピュータ読取り可能媒体は、コンピュータシステムに、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数のフィールド各々の内容の基準を決定させ、内容の基準に基づいてフィールド各々の内容を生成させ、1つまたは複数のレコードのフィールド各々に、生成された内容を入れさせる命令を記憶する。
一般的な態様において、コンピューティングシステムは、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数のフィールド各々の内容の基準を決定し、内容の基準に基づいてフィールド各々の内容を生成し、1つまたは複数のレコードのフィールド各々に、生成された内容を入れるように構成された少なくとも1つのプロセッサを備える。
一般的な態様において、コンピューティングシステムは、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数のフィールド各々の内容の基準を決定する手段と、内容の基準に基づいてフィールド各々の内容を生成する手段と、1つまたは複数のレコードのフィールド各々に、生成された内容を入れる手段とを備える。
一般的な態様において、データ処理アプリケーションの開発中に前記データ処理アプリケーションを試験する方法は、データ処理アプリケーションを使用して第1のデータレコードを処理する工程であって、データ処理アプリケーションは1つまたは複数の規則を実装する、工程を含む。各第1のデータレコードは複数のフィールドを有する。上記方法は、第1のデータレコードの処理中にデータ処理アプリケーションの各規則が実行される回数を、規則の目標値と比較する工程を含む。上記方法は、比較の結果に基づいて、データ処理アプリケーションを使用して処理される第2のデータレコードのデータの目標とする特性を指示する内容の基準を決定する工程を含む。上記方法は、第1のデータレコードのフォーマットと内容の基準とに従って、第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程と、データ処理アプリケーションを使用して第2のデータレコードを処理する工程と、第2のデータレコードの処理中にデータ処理アプリケーションの各規則が実行される回数を、前記規則の前記目標値と比較し、各規則の前記目標値が満たされることを判定する工程と、第2のデータレコードを使用してデータ処理アプリケーションを試験する工程とを含む。
実施形態は、以下の特徴の1つまたは複数を含むことができる。
上記方法は、第1のデータレコードをクライアント装置で受け取る工程を含み、データ処理アプリケーションはそのクライアント装置で実行される。クライアント装置はコンピューティング装置からなる。
上記方法は、第1のデータレコードを遠隔のサーバから受け取る工程を含む。上記方法は、LANまたはWAN接続を介してサーバに通信的に結合されたクライアント装置で、第1のデータレコードを受け取る工程を含む。
上記方法は、データ処理アプリケーションが第2のデータレコードを処理する時に第2のデータレコードのデータが各規則の前記目標値を満たさせるように、内容の基準を決定する工程を含む。
第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程は、第1のデータレコードの1つまたは複数のフィールドの内容に変更を加える工程を含み、変更が加えられた第1のデータレコードが第2のデータレコードである。
第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程は、新しいデータレコードを作成する工程を含む。
上記方法は、第2のデータレコードを記憶装置に記憶する工程を含む。
上記方法は、試験の結果に基づいて、データ処理アプリケーションに変更を加える工程を含む。
データ処理アプリケーションを試験する工程が、データ処理アプリケーションを使用して第2のデータレコードを処理した結果に基づいてデータ処理アプリケーションに変更を加える工程を含む。
上記方法は、第2のデータレコードのデータが、生産環境でデータ処理アプリケーションによって処理されることが予想されるデータとほぼ同様になるように内容の基準を決定する工程を含む。
態様は、以下の利点の1つまたは複数を含む可能性がある。例えば単純明快なユーザインターフェースを通じて、任意のフォーマットの指定および内容の基準に従ってデータを生成することができる。例えば既存のデータセットに十分なレコードがない場合や、要求される特性を持つレコードがない場合に、データの生成を使用して既存のデータを補うことができる。データの生成を使用して、例えばアプリケーションが、入手可能でないデータを必要とする場合などに、データを新規に生成することもできる。
いくつかの例では、データ処理アプリケーションを試験するために実際的なデータを生成することができる。例えば、データ処理アプリケーションのすべての規則を少なくとも1回実行させる、例えばデータ処理アプリケーション中で発生し得るあらゆる動作をトリガーする試験データのセットを生成することができる。そのようなデータが存在しない場合は、そのデータを生成することができる。例えば、データの完全なセットが生成されると、生成されたデータのセットをデータ処理アプリケーションで処理して、データ処理アプリケーションの実行を試験することができる。生成されたデータのセットはデータ処理アプリケーション中で発生し得るあらゆる動作を実行させるので、データ処理アプリケーションを徹底的に試験することができる。データ処理アプリケーションが予想されるように機能しない場合(例えばデータ処理アプリケーションのある動作が予想されるように機能しない場合)は、データ処理アプリケーションに適宜変更を加え、満足の行く結果が達成されるまで試験することができる。
本発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになろう。
データ生成のシステムのブロック図である。 データ生成モジュールのブロック図である。 例示的なソースファイルの一部分の図である。 例示的なターゲットファイルの一部分の図である。 例示的なターゲットファイルの一部分の図である。 例示的なターゲットファイルの一部分の図である。 ソースウィンドウの図である。 ソースウィンドウの図である。 データ生成ウィンドウの図である。 ターゲットウィンドウの図である。 補助ソースウィンドウの図である。 レコードフォーマットウィンドウの図である。 ストリング特性ウィンドウの図である。 小数特性ウィンドウの図である。 整数特性ウィンドウの図である。 日付特性ウィンドウの図である。 日時特性ウィンドウの図である。 規則を作成するウィンドウの図である。 規則を作成するウィンドウの図である。 規則を作成するウィンドウの図である。 規則を作成するウィンドウの図である。 規則を作成するウィンドウの図である。 規則を作成するウィンドウの図である。 規則を作成するウィンドウの図である。 サブジェクト領域のデータセットについてのウィンドウの図である。 サブジェクト領域のデータセットについてのウィンドウの図である。 フローチャートである。 データ処理アプリケーションのブロック図である。 フローチャートである。
本明細書には、設定可能な様々なオプションに従ってデータを生成する一般的な手法を記載する。例えば、生成されるデータのデータ型をユーザが指定することができる。データ型には、例えば、ストリング、小数、整数、日付、および日時がある。生成されるデータは、生成されるデータの特性に制限を加える1つまたは複数の設定可能な内容の基準を満たすことができ、そのような基準には、例えば、生成される小数データや整数データに許容される値の範囲、生成されるストリングデータの平均ストリング長、生成されるデータで使用できる値または文字のセット、および他の特性などがある。データの生成は、既存のソースレコードの1つまたは複数のフィールドの値の変更、レコードに新しいフィールドを作成して内容を入れることによるソースレコードの増補、または全く新しいレコードの作成が含まれる可能性がある。いくつかの例では、設定可能なオプションを、ユーザインターフェースを通じてユーザが指定することができる。
いくつかの例では、レコードのセットがデータ処理アプリケーションによって処理することができる。データ処理アプリケーションは、実行が入力レコードに依存するなど、実行が1つまたは複数の変数の値に依存する規則を実装することがある。いくつかの例では、レコードのセットにデータを生成して、データ処理アプリケーションがそのレコードのセットを処理した時に、要求される実行結果を生じさせることができる。例えば、データ処理アプリケーション内で特定の規則を実行させる、または特定の規則をより多くの回数、もしくは少ない回数実行させる、または別の要求される実行結果を生じさせるデータをレコードのセットに生成することができる。アプリケーションを実行した結果に基づき、例えば要求される実行結果をより良好に達成するためにどのようなデータを生成すべきかを決定することができる。例えば、そのデータ処理アプリケーションで処理されることが予想される生産データとほぼ同様の実際的なデータのセットを生成することができる。生成された実際的なデータのセットを使用してデータ処理アプリケーションを試験することができ、例えば、データ処理アプリケーションのすべての側面が正しく動作することを保証することができる。試験の結果に基づいて、生産環境で使用する前に適宜データ処理アプリケーションに変更を加えることができる。
図1は、本データ生成技術を使用することができる例示的なデータ処理システム100を示す。システム100は、記憶装置やオンラインデータストリームへの接続など、1つまたは複数のデータソースを含むソース102を含み、それぞれのデータソースは、各種フォーマットのデータを記憶または提供することができる(例えばデータベーステーブル、表計算ファイル、フラットテキストファイル、メインフレームで使用される固有フォーマット等)。実行環境104は実行モジュール112を備える。実行環境104は、例えば、任意バージョンのUNIX(登録商標)オペレーティングシステムなど、適切なオペレーティングシステムの制御下で1つまたは複数の汎用コンピュータにホストすることができる。例えば、実行環境104は、コンピュータシステムが複数の中央処理処理(CPU)またはプロセッサコアを使用する構成の多ノードの並列コンピューティング環境を含む可能性があり、中央処理処理(CPU)またはプロセッサコアは、ローカルである(例えば対称型マルチ処理(SMP)コンピュータなどのマルチプロセッサシステム)か、またはローカルで分散されるか(例えばクラスタや超並列処理(MPP)システムとして結合された複数のプロセッサ)、または遠隔にあるか、または遠隔で分散されるか(例えば、ローカルエリアネットワーク(LAN)および/もしくはワイドエリアネットワーク(WAN)を介して結合された複数のプロセッサ)、またはそれらの組み合わせである。
ソース102は記憶装置を含み、この記憶装置は、例えば実行環境104をホストするコンピュータに接続された記憶媒体(例えばハードドライブ108)など、実行環境104のローカルにあるか、または実行環境104から遠隔にあり、例えば、遠隔への接続(例えばクラウドコンピューティングインフラストラクチャにより提供される)を通じて、実行環境104をホストするコンピュータと通信する遠隔のシステム(例えばメインフレーム110)にホストされる。
実行モジュール112は、ソース102からデータを読み出し、処理する。実行モジュール112は、データに演算などの処理を実行する1つまたは複数のデータ処理アプリケーションを含む。出力データ114は、ソース102に戻して記憶されるか、実行環境104からアクセスすることができるデータ記憶システム116に記憶されるか、またはその他の形で使用される場合がある。
データ記憶システム116には、開発者120がデータ処理アプリケーション、ソース102、またはその両方を設定することができる開発環境118からもアクセスすることができる。開発環境118は、実装によっては、頂点(データ処理コンポーネントまたはデータセットを表す)間の有向リンク(作業要素、すなわちデータの流れを表す)で接続された頂点を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。例えば、そのような環境については、「Managing Parameters for Graph−Based Applications」という名称の米国公開第2007/0011668号に詳細に記載され、同公開は参照により本明細書に組み込まれる。そのようなグラフを用いた演算を実行するためのシステムが「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」という名称の米国特許第5,966,072号に記載される。システム100に従って作成されたデータフローグラフは、グラフの構成要素で表される個々のプロセスに情報を出し入れし、プロセス間で情報を移動し、プロセスに実行の順序を定義する手段をもたらす。システム100は、利用可能な方法からプロセス間通信の方法を選択するアルゴリズムを含む(例えばグラフのリンクに従う通信経路にはTCP/IPもしくはUNIX(登録商標)のドメインソケットを使用することができ、または共有メモリを使用してプロセス間でデータを渡すことができる)。
データ生成モジュール150は、実行モジュールで処理するデータを生成することができる。データ生成モジュール150は、ソース102にあるデータなど、既存のデータに変更を加えるか、または増補することができる。例えば、データ生成モジュール150は、ソースデータレコードの1つまたは複数のフィールドの値に変更を加えたり、ソースデータレコードに1つまたは複数の新しいフィールドを作成して内容を入れることができる。データ生成モジュール150は、例えばソースデータレコードのフォーマットや指定されたフォーマットに基づいて、全く新しいデータレコードを生成することもできる。
図2を参照すると、データ生成モジュール150は、ターゲット24に記憶されるデータを生成するデータ生成エンジン20を含む。いくつかの例では、データ生成エンジン20は、データソース22のデータに基づいてデータを生成することができる。いくつかの例では、データ生成エンジン20は、新規に、すなわちソースデータを使用せずにデータを生成することができる。データソース22は、ファイル、データベース、パラメータセット、別のデータソース等である。データソース22は、それぞれが1つまたは複数のデータフィールドを持つ1つまたは複数のレコードを含むことができる。例えば、例示的なデータソースは、小売店の顧客の顧客レコードを記憶したデータベースである(本明細書では「顧客データベース」と呼ぶ)。データベースの各レコードは個々の顧客を表す。各レコードは複数のフィールドを有することができる。データソース22は、フィールドの数、各フィールドのデータの型(例えばストリング、整数、小数、日付、または日時)、および各フィールドのデータの特性(例えば許可される値の範囲、最大許可値、許可される文字のリスト、または他の制限)など、レコードのフォーマットを指定するレコードフォーマットを有することができる。いくつかの例では、新規にデータが生成され、データソースは提供されない。
例えば、図3Aを参照すると、例示的なソースファイル200の一部は6つのレコード202を含み、各レコードは、cust_IDフィールド204、nameフィールド206、cust_ageフィールド208、およびstateフィールド210、のフィールドを持つ。
再度図2を参照すると、いくつかの例では、データソース22はユーザ26によって特定することができる。例えば、データ生成モジュール150のユーザインターフェースエンジン28が、例えばパーソナルコンピュータやモバイルコンピューティング装置などのコンピューティング装置32のディスプレイインターフェースで、ユーザインターフェース30をユーザ26に表示させることができる。ユーザ26は、ユーザインターフェース30を通じてデータソース22を特定することができる。生成されたデータは、ファイル、データベース、パラメータセット、または別のデータ構造などのターゲット24に記憶することができる。いくつかの例では、ターゲットファイル24は、例えばユーザインターフェース30を通じてユーザ26によって特定することができる。いくつかの例では、ターゲットのレコードフォーマットがソースのレコードフォーマットと一致する場合がある。すなわち、ターゲットに指定されるレコードフォーマットは、ソースにある既存レコードのレコードフォーマットと同じである場合がある。いくつかの例では、ターゲットのレコードフォーマットがソースのレコードフォーマットと異なり、ソースのレコードフォーマットの一部またはすべてをターゲットにマッピングすることができる。例えば、ソースの1つまたは複数のフィールドのフォーマットを、ターゲットのレコードフォーマットに含めることができる。
データ生成モジュール150は、例えばデータベース36、ファイル、または別のデータ構造に記憶された構成データ34に基づいて、ターゲット24のデータを生成することができる。構成データ34は、ターゲット24に使用するデータ生成手法、ターゲット24の内容生成モード、ターゲット24に生成するデータのデータ型、ターゲットに生成するデータの内容の基準、およびターゲット24に生成するデータについての他の構成情報を指定することができる。これらの構成データ34については下記で詳細に説明する。いくつかの例では、ターゲット24のデータを生成するために使用される構成データ34の一部またはすべてが、例えばユーザインターフェース30を通じてユーザ26によって指定される場合がある。いくつかの例では、構成データ34の一部またはすべてが、例えばデータソース22の分析や要求されるターゲットの属性についての情報に基づいて、構成エンジン39によって決定される場合もある。
いくつかの例では、データ生成エンジン20は、構成データ34に従って、データソース22にある既存のソースレコードのフィールドの1つまたは複数の値を変更することにより、ターゲット24のデータを生成することができる。変更されたレコードはターゲット24に記憶することができる。いくつかの例では、所与のフィールドに対応するすべての値を変更する場合もある。例えば、すべてのレコードにわたる任意のフィールドの値の分布が、構成データ34で示される目標の分布と一致するように、各レコードの当該フィールドに値を割り当てることができる。例えば、その分布は、ユーザ26によって指定される場合も、構成エンジン39によって決定される場合もある。いくつかの例では、構成データ34で示される指定の基準を満たさない値だけを変更するなど、所与のフィールドに対応するすべての値よりも少ない値を変更する場合もある。例えば、任意のフィールドについて、そのフィールドに許可される特定範囲の値の外側にある対応する値が変更される場合がある。
例えば、図3Bを参照すると、例示的なターゲットファイル220の一部は、ソースファイル200に基づいて生成されたレコード222を含んでいる。この例では、構成データ34(図2)は、cust_ageフィールド208は40の最大値を持ち得ることを示している。構成データ34で指定されるこの基準を満たすために、cust_ageフィールドの最大値が40になるように、ソースファイル200のcust_ageフィールド208の値がデータ生成エンジン20によって変更されている。すなわち、特定のレコード222aのcust_ageフィールド208の値が、45(ソースファイル200)から25(ターゲットファイル220)に変更されている。生成されたターゲットファイルのレコード222の他のフィールドの値は、ソースレコード202の値に対応する。
再度図2を参照すると、いくつかの例では、データ生成エンジン20は、構成データ34に従ってデータソース22の既存のソースレコードを1つまたは複数の新しいフィールドで増補することによりデータを生成することができる。増補されたレコード(すなわち1つまたは複数の新しいフィールドを持つレコード)はターゲット24に記憶することができる。構成データ34は、新しいフィールドの数、新しいフィールドのデータ型と値、および新しいフィールドの他の特性を決定する命令を提供することができる。いくつかの例では、構成データ34は、新しいフィールドの値を、データソース22のソースデータにある既存フィールドに対応するデータに基づいて生成することを指定することができる。いくつかの例では、構成データ34は、既存のソースデータではなく例えば指定された特性(例えば構成データ34で指定される特性)に従って、新規に新しいフィールドの値を生成することを指定する場合がある。
例えば、図3Cを参照すると、例示的なターゲットファイル230の一部は、ソースファイル200に基づいて生成されたレコード232を含んでいる。この例では、構成データ34(図2)は、cust_ageフィールド208の値を5つの利用可能なage_rangeの値域(bucket)の1つに分類することによって生成された値を持つ新しいage_rangeフィールド234を作成するよう指定する。構成データ34はさらに、ソースファイル200にあるデータとの関係は一切なしに、指定された最大値および最小値を条件とする値を使用して新しいcust_incomeフィールド236を作成するよう指定する。
再度図2を参照すると、いくつかの例では、データ生成エンジンは、構成データ34に従って、データソース22の既存のソースレコードを1つまたは複数の新しいレコードで増補することによりデータを生成することができる。増補されたレコード(すなわち既存のソースレコードと新しいレコードの両方)はターゲット24に記憶することができる。新しいレコードは、ソースレコードと同じレコードフォーマットを持つことができる。構成データ34は、新しいレコードの数、新しいレコードのフィールドの値、および新しいレコードの他の特性を決定する命令を提供することができる。いくつかの例では、構成データ34は、新しいレコードの1つまたは複数のフィールドの値を、データソース22の既存のソースデータには一切基づかずに、例えば指定された特性に従って新規に生成するように指定する。いくつかの例では、構成データ34は、新しいレコードの1つまたは複数のフィールドの値を、構成データ34で指定される概要を満たすように生成することを指定する。例えば、概要は、すべてのレコードの特定のフィールドの値が平均や分布などの特性を満たすことを指定する。例えば、顧客データベースのソースでは、すべてのレコードにわたるcust_ageフィールドの値が、構成データ34で指定される特定の分布を満たすように新しいレコードを生成することができる。
例えば、図3Dを参照すると、例示的なターゲットファイル240の一部は、ソースファイル200に基づいて生成されたレコード202、242を含んでいる。この例では、構成データ34(図2)は、すべてのレコードにわたるcust_ageフィールド208の値が、当該フィールドの「60」の最大値を条件として40〜45の間の平均値を持つように、4つの新しいレコード242を作成することを指定する。この例では、構成データ34は、他のフィールドそれぞれの値は、例えばそのフィールドに指定される特性に従って、無作為に生成することを指定する。元のソースレコード202もターゲットファイル240に含められる。
いくつかの例では、データ生成エンジン20は、構成データ34に従って2つ以上の手法をデータ生成に適用することができる。例えば、データ生成エンジン20は、1つまたは複数のフィールドの値に変更を加えることができる手法、ソースレコードを1つまたは複数の新しいフィールドで増補することができる手法、およびソースレコードを1つまたは複数の新しいレコードで増補することができる手法などの手法の組み合わせを適用することができる。
いくつかの例では、ファイル、データベース、またはパラメータセットなどの生成されたレコードだけがターゲットに記憶され、ソースレコード(存在する場合)はターゲットに記憶されない。いくつかの例では、ソースが例えばユーザによって指定され、生成されるレコードは、ソースのレコードフォーマット、ソースの1つまたは複数のフィールドの概要、またはソースの別の特性に基づいて、データ生成エンジン20モジュールによって生成されることがある。いくつかの例では、ソースは指定されず、レコードは、構成データ34に従って、新規にデータ生成エンジン20によって自動的に生成される。例えば、1つまたは複数のフィールドのレコードフォーマットおよび特性が、構成データ34で指定される場合がある。
いくつかの例では、ソースのレコードフォーマットをターゲットにマッピングすることができる。例えば、構成データ34は、ソースのレコードフォーマットをターゲットで採用することを指示する場合がある。例えば、構成データ34に従ってソースのレコードフォーマットをターゲットに適用することができ、ソースのレコードフォーマットに従って、データ生成エンジン20で新規に新しいレコードを生成することができる。いくつかの例では、複数のソースからデータが生成されることがあり、各ソースのレコードフォーマットを、部分的または完全にターゲットにマッピングすることができる。例えば、各ソースにある対象フィールドのフォーマットをターゲットにマッピングすることができる。
いくつかの例では、ソースのレコードフォーマットをターゲットにマッピングし、変更を加えることもある。例えば、構成データ34は、フィールドの名前をソースからターゲットで変更する、またはソースにあるフィールドを削除することを指定する場合がある。
図4を参照すると、データ生成モジュール150は、ユーザがデータソースを特定できるソースウィンドウ300を提供するユーザインターフェース(例えば図2のユーザインターフェース30)を提供する。ソースウィンドウ300はソースタイプメニュー302を含み、このメニューでユーザはファイルやデータベースなどのソースのタイプを指定することができる。図4の例では、ソースはファイルである。ソースウィンドウ300で、ユーザは、ソースまでのパス(例えばファイルソースまでのパスや、データベースソースの構成ファイルまでのパス)などのソースの識別子304、およびソースレコードのレコードフォーマットの識別子(例えばレコードフォーマットファイルまでのパス)を指定することができる。いくつかの例では、ソースがデータベースである場合、ユーザは、データベースからソースデータを取得するために使用されるクエリ(例えばSQLクエリ)を指定することができる。ソースウィンドウ300は、新しいレコード306を生成するかどうか、および生成する場合は生成する新しいレコードの数をユーザが指示できるオプションを提供する。ソースウィンドウ300で、ユーザはソースに関する他の情報308を見ることができる。例えば、ユーザは、ソースのレコードフォーマット、ソースデータ、またはソースデータの概要を見ることができる。いくつかの例では、データフローグラフなどの実行可能アプリケーションを使用してソースデータを生成することができる。
図5Aおよび図5Bを参照すると、いくつかの例ではユーザインターフェース30のソースウィンドウ300で、ユーザは、ソースを指定せずに、新規にデータを生成することを指定することができる。詳細には、ソースウィンドウ300で、ユーザは、ソースタイプメニュー302で、生成されるデータをソースタイプとして選択することができる。ユーザが生成されるデータをソースタイプとして選択すると、データ生成ウィンドウ400がユーザインターフェース30に表示される。データ生成ウィンドウ400で、ユーザは、データを生成するために使用する方法402(下記で説明する)を指示し、生成する新しいレコードの数404を指示することができる。いくつかの例では、ユーザがデフォルトの指定を変更しない限り、ターゲットのレコードフォーマットで指定されるデフォルトのデータ生成モードやデフォルトの値などのデフォルトのデータ生成特性を使用して、新規にデータを生成することができる。例えば、フィールド生成指定変更のオプション406で、ユーザは、ターゲットの1つまたは複数のフィールドについてデータ生成特性を指定することができる。いくつかの例では、規則のオプション408で、ユーザは、個々のフィールドに、より複雑なデータ生成規則を作成することができる。
図6を参照すると、ユーザインターフェース30は、ユーザがターゲットを特定することができるターゲットウィンドウ500を提供する。ターゲットウィンドウ500のターゲットタイプメニュー502で、ユーザはファイルやデータベースなどターゲットの種類を指定することができる。ターゲットウィンドウ500で、ユーザは、ターゲットの識別子504(例えばターゲットファイルまでのパスや、ターゲットデータベースの構成ファイルまでのパス)を指定することもできる。いくつかの例では、例えばターゲットウィンドウ500を通じて異なるレコードフォーマットが指定されない限り、ソースのレコードフォーマットがターゲットのレコードフォーマットとして使用される。例えば、ソースを使用せずに新規にデータを生成する場合、ターゲットのレコードフォーマットを指定するレコードフォーマットファイルを、ターゲットウィンドウを通じて特定することができる。いくつかの例では、データフローグラフなどの実行可能アプリケーションを使用して、生成されたデータをターゲットに書き込むことができる。ターゲットウィンドウ500は、ソースとターゲットが特定されると、データ生成のための各種の設定可能なオプションをユーザが利用できるようにする実行ボタン506を備える。ターゲットウィンドウ500で、ユーザはソースに関する他の情報508も見ることができる。例えば、ユーザは、ターゲットデータセットを見る、ターゲットデータセットの概要を見る、またはターゲットのレコードフォーマットを見ることができる。いくつかの例では、ターゲットウィンドウは、ソースから読み出されたレコードおよび/またはターゲットに書き込まれたレコードの数、生成されたレコードの数、他の統計など、ターゲットのデータの生成に関する統計データへのアクセスを提供する。
データ生成エンジン20は、データを生成するいくつかの手法を提供する。ユーザインターフェース30のデータ生成ウィンドウで、ユーザは所望のデータ生成手法を指定することができる。例えば、フィールドの変更、フィールドの作成、レコードの作成、既存のソース、および親データセットの手法を使用してデータを生成することができる。
フィールドの変更:フィールド変更の手法では、ターゲットデータレコードがソースデータレコードと同じフォーマットを持つが、内容は異なるように、ソースレコードの1つまたは複数のフィールドに対応する値に変更を加えることができる。いくつかの例では、所与のフィールドに対応するすべての値が変更される場合もある。例えば、すべてのレコードにわたる所与のフィールドの値の分布が目標分布と一致するように値を割り当てることができる。いくつかの例では、指定された基準を満たさない値だけなど、所与のフィールドに対応するすべての値よりも少ない値を変更する場合もある。例えば、特定のフィールドに許可される特定範囲の値の外側にある値を変更することができる。
フィールドの作成:フィールド作成の手法では、既存のレコードに1つまたは複数の新しいフィールドを作成することができる。いくつかの例では、ソースデータ中の既存フィールドについてのデータに基づいて、新しいフィールドの値を生成することができる。いくつかの例では、既存のソースデータには一切基づかずに、例えば指定された特性に従って、新しいフィールドの値を新規に生成することができる。
レコードの作成:レコード作成の手法では、新しいレコードを生成することができる。新しいレコードを生成する場合、生成するレコードの数を指定することができる(例えば図5B)。いくつかの例では、新しいレコードのレコードフォーマットを指定することができる。例えば、ターゲットに既存のソースレコードと新たに生成されたレコードの両方を入れる場合は、新しいレコードのレコードフォーマットは、ソースレコードのレコードフォーマットと同じにすることができる。新たに生成されたレコードだけをターゲットに入れる場合は、ユーザは、フィールドの数、各フィールドのデータの型、各フィールドのデータの特性(例えば最大値、最小値、許可される文字のセット、他の特性)、レコードフォーマットの他の特徴など、生成されるレコードに適用するレコードフォーマットを指定することができる。
既存データセット:既存データセットの手法では、新たに作成される子データセットにデータを生成する。例えば、既存の顧客データセットに基づいて、トランザクションレコードを含む新しいデータセットを生成することができる。既存データセットの手法では、指定された数の新しいレコードが、既存のソースレコードそれぞれに生成される。例えば、図7を参照すると、既存データセットウィンドウ600で、ユーザは、ソースデータセットのパス602またはデータ操作言語(DML)604、既存のソースデータセットにあるデータレコードごとに生成するターゲットレコードの数606、および、ターゲットにレコードを生成する際に使用されないソースレコードの割合を指定することができる。いくつかの例では、補助的なソースが、ターゲットレコードの特定のフィールドに入れるために使用するデータを保持する場合があるが、ソースまたはターゲットいずれかのレコードフォーマットと一致しないレコードフォーマットを持つ可能性がある。そのような場合、補助的なソースにある1つまたは複数の対象フィールドをターゲットレコードにマッピングすることができる。
サブジェクト領域の手法:サブジェクト領域の手法では、既存のソースデータセットをサブジェクト領域の階層内で親データセットとすることができ、データの生成は、その親データセットに関係する子データセットの作成を含む場合がある。例えば、親データセット(すなわちソース)が顧客レコードのセットで、子データセット(すなわちターゲット)が顧客ごとの1つまたは複数のトランザクションレコードのセットである場合がある。子データセットのレコードを親セットの対応するレコードに結び付けるキーフィールドを指定することができ、親データレコードの1つまたは複数のキーフィールドを、生成された子データレコードの対応するフィールドにマッピングする。例えば、cust_IDフィールドを、顧客レコードとトランザクションレコードとを結び付けるキーフィールドとすることができる。キーフィールドごとに生成する子レコードの数を指定することができる。いくつかの例では、子レコードを生成する際に使用されない親レコードの割合を指定することができる。いくつかの例では、子レコードのレコードフォーマットを指定することができる。
いくつかの例では、フォーマットの指定、内容の基準、またはその両方に従ってデータを生成することができる。フォーマットの指定は、生成されるデータのフォーマットの指定である。例えば、フォーマットの指定で、生成されるデータのデータ型(例えばストリング、小数、整数、日付、または日時)を指示することができる。内容の基準は、生成されるデータの特性を限定する基準である。内容の基準の例には、例えば、許可される値の範囲、最大許可値、許可される文字のリスト、または他の内容の基準が含まれる。いくつかの例では、フォーマットの指定および内容の基準が、ターゲットレコードのレコードフォーマットで指定される。いくつかの例では、ユーザインターフェース30が、ユーザがフィールドのフォーマットの指定や内容の基準などのフィールドの特性を指定できるフィールドウィンドウを提供することができる。
図8を参照すると、ユーザインターフェースのレコードフォーマットウィンドウ700で、ユーザは、ターゲットの1つまたは複数のフィールドについてのデータ型およびデータ特性を含むターゲットレコードフォーマットを編集することができる。レコードフォーマットウィンドウ700は、ターゲットのレコードフォーマットにあるフィールドのリスト702を表示する。リスト702は、各フィールドのデータ型も示す。いくつかの例では、ターゲットのレコードフォーマットにあるフィールドが、データソースのレコードフォーマットにも出現する。ターゲットレコードフォーマットとソースレコードフォーマットの両方に出現するそれらのフィールドは、リスト702中で例えばアスタリスク(すなわち**)で印を付けることができる。例えば、図8の例では、last_transactionおよびcustomer_sinceのフィールドは、ターゲットレコードフォーマットとソースレコードフォーマットの両方に出現する。印が付けられていないフィールドは、ターゲットレコードフォーマットにのみ出現する。いくつかの例では、ソースレコードフォーマットに出現するがターゲットレコードフォーマットには出現しないフィールドはリスト702に表示されない。
レコードフォーマットウィンドウ700で、ユーザは、例えば所望のフィールドの名前をクリック、タップ、またはドラッグすることにより、データ生成特性を指定するターゲットレコードフォーマットの1つまたは複数のフィールドを選択することができる。ターゲットレコードフォーマットの選択されたフィールドのリスト704が表示される。すなわち、リスト704にあるフィールドは、ユーザがデータ生成特性を指定しようとするターゲットレコードフォーマットのそれらのフィールドである。いくつかの例では、例えばユーザがターゲットレコードフォーマットのフィールドの一部だけにデータ生成特性を指定したい場合には、リスト704は、ターゲットレコードフォーマットにあるすべてのフィールドのリスト702のサブセットである場合もある。例えば、図8の例では、custid、fname、Iname、およびbuilding_numのフィールドが選択されている。
ユーザインターフェース30で、ユーザは、リスト704に表示された選択フィールドそれぞれのレコードフォーマットを編集することができる。例えば、選択されたフィールドごとに、ユーザは、そのフィールドのデータ型の選定、そのフィールドへの内容生成モードの割り当て、およびそのフィールドのデータ特性の指定、の任意の組み合わせを行うことができる。ユーザインターフェースは、選択されたフィールドごとに、データ型ウィンドウ、内容生成ウィンドウ、およびデータ特性ウィンドウの1つまたは複数を順次表示することができ、それにより、ユーザは選択されたフィールドそれぞれに各種の特徴を指定することができる。
ユーザインターフェース30で、ユーザはフィールドのデータ型を選定することができる。データ型ウィンドウは、ユーザがリスト704から特定のフィールドを選択するのに応答してユーザインターフェース30に表示することができ、それによりユーザはそのフィールドにデータ型を選定することができる。ユーザは、ストリング、小数、整数、日付、日時(すなわち日付と時間)など、データ生成モジュール150で対応可能な任意のデータ型を選定することができる。フィールドごとに1つのデータ型を選定することができる。いくつかの例では、フィールドにデータ型が選定されない場合は、そのフィールドのレコードフォーマットで指示されるデータ型が保持される。例えば、図8の例では、各フィールドのレコードフォーマットで指示されるそのフィールドのデータ型が、フィールド名の隣に括弧に入れて表示される。ターゲットレコードフォーマットの各フィールドに選定されたデータ型は構成データ34として記憶することができる。
ユーザインターフェース30で、ユーザは選択されたフィールドの1つまたは複数に内容生成モードを割り当てることができる。ユーザがリスト704から特定のフィールドを選択するのに応答して、ユーザインターフェース30に内容生成ウィンドウが表示され、ユーザはそのフィールドに内容生成モードを割り当てられることができる。フィールドの内容生成モードは、そのフィールドにデータ生成エンジン20によってデータが生成される方式を指示する。例えば、例示的な内容生成モードには、ユニークモード、ランダムモード、デフォルトモード、およびリストモードがある。ユニークモードでは、各レコードの選択されたフィールドに一意の値を生成することができる。例えば、一意の小数値、ストリング値、または整数値の昇順のセットを生成することができる。「19000101」や別の日付のベースなど、デフォルトの日付または指定された日付のベースから、日に基づく昇順で日付値を生成することができる。現在の日付および時刻など、デフォルトの日時または指定された日時のベースから、分に基づく昇順で日時値を生成することができる。ランダムモードでは、各レコードの選択されたフィールドにランダムな値を生成することができる。デフォルトモードでは、ターゲットのレコードフォーマットで指定されるデフォルトの特性またはデフォルトの値を使用して値を生成することができる。例えば、いくつかの例では、デフォルトのデータ生成モードをランダムモードとし、デフォルトの値範囲および特性を各データ型に適用することができる。リストモードでは、許可値のリストから値が選択される。いくつかの例では、あるフィールドに内容生成モードが割り当てられない場合は、デフォルトモードを使用してそのフィールドのデータを生成するか、デフォルト値(例えばターゲットレコードのレコードフォーマットで指定される)をそのフィールドの値として使用することができる。いくつかの例では、1つまたは複数のフィールドの内容生成モードが、ターゲットレコードのレコードフォーマットで指定される場合がある。ターゲットレコードフォーマットの各フィールドの内容生成モードは、構成データ34として記憶することができる。
ユニークモード、ランダムモード、またはデフォルトモードのデータ生成をフィールドに割り当てる場合、ユーザインターフェース30で、ユーザは選択されたフィールドの1つまたは複数にデータ特性を指定することができる。データ特性は、そのフィールドのデータ型に依存する可能性があり、そのフィールドに生成できる許容値を制限することができる。例えば、小数フィールドや整数フィールドなどの数値フィールドのデータ特性は、最大許可値、最小許可値、許可される値の範囲、またはすべてのレコードにわたるそのフィールドの平均値を指示する場合がある。下記で説明するように、他のデータ特性も適用することができる。いくつかの例では、フィールドエラー率(すなわちレコードが誤りを含んでいる数または割合)も1つまたは複数のフィールドに指定することができる。特定のフィールドにデータ特性を指定することができるように、ユーザがリスト704からそのフィールドを選択するのに応答して、そのフィールドのデータ型に固有の特性ウィンドウがユーザインターフェース30に表示される。例えば、ストリング特性ウィンドウ、小数特性ウィンドウ、整数特性ウィンドウ、日付特性ウィンドウ、または日時特性ウィンドウ、または別のデータ型に対応するウィンドウをユーザインターフェース30に表示することができる。ターゲットレコードフォーマットの各フィールドのデータ特性は構成データ34として記憶することができる。
図9を参照すると、ストリング特性ウィンドウ800で、ユーザはストリングフィールドのデータ特性を指定することができる。図9の例では、データ特性は、特定のストリングフィールドの平均ストリング長802、最大ストリング長804、および許容文字のセット806を含む。ユーザは、その特定のストリングフィールドにNULL値808の割合も指定することができる。いくつかの例では、他のデータ特性も指定することができる。いくつかの例では、ユーザがストリングフィールドに対してデータ特性の1つまたは複数を指定しない場合には、データ特性のデフォルト値を適用することができる。例えば、デフォルトの平均ストリング長802が「8」、デフォルトの最大ストリング長804が「16」であり、デフォルトの許容文字のセット806は文字{a−z,A−Z,0−9,およびスペース}を含み、NULL値のデフォルトの割合808はゼロとすることができる。
特定の一例では、ユーザが、特定のフィールドについて、平均ストリング長802を4文字に、最大ストリング長804を8文字に、許可される文字のセット806を{a−z,A−Z}に、NULL値の割合808をゼロに指定している。この例で、ユーザがその特定のフィールドにランダムモードのデータ生成を割り当てた場合には、許容文字のセットから、指定された平均長および最大長を条件として、レコードごとにそのフィールドにランダムなストリングが生成される。ユーザがその特定のフィールドにユニークモードのデータ生成を割り当てた場合、レコードごとにそのフィールドに一意のストリングが生成される(すなわち、その特定のフィールドに2つのレコードが同じ生成ストリングを持つことはない)。
図10を参照すると、小数特性ウィンドウ900で、ユーザは小数フィールドのデータ特性を指定することができる。図10の例では、データ特性は、特定の小数フィールドについての許可される値の範囲902およびNULL値の割合904を含む。いくつかの例では、許可される最大の小数位数、生成されるすべてのレコードの小数フィールドの平均値、または他の特性などの他のデータ特性を指定することもできる。いくつかの例では、ユーザがデータ特性の1つまたは複数を指定しない場合は、デフォルト値を適用することができる。例えば、デフォルトの範囲902は0〜1000とし、NULL値のデフォルトの割合904は0とすることができる。
特定の一例では、ユーザが特定のフィールドに対して、許可される値の範囲902を0〜10、NULL値の割合904を10%と指定している。この例では、ユーザがこの特定のフィールドにランダムモードのデータ生成を割り当てた場合には、許可される値の範囲902に該当するランダムな小数が各レコードのそのフィールドに生成される。レコードの10%にNULL値が与えられる。ユーザがこの特定のフィールドにユニークモードのデータ生成を割り当てた場合には、許可される値の範囲902に該当する一意の小数が各レコードのそのフィールドに生成される(すなわち、その特定のフィールドに2つのレコードが同じ値を持つことはない)。
図11を参照すると、整数特性ウィンドウ180でユーザは整数フィールドのデータ特性を指定することができる。図11の例では、データ特性は許可される値の範囲182を含む。いくつかの例では、特定の整数フィールドのNULL値の割合184や、生成されるすべてのレコードの整数フィールドの平均値など、他のデータ特性を指定することもできる。いくつかの例では、ユーザがデータ特性の1つまたは複数を指定しない場合は、デフォルト値を適用することができる。例えば、デフォルトの範囲182は0〜127とすることができる。
図12を参照すると、日付特性ウィンドウ190でユーザは日付フィールドのデータ特性を指定することができる。図12の例では、データ特性は、年、月、または日などの日付範囲の単位192を含む。データ特性は日付のベース194も含み、これは、日付範囲が計算される際の基準として使用する日付(例えば「YYYYMMDD」と表記される)であり、「YYYY」は年を意味し、「MM」は月を意味し、「DD」は日を意味する。データ特性は、特定の日付フィールドについて、日付のベース194を基準とする許可される日付の範囲196、およびNULL値または空白値の割合198も含む。いくつかの例では、他のデータ特性を指定することもできる。いくつかの例では、ユーザがデータ特性の1つまたは複数を指定しない場合は、デフォルト値を適用することができる。例えば、デフォルトの日付範囲の単位192を年とし、デフォルトの日付ベース194を今日にし、許可される日付の範囲196を−7〜0年(デフォルトの日付ベースを基準として)、NULL値のデフォルトの割合198を1%とすることができる。
特定の一例では、ユーザが、特定のフィールドについて、日付範囲の単位192を日とし、日付のベース194を2013年1月1日とし、許可される日付の範囲196を365(すなわち2013年1月1日の日付のベース以後365日)とし、NULL値の割合198をゼロと指定している。この例では、ユーザがこの特定のフィールドにランダムモードのデータ生成を割り当てた場合は、2013年1月1日〜2014年1月1日の間で無作為に選択された日付が各レコードのそのフィールドに割り当てられる。ユーザがこの特定のフィールドにユニークモードのデータ生成を割り当てた場合は、2013年1月1日〜2014年1月1日の間の一意の日付が各レコードのそのフィールドに割り当てられる(すなわち、その特定のフィールドに2つのレコードが同じ日付を持つことはない)。
図13を参照すると、日時特性ウィンドウ250で、ユーザは日時フィールドのデータ特性を指定することができる。図13の例では、データ特性は、年、月、日など、日時範囲の単位252を含む。データ特性は日時ベース254も含み、これは、日時範囲を計算する際の基準として使用する日付および時間であり(例えば「YYYYMMDD HH24MISS.NNN」と表記される)、「YYYY」は年を意味し、「MM」は月を意味し、「DD」は日を意味し、「HH24」は24時間制の計時における時間を意味し、「MI」は分を意味し、「SS」は秒を意味し、「NNN」は1000分の1秒を意味する。データ特性は、特定の日時フィールドについての日時ベース254を基準とした許可される日時の範囲256およびNULL値の割合258も含む。いくつかの例では、他のデータ特性を指定することもできる。いくつかの例では、ユーザがデータ特性の1つまたは複数を指定しない場合は、デフォルト値を適用することができる。例えば、デフォルトの日時範囲の単位252は日とし、デフォルトの日時ベース254は現在とし、許可される日時のデフォルトの範囲256は−7〜0日とし、NULL値のデフォルトの割合258は0とすることができる。
いくつかの例では、特性ウィンドウの1つまたは複数(例えばストリング特性ウィンドウ800、小数特性ウィンドウ900、整数特性ウィンドウ180、日付特性ウィンドウ190、または日時特性ウィンドウ250)で、ユーザは例えば当該フィールドのフィールドエラー率の値を選択または指定することにより、フィールドのデフォルトエラー率の指定を変更することができる。例えば、ユーザは次のエラー率、すなわち、誤りなし、2つのフィールドにつき1つのフィールドに誤りがある、10個のフィールドにつき1つのフィールド、100個のフィールドにつき1つのフィールド、1000個のフィールドにつき1つのフィールド、10000個のフィールドにつき1つのフィールド、および100000個のフィールドにつき1つのフィールド、から選択することができる。いくつかの例では、ユーザは割合のエラー率を選択または指定することができる。
いくつかの例では、ユーザインターフェース30は、ユーザが1つまたは複数のデータ型についてデフォルトのデータ特性の指定を変更する機構を提供する。例えば、ユーザは、すべてのストリングデータについて平均ストリング長の指定を変更することができる。ユーザが特定のデータ型についてデフォルトの特性の指定を変更すると、その指定変更後の特性は、ユーザがデータ特性を指定しない、そのデータ型をとるすべてのデータ生成に適用される。
リストモードのデータ生成がフィールドに割り当てられた場合、そのフィールドに許可される値のリストを提供できるリストウィンドウをユーザインターフェース30に表示することができる。例えば、リストモードのデータ生成をbuilding_numフィールドに割り当てた場合、ユーザは、building_numフィールドの値として使用できるビルディング番号のリスト(例えば{10,20,30,40,50})を提供することができる。データ生成エンジン150によりbuilding_numフィールドのデータが生成される時に、各レコードのフィールドの値は、そのビルディング番号のリストから無作為に選択することができる。いくつかの例では、他の制約を適用することができる。例えば、リストの各項目を等しい回数ずつ選択するという制約を条件として、フィールドの値をリストから選択することができる。
いくつかの例では、データ生成やソースからターゲットフォーマットへのマッピングに高度な規則を作成することができる。例えば、高度な規則は、あるフィールドの値を別のフィールドにマッピングさせる規則、あるフィールドの値を別のフィールドの値の計算に使用させる規則、ソースの2つ以上のフィールドを使用してターゲットの1つのフィールドを作成させる規則を含むことができる。いくつかの例では、高度な規則は、データソースのフィールドの値を、ターゲットのフィールドに生成される値に関係付けることができる。いくつかの例では、高度な規則は、ターゲットの第1のフィールドの値を、ターゲットの第2のフィールドに生成される値に関係付けることができる。ユーザインターフェース30は、図14A〜図14C、図15A〜図15C、および図16に示す設定画面や規則エディタなど、ユーザが1つまたは複数のターゲットフィールドのデータ生成に高度な規則を生成することができる規則エディタ機能を提供することができる。例えば、ユーザインターフェース30は、ユーザがフィールドに関連する規則を指定できる規則ウィンドウを提供することができ、その規則を使用してそのフィールドに入れるデータを生成することができる。ユーザインターフェース30は、ユーザが規則を定義できる規則エディタを提供することができる。
例えば、図14A〜図14Cを参照すると、ユーザインターフェース30の規則エディタ機能で、ユーザは、あるフィールドの値を別のフィールドにマッピングさせる高度な規則を作成することができる。この例では、ユーザは、state_cdフィールドとstate_nameフィールド両方の生成を可能にする規則を作成しようとしており、state_cdフィールドの値は、それに対応する正式な州名を値とするstate_nameフィールドに基づいてニューイングランド地域の州の2文字の省略形のリストから選択される。この規則を作成するために、ユーザは、state_cdフィールドの構成ウィンドウ350(図14A)を通じてstate_cdフィールドにリスト生成モードを割り当て、リスト352(この場合は、ニューイングランド地域の州の2文字の省略形のリスト:MA、CT、RI、VT、ME、NH)を指定することができ、リスト352からstate_cdフィールドの値を選択することができる。規則ウィンドウ354(図14B)で、ユーザは、state_nameフィールド356を、state_nameフィールド356に内容を入れるために使用できる規則「Compute state_name」358に関連付けるよう指示することができる。ユーザは、規則エディタ360(図14C)でstate_nameフィールドに「Compute state_name」の規則を定義することができる。この例では、「Compute state_name」の規則は、state_cdフィールドの値ごとにstate_nameフィールドに割り当てられる値を指定する。
例えば、図15A〜図15Cを参照すると、ユーザインターフェース30の規則エディタ機能で、ユーザは、ターゲットの第1のフィールドに対応する値を使用してターゲットの第2のフィールドの値を計算させる高度な規則を作成することができる。この例では、ユーザは、incomeフィールドの値を使用してtax_rateフィールドの値を計算する規則を作成したい。この規則を作成するために、ユーザはincomeフィールドの内容生成ウィンドウ450(図15A)を通じて、incomeフィールドにランダム生成モードを割り当て、incomeフィールドに許可される値の範囲や空白値の割合などのデータ特性452を指定することができる。規則ウィンドウ454(図15B)で、ユーザは、tax_rateフィールド456を、tax_rateフィールド456にデータを入れるために使用できる規則「Compute tax_rate」458に関連付けるよう指示することができる。ユーザは、規則エディタ460(図15C)でtax_rateフィールドの規則を定義することができる。この例では、「Compute tax_rate」の規則458が、incomeフィールドの値ごとにtax_rateフィールドに割り当てられる値を指定する。「Compute tax_rate」の規則は、例えばincomeフィールドが空白であるか、NULLであるか、または誤りがある場合にtax_rateフィールドに割り当てるデフォルトの値462も指定する。
例えば、図16を参照すると、ユーザインターフェース30の規則エディタ機能で、ユーザは、複数のソースフィールドを1つのターゲットフィールドにマッピングさせる高度な規則を作成することができる。いくつかの例では、ソースフィールドの1つまたは複数のレコードフォーマットが、ターゲットフィールドのレコードフォーマットと異なる場合がある。この例では、ユーザは、fullnameフィールドのデータを生成する際にfirstnameフィールドとlastnameフィールド両方の値を使用する式を指定する規則を作成したい。その規則を作成するために、規則ウィンドウ550で、ユーザは、ソースにあるfirstnameフィールド556と、スペースと、ソースにあるlastnameフィールド558との組み合わせ(「firstname」+「 」+「lastname」)として、fullnameフィールド554の規則552を定義することができる。
フォーマットの指定、1つまたは複数の内容基準、データ生成モード、および高度な規則の1つまたは複数に基づいて、データを生成することができる。例えば、ソースレコードのデータに変更を加える、1つまたは複数の新しいフィールドを作成してデータを入れる、かつ/または、新しいレコードを作成してデータを入れることができる。
いくつかの例では、サブジェクト領域を作成することができる。サブジェクト領域は、少なくとも1つのフィールドでキー関係を通じて階層中で互いと関係するデータセットの集まりである。例えば、既存の親データセットが顧客レコードのセットで、子データセットが、既存の顧客それぞれに生成された1つまたは複数のトランザクションレコードのセットである。
図17Aを参照すると、一例では、結合ウィンドウ70で、ユーザは、生成される子データセットとのキーフィールドとして使用する既存の親データセットの1つまたは複数のフィールドを指定することができる。図17Aの例では、既存の親データセットは顧客データセットであり、custidを結合キーフィールドとしてトランザクションデータセットが子として生成される。図17Bを参照すると、結合ウィンドウ75で、ユーザは、子データセットに1つまたは複数の結合キーフィールドを指定することができる。この例では、枠76で、custidフィールドが親データセットから結合キーフィールドとして既に指定されている。枠78で、子データセットから結合キーフィールドとしてフィールドを指定することができる。いくつかの例では、対応する子レコードを持たない親レコードや対応する親レコードを持たない子レコードなどの非結合レコードをサブジェクト領域のデータセットから除外することができる。いくつかの例では、非結合レコードであってもサブジェクト領域のデータセットに含めることができる。
いくつかの例では、参照の完全性のためにサブジェクト領域を作成することができ、すなわち、サブジェクト領域は、サブジェクト領域の階層的データセットの参照の完全性を保証するデータレコードのみを提供する。「参照の完全性」とは、サブジェクト領域の各レコードが、サブジェクト領域の少なくとも1つの他のレコードと結合されていることを意味する。例えば、例示的なサブジェクト領域は、アカウント識別子を各トランザクションレコードと関連付ける第1のデータセットを含む。サブジェクト領域の別のデータセットでは、各顧客識別子を、複数のアカウント識別子および複数の製品識別子に関連付けることができる。サブジェクト領域の参照の完全性を保証することは、サブジェクト領域のデータセットに含まれるすべてのレコードが、サブジェクト領域データセットにある1つまたは複数の他のレコードと有効に結合されることを保証することを意味する。いくつかの例では、適用可能なサブセット作成規則の結果生じたデータレコードと、参照の完全性を保証するデータレコードの両方を含むようにサブジェクト領域を作成することができる。すなわち、例えば、参照の完全性の基準を満たさないレコードでも、サブセット作成規則を満たすサブジェクト領域に含めることができる。サブセット作成規則についてのさらなる記載が「Data Records Selection」という名称の米国特許出願第13/827,558号に提供され、同出願の内容は参照により本明細書に組み込まれる。
いくつかの例では、1つまたは複数の既存のデータセットに基づいて仮想のデータセットを作成することができる。例えば、顧客データセットおよびトランザクションデータセットに基づいて、顧客ごとのトランザクションの回数や顧客ごとに費やされたドル額などの値を持つ1つまたは複数のフィールドを含む新しいロールアップデータセットを生成することができる。そのようなロールアップデータセットは、例えば多数または少数の顧客に動作するデータ処理アプリケーションで有用である可能性がある。
再度図2を参照すると、いくつかの例では、解析エンジン38が自動化された解析を行って、フォーマットの指定、1つまたは複数の内容基準、データ生成モード、および高度な規則の1つまたは複数を、生成されるデータに実装することができる。例えば、基本的な例として、ユーザが日付のベースを2000年5月1日と指定し、許可される日付範囲を10年と指定すると、ユーザが正確な日付を指定することなく、解析エンジン38が2000年5月1日から2010年5月1日を、許可される日付の範囲として特定することができる。
別の例では、解析エンジン38は、ユーザから指定された平均ストリング長および最大ストリング長を達成する、複数のレコードにわたるストリング長の分布を求めることができる。例えば、解析エンジンは、デフォルトの最大ストリング長とデフォルトの平均ストリング長とのデフォルトの目標比に基づいてストリング長の分布を求めることができる。デフォルトの目標比を最大ストリング長に適用して、ガウス分布などのストリング長の分布におけるピークストリング長を特定することができる。例えば、一例では、デフォルトの最大ストリング長は16、デフォルトの平均ストリング長は8であり、デフォルトの目標比は0.5になる。このデフォルトの目標比をストリングの生成、例えばストリングのランダムな生成に適用することができる。例えば、「6」の最大ストリング長に制限されるフィールドでは、デフォルトの目標比を適用して「3」のピークストリング長を求める。したがって、ストリングは「3」のピークストリング長を中心とするガウス分布で生成される。別の例では、「25」の最大ストリング長に制限されるフィールドでは、デフォルトの目標比を適用して12〜13のピークストリング長を求める。したがって、ストリングは12〜13のピークストリング長を中心とするガウス分布で生成される。
いくつかの例では、解析エンジン38は、フォーマットの指定、1つまたは複数の内容基準、データ生成モード、および高度な規則の1つまたは複数を、例えばソースレコードの自動化された分析により、自動的に決定することができる。例えば、解析エンジン38は、どのようにして特定のフィールドについて既存のデータに変更を加える、かつ/または新しいデータを生成して、そのフィールドに目標の値分布を達成するかを決定することができる。
図18を参照すると、一般的なデータ生成の手法650では、あるフィールドについてフォーマットの指定が受け取られる(652)。フォーマットの指定は、例えばストリング、小数、整数、日付、または日時など、そのフィールドに生成するデータのデータ型である。例えば、システム100は、一般的なデータ生成の手法650に従ってデータを生成することができる。いくつかの例では、フォーマットの指定は、ユーザインターフェース30などのユーザインターフェース(例えばユーザインターフェース30を通じて提供されるデータ型ウィンドウ)を通じてユーザから受け取ることができる。
当該フィールドについて内容の基準が受け取られる(654)。内容の基準は、例えば、そのフィールドに生成されるデータのデータ特性である。例えば、小数フィールドや整数フィールドなどの数値フィールドについてのデータ特性は、最大許可値、最小許可値、許可される値の範囲、またはすべてのレコードにわたる当該フィールドの平均値を指示する場合がある。ストリングフィールドのデータ特性は、最大の許可文字数、最小の許可文字数、平均文字数、または許可される文字のセットを指示する場合がある。日付フィールドや日時フィールドなど時間に関するフィールドのデータ特性は、日付もしくは日時の単位、日付もしくは日時のベース、または日付もしくは日時の範囲を指示する場合がある。いくつかの例では、フィールドエラー率(すなわちレコードが誤りを含む件数または割合)も1つまたは複数のフィールドに指定することができる。いくつかの例では、内容の基準は、ユーザインターフェース30(例えばストリング特性ウィンドウ800、小数特性ウィンドウ900、整数特性ウィンドウ180、日付特性ウィンドウ190、または日時特性ウィンドウ250)などのユーザインターフェースを通じてユーザから受け取られる場合がある。
フィールドの内容生成モードの指示が受け取られる(656)。内容生成モードは、そのフィールドに内容が生成されるモードである。例えば、内容生成モードは、ユニークモード、ランダムモード、デフォルトモード、およびリストモード、のモードから選択される場合がある。ユニークモードでは、選択されたフィールドに一意の値を生成することができる。ランダムモードでは、選択されたフィールドにランダムな値を生成することができる。デフォルトモードでは、例えばターゲットのレコードフォーマットで指定されるデフォルトの特性またはデフォルトの値を使用して値を生成することができる。リストモードでは、許可される値のリストから値が選択される。いくつかの例では、所与のフィールドに内容生成モードが割り当てられない場合には、デフォルトモードを使用してそのフィールドのデータを生成する場合がある。いくつかの例では、内容生成モードの指示は、ユーザインターフェース30(例えばユーザインターフェースを通じて提供される内容生成ウィンドウ)などのユーザインターフェースを通じてユーザから受け取られる。
指示された内容生成モードに従って、複数のレコードそれぞれにフィールドの内容が生成される(658)。フィールドに生成される内容は、そのフィールドのフォーマットの指定および内容基準を満たす。いくつかの例では、複数の既存レコードそれぞれに新しいフィールドを作成することができ、指示された内容生成モードに従って、その新しいフィールドに内容を生成することができる。いくつかの例では、複数の新しいレコードが作成される場合があり、各レコードは、指示された内容生成モードに従って内容を生成することができる1つまたは複数のフィールドを持つ。例えば、各既存レコードに基づいて複数の新しいレコードを作成することができる。
いくつかの例では、データ生成を使用して、1つまたは複数の所望の特徴を持つレコードのセットを作成することができる。例えば、データ生成を使用して、データ処理アプリケーションで処理するために、フィールド中に所望のレコード数および/または所望の値分布を持つレコードのセットを作成することができる。データ処理アプリケーションの例には、例えば、顧客に請求書を発行するデータ処理アプリケーション(例えば電話の顧客の料金請求)、顧客レコードを処理するデータ処理アプリケーション(例えば顧客の購買パターンの人口統計学的傾向を特定する)、および他の種類のデータ処理アプリケーションが含まれる。
データ処理アプリケーションはしばしば、実行が1つまたは複数の変数の値に依存する(例えば変数の値で実行がトリガーされる)規則を実装する。例えば、変数は入力データに対応する入力変数や、1つまたは複数の入力変数に依存する導出された変数である。データ処理アプリケーションを効果的に試験するために、あらゆる規則が少なくとも対応する最小回数実行されるように、かつ/またはあらゆる規則が対応する最大回数よりも少ない回数実行されるように、アプリケーション中のあらゆる規則を実行させる(例えばアプリケーション中で完全なコードの網羅が実現される)のに十分な入力データを提供することができる。
図19を参照すると、いくつかの例では、データ処理アプリケーション52への入力データとして入力データレコード50を提供することができる。データ処理アプリケーション52は1つまたは複数の規則54を実装する。規則は、例えば、データをあるフォーマットから別のフォーマットに変換したり、データに関する判定を行ったり、入力データのセットに基づいて新しいデータを生成するために使用することができる基準のセットである。規則についてのさらなる記載が、2007年4月10日に出願された米国特許出願第11/733,434号で得られ、同出願はすべての内容が参照により本明細書に組み込まれる。
データ処理アプリケーション52で実装される各規則54は、その規則に対応する条件式が満たされる時に実行することができ、対応する条件式が満たされない場合にはデータ処理アプリケーション52で実行されない。規則54は、少なくとも条件式および実行式を含む指定によって指定することができる。条件式が満たされる(例えば条件式を評価した結果「真」になる)と、実行式を評価することができる。条件式は、1つまたは複数の変数の値に依存する(例えば変数の値でトリガーされる)可能性があり、変数は、例えば入力データ50に対応する入力変数や、1つまたは複数の入力変数に依存する導出された変数である。いくつかの例では、アプリケーションは、トリガーされるすべての規則54を実行する。いくつかの例では、アプリケーションは、規則54の一部や規則54のうち1つのみ(例えばトリガーされた最初の規則54)など、トリガーされるすべての規則54よりも少ない規則を実行する。そのようなデータ処理アプリケーションの実行についてのさらなる記載が、「Data Records Selection」という名称の米国特許出願第13/827,558号に提供され、同出願の内容は参照により本明細書に組み込まれる。
規則は、対応する条件式が満たされる時に実行することができる任意の規則であってよい。一例では、小売店の顧客に対する販売の売り込みを特定するデータ処理アプリケーションの規則は、収入が20,000ドル未満の顧客に対する特定の販売の売り込みを特定する規則とすることができる。一例では、電話会社の顧客に請求書を生成するデータ処理アプリケーションの規則は、過去1か月の携帯電話の利用時間がその顧客のサービスプランに許可される携帯電話の利用時間を超えている顧客の請求に追加料金を適用する規則とすることができる。
データ処理アプリケーション52によって生成された実行データ56は、実行された、もしくは実行されなかったアプリケーション52の規則54、アプリケーション52の各規則54が実行された回数、または他の情報など、データ処理アプリケーション52の実行に関する情報を提供することができる。実行データ56はデータ生成モジュール150に提供することができる。実行データ56に基づいて、データ生成モジュール150の結果エンジン40(図2)は、実行されなかった規則54を実行させたであろう入力データ、特定の規則54を指定回数実行させたであろう入力データ、または別の要求される実行結果を生じたであろう入力データなど、データ処理アプリケーション52に要求される入力データまたは入力データ基準を特定することができる。例えば、要求される実行結果は例えばユーザインターフェース30を通じてユーザによって指定される場合がある。
データ生成モジュール150のデータ生成エンジン20は、要求される入力データ基準を満たすデータ58を生成することができる。生成されたデータ58は、入力データとしてデータ処理アプリケーション52に提供することができる。すなわち、例えば、データ生成エンジン20は、データ処理アプリケーション中の以前に実行されなかった規則を実行させるデータ、または特定の規則をより多くの回数もしくは少ない回数実行させるデータ、または別の要求される実行結果を生じさせるデータを生成することができる。一例では、incomeフィールドに1,000,000ドルよりも大きい値を持つレコードを生成して、1,000,000より大きいincomeを持つ入力データだけに実行される規則を実行させることができる。一例では、第1の規則はgenderフィールドの値が「F」である場合に実行され、第2の規則はgenderフィールドの値が「M」である場合に実行される。データ処理アプリケーションの初回の実行時に、実行データ56が、第1の規則が1回しか実行されないのに対して第2の規則は50回実行されることを示す場合、第1の規則と第2の規則をほぼ同じ回数ずつ実行させるという例えばユーザから指定された要求実行結果を満たすデータを、データ生成エンジン20が生成することができる。例えば、データ生成エンジン20は、gender=「F」の追加的なレコードを作成するか、または既存レコードの一部についてgenderフィールドの値を変更することができる。
図20を参照すると、データ生成モジュール150によって実装される一般的な手法750は、データ処理アプリケーションに適した試験データのセットを生成する。例えば、データ処理アプリケーションでその試験データのセットを処理して、データ処理アプリケーションの各規則を要求される回数ずつ実行させるなどの要求される実行結果を得ることができる。手法750では、1つまたは複数のレコードが、1つまたは複数の規則を実装するデータ処理アプリケーションで処理するために提供される(752)。各レコードは1つまたは複数のフィールドを持つことができる。データ処理アプリケーションを実行することができる(754)。
各規則がデータ処理アプリケーションで実行された回数に基づいて、データ生成モジュール150の結果エンジン40により、1つまたは複数のレコードの特定のフィールドに内容の基準を決定することができる(756)。いくつかの例では、特定のフィールドの内容の基準は、その内容の基準に従って生成されるデータがデータ処理アプリケーションに処理された時に、以前に実行されなかった規則を実行させる、または特定の規則をより多くの回数もしくは少ない回数実行させるなどの要求される実行結果を実現することができるように決定することができる。内容の基準は、例えば、そのフィールドに生成されるデータのデータ特性である。例えば、小数フィールドや整数フィールドなどの数値フィールドのデータ特性は、最大許可値、最小許可値、許可される値の範囲、またはすべてのレコードにわたるそのフィールドの平均値を指示する場合がある。ストリングフィールドのデータ特性は、最大の許可文字数、最小の許可文字数、平均文字数、または許可される文字のセットを指示する場合がある。日付フィールドや日時フィールドなどの時間に関するフィールドのデータ特性は、日付もしくは日時の単位、日付もしくは日時のベース、または日付もしくは日時の範囲を指示する場合がある。
特定のフィールドについての内容の基準とフォーマットの指定とに基づいて、特定のフィールドに内容を生成することができる(758)。いくつかの例では、既存のレコードの特定のフィールドの内容に変更を加えることができる。いくつかの例では、新しいレコードを作成し、その新しいレコードの特定のフィールドの内容を生成することができる。
少なくとも新たに生成された内容を入力データとして使用して、データ処理アプリケーションを実行することができる(760)。いくつかの例では、特定のフィールドに変更された値を含む既存のレコードを、データ処理アプリケーションに提供することができる。いくつかの例では、既存のレコードを、新たに作成されたレコードと共にデータ処理アプリケーションに提供することができる。いくつかの例では、新たに作成されたレコードだけをデータ処理アプリケーションに提供することができる。
少なくとも新たに生成された内容を入力データとして使用した、データ処理アプリケーションの実行の結果を分析することができる(762)。データ処理アプリケーション中の規則が要求する回数実行されるなどの要求される実行結果が達成されると(764)、データ生成プロセスが完了する(766)。要求される実行結果が達成されなかった場合(764)は、さらなる内容の基準を決定し(757)、データ処理アプリケーションへの入力データとして使用される新しい内容を再度生成することができる(758)。
いくつかの例では、手法750を実装して、データ処理アプリケーションのすべての規則を少なくとも1回実行させる試験データのセットをデータ処理アプリケーションに生成することができる。すなわち、データ処理アプリケーションを徹底的に試験するために、データ処理アプリケーション中で発生し得るあらゆる動作をトリガーするデータを提供することができる。そのようなデータが存在しない場合は、そのデータを生成することができる。例えば、データ生成プロセスが一旦完了すると(766)、生成されたデータのセットをデータ処理アプリケーションで処理して、データ処理アプリケーションの実行を試験することができる(768)。生成されたデータのセットはデータ処理アプリケーション中で発生し得るあらゆる動作を実行させるので、データ処理アプリケーションを徹底的に試験することができる。データ処理アプリケーションが予想されるように機能しない場合(例えばデータ処理アプリケーションのある動作が予想されるように機能しない場合)は、データ処理アプリケーションに適宜変更を加え(770)、満足の行く結果が達成されるまで試験することができる。
いくつかの例では、手法750を実装して、データ処理アプリケーションで処理するための実際的なデータのセットを生成することができる。例えば、小売り企業向けのデータ処理アプリケーションは、顧客の購入パターンを示す動向レポートを生成する場合がある。顧客のプライバシーを守るために、実際的であるが架空のデータレコードのセットをデータ処理アプリケーションで処理するために生成することができる。いくつかの例では、生成されるデータは、扱いに注意を要する個人情報を明かすことなく、データセットのレコードにわたる値の分布(例えば顧客の収入分布)など、実際の顧客データと共通する特性を持つことができる。いくつかの例では、実際的なデータのセットは、物理的なプロセスを示すデータ、金融取引を示すデータ、人間もしくは動物の挙動を示すデータ、または他のデータなどである。
実施形態1は、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数のフィールド各々の内容の基準を決定する工程と、内容の基準に基づいてフィールド各々の内容を生成する工程と、1つまたは複数のレコードのフィールド各々に、生成された内容を入れる工程とを含む方法を対象とする。
実施形態2は実施形態1を対象とし、内容を生成する工程は、フィールド各々についてのフォーマットの指定に基づいて内容を生成する工程を含む。
実施形態3は実施形態1または2を対象とし、フォーマットの指定は内容の種類を指示する。
実施形態4は実施形態3を対象とし、内容の種類は、ストリング、小数、整数、日付、または日時、の1つまたは複数を含む。
実施形態5は実施形態2から4のいずれかを対象とし、ユーザインターフェースを通じてフォーマットの指定を受け取る工程を含む。
実施形態6は実施形態1から5のいずれかを対象とし、上記フィールドの1つまたは複数を含む新しいレコードを作成する工程と、新しいレコードの上記フィールドに内容を入れる工程とを含む。
実施形態7は実施形態1から6のいずれかを対象とし、フィールド各々に生成された内容を入れる工程は、フィールドの1つまたは複数について、既に存在する内容に変更を加える工程を含む。
実施形態8は実施形態1から7のいずれかを対象とし、フィールド各々に内容を入れる工程は、1つまたは複数の既に存在するレコードに特定のフィールドを作成する工程を含む。
実施形態9は実施形態1から8のいずれかを対象とし、内容の基準は、目標値、目標とする値の範囲、目標とする値の分布、最大値、または最小値、の1つまたは複数を含む。
実施形態10は実施形態1から9のいずれかを対象とし、内容の基準は、生成される内容について特定の値を含む。
実施形態11は実施形態1から10のいずれかを対象とし、内容の基準は、1つまたは複数のフィールドの2つ以上に含める内容の組み合わせの目標を指示する。
実施形態12は実施形態1から11のいずれかを対象とし、ユーザインターフェースを通じて内容の基準を受け取る工程を含む。
実施形態13は実施形態1から12のいずれかを対象とし、内容を生成する工程は、生成モードに基づいて内容を生成する工程を含む。
実施形態14は実施形態13を対象とし、生成モードは、(i)複数のレコード各々のフィールドの1つまたは複数について、ランダムな内容を生成すること、(ii)複数のレコード各々のフィールドの1つまたは複数について、一意の内容を生成すること、および(iii)複数のレコード各々のフィールドの1つまたは複数のフィールドの内容を、利用可能な内容のセットから選択すること、の1つまたは複数を含む。
実施形態15は実施形態1から14のいずれかを対象とし、生成された内容を含む1つまたは複数のレコードをデータ処理アプリケーションに提供する工程を含む。
実施形態16は実施形態1から15のいずれかを対象とし、特定の規則をデータ処理アプリケーションによって実行させるように内容の基準が決定される。
実施形態17は実施形態1から16のいずれかを対象とし、内容の基準を決定する工程は、実行された回数が最小閾値回数よりも少なかった特定の規則を特定する工程と、その特定の規則を少なくとも最小閾値回数実行させるように内容の基準を決定する工程とを含む。
実施形態18は非一時的なコンピュータ読取り可能媒体を対象とし、媒体は、コンピュータシステムに、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数のフィールド各々の内容の基準を決定させ、内容の基準に基づいてフィールド各々の内容を生成させ、1つまたは複数のレコードの各上記フィールドに、生成された内容を入れさせる命令を記憶している。
実施形態19はコンピューティングシステムを対象とし、コンピューティングシステムは、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数のフィールド各々の内容の基準を決定し、内容の基準に基づいてフィールド各々の内容を生成し、1つまたは複数のレコードの各上記フィールドに、生成された内容を入れるように構成された少なくとも1つのプロセッサを備える。
実施形態20はコンピューティングシステムを対象とし、コンピューティングシステムは、1つまたは複数のレコードの処理中に1つまたは複数の規則の各々がデータ処理アプリケーションによって実行された回数に基づいて、1つまたは複数のフィールド各々の内容の基準を決定する手段と、内容の基準に基づいてフィールド各々の内容を生成する手段と、1つまたは複数のレコードの各上記フィールドに、生成された内容を入れる手段とを備える。
実施形態21は、データ処理アプリケーションの開発中にデータ処理アプリケーションを試験する方法を対象とし、この方法は、データ処理アプリケーションを使用して第1のデータレコードを処理する工程であって、データ処理アプリケーションは1つまたは複数の規則を実装し、各第1のデータレコードは複数のフィールドを有する、工程と、第1のデータレコードの処理中にデータ処理アプリケーションの各規則が実行される回数を、規則の目標値と比較する工程と、比較の結果に基づいて、データ処理アプリケーションを使用して処理される第2のデータレコードのデータの目標とする特性を指示する内容の基準を決定する工程と、第1のデータレコードのフォーマットと内容の基準とに従って、第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程と、データ処理アプリケーションを使用して第2のデータレコードを処理する工程と、第2のデータレコードの処理中にデータ処理アプリケーションの各規則が実行される回数を、規則の目標値と比較し、各規則の目標値が満たされることを判定する工程と、第2のデータレコードを使用してデータ処理アプリケーションを試験する工程とを含む。
実施形態22は実施形態21を対象とし、第1のデータレコードをクライアント装置で受け取る工程を含み、データ処理アプリケーションはそのクライアント装置で実行される。
実施形態23は実施形態22を対象とし、クライアント装置はコンピューティング装置からなる。
実施形態24は実施形態21または22を対象とし、第1のデータレコードを遠隔のサーバから受け取る工程を含む。
実施形態25は実施形態24を対象とし、LANまたはWAN接続を介してサーバに通信的に結合されたクライアント装置で、第1のデータレコードを受け取る工程を含む。
実施形態26は実施形態21から25のいずれかを対象とし、データ処理アプリケーションが第2のデータレコードを処理する時に第2のデータレコードのデータが各規則の目標値を満たさせるように、内容の基準を決定する工程を含む。
実施形態27は実施形態21から26のいずれかを対象とし、第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程が、第1のデータレコードの1つまたは複数のフィールドの内容に変更を加える工程を含み、変更が加えられた第1のデータレコードが第2のデータレコードである。
実施形態28は実施形態21から27のいずれかを対象とし、第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程が、新しいデータレコードを作成する工程を含む。
実施形態29は実施形態21から28のいずれかを対象とし、第2のデータレコードを記憶装置に記憶する工程を含む。
実施形態30は実施形態21から29のいずれかを対象とし、試験の結果に基づいて、データ処理アプリケーションに変更を加える工程を含む。
実施形態31は実施形態21から30のいずれかを対象とし、データ処理アプリケーションを試験する工程は、データ処理アプリケーションを使用して第2のデータレコードを処理した結果に基づいてデータ処理アプリケーションに変更を加える工程を含む。
実施形態32は実施形態21から31のいずれかを対象とし、第2のデータレコードのデータが、生産環境でデータ処理アプリケーションによって処理されることが予想されるデータとほぼ同様になるように内容の基準を決定する工程を含む。
上記のデータ生成技術は、適切なソフトウェアを実行するコンピューティングシステムを使用して実装することができる。例えば、コンピューティングシステムは、システム100、開発環境118、データ生成モジュール150、および他のコンピューティングシステムを含むことができる。例えば、ソフトウェアは、プログラムされた、またはプログラム可能な1つまたは複数のコンピューティングシステム(分散、クライアント/サーバ、グリッドなどの各種アーキテクチャをとる可能性がある)で実行される1つまたは複数のコンピュータプログラム中のプロシージャを含む場合があり、コンピューティングシステムはそれぞれ、少なくとも1つのプロセッサ、少なくとも1つのデータ記憶システム(揮発性メモリおよび/もしくは不揮発性メモリ、ならびに/または記憶素子を含む)、少なくとも1つのユーザインターフェース(少なくとも1つの入力装置またはポートを使用して入力を受け取り、少なくとも1つの出力装置またはポートを使用して出力を提供する)を備える。ソフトウェアは、例えばデータフローグラフの設計、構成、および実行に関係するサービスを提供する、より大きなプログラムの1つまたは複数のモジュールを含む場合もある。プログラムのモジュール(例えばデータフローグラフの要素)は、データリポジトリに記憶されたデータモデルに沿ったデータ構造または他の編成データとして実装することができる。
ソフトウェアは、CD−ROMや他のコンピュータ可読媒体(例えば汎用または特殊目的のコンピューティングシステムまたは装置で読取り可能)などの有形の非一時的媒体で提供される場合も、ネットワークの通信媒体を通じて、実行先のコンピューティングシステムの有形の非一時的媒体に送付される(例えば伝搬信号に符号化される)場合もある。処理の一部またはすべては、特殊目的コンピュータで行われるか、またはコプロセッサ、フィールドプログラム可能ゲートアレイ(FPGA)、もしくは専用の特定用途集積回路(ASIC)などの特殊目的ハードウェアを使用して行うことができる。処理は、ソフトウェアで指定される演算の異なる部分が異なるコンピューティング要素によって行われる分散方式で実装される場合もある。そのようなコンピュータプログラムはそれぞれ、好ましくは、汎用または特殊目的のプログラム可能コンピュータからアクセスできる記憶装置のコンピュータ読取り可能記憶媒体(例えば固体状態メモリもしくは媒体、または磁気もしくは光学媒体)に記憶またはダウンロードされ、記憶装置媒体がコンピュータによって読み取られた時にコンピュータを構成および操作して、本明細書に記載される処理を行わせる。本発明のシステムは、コンピュータプログラムを備えて構成された有形の非一時的媒体として実装することも考えられ、その場合、そのように構成された媒体は、コンピュータを特定の事前定義された方式で動作させて、本明細書に記載される処理工程の1つまたは複数を行わせる。
本発明のいくつかの実施形態を説明した。ただし、前述の説明は、本発明の範囲を説明することを意図し、制限することを意図しないことを理解されたい。本発明の範囲は下記の特許請求の範囲によって定義される。
したがって、他の実施形態も下記の特許請求の範囲にある。例えば、本発明の範囲から逸脱することなく様々な変更を加えることができる。また、上記の工程の一部は順序に依存しない場合があり、したがって記載される順序とは異なる順序で行うことができる。

Claims (49)

  1. データレコードの処理中に処理規則の実行を生じさせるために、前記データレコードの内容を生成する方法であって、
    データ処理アプリケーションによる、1つまたは複数のデータレコードの第1のセットの処理中に、前記データ処理アプリケーションの処理規則が実行された第1の回数を示す情報を取得する工程であって、前記処理規則は、少なくとも1つの入力値で動作すると共に少なくとも1つの出力値を生成し、更に、前記処理規則が、特定のデータレコードの処理中に前記データ処理アプリケーションによって実行されるかどうかが、前記特定のデータレコードの1つまたは複数のデータフィールド各々における値に依存する、工程と、
    前記処理規則が実行された前記第1の回数が閾値未満のときに、1つまたは複数のデータフィールド各々に関して生成される内容の特性を示す基準を決定する工程と、
    前記基準に基づいて前記データフィールド各々の内容を生成する工程と、
    1つまたは複数のデータレコードの第2のセットの1つまたは複数のデータフィールドに、前記生成された内容を入れる工程であって、データレコードの前記第2のセットの中の少なくとも一部の前記データレコードは、前記第1のセットの1つまたは複数のデータフィールドの少なくとも一部の内容を含む、工程とを含み、
    前記データ処理アプリケーションによってデータレコードの前記第2のセットが処理されるときに、前記処理規則が、前記閾値以上である第2の回数実行される、方法。
  2. 内容を生成する工程が、前記データフィールド各々についてのフォーマットの指定に基づいて内容を生成する工程を含み、前記フォーマットの指定は、前記生成される内容についてのフォーマットの特性を示す、請求項1に記載の方法。
  3. 前記フォーマットの指定が内容の種類を指示する請求項2に記載の方法。
  4. 前記内容の種類が、ストリング、小数、整数、日付、または日時のうちの1つまたは複数を含む請求項3に記載の方法。
  5. ユーザインターフェースを通じて前記フォーマットの指定を示す情報を受け取る工程を含む請求項2から4のいずれか一項に記載の方法。
  6. 前記データフィールドの1つまたは複数を含む新しいデータレコードを作成する工程と、
    前記新しいデータレコードの前記データフィールドに内容を入れる工程と
    を含む請求項1から5のいずれか一項に記載の方法。
  7. 前記データフィールド各々に前記生成された内容を入れる工程が、前記データフィールドの1つまたは複数について、既に存在する内容に変更を加える工程を含む請求項1から6のいずれか一項に記載の方法。
  8. 前記データフィールド各々に内容を入れる工程が、1つまたは複数の既に存在するデータレコードに特定のデータフィールドを作成する工程を含む請求項1から7のいずれか一項に記載の方法。
  9. 前記基準が、目標値、目標とする値の範囲、目標とする値の分布、最大値、または最小値のうちの1つまたは複数を特定する情報を含む請求項1から8のいずれか一項に記載の方法。
  10. 前記基準が、前記生成される内容について特定の値の指示を含む請求項1から9のいずれか一項に記載の方法。
  11. 前記基準が、前記1つまたは複数のデータフィールドの2つ以上に含める内容の組み合わせの目標を指示する請求項1から10のいずれか一項に記載の方法。
  12. ユーザインターフェースを通じて前記基準を示す情報を受け取る工程を含む請求項1から11のいずれか一項に記載の方法。
  13. 内容を生成する工程が、生成モードに基づいて内容を生成する工程を含む請求項1から12のいずれか一項に記載の方法。
  14. 前記生成モードが、(i)複数のデータレコード各々の前記データフィールドの1つまたは複数について、ランダムな内容を生成すること、(ii)複数のデータレコード各々の前記データフィールドの1つまたは複数について、一意の内容を生成すること、および(iii)複数のデータレコード各々の前記データフィールドの1つまたは複数のデータフィールドの内容を、利用可能な内容のセットから選択することのうち、1つまたは複数を含む請求項13に記載の方法。
  15. 前記生成された内容を含む1つまたは複数のデータレコードを前記データ処理アプリケーションに提供する工程を含む請求項1から14のいずれか一項に記載の方法。
  16. 特定のデータ処理規則を前記データ処理アプリケーションによって実行させるように前記基準が決定される請求項1から15のいずれか一項に記載の方法。
  17. 前記基準を決定する工程が、
    実行された回数が最小閾値回数よりも少なかった特定のデータ処理規則を特定する工程と、
    前記特定のデータ処理規則を少なくとも前記最小閾値回数実行させるように前記基準を決定する工程と
    を含む請求項1から16のいずれか一項に記載の方法。
  18. コンピュータシステムに、
    データ処理アプリケーションによる、1つまたは複数のデータレコードの第1のセットの処理中に、前記データ処理アプリケーションの処理規則が実行された第1の回数を示す情報を取得させることであって、前記処理規則は、少なくとも1つの入力値で動作すると共に少なくとも1つの出力値を生成し、更に、前記処理規則が、特定のデータレコードの処理中に前記データ処理アプリケーションによって実行されるかどうかが、前記特定のデータレコードの1つまたは複数のデータフィールド各々における値に依存し、
    前記処理規則が実行された前記第1の回数が閾値未満のときに、1つまたは複数のデータフィールド各々に関して生成される内容の特性を示す基準を決定させ、
    前記基準に基づいて前記データフィールド各々の内容を生成させ、
    1つまたは複数のデータレコードの第2のセットの1つまたは複数のデータフィールドに、前記生成された内容を入れさせ、データレコードの前記第2のセットの中の少なくとも一部の前記データレコードは、前記第1のセットの1つまたは複数のデータフィールドの少なくとも一部の内容を含み、
    前記データ処理アプリケーションによってデータレコードの前記第2のセットが処理されるときに、前記処理規則が、前記閾値以上である第2の回数実行される、
    命令を記憶した非一時的なコンピュータ読取り可能媒体。
  19. メモリに接続された少なくとも1つのプロセッサを備えるコンピューティングシステムであって、前記プロセッサ及び前記メモリは、
    データ処理アプリケーションによる、1つまたは複数のデータレコードの第1のセットの処理中に、前記データ処理アプリケーションの処理規則が実行された第1の回数を示す情報を取得することであって、前記処理規則は、少なくとも1つの入力値で動作すると共に少なくとも1つの出力値を生成し、更に、前記処理規則が、特定のデータレコードの処理中に前記データ処理アプリケーションによって実行されるかどうかが、前記特定のデータレコードの1つまたは複数のデータフィールド各々における値に依存し、
    前記処理規則が実行された前記第1の回数が閾値未満のときに、1つまたは複数のデータフィールド各々に関して生成される内容の特性を示す基準を決定し、
    前記基準に基づいて前記データフィールド各々の内容を生成し、
    1つまたは複数のデータレコードの第2のセットの1つまたは複数のデータフィールドに、前記生成された内容を入れ、データレコードの前記第2のセットの中の少なくとも一部の前記データレコードは、前記第1のセットの1つまたは複数のデータフィールドの少なくとも一部の内容を含み、
    前記データ処理アプリケーションによってデータレコードの前記第2のセットが処理されるときに、前記処理規則が、前記閾値以上である第2の回数実行される
    ように構成される、コンピューティングシステム。
  20. データ処理アプリケーションによる、1つまたは複数のデータレコードの第1のセットの処理中に、前記データ処理アプリケーションの処理規則が実行された第1の回数を示す情報を取得する手段であって、前記処理規則は、少なくとも1つの入力値で動作すると共に少なくとも1つの出力値を生成し、更に、前記処理規則が、特定のデータレコードの処理中に前記データ処理アプリケーションによって実行されるかどうかが、前記特定のデータレコードの1つまたは複数のデータフィールド各々における値に依存する、手段と、
    前記処理規則が実行された前記第1の回数が閾値未満のときに、1つまたは複数のデータフィールド各々に関して生成される内容の特性を示す基準を決定する手段と、
    前記基準に基づいて前記データフィールド各々の内容を生成する手段と、
    1つまたは複数のデータレコードの第2のセットの1つまたは複数のデータフィールドに、前記生成された内容を入れる手段であって、データレコードの前記第2のセットの中の少なくとも一部の前記データレコードは、前記第1のセットの1つまたは複数のデータフィールドの少なくとも一部の内容を含む、手段とを備え、
    前記データ処理アプリケーションによってデータレコードの前記第2のセットが処理されるときに、前記処理規則が、前記閾値以上である第2の回数実行される、
    コンピューティングシステム。
  21. データ処理アプリケーションの開発中に前記データ処理アプリケーションを試験する方法であって、
    前記データ処理アプリケーションを使用して第1のデータレコードを処理する工程であって、前記データ処理アプリケーションは1つまたは複数の処理規則を実装し、各第1のデータレコードは複数のフィールドを有し、各処理規則は、少なくとも1つの入力値で動作すると共に少なくとも1つの出力値を生成する、工程と、
    前記第1のデータレコードの処理中に前記データ処理アプリケーションの各処理規則が実行される回数を、前記処理規則の目標値と比較する工程であって、前記処理規則が、特定のデータレコードの処理中に前記データ処理アプリケーションによって実行されるかどうかが、前記特定のデータレコードの1つまたは複数のデータフィールドの各々における値に依存する工程と、
    前記比較の結果に基づいて、前記データ処理アプリケーションを使用して処理される第2のデータレコードのデータの目標とする特性を指示する基準を決定する工程と、
    前記第1のデータレコードのフォーマットと前記基準とに従って、前記第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程と、
    前記データ処理アプリケーションを使用して前記第2のデータレコードを処理する工程であって、前記第2のデータレコードは、前記第1のデータレコードの前記複数のフィールドの内容の少なくとも一部と前記生成された内容とを含む、工程と、
    前記第2のデータレコードの処理中に前記データ処理アプリケーションの各処理規則が実行される回数を、前記処理規則の前記目標値と比較し、各処理規則の前記目標値が満たされることを判定する工程と、
    前記第2のデータレコードを使用して前記データ処理アプリケーションを試験する工程と
    を含む方法。
  22. 前記第1のデータレコードをクライアント装置で受け取る工程を含み、前記データ処理アプリケーションは前記クライアント装置で実行される請求項21に記載の方法。
  23. 前記クライアント装置がコンピューティング装置からなる請求項22に記載の方法。
  24. 前記第1のデータレコードを遠隔のサーバから受け取る工程を含む請求項21または22に記載の方法。
  25. LANまたはWAN接続を介してサーバに通信的に結合されたクライアント装置で、前記第1のデータレコードを受け取る工程を含む請求項24に記載の方法。
  26. 前記データ処理アプリケーションが前記第2のデータレコードを処理する時に前記第2のデータレコードのデータが各処理規則の前記目標値を満たさせるように、前記基準を決定する工程を含む請求項21から25のいずれか一項に記載の方法。
  27. 前記第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程が、前記第1のデータレコードの1つまたは複数のフィールドの内容に変更を加える工程を含み、前記変更が加えられた第1のデータレコードが前記第2のデータレコードである請求項21から26のいずれか一項に記載の方法。
  28. 前記第2のデータレコードの1つまたは複数のフィールドの内容を生成する工程が、新しいデータレコードを作成する工程を含む請求項21から27のいずれか一項に記載の方法。
  29. 前記第2のデータレコードを記憶装置に記憶する工程を含む請求項21から28のいずれか一項に記載の方法。
  30. 前記試験の結果に基づいて、前記データ処理アプリケーションに変更を加える工程を含む請求項21から29のいずれか一項に記載の方法。
  31. 前記データ処理アプリケーションを試験する工程が、前記データ処理アプリケーションを使用して前記第2のデータレコードを処理した結果に基づいて前記データ処理アプリケーションに変更を加える工程を含む請求項21から30のいずれか一項に記載の方法。
  32. 前記第2のデータレコードの前記データが、前記データ処理アプリケーションによって処理されることが予想されるデータとほぼ同様になるように前記基準を決定する工程を含む請求項21から31のいずれか一項に記載の方法。
  33. 前記内容を生成することが、前記フィールド各々についてのフォーマットの指定に基づいて内容を生成することを含む請求項19に記載のコンピューティングシステム。
  34. 前記フォーマットの指定が内容の種類を指示する請求項33に記載のコンピューティングシステム。
  35. 前記内容の種類が、ストリング、小数、整数、日付、または日時のうちの1つまたは複数を含む請求項34に記載のコンピューティングシステム。
  36. 前記プロセッサが、ユーザインターフェースを通じて前記フォーマットの指定を受け取るように構成される、請求項33から35のいずれか一項に記載のコンピューティングシステム。
  37. 前記プロセッサが
    前記データフィールドの1つまたは複数を含む新しいデータレコードを作成し、
    前記新しいデータレコードの前記データフィールドに内容を入れるように構成される、請求項19に記載のコンピューティングシステム。
  38. 前記データフィールド各々に前記生成された内容を入れることが、前記データフィールドの1つまたは複数について、既に存在する内容に変更を加えることを含む請求項19に記載のコンピューティングシステム。
  39. 前記データフィールド各々に内容を入れることが、1つまたは複数の既に存在するデータレコードに特定のデータフィールドを作成することを含む請求項19に記載のコンピューティングシステム。
  40. 前記基準が、目標値、目標とする値の範囲、目標とする値の分布、最大値、または最小値のうちの1つまたは複数を特定する情報を含む請求項19に記載のコンピューティングシステム。
  41. 前記基準が、前記生成される内容について特定の値の指示を含む請求項19に記載のコンピューティングシステム。
  42. 前記基準が、前記1つまたは複数のデータフィールドの2つ以上に含める内容の組み合わせの目標を指示する請求項19に記載のコンピューティングシステム。
  43. 前記プロセッサが、ユーザインターフェースを通じて前記基準を示す情報を受け取るように構成される、請求項19に記載のコンピューティングシステム。
  44. 前記内容を生成することが、生成モードに基づいて内容を生成することを含む請求項19に記載のコンピューティングシステム。
  45. 前記生成モードが、(i)複数のデータレコード各々の前記データフィールドの1つまたは複数について、ランダムな内容を生成すること、(ii)複数のデータレコード各々の前記データフィールドの1つまたは複数について、一意の内容を生成すること、および(iii)複数のデータレコード各々の前記データフィールドの1つまたは複数のデータフィールドの内容を、利用可能な内容のセットから選択することのうち、1つまたは複数を含む請求項44に記載のコンピューティングシステム。
  46. 前記プロセッサが、前記生成された内容を含む1つまたは複数のデータレコードを前記データ処理アプリケーションに提供するように構成される、請求項19に記載のコンピューティングシステム。
  47. 特定のデータ処理規則を前記データ処理アプリケーションによって実行させるように前記基準が決定される請求項19に記載のコンピューティングシステム。
  48. 前記基準を決定することが、
    実行された回数が最小閾値回数よりも少なかった特定のデータ処理規則を特定することと、
    前記特定のデータ処理規則を少なくとも前記最小閾値回数実行させるように前記基準を決定することと
    を含む請求項19に記載のコンピューティングシステム。
  49. メモリに接続されたプロセッサを備えるコンピューティングシステムであって、前記プロセッサ及び前記メモリは、
    データ処理アプリケーションを使用して第1のデータレコードを処理し、前記データ処理アプリケーションは1つまたは複数の処理規則を実装し、各第1のデータレコードは複数のフィールドを有し、各処理規則は、少なくとも1つの入力値で動作すると共に少なくとも1つの出力値を生成し、
    前記第1のデータレコードの処理中に前記データ処理アプリケーションの各規則が実行される回数を、前記処理規則の目標値と比較し、前記処理規則が、特定のデータレコードの処理中に前記データ処理アプリケーションによって実行されるかどうかが、前記特定のデータレコードの1つまたは複数のデータフィールドの各々における値に依存し、
    前記比較の結果に基づいて、前記データ処理アプリケーションを使用して処理される第2のデータレコードのデータの目標とする特性を指示する基準を決定し、
    前記第1のデータレコードのフォーマットと前記基準とに従って、前記第2のデータレコードの1つまたは複数のフィールドの内容を生成し、
    前記データ処理アプリケーションを使用して前記第2のデータレコードを処理し、前記第2のデータレコードは、前記第1のデータレコードの前記複数のフィールドの内容の少なくとも一部と前記生成された内容とを含み、
    前記第2のデータレコードの処理中に前記データ処理アプリケーションの各処理規則が実行される回数を、前記処理規則の前記目標値と比較し、各処理規則の前記目標値が満たされることを判定し、
    前記第2のデータレコードを使用して前記データ処理アプリケーションを試験するように構成される、コンピューティングシステム。
JP2016536923A 2013-12-18 2014-12-17 データ生成 Active JP6882892B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361917727P 2013-12-18 2013-12-18
US61/917,727 2013-12-18
PCT/US2014/070747 WO2015095275A1 (en) 2013-12-18 2014-12-17 Data generation

Publications (3)

Publication Number Publication Date
JP2017500646A JP2017500646A (ja) 2017-01-05
JP2017500646A5 JP2017500646A5 (ja) 2018-02-01
JP6882892B2 true JP6882892B2 (ja) 2021-06-02

Family

ID=52355209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016536923A Active JP6882892B2 (ja) 2013-12-18 2014-12-17 データ生成

Country Status (10)

Country Link
US (2) US10185641B2 (ja)
EP (1) EP3084611A1 (ja)
JP (1) JP6882892B2 (ja)
KR (1) KR102220246B1 (ja)
CN (1) CN105917315B (ja)
AU (1) AU2014364882B2 (ja)
CA (1) CA2931639C (ja)
HK (1) HK1224398A1 (ja)
SG (1) SG11201604364UA (ja)
WO (1) WO2015095275A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10102398B2 (en) 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
AU2014364882B2 (en) 2013-12-18 2020-02-06 Ab Initio Technology Llc Data generation
AU2015315522B2 (en) 2014-09-08 2019-08-29 Ab Initio Technology Llc. Data-driven testing framework
JP6559600B2 (ja) * 2016-03-17 2019-08-14 株式会社東芝 情報処理装置、情報処理プログラムおよび検査システム
US10204032B2 (en) * 2016-05-27 2019-02-12 Accenture Global Solutions Limited Generating test data from samples using natural language processing and structure-based pattern determination
US10936289B2 (en) * 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
US11194551B2 (en) 2017-06-07 2021-12-07 Ab Initio Technology Llc Dataflow graph configuration
AU2019201241B2 (en) * 2018-02-23 2020-06-25 Accenture Global Solutions Limited Automated structuring of unstructured data
CN110069376A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 一种关联造数的方法、装置、存储介质及计算机设备
US11720481B2 (en) * 2020-12-11 2023-08-08 Optum, Inc. Method, apparatus and computer program product for predictive configuration management of a software testing system

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219810A (ja) 1994-02-04 1995-08-18 Canon Inc モジュールテスト方法および装置
JPH0830488A (ja) * 1994-07-13 1996-02-02 Hitachi Ltd プログラムのテスト方法およびテストカバレージ分析装置
US5664187A (en) 1994-10-26 1997-09-02 Hewlett-Packard Company Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables
JPH1030943A (ja) 1996-07-15 1998-02-03 Ckd Corp センサ装置、表示装置及びデータ書き込み装置
US6728699B1 (en) * 1997-09-23 2004-04-27 Unisys Corporation Method and apparatus for using prior results when processing successive database requests
JP4190610B2 (ja) * 1998-02-18 2008-12-03 富士通株式会社 ロードモジュールの試験ルート決定装置
US6581058B1 (en) 1998-05-22 2003-06-17 Microsoft Corporation Scalable system for clustering of large databases having mixed data attributes
DE19911176A1 (de) 1999-03-12 2000-09-21 Lok Lombardkasse Ag Anonymisierungsverfahren
EP1238347A2 (en) 1999-06-30 2002-09-11 RAF Technology, Inc. Secure, limited-access database system and method
US6546389B1 (en) 2000-01-19 2003-04-08 International Business Machines Corporation Method and system for building a decision-tree classifier from privacy-preserving data
US6567936B1 (en) 2000-02-08 2003-05-20 Microsoft Corporation Data clustering using error-tolerant frequent item sets
JP2001256076A (ja) 2000-03-08 2001-09-21 Ricoh Co Ltd テストデータ生成装置、テストデータ生成方法及び記録媒体
US7237123B2 (en) 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US20020138492A1 (en) 2001-03-07 2002-09-26 David Kil Data mining application with improved data mining algorithm selection
AU2002254564A1 (en) 2001-04-10 2002-10-28 Latanya Sweeney Systems and methods for deidentifying entries in a data source
US7266699B2 (en) 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
US7136787B2 (en) 2001-12-19 2006-11-14 Archimedes, Inc. Generation of continuous mathematical model for common features of a subject group
US7080063B2 (en) 2002-05-10 2006-07-18 Oracle International Corporation Probabilistic model generation
US7194317B2 (en) 2002-08-22 2007-03-20 Air Products And Chemicals, Inc. Fast plant test for model-based control
US20040107189A1 (en) 2002-12-03 2004-06-03 Lockheed Martin Corporation System for identifying similarities in record fields
US7324109B2 (en) 2003-04-24 2008-01-29 Palmer James R Method for superimposing statistical information on tubular data
US7085981B2 (en) 2003-06-09 2006-08-01 International Business Machines Corporation Method and apparatus for generating test data sets in accordance with user feedback
US7849075B2 (en) 2003-09-15 2010-12-07 Ab Initio Technology Llc Joint field profiling
US6957161B2 (en) 2003-09-25 2005-10-18 Dell Products L.P. Information handling system including power supply self diagnostics
TW200532560A (en) * 2003-11-13 2005-10-01 Qualcomm Inc System and method for dynamically simulating devices at a computing device
US7797342B2 (en) 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
JP2006163831A (ja) 2004-12-07 2006-06-22 Nippon Telegr & Teleph Corp <Ntt> 情報管理装置、情報管理方法、情報管理プログラム、情報無効化装置および情報照合装置
US7334466B1 (en) 2005-01-04 2008-02-26 The United States Of America As Represented By The Secretary Of The Army Method and apparatus for predicting and evaluating projectile performance
US7672967B2 (en) 2005-02-07 2010-03-02 Microsoft Corporation Method and system for obfuscating data structures by deterministic natural data substitution
JP2006236220A (ja) 2005-02-28 2006-09-07 Ntt Data Technology Corp テスト用データファイル作成装置、方法、プログラム及び記録媒体
US7684963B2 (en) 2005-03-29 2010-03-23 International Business Machines Corporation Systems and methods of data traffic generation via density estimation using SVD
US7565349B2 (en) 2005-11-10 2009-07-21 International Business Machines Corporation Method for computing frequency distribution for many fields in one pass in parallel
KR100735012B1 (ko) 2006-01-23 2007-07-03 삼성전자주식회사 제품 파라미터들의 통계적 분포 특성을 평가하는 방법
US7937693B2 (en) 2006-04-26 2011-05-03 9Rays.Net, Inc. System and method for obfuscation of reverse compiled computer code
US20080124319A1 (en) 2006-05-16 2008-05-29 Charalabos Pothoulakis Methods for treating inflammation by disrupting MCH-mediated signaling
US8209549B1 (en) 2006-10-19 2012-06-26 United Services Automobile Association (Usaa) Systems and methods for cryptographic masking of private data
US7724918B2 (en) 2006-11-22 2010-05-25 International Business Machines Corporation Data obfuscation of text data using entity detection and replacement
US8069129B2 (en) * 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
KR20100041806A (ko) * 2007-07-03 2010-04-22 스미스 디텍션 인크. 휴대용 검출 시스템 및 방법
JP4575416B2 (ja) 2007-10-29 2010-11-04 みずほ情報総研株式会社 テストデータ生成システム、テストデータ生成方法及びテストデータ生成プログラム
JP4986817B2 (ja) 2007-11-13 2012-07-25 株式会社ソニーDadc 評価装置、評価方法、プログラム
US7877398B2 (en) 2007-11-19 2011-01-25 International Business Machines Corporation Masking related sensitive data in groups
JP2009157456A (ja) 2007-12-25 2009-07-16 Toshiba Corp プログラム検証装置、プログラム検証方法、検証プログラム
US7953727B2 (en) 2008-04-04 2011-05-31 International Business Machines Corporation Handling requests for data stored in database tables
US9305180B2 (en) 2008-05-12 2016-04-05 New BIS Luxco S.à r.l Data obfuscation system, method, and computer implementation of data obfuscation for secret databases
WO2009138123A1 (en) 2008-05-15 2009-11-19 Simeon Falk Sheye A method for automatic testing of software
CN102138139B (zh) * 2008-06-30 2014-12-17 起元技术有限责任公司 基于图的计算中的数据日志记录
EP2189925A3 (en) 2008-11-25 2015-10-14 SafeNet, Inc. Database obfuscation system and method
KR101613110B1 (ko) * 2009-01-30 2016-04-18 아브 이니티오 테크놀로지 엘엘시 벡터 필드를 이용한 데이터 처리 방법
US7881324B2 (en) * 2009-03-25 2011-02-01 International Business Machines Corporation Steering data communications packets for transparent bump-in-the-wire processing among multiple data processing applications
US10102398B2 (en) 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
CN102460076B (zh) * 2009-06-10 2015-06-03 起元技术有限责任公司 生成测试数据
US8862557B2 (en) * 2009-12-23 2014-10-14 Adi, Llc System and method for rule-driven constraint-based generation of domain-specific data sets
CA2786445C (en) * 2010-01-13 2018-02-13 Ab Initio Technology Llc Matching metadata sources using rules for characterizing matches
JP2011204069A (ja) 2010-03-26 2011-10-13 Nec Corp テスト方法およびテスト仕様書テストデータ自動生成装置
US9298878B2 (en) 2010-07-29 2016-03-29 Oracle International Corporation System and method for real-time transactional data obfuscation
CN103348598B (zh) * 2011-01-28 2017-07-14 起元科技有限公司 生成数据模式信息
JP5450840B2 (ja) 2011-02-02 2014-03-26 株式会社日立製作所 プログラムの実行性能評価のためのテストデータ生成方法
JP5747688B2 (ja) 2011-07-01 2015-07-15 カシオ計算機株式会社 計算装置およびプログラム
JP5761056B2 (ja) * 2012-01-31 2015-08-12 富士通株式会社 生成装置、生成プログラム、および生成方法
US9892026B2 (en) * 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US9298511B2 (en) * 2013-03-15 2016-03-29 International Business Machines Corporation Resolving deployment conflicts in heterogeneous environments
AU2014364882B2 (en) 2013-12-18 2020-02-06 Ab Initio Technology Llc Data generation

Also Published As

Publication number Publication date
EP3084611A1 (en) 2016-10-26
HK1224398A1 (zh) 2017-08-18
KR102220246B1 (ko) 2021-02-24
SG11201604364UA (en) 2016-07-28
JP2017500646A (ja) 2017-01-05
CN105917315A (zh) 2016-08-31
US20150169428A1 (en) 2015-06-18
CA2931639A1 (en) 2015-06-25
WO2015095275A1 (en) 2015-06-25
US20190073289A1 (en) 2019-03-07
US10437701B2 (en) 2019-10-08
CA2931639C (en) 2021-08-03
CN105917315B (zh) 2020-05-01
AU2014364882A1 (en) 2016-06-09
KR20160118235A (ko) 2016-10-11
US10185641B2 (en) 2019-01-22
AU2014364882B2 (en) 2020-02-06

Similar Documents

Publication Publication Date Title
JP6882892B2 (ja) データ生成
JP6916403B2 (ja) データへの論理的妥当性検査規則の指定および適用
JP5940560B2 (ja) データの集合体に対する変更の管理
US10838982B2 (en) System and method for aggregating values through risk dimension hierarchies in a multidimensional database environment
US7031901B2 (en) System and method for improving predictive modeling of an information system
US7035786B1 (en) System and method for multi-phase system development with predictive modeling
US9892026B2 (en) Data records selection
KR101688555B1 (ko) 데이터세트 요소의 매핑
JP5620984B2 (ja) テストデータの生成方法
US10360603B2 (en) Creation and use of constraint templates
US8881127B2 (en) Systems and methods to automatically generate classes from API source code
US20230259521A1 (en) Metadata-based data processing
JP6567043B2 (ja) 階層的なエンティティのための計算の管理
M’baba et al. Process mining for artifact-centric blockchain applications
US11893020B2 (en) Enhancing database query processing
WO2020248149A1 (en) Data sharing and data analytics implementing local differential privacy
US20240320648A1 (en) Creation and maintenance of hierarchical data objects
KR20190143595A (ko) 동시병행 일정 최적화 방법 및 시스템
US20230010147A1 (en) Automated determination of accurate data schema
CN106687999B (zh) 产生实现被设计为更新根据应用数据模型指定的对象的规则的指令集
Eisa Parallel Processing for Data Retrieval in Odoo Enterprise Resource Planning Reporting System
WO2023192488A1 (en) Metadata-based data processing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190409

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200124

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200124

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200203

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20200204

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20200612

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20200616

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200901

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20201002

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20201026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210215

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20210329

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210422

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210507

R150 Certificate of patent or registration of utility model

Ref document number: 6882892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250