(57)【特許請求の範囲】
【請求項１】
データレコードを選択して、データ処理アプリケーションのテスト中に処理規則を実行する、コンピュータにより実施される方法であって、
処理規則を含むデータ処理アプリケーションを用いて、データレコードの第１のセットを処理することであって、処理規則は、少なくとも一つの入力値に作用して少なくとも一つの出力値を生成し、特定のデータレコードの処理中に前記処理規則が前記データ処理アプリケーションによって実行されるか否かが、前記特定のデータレコードの１つ又はそれ以上のデータフィールドのそれぞれの値に直接又は間接に依存する、ことと、
前記データレコードの第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報を受け取ることと、
データレコードの第２のセットにおける１つ又はそれ以上のデータレコードのそれぞれの１つ又はそれ以上のデータフィールドの値を分析することであって、前記解析することは、データレコードの前記第２のセットについて、１つ又はそれ以上のデータフィールドのそれぞれのプロファイルを生成することを含み、データフィールドの前記プロファイルは、前記データフィールドの値を特徴付ける、ことと、
生成された前記プロファイルと、データレコードの前記第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報とに基づいて、少なくとも１つのサブセッティング規則を策定することであって、前記サブセッティング規則は、前記第２のセットの前記データレコードの前記データフィールドの特定の１つを、ターゲットデータフィールドとして識別する、ことと、
前記少なくとも１つのサブセッティング規則に基づいて、データレコードの前記第２のセットから、データレコードのサブセットを選択することであって、データレコードの前記サブセットの前記選択は、前記ターゲットデータフィールドの値に基づく、ことと、
前記データ処理アプリケーションを用いて、データレコードの選択されたサブセットを処理することと、
を含む、コンピュータにより実施される方法。
【請求項２】
少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドの基数に基づいて前記第１のデータフィールドをターゲットデータフィールドとして識別することを含む、請求項１の方法。
【請求項３】
前記ターゲットデータフィールドは前記複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、前記選択されたサブセットに前記ターゲットデータフィールドの前記異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む、請求項２の方法。
【請求項４】
プロファイルを生成することは、前記複数のデータレコードの第１のデータフィールドの値を分類することを含み、
少なくとも１つのサブセッティング規則を策定することは、前記分類に基づいて前記第１のデータフィールドをターゲットデータフィールドとして識別することを含む、請求項１の方法。
【請求項５】
前記ターゲットデータフィールドは前記複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、前記選択されたサブセットに前記ターゲットデータフィールドの前記異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む、請求項４の方法。
【請求項６】
少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドを第１のターゲットデータフィールドとして識別し第２のデータフィールドを第２のターゲットデータフィールドとして識別することを含む、請求項１の方法。
【請求項７】
データレコードのサブセットを選択することは、前記第１のターゲットデータフィールドの異なる値の第１のセットと前記第２のターゲットデータフィールドの異なる値の第２のセットとの組み合わせに基づいて前記データレコードのサブセットを選択することを含む、請求項６の方法。
【請求項８】
プロファイルを生成することは、第１のデータフィールドの値を介して関係付けられたデータレコード間の関係を識別することを含み、
前記少なくとも１つのサブセッティング規則は前記関係の識別を含む、請求項１の方法。
【請求項９】
データレコードのサブセットを選択することは、
第１のデータレコードを選択することと、
前記サブセッティング規則において識別された前記関係を介して前記第１のデータレコードに関係付けられた１つ以上の第２のデータレコードを選択することと、
を含む、請求項８の方法。
【請求項１０】
前記データレコード間の関係は、データレコードの第１のセットのデータレコードとデータレコードの第２のセットのデータレコードとの間の関係を含む、請求項８の方法。
【請求項１１】
プロファイルを生成することは、
前記複数のデータレコードのうち少なくともいくつかについて擬似フィールドを生成することと、
対応する各データレコードの前記擬似フィールドに累積値を取り込むことと、
を含み、
第１のデータレコードの前記累積値は前記第１のデータレコードと前記第１のデータレコードに関係付けられた少なくとも１つの他のデータレコードとに基づいて決定され、
前記第１のデータレコードと前記少なくとも１つの他のデータレコードとは第１のデータフィールドの値を介して関係付けられる、請求項１の方法。
【請求項１２】
前記第１のデータレコードの第２のデータフィールドの値と他の関係する各データレコードの前記第２のデータフィールドの値との合計に基づいて前記累積値を決定することを含む、請求項１１の方法。
【請求項１３】
サブセッティング規則を受信することを含む、請求項１の方法。
【請求項１４】
前記選択されたデータレコードのサブセットをデータ処理アプリケーションに提供することを含む、請求項１の方法。
【請求項１５】
前記データ処理アプリケーションの結果に基づいて第２のサブセッティング規則を策定することと、
前記第２のサブセッティング規則に基づいてデータレコードの第２のサブセットを選択することと、
を含む、請求項１２の方法。
【請求項１６】
コンピュータ読み取り可能な媒体に記憶されたソフトウェアであって、コンピューティングシステムに、データレコードを選択して、データ処理アプリケーションのテスト中に処理規則を実行させる命令を含み、
前記命令は、前記コンピュータシステムに、
処理規則を含むデータ処理アプリケーションを用いて、データレコードの第１のセットを処理することであって、処理規則は、少なくとも一つの入力値に作用して少なくとも一つの出力値を生成し、特定のデータレコードの処理中に前記処理規則が前記データ処理アプリケーションによって実行されるか否かが、前記特定のデータレコードの１つ又はそれ以上のデータフィールドのそれぞれの値に直接又は間接に依存する、ことと、
前記データレコードの第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報を受け取ることと、
データレコードの第２のセットにおける１つ又はそれ以上のデータレコードのそれぞれの１つ又はそれ以上のデータフィールドの値を分析することであって、前記解析することは、データレコードの前記第２のセットについて、１つ又はそれ以上のデータフィールドのそれぞれのプロファイルを生成することを含み、データフィールドの前記プロファイルは、前記データフィールドの値を特徴付ける、ことと、
生成された前記プロファイルと、データレコードの前記第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報とに基づいて、少なくとも１つのサブセッティング規則を策定することであって、前記サブセッティング規則は、前記第２のセットの前記データレコードの前記データフィールドの特定の１つを、ターゲットデータフィールドとして識別する、ことと、
前記少なくとも１つのサブセッティング規則に基づいて、データレコードの前記第２のセットから、データレコードのサブセットを選択することであって、データレコードの前記サブセットの前記選択は、前記ターゲットデータフィールドの値に基づく、ことと、
前記データ処理アプリケーションを用いて、データレコードの選択されたサブセットを処理することと、
を実行させる命令を含む、ソフトウェア。
【請求項１７】
少なくとも１つのプロセッサを備えるコンピューティングシステムであって、
前記少なくとも１つのプロセッサは、
処理規則を含むデータ処理アプリケーションを用いて、データレコードの第１のセットを処理することであって、処理規則は、少なくとも一つの入力値に作用して少なくとも一つの出力値を生成し、特定のデータレコードの処理中に前記処理規則が前記データ処理アプリケーションによって実行されるか否かが、前記特定のデータレコードの１つ又はそれ以上のデータフィールドのそれぞれの値に直接又は間接に依存する、ことと、
前記データレコードの第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報を受け取ることと、
データレコードの第２のセットにおける１つ又はそれ以上のデータレコードのそれぞれの１つ又はそれ以上のデータフィールドの値を分析することであって、前記解析することは、データレコードの前記第２のセットについて、１つ又はそれ以上のデータフィールドのそれぞれのプロファイルを生成することを含み、データフィールドの前記プロファイルは、前記データフィールドの値を特徴付ける、ことと、
生成された前記プロファイルと、データレコードの前記第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報とに基づいて、少なくとも１つのサブセッティング規則を策定することであって、前記サブセッティング規則は、前記第２のセットの前記データレコードの前記データフィールドの特定の１つを、ターゲットデータフィールドとして識別する、ことと、
前記少なくとも１つのサブセッティング規則に基づいて、データレコードの前記第２のセットから、データレコードのサブセットを選択することであって、データレコードの前記サブセットの前記選択は、前記ターゲットデータフィールドの値に基づく、ことと、
前記データ処理アプリケーションを用いて、データレコードの選択されたサブセットを処理することと、
を行うように構成されている、コンピューティングシステム。
【請求項１８】
処理規則を含むデータ処理アプリケーションを用いて、データレコードの第１のセットを処理する手段であって、処理規則は、少なくとも一つの入力値に作用して少なくとも一つの出力値を生成し、特定のデータレコードの処理中に前記処理規則が前記データ処理アプリケーションによって実行されるか否かが、前記特定のデータレコードの１つ又はそれ以上のデータフィールドのそれぞれの値に直接又は間接に依存する、手段と、
前記データレコードの第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報を受け取る手段と、
データレコードの第２のセットにおける１つ又はそれ以上のデータレコードのそれぞれの１つ又はそれ以上のデータフィールドの値を分析する手段であって、前記解析することは、データレコードの前記第２のセットについて、１つ又はそれ以上のデータフィールドのそれぞれのプロファイルを生成することを含み、データフィールドの前記プロファイルは、前記データフィールドの値を特徴付ける、手段と、
生成された前記プロファイルと、データレコードの前記第１のセットの処理に関連して前記処理規則が実行された回数を示す実行情報とに基づいて、少なくとも１つのサブセッティング規則を策定する手段であって、前記サブセッティング規則は、前記第２のセットの前記データレコードの前記データフィールドの特定の１つを、ターゲットデータフィールドとして識別する、手段と、
前記少なくとも１つのサブセッティング規則に基づいて、データレコードの前記第２のセットから、データレコードのサブセットを選択する手段であって、データレコードの前記サブセットの前記選択は、前記ターゲットデータフィールドの値に基づく、手段と、
前記データ処理アプリケーションを用いて、データレコードの選択されたサブセットを処理する手段と、
を備えるコンピューティングシステム。
【請求項１９】
各々が複数のデータフィールドを有する複数のデータレコードにアクセスすることと、
前記複数のデータレコードからデータレコードの第１のサブセットを選択することと、
前記データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供することと、
前記規則のうち少なくとも１つが前記データ処理アプリケーションによって実行された回数を示すレポートを受信することと、
前記レポートに示された回数に基づいて前記複数のデータレコードからデータレコードの第２のサブセットを選択することと、
を含む、コンピュータにより実施される方法。
【請求項２０】
前記データレコードの第２のサブセットを前記データ処理アプリケーションに提供することを含む、請求項１９の方法。
【請求項２１】
前記レポートに基づいて、前記データ処理アプリケーションによって実行されなかった１つ以上の規則を識別することを含み、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項１９の方法。
【請求項２２】
前記レポートに基づいて、各々が対応する最大閾値回数よりも少なく実行された１つ以上の規則を識別することを含み、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項１９の方法。
【請求項２３】
前記レポートに基づいて、各々が対応する最小閾値回数よりも多く実行された１つ以上の規則を識別することを含み、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項１９の方法。
【請求項２４】
データレコードの第１のサブセットを選択することは、第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することを含む、請求項１９の方法。
【請求項２５】
前記第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することは、前記サブセットの少なくとも１つのデータレコードがターゲットデータフィールドの一連の異なる値の各々を有するように前記データレコードの第１のサブセットを選択することを含む、請求項２４の方法。
【請求項２６】
前記第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することは、
第１のデータレコードを選択することと、
前記第１のサブセッティング規則において識別された関係を介して前記第１のデータレコードと関係付けられた１つ以上の第２のデータレコードを選択することと、
を含む、請求項２４の方法。
【請求項２７】
前記データレコードの第２のサブセットを選択することは、前記第１のサブセッティング規則とは異なる第２のサブセッティング規則に基づいて前記データレコードの第２のサブセットを選択することを含む、請求項２４の方法。
【請求項２８】
前記レポートは、前記データ処理アプリケーションの１つ以上の規則の実行をトリガする変数の値を示すデータを含み、
前記変数に基づいて１つ以上のデータフィールドをターゲットデータフィールドとして識別することを備え、前記変数は前記識別された１つ以上のデータフィールドの値に依存する、請求項１９の方法。
【請求項２９】
前記データレコードの第２のサブセットは前記データレコードの第１のサブセットを含む、請求項１９の方法。
【請求項３０】
規則が前記データ処理アプリケーションによって少なくとも閾値回数実行されたことを前記レポートが示すまで、データレコードのサブセットを反復して選択すること及び前記データレコードのサブセットを前記データ処理アプリケーションに提供することを含む、請求項１９の方法。
【請求項３１】
コンピュータ読み取り可能な媒体に記憶されたソフトウェアであって、コンピューティングシステムに、
各々が複数のデータフィールドを有する複数のデータレコードにアクセスさせる命令と、
前記複数のデータレコードからデータレコードの第１のサブセットを選択させる命令と、
前記データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供させる命令と、
前記規則のうち少なくとも１つが前記データ処理アプリケーションによって実行された回数を示すレポートを受信させる命令と、
前記レポートに示された回数に基づいて前記複数のデータレコードからデータレコードの第２のサブセットを選択させる命令と、
を含む、ソフトウェア。
【請求項３２】
各々が複数のデータフィールドを有する複数のデータレコードにアクセスし、
前記複数のデータレコードからデータレコードの第１のサブセットを選択し、
前記データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供し、
前記規則のうち少なくとも１つが前記データ処理アプリケーションによって実行された回数を示すレポートを受信し、
前記レポートに示された回数に基づいて前記複数のデータレコードからデータレコードの第２のサブセットを選択する
よう構成された少なくとも１つのプロセッサを備える、コンピューティングシステム。
【請求項３３】
各々が複数のデータフィールドを有する複数のデータレコードにアクセスする手段と、
前記複数のデータレコードからデータレコードの第１のサブセットを選択する手段と、
前記データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供する手段と、
前記規則のうち少なくとも１つが前記データ処理アプリケーションによって実行された回数を示すレポートを受信する手段と、
前記レポートに示された回数に基づいて前記複数のデータレコードからデータレコードの第２のサブセットを選択する手段と、
を備える、コンピューティングシステム。
【請求項３４】
少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドの基数に基づいて前記第１のデータフィールドをターゲットデータフィールドとして識別することを含む、請求項１６のソフトウェア。
【請求項３５】
前記ターゲットデータフィールドは前記複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、前記選択されたサブセットに前記ターゲットデータフィールドの前記異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む、請求項３４のソフトウェア。
【請求項３６】
プロファイルを生成することは、前記複数のデータレコードの第１のデータフィールドの値を分類することを含み、
少なくとも１つのサブセッティング規則を策定することは、前記分類に基づいて前記第１のデータフィールドをターゲットデータフィールドとして識別することを含む、請求項１６のソフトウェア。
【請求項３７】
前記ターゲットデータフィールドは前記複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、前記選択されたサブセットに前記ターゲットデータフィールドの前記異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む、請求項３６のソフトウェア。
【請求項３８】
少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドを第１のターゲットデータフィールドとして識別し第２のデータフィールドを第２のターゲットデータフィールドとして識別することを含む、請求項１６のソフトウェア。
【請求項３９】
データレコードのサブセットを選択することは、前記第１のターゲットデータフィールドの異なる値の第１のセットと前記第２のターゲットデータフィールドの異なる値の第２のセットとの組み合わせに基づいて前記データレコードのサブセットを選択することを含む、請求項３８のソフトウェア。
【請求項４０】
プロファイルを生成することは、第１のデータフィールドの値を介して関係付けられたデータレコード間の関係を識別することを含み、
前記少なくとも１つのサブセッティング規則は前記関係の識別を含む、請求項１６のソフトウェア。
【請求項４１】
データレコードのサブセットを選択することは、
第１のデータレコードを選択することと、
前記サブセッティング規則において識別された前記関係を介して前記第１のデータレコードに関係付けられた１つ以上の第２のデータレコードを選択することと、
を含む、請求項４０のソフトウェア。
【請求項４２】
前記データレコード間の関係は、データレコードの第１のセットのデータレコードとデータレコードの第２のセットのデータレコードとの間の関係を含む、請求項４０のソフトウェア。
【請求項４３】
プロファイルを生成することは、
前記複数のデータレコードのうち少なくともいくつかについて擬似フィールドを生成することと、
対応する各データレコードの前記擬似フィールドに累積値を取り込むことと、
を含み、
第１のデータレコードの前記累積値は前記第１のデータレコードと前記第１のデータレコードに関係付けられた少なくとも１つの他のデータレコードとに基づいて決定され、
前記第１のデータレコードと前記少なくとも１つの他のデータレコードとは第１のデータフィールドの値を介して関係付けられる、請求項１６のソフトウェア。
【請求項４４】
前記命令は、前記コンピューティングシステムに、前記第１のデータレコードの第２のデータフィールドの値と他の関係する各データレコードの前記第２のデータフィールドの値との合計に基づいて前記累積値を決定させる、請求項４３のソフトウェア。
【請求項４５】
前記命令は、前記コンピューティングシステムに、前記選択されたデータレコードのサブセットをデータ処理アプリケーションに提供させる、請求項１６のソフトウェア。
【請求項４６】
前記命令は、前記コンピューティングシステムに、
前記データ処理アプリケーションの結果に基づいて第２のサブセッティング規則を策定させ、
前記第２のサブセッティング規則に基づいてデータレコードの第２のサブセットを選択させる、請求項４５のソフトウェア。
【請求項４７】
少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドの基数に基づいて前記第１のデータフィールドをターゲットデータフィールドとして識別することを含む、請求項１７のコンピューティングシステム。
【請求項４８】
前記ターゲットデータフィールドは前記複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、前記選択されたサブセットに前記ターゲットデータフィールドの前記異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む、請求項４７のコンピューティングシステム。
【請求項４９】
プロファイルを生成することは、前記複数のデータレコードの第１のデータフィールドの値を分類することを含み、
少なくとも１つのサブセッティング規則を策定することは、前記分類に基づいて前記第１のデータフィールドをターゲットデータフィールドとして識別することを含む、請求項１７のコンピューティングシステム。
【請求項５０】
前記ターゲットデータフィールドは前記複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、前記選択されたサブセットに前記ターゲットデータフィールドの前記異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む、請求項４９のコンピューティングシステム。
【請求項５１】
少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドを第１のターゲットデータフィールドとして識別し第２のデータフィールドを第２のターゲットデータフィールドとして識別することを含む、請求項１７のコンピューティングシステム。
【請求項５２】
データレコードのサブセットを選択することは、前記第１のターゲットデータフィールドの異なる値の第１のセットと前記第２のターゲットデータフィールドの異なる値の第２のセットとの組み合わせに基づいて前記データレコードのサブセットを選択することを含む、請求項５１のコンピューティングシステム。
【請求項５３】
プロファイルを生成することは、第１のデータフィールドの値を介して関係付けられたデータレコード間の関係を識別することを含み、
前記少なくとも１つのサブセッティング規則は前記関係の識別を含む、請求項１７のコンピューティングシステム。
【請求項５４】
データレコードのサブセットを選択することは、
第１のデータレコードを選択することと、
前記サブセッティング規則において識別された前記関係を介して前記第１のデータレコードに関係付けられた１つ以上の第２のデータレコードを選択することと、
を含む、請求項５３のコンピューティングシステム。
【請求項５５】
前記データレコード間の関係は、データレコードの第１のセットのデータレコードとデータレコードの第２のセットのデータレコードとの間の関係を含む、請求項５３のコンピューティングシステム。
【請求項５６】
プロファイルを生成することは、
前記複数のデータレコードのうち少なくともいくつかについて擬似フィールドを生成することと、
対応する各データレコードの前記擬似フィールドに累積値を取り込むことと、
を含み、
第１のデータレコードの前記累積値は前記第１のデータレコードと前記第１のデータレコードに関係付けられた少なくとも１つの他のデータレコードとに基づいて決定され、
前記第１のデータレコードと前記少なくとも１つの他のデータレコードとは第１のデータフィールドの値を介して関係付けられる、請求項１７のコンピューティングシステム。
【請求項５７】
前記プロセッサは、前記第１のデータレコードの第２のデータフィールドの値と他の関係する各データレコードの前記第２のデータフィールドの値との合計に基づいて前記累積値を決定するよう構成されている、請求項５６のコンピューティングシステム。
【請求項５８】
前記プロセッサは、前記選択されたデータレコードのサブセットをデータ処理アプリケーションに提供するよう構成されている、請求項１７のコンピューティングシステム。
【請求項５９】
前記プロセッサは、
前記データ処理アプリケーションの結果に基づいて第２のサブセッティング規則を策定し、
前記第２のサブセッティング規則に基づいてデータレコードの第２のサブセットを選択する
よう構成されている、請求項５８のコンピューティングシステム。
【請求項６０】
前記命令は、前記コンピューティングシステムに、前記データレコードの第２のサブセットを前記データ処理アプリケーションに提供させる、請求項３１のソフトウェア。
【請求項６１】
前記命令は、前記コンピューティングシステムに、前記レポートに基づいて、前記データ処理アプリケーションによって実行されなかった１つ以上の規則を識別させ、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項３１のソフトウェア。
【請求項６２】
前記命令は、前記コンピューティングシステムに、前記レポートに基づいて、各々が対応する最大閾値回数よりも少なく実行された１つ以上の規則を識別させ、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項３１のソフトウェア。
【請求項６３】
前記命令は、前記コンピューティングシステムに、前記レポートに基づいて、各々が対応する最小閾値回数よりも多く実行された１つ以上の規則を識別させ、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項３１のソフトウェア。
【請求項６４】
データレコードの第１のサブセットを選択することは、第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することを含む、請求項３１のソフトウェア。
【請求項６５】
前記第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することは、前記サブセットの少なくとも１つのデータレコードがターゲットデータフィールドの一連の異なる値の各々を有するように前記データレコードの第１のサブセットを選択することを含む、請求項６４のソフトウェア。
【請求項６６】
前記第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することは、
第１のデータレコードを選択することと、
前記第１のサブセッティング規則において識別された関係を介して前記第１のデータレコードと関係付けられた１つ以上の第２のデータレコードを選択することと、
を含む、請求項６４のソフトウェア。
【請求項６７】
前記データレコードの第２のサブセットを選択することは、前記第１のサブセッティング規則とは異なる第２のサブセッティング規則に基づいて前記データレコードの第２のサブセットを選択することを含む、請求項６４のソフトウェア。
【請求項６８】
前記レポートは、前記データ処理アプリケーションの１つ以上の規則の実行をトリガする変数の値を示すデータを含み、
前記変数に基づいて１つ以上のデータフィールドをターゲットデータフィールドとして識別することを備え、前記変数は前記識別された１つ以上のデータフィールドの値に依存する、請求項３１のソフトウェア。
【請求項６９】
前記データレコードの第２のサブセットは前記データレコードの第１のサブセットを含む、請求項３１のソフトウェア。
【請求項７０】
前記命令は、前記コンピューティングシステムに、規則が前記データ処理アプリケーションによって少なくとも閾値回数実行されたことを前記レポートが示すまで、データレコードのサブセットを反復して選択させ、前記データレコードのサブセットを前記データ処理アプリケーションに対して提供させる、請求項３１のソフトウェア。
【請求項７１】
前記プロセッサは、前記データレコードの第２のサブセットを前記データ処理アプリケーションに提供するよう構成されている、請求項３２のコンピューティングシステム。
【請求項７２】
前記プロセッサは、前記レポートに基づいて、前記データ処理アプリケーションによって実行されなかった１つ以上の規則を識別するよう構成され、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項３２のコンピューティングシステム。
【請求項７３】
前記プロセッサは、前記レポートに基づいて、各々が対応する最大閾値回数よりも少なく実行された１つ以上の規則を識別するよう構成され、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項３２のコンピューティングシステム。
【請求項７４】
前記プロセッサは、前記レポートに基づいて、各々が対応する最小閾値回数よりも多く実行された１つ以上の規則を識別するよう構成され、
前記データレコードの第２のサブセットを選択することは、前記識別に基づいてデータレコードを選択することを含む、請求項３２のコンピューティングシステム。
【請求項７５】
データレコードの第１のサブセットを選択することは、第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することを含む、請求項３２のコンピューティングシステム。
【請求項７６】
前記第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することは、前記サブセットの少なくとも１つのデータレコードがターゲットデータフィールドの一連の異なる値の各々を有するように前記データレコードの第１のサブセットを選択することを含む、請求項７５のコンピューティングシステム。
【請求項７７】
前記第１のサブセッティング規則に基づいて前記データレコードの第１のサブセットを選択することは、
第１のデータレコードを選択することと、
前記第１のサブセッティング規則において識別された関係を介して前記第１のデータレコードと関係付けられた１つ以上の第２のデータレコードを選択することと、
を含む、請求項７５のコンピューティングシステム。
【請求項７８】
前記データレコードの第２のサブセットを選択することは、前記第１のサブセッティング規則とは異なる第２のサブセッティング規則に基づいて前記データレコードの第２のサブセットを選択することを含む、請求項７５のコンピューティングシステム。
【請求項７９】
前記レポートは、前記データ処理アプリケーションの１つ以上の規則の実行をトリガする変数の値を示すデータを含み、
前記変数に基づいて１つ以上のデータフィールドをターゲットデータフィールドとして識別することを備え、前記変数は前記識別された１つ以上のデータフィールドの値に依存する、請求項３２のコンピューティングシステム。
【請求項８０】
前記データレコードの第２のサブセットは前記データレコードの第１のサブセットを含む、請求項３２のコンピューティングシステム。
【請求項８１】
前記プロセッサは、規則が前記データ処理アプリケーションによって少なくとも閾値回数実行されたことを前記レポートが示すまで、データレコードのサブセットを反復して選択するよう構成され、前記データレコードのサブセットを前記データ処理アプリケーションに提供するよう構成されている、請求項３２のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（優先権の主張）
本願は、２０１３年２月１日に提出された米国特許出願第６１／７５９，７９９号及び２０１３年３月１４日に提出された米国特許出願第１３／８２７，５５８号の優先権を主張する。両出願の全内容は参照により本明細書に組み込まれる。
【背景技術】
【０００２】
[0001]  記憶されているデータセットはしばしば、様々な特性が事前に知られていないデータを含む。例えば、データセットの典型値の値の範囲、データセット内の異なるフィールド間の関係、又は異なるフィールドの値の間の機能的依存性が未知であるかもしれない。データプロファイリングは、そのような特性を求めるためにデータセットのソースを調べることを伴い得る。
【発明の概要】
【０００３】
[0002]  データ処理アプリケーションの開発にあたり、開発者は、生産環境の外部で作業するかもしれず、生産データへのアクセスを有さないかもしれない。データ処理アプリケーション（本明細書においては「アプリケーション」と称される）が生産時に実データによって適切に実行することを保証するために、アプリケーションの実行及びテストの際には現実的なデータが用いられ得る。アプリケーションはしばしば、実行が１つ以上の変数の値に依存する規則を含む。これらの変数は、入力データに対応する入力変数であってもよいし、１つ以上の入力変数に依存する派生変数などであってもよい。データレコードのサブセットが生産実績データから選択されて、アプリケーションの開発及びテストに用いられ得る。これらのデータレコードは、一般的には、入力データが、アプリケーションのあらゆる規則が実行されるのに十分であるように（例えばアプリケーションの完全なコードカバレッジが達成されるように）選択される。
【０００４】
[0003]  一般的な態様においては、コンピュータにより実施される方法は、各々が複数のデータフィールドを有する複数のデータレコードにアクセスすることを含む。方法はさらに、その複数のデータレコードのうち少なくともいくつかについてデータフィールドのうち１つ以上の値を分析すること、及びその分析に基づいて複数のデータレコードのプロファイルを生成することを含む。方法はさらに、そのプロファイルに基づいて少なくとも１つのサブセッティング規則を策定すること、及びその少なくとも１つのサブセッティング規則に基づいて複数のデータレコードからデータレコードのサブセットを選択することを含む。
【０００５】
[0004]  実施形態は以下のうち１つ以上を備えてもよい。
【０００６】
[0005]  少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドの基数に基づいて第１のデータフィールドをターゲットデータフィールドとして識別することを含む。場合によっては、ターゲットデータフィールドは複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、選択されたサブセットにターゲットデータフィールドの異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む。
【０００７】
[0006]  プロファイルを生成することは、複数のデータレコードの第１のデータフィールドの値を分類することを含む。少なくとも１つのサブセッティング規則を策定することは、その分類に基づいて第１のデータフィールドをターゲットデータフィールドとして識別することを含む。場合によっては、ターゲットフィールドは複数のデータレコードの一連の異なる値を有し、データレコードのサブセットを選択することは、選択されたサブセットにターゲットデータフィールドの異なる値の各々を有する少なくとも１つのデータレコードがあるようにデータレコードを選択することを含む。
【０００８】
[0007]  少なくとも１つのサブセッティング規則を策定することは、第１のデータフィールドを第１のターゲットデータフィールドとして識別し第２のデータフィールドを第２のターゲットデータフィールドとして識別することを含む。場合によっては、データレコードのサブセットを選択することは、第１のターゲットデータフィールドの異なる値の第１のセットと第２のターゲットデータフィールドの異なる値の第２のセットとの組み合わせに基づいてデータレコードのサブセットを選択することを含む。
【０００９】
[0008]  プロファイルを生成することは、第１のデータフィールドの値を介して関係付けられたデータレコード間の関係を識別することを含む。少なくとも１つのサブセッティング規則は、その関係の識別を含む。場合によっては、データレコードのサブセットを選択することは、第１のデータレコードを選択することと、サブセッティング規則において識別された関係を介して第１のデータレコードに関係付けられた１つ以上の第２のデータレコードを選択することと、を含む。場合によっては、データレコード間の関係は、データレコードの第１のセットのデータレコードとデータレコードの第２のセットのデータレコードとの間の関係を含む。
【００１０】
[0009]  プロファイルを生成することは、複数のデータレコードのうち少なくともいくつかについて擬似フィールドを生成することと、対応する各データレコードの擬似フィールドに累積値を取り込むことと、を含む。第１のデータレコードの累積値は、第１のデータレコードと、その第１のデータレコードに関係付けられた少なくとも１つの他のデータレコードとに基づいて決定される。第１のデータレコードと少なくとも１つの他のデータレコードとは第１のデータフィールドの値を介して関係付けられる。場合によっては、方法は、第１のデータレコードの第２のデータフィールドの値と他の関係する各データレコードの第２のデータフィールドの値との合計に基づいて累積値を決定することを含む。
【００１１】
[0010]  方法は、サブセッティング規則を受信することを含む。
【００１２】
[0011]  方法は、選択されたデータレコードのサブセットをデータ処理アプリケーションに提供することを備える。場合によっては、方法は、データ処理アプリケーションの結果に基づいて第２のサブセッティング規則を策定することと、第２のサブセッティング規則に基づいてデータレコードの第２のサブセットを選択することと、を含む。
【００１３】
[0012]  一般的な態様においては、コンピュータ読み取り可能な媒体に記憶されたソフトウェアは、コンピューティングシステムに、各々が複数のデータフィールドを有する複数のデータレコードにアクセスさせる命令を含む。ソフトウェアは、コンピューティングシステムに、複数のデータレコードのうち少なくともいくつかについて、データフィールドのうち１つ以上の値を分析させる命令と、その分析に基づいて複数のデータレコードのプロファイルを生成させる命令と、を含む。また、ソフトウェアは、コンピューティングシステムに、プロファイルに基づいて少なくとも１つのサブセッティング規則を策定させる命令と、その少なくとも１つのサブセッティング規則に基づいて複数のデータレコードからデータレコードのサブセットを選択させる命令と、も含む。
【００１４】
[0013]  一般的な態様においては、コンピューティングシステムは、各々が複数のデータフィールドを有する複数のデータレコードにアクセスするよう構成された少なくとも１つのプロセッサを備える。プロセッサは、複数のデータレコードのうち少なくともいくつかについてデータフィールドのうち１つ以上の値を分析し、その分析に基づいて複数のデータレコードのプロファイルを生成するよう構成されている。また、プロセッサは、プロファイルに基づいて少なくとも１つのサブセッティング規則を策定し、その少なくとも１つのサブセッティング規則に基づいて複数のデータレコードからデータレコードのサブセットを選択するよう構成されている。
【００１５】
[0014]  一般的な態様においては、コンピューティングシステムは、各々が複数のデータフィールドを有する複数のデータレコードにアクセスする手段を備える。コンピューティングシステムは、複数のデータレコードのうち少なくともいくつかについてデータフィールドのうち１つ以上の値を分析する手段と、その分析に基づいて複数のデータレコードのプロファイルを生成する手段と、を備える。また、コンピューティングシステムは、プロファイルに基づいて少なくとも１つのサブセッティング規則を策定する手段と、その少なくとも１つのサブセッティング規則に基づいて複数のデータレコードからデータレコードのサブセットを選択する手段と、を備える。
【００１６】
[0015]  一般的な態様においては、コンピュータにより実施される方法は、各々が複数のデータフィールドを有する複数のデータレコードにアクセスすることと、その複数のデータレコードからデータレコードの第１のサブセットを選択することと、を含む。方法は、データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供することと、規則のうち少なくとも１つがデータ処理アプリケーションによって実行された回数を示すレポートを受信することと、を含む。方法は、そのレポートに基づいて複数のデータレコードからデータレコードの第２のサブセットを選択することを含む。
【００１７】
[0016]  実施形態は以下のうち１つ以上を備えてもよい。
【００１８】
[0017]  方法は、データレコードの第２のサブセットをデータ処理アプリケーションに提供することを含む。
【００１９】
[0018]  方法は、レポートに基づいて、データ処理アプリケーションによって実行されなかった１つ以上の未実行規則を識別することを含む。データレコードの第２のサブセットを選択することは、その識別に基づいてデータレコードを選択することを含む。
【００２０】
[0019]  方法は、レポートに基づいて、各々が対応する最大閾値回数よりも少なく実行された１つ以上の規則を識別することを含む。データレコードの第２のサブセットを選択することは、その識別に基づいてデータレコードを選択することを含む。
【００２１】
[0020]  方法は、レポートに基づいて、各々が対応する最小閾値回数よりも多く実行された１つ以上の規則を識別することを含む。データレコードの第２のサブセットを選択することは、その識別に基づいてデータレコードを選択することを含む。
【００２２】
[0021]  データレコードの第１のサブセットを選択することは、第１のサブセッティング規則に基づいてデータレコードの第１のサブセットを選択することを含む。場合によっては、第１のサブセッティング規則に基づいてデータレコードの第１のサブセットを選択することは、サブセットの少なくとも１つのデータレコードがターゲットデータフィールドの一連の異なる値の各々を有するようにデータレコードの第１のサブセットを選択することを含む。場合によっては、第１のサブセッティング規則に基づいてデータレコードの第１のサブセットを選択することは、第１のデータレコードを選択することと、第１のサブセッティング規則において識別された関係を介してその第１のデータレコードと関係付けられた１つ以上の第２のデータレコードを選択することと、を含む。場合によっては、データレコードの第２のサブセットを選択することは、第１のサブセッティング規則とは異なる第２のサブセッティング規則に基づいてデータレコードの第２のサブセットを選択することを含む。
【００２３】
[0022]  レポートは、データ処理アプリケーションの１つ以上の規則の実行をトリガする変数の値を示すデータを含む。方法は、変数に基づいて１つ以上のデータフィールドをターゲットデータフィールドとして識別することを備え、その変数は識別された１つ以上のデータフィールドの値に依存する。
【００２４】
[0023]  データレコードの第２のサブセットはデータレコードの第１のサブセットを含む。
【００２５】
[0024]  方法は、規則がデータ処理アプリケーションによって少なくとも閾値回数実行されたことをレポートが示すまで、データレコードのサブセットを反復して選択すること及びデータレコードのサブセットをデータ処理アプリケーションに提供することを含む。
【００２６】
[0025]  一般的な態様においては、コンピュータ読み取り可能な媒体に記憶されたソフトウェアは、コンピューティングシステムに、各々が複数のデータフィールドを有する複数のデータレコードにアクセスさせる命令と、その複数のデータレコードからデータレコードの第１のサブセットを選択させる命令と、を含む。ソフトウェアは、コンピューティングシステムに、データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供させる命令と、規則のうち少なくとも１つがデータ処理アプリケーションによって実行された回数を示すレポートを受信させる命令と、を含む。ソフトウェアは、コンピューティングシステムに、レポートに基づいて複数のデータレコードからデータレコードの第２のサブセットを選択させる命令を含む。
【００２７】
[0026]  一般的な態様においては、コンピューティングシステムは、各々が複数のデータフィールドを有する複数のデータレコードにアクセスし、その複数のデータレコードからデータレコードの第１のサブセットを選択するよう構成された少なくとも１つのプロセッサを備える。プロセッサは、データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供し、規則のうち少なくとも１つがデータ処理アプリケーションによって実行された回数を示すレポートを受信するよう構成されている。プロセッサは、レポートに基づいて、複数のデータレコードからデータレコードの第２のサブセットを選択するよう構成されている。
【００２８】
[0027]  一般的な態様においては、コンピューティングシステムは、各々が複数のデータフィールドを有する複数のデータレコードにアクセスする手段と、その複数のデータレコードからデータレコードの第１のサブセットを選択する手段と、を備える。コンピューティングシステムは、データレコードの第１のサブセットを複数の規則を実装するデータ処理アプリケーションに提供する手段と、規則のうち少なくとも１つがデータ処理アプリケーションによって実行された回数を示すレポートを受信する手段と、を備える。コンピューティングシステムは、レポートに基づいて、複数のデータレコードからデータレコードの第２のサブセットを選択する手段を備える。
【００２９】
[0028]  本明細書に記載の技術は、以下の利点のうち１つ以上を有していてもよい。例えば、生産データレコードの完全なセットは巨大であり得、そのようなレコードの大きなセットを用いてデータ処理アプリケーションをテストすることは、遅く、非実用的である可能性がある。データ処理アプリケーションの動作に関連のある、データレコードの完全なセットの特徴を表すよう選択されたデータレコードのサブセットのみを用いることで、綿密で効率的なテストを実現することができる。データレコードの完全なセットの自動プロファイリング分析及びデータ処理アプリケーションからの実行のフィードバックによって、アプリケーションの効率的なテストのための最小数のデータレコードの正確な選択を実現することができる。
【００３０】
[0029]  他の特徴及び利点は、以下の説明及び特許請求の範囲から明らかである。
【図面の簡単な説明】
【００３１】
【図１】[0030]  データ処理システムのブロック図である。
【図２Ａ】[0031]  顧客取引レコードのセット例のごく一部である。
【図２Ｂ】[0032]  人口統計レコードのセット例のごく一部である。
【図３】[0033]  ターゲットデータフィールドに基づいてデータレコードのサブセットを選択するプロセス例のフローチャートである。
【図４】[0034]  データレコードを選択するプロセス例のフローチャートである。
【図５】[0035]  データレコードを選択する別のプロセス例のフローチャートである。
【発明を実施するための形態】
【００３２】
[0036]  データ処理アプリケーションの開発にあたり、開発者は、生産環境の外部で作業するかもしれず、生産実績データへのアクセスを有さないかもしれない。データ処理アプリケーションが生産において実データで適切に実行することを保証するために、アプリケーションの開発及びテストの際には現実的なデータが用いられ得る。アプリケーションはしばしば、１つ以上の変数の値に依存して（例えばトリガされて）実行する規則を実装する。これらの変数は、入力データに対応する入力変数であってもよいし、１つ以上の入力変数に依存する派生変数などであってもよい。アプリケーションの効果的なテストのためには、あらゆる論理規則が少なくとも対応する最小回数実行されるように、及び／又はあらゆる論理規則が対応する最大回数を超えて実行されないように、（例えばアプリケーションにおける完全なコードカバレッジが達成されるように）アプリケーションのあらゆる論理規則を実行させるのに十分な入力データが提供され得る。
【００３３】
[0037]  アプリケーションに提供されるデータレコードのサブセットは、典型的にはデータレコードの１つ以上のより大きなセットから（例えば生産実績データのセットから）選択される。サブセットはサブセッティング規則に基づいて選択され得るもので、これはユーザによって指定されても、データレコードのプロファイリング分析に基づいて策定されても、アプリケーションの実行からのフィードバックに基づいて策定されるなどしてもよい。例えば、テスト中のアプリケーションの規則のいくつか又はすべてを実行させ得るデータを含むデータレコードがサブセットに選択されてもよい。
【００３４】
[0038]  選択されたデータレコードはアプリケーションに提供され、アプリケーションはその選択データレコードを入力データとして用いて実行する。アプリケーションは１つ以上の規則を実装する。すなわち、アプリケーションにより実装される各規則は、その規則に対応する条件式が満足されるときにそのアプリケーションにより実行され得るもので、対応する条件式が満足されなければそのアプリケーションによっては実行されない。規則は、少なくとも１つの条件式と１つの実行式とを含む仕様により規定される。条件式が満足される（例えば、条件式の結果が真と評価される）と、実行式が評価される。条件式は１つ以上の変数の値に依存し（例えばトリガされ）てもよく、これは入力データに対応する入力変数であってもよいし、１つ以上の入力変数に依存する派生変数などであってもよい。いくつかの例においては、アプリケーションは、トリガされた規則のすべてを実行する。いくつかの例においては、アプリケーションは、トリガされた規則のすべてよりは少なく、例えば規則のうちいくつか又は規則のうち１つのみ（例えばトリガされた最初の規則）を実行する。規則については、少なくとも、２００７年４月１０日に提出された米国特許第８，０６９，１２９号の第５欄６１行乃至第６欄１１行により詳細に説明されており、同文献の内容は、参照によりその全体が本明細書に組み込まれる。
【００３５】
[0039]  実行の後には、アプリケーションの実行を示すデータ（例えば、アプリケーションにおいて実行した又は実行しなかった規則、アプリケーションにおいて各論理規則が実行された回数、又は他の実行データ）を含むレポートが提供され得る。このレポートに基づいて、例えば実行されていない規則を実行させたであろう入力データ、特定の論理規則を指定の回数実行させたであろう入力データ、又は別の所望の実行結果を生じさせたであろう入力データといった、追加的な入力データが識別され得る。修正措置が実行されてもよい。例えば、追加的なサブセッティング規則が策定されてもよいし、その追加的なサブセッティング規則に従ってデータレコードの更新されたサブセットが選択されてもよい。データレコードの更新されたサブセットは、以前に実行されていない規則のいくつか又はすべてを実行させるのに十分なデータレコード、規則のいくつか又はすべてを指定の回数実行させるのに十分なデータレコード、又は別の所望の実行結果を引き起こすのに十分なデータレコードを含み得る。
【００３６】
[0040]  図１を参照すると、データ処理システム１００は、サーバ１０２ａをホストとするレコード選択サブシステム１０２を備える。レコード選択サブシステム１０２は、データレコード（例えば生産データレコード）の１つ以上のセットからデータレコードを選択する。選択されたデータレコードは、データ処理アプリケーション１０６、例えばテスト中又は開発中のアプリケーションに提供される。いくつかの例においては、アプリケーション１０６は、例えば同じサーバ１０２ａをホストとするレコード選択サブシステム１０２に対してローカルである。いくつかの例においては、アプリケーション１０６は、例えばローカルエリアデータネットワーク又は広域データネットワーク１１８（例えばインターネット）のような１つ以上のネットワークを介してアクセスされるリモートサーバ１０６ａをホストとするレコード選択サブシステム１０２に対してリモートであってもよい。
【００３７】
[0041]  データレコードは、１つ以上のサーバ１０４ａ，１０４ｂ，１０４ｃ，１０４ｄによりホストされるデータソース１０４及び対応する記憶装置１０８ａ，１０８ｂ，１０８ｃ，１０８ｄに記憶される。データソース１０４は、データベース１０９、表計算ファイル１１０、テキストファイル１１２、メインフレームにより使用されるネイティブフォーマットファイル１１４、又は別の種類のデータソースといった種々のデータソースのうち任意のものを含み得る。データソースのうち１つ以上は、例えば、同じコンピュータシステム（例えばサーバ１０２ａ）をホストとするレコード選択サブシステム１０２に対してローカルであってもよい。データソースのうち１つ以上は、例えば、ネットワーク１１８、複数のネットワーク等を介してアクセスされるリモートコンピュータ（例えばサーバ１０４ａ，１０４ｂ，１０４ｃ，１０４ｄ）をホストとするレコード選択サブシステム１０２に対してリモートであってもよい。
【００３８】
[0042]  データソース１０４に記憶されたデータレコードは、データレコードの１つ以上のセットを含む。例えば、データレコードは、顧客取引レコード、顧客人口統計レコード、金融取引レコード、電気通信データ、又は他の種類のデータレコードを含み得る。各データレコードは１つ以上のデータフィールドを有し、各データフィールドは各データレコードについて数値、英数字値、ヌル値などといった特定の値（又はその欠如）を有する。例えば、顧客取引レコードのセットにおいては、各レコードは、データの中でも特に顧客識別子、購入価格、及び取引種別を記憶するデータフィールドを有していてもよい。
【００３９】
[0043]  レコード選択サブシステム１０２のサブセッティングモジュール１２０は、１つ以上のサブセッティング規則に従ってデータソース１０４のうち１つ以上に記憶されたデータレコードの１つ以上のセットからデータレコードのサブセットを選択するなど、種々の動作を提供し得る。サブセッティング規則とは、データレコードの１つ以上のセットからデータレコードのサブセットを選択するコンピュータによって実行可能な規則である。サブセッティング規則は、プロファイリングモジュール１２６によって生成されたデータレコードの１つ以上のセットのプロファイルの分析に基づいて、サブセッティングモジュール１２０により策定されてもよい。また、サブセッティング規則は、カバレッジ分析モジュール１２８により提供されるアプリケーションの実行の結果の分析に基づいて（例えばレポートに基づいて）サブセッティングモジュール１２０により策定されてもよい。サブセッティング規則は、例えばデータレコード及び／又はテスト中のアプリケーション１０６についてのユーザの理解に基づき、ユーザインタフェース１２４を介してユーザにより規定されてもよい。また、サブセッティング規則は、ハードディスクなどの記憶媒体から読み出されてもよく、あるいはインターネットなどのネットワークを介して受信されてもよい。
【００４０】
[0044]  多種多様なサブセッティング規則が可能であり、単独でも組み合わせても適用され得る。サブセッティング規則は決定論的であってもよく（例えば、規則は、特定の基準に合致するすべてのレコードが選択されることを規定してもよい）、又は非決定論的であってもよい（例えば、規則は、特定の基準に合致するすべてのレコードのうち２つのレコードが無作為に選択されることを規定してもよい）。
【００４１】
[0045]  いくつかの例においては、サブセッティング規則は、１つ以上のターゲットデータフィールドを指定するとともに、そのターゲットデータフィールドのそれぞれ異なる値又は値分類がデータレコードの選択されたサブセットのデータレコードのうち少なくとも１つに含まれることを規定する。サブセッティングモジュール１２０は、データレコードの１つ以上のセットのターゲットデータフィールドのそれぞれ異なる値を識別し、サブセッティング規則を満足するようにデータレコードを選択する。例えば、５０の状態の各々について異なる値を有するｓｔａｔｅデータフィールドと、２つの異なる値を有するｇｅｎｄｅｒデータフィールドとが、ターゲットデータフィールドとして識別されてもよい。サブセットのデータレコードは、状態についての５０の値の各々と性別についての２つの値の各々とがサブセット内のデータレコードのうち少なくとも１つに含まれるように選択される。
【００４２】
[0046]  いくつかの例においては、サブセッティング規則は、データレコードの同じセット内又はデータレコードの異なるセット間におけるデータレコード間の関係の種類を規定する。サブセッティングモジュール１２０はデータレコードを、データレコードとサブセットのために選択された他のデータレコードとの関係に基づいて選択する。例えば、顧客識別子（ｃｕｓｔ＿ｉｄ）データフィールドについて共通の値を共有するデータレコードがサブセットのために選択されてもよい。フィルタリングなどの、サブセッティング規則の他の例も可能である。いくつかの例においては、サブセッティング規則の組み合わせを用いてサブセットのためのデータレコードを選択することができる。
【００４３】
[0047]  いくつかの例においては、サブセッティング規則は、データ分析者又はアプリケーション開発者などのユーザにより提供される。例えば、ユーザは、ターゲットフィールドを識別し、データレコード間の関係を規定し、あるいはサブセッティング規則を示してもよい。
【００４４】
[0048]  いくつかの例においては、サブセッティング規則は、サブセッティングモジュール１２０によって、プロファイリングモジュール１２６により自動的に生成されたデータレコードのプロファイルの分析に基づいて策定される。プロファイリングモジュール１２６は、データレコードの１つ以上のセットにアクセスして、単一のデータセットの個々のデータレコードを分析すること、及び／又はデータレコードのセット内の及び／又はデータレコードの異なるセットにまたがるデータフィールド間の関係を分析することによりデータレコードのプロファイルを生成してもよい。
【００４５】
[0049]  データレコードのセットのプロファイルとは、例えばフィールド単位での、そのデータレコードのセットのデータの概要である。プロファイルは、データレコードのセットのデータを特徴付ける情報、例えばデータレコードのデータフィールドのうち１つ以上の基数、データフィールドのうち１つ以上の値の分類、個々のデータレコードにおけるデータフィールド間の関係、データレコード間の関係、又はデータレコードのセットのデータを特徴付ける他の情報などを含み得る。データレコードのセットのプロファイルは、擬似フィールドを特徴付ける情報も含んでいてもよい。擬似フィールドとは、プロファイリングモジュール１２６により生成され、関係するデータレコードの１つ以上のデータフィールドの値の操作により決定される値が取り込まれたデータフィールドである。
【００４６】
[0050]  生成されたデータレコードのプロファイルに基づいて、サブセッティングモジュール１２０が、アプリケーション１０６の良好なコードカバレッジを達成するデータレコードのサブセットの選択に関連し得るデータレコードの特徴を識別してもよい。例えば、データレコードのプロファイルに基づいて、サブセッティングモジュール１２０が、アプリケーションの入力変数及び派生変数に関係しそうな１つ以上のデータフィールド又はデータフィールドの組み合わせを識別してもよい。場合によっては、サブセッティング規則は、ユーザから又はコンピュータ記憶媒体から受信された入力に基づいて、及び／又はアプリケーション１０６の実行の結果に基づいて（例えばカバレッジ分析モジュール１２８から受信された入力に基づいて）策定されてもよい。
【００４７】
[0051]  サブセッティングモジュール１２０は、１種類以上の分析のための動作を実行してサブセッティング規則を規定してもよい。サブセッティングモジュール１２０は、個々のデータレコード内のデータフィールドに基づいて、例えばどのデータフィールドがアプリケーション１０６の変数に関係しそうであるかを決定することにより、１つ以上のサブセッティング規則を規定してもよい。いくつかの例においては、サブセッティングモジュール１２０は、プロファイルに示されるターゲットデータフィールドの基数（すなわち、セットの全データレコードにまたがるデータフィールドの異なる値又は値の分類の数）に基づいてターゲットデータフィールドを識別する。例えば、（２という基数を有する）ｇｅｎｄｅｒデータフィールドはターゲットデータフィールドとして識別され得るが、その一方で（およそデータレコードの総数の基数を有する）ｐｈｏｎｅ＿ｎｕｍｂｅｒデータフィールドはターゲットデータフィールドとしては識別されないであろう。いくつかの例においては、サブセッティングモジュール１２０は、１つ以上のデータフィールドにおけるデータの操作の結果生じたデータが取り込まれた擬似フィールドをターゲットデータフィールドとして識別する。例えば、ｉｎｃｏｍｅデータフィールドのデータはカテゴリ（例えば高（high）、中（medium）、又は低（low））に分類されてもよく、そのｉｎｃｏｍｅデータフィールドの分類が取り込まれた擬似フィールド（ｉｎｃ＿ｒａｎｇｅ）がターゲットデータフィールドとして識別されてもよい。いくつかの例においては、サブセッティングモジュール１２０は、ターゲットデータフィールドと、プロファイルに示される同じレコード内の１つ以上の他のデータフィールドとの間の関係に基づいて、ターゲットデータフィールドを識別する。例えば、プロファイルは、データフィールドｓｔａｔｅとＺＩＰとが非依存でないことを示し得る。この依存性に基づいて、サブセッティングモジュール１２０は、これらのデータフィールドのうち一方のみを可能なターゲットデータフィールドと考えてもよい。サブセッティングモジュール１２０は、プロファイルに示されるデータレコードのセット内の及び／又はデータレコードの異なるセットにまたがった異なるデータレコード間の関係の分析に基づいて、１つ以上のサブセッティング規則を規定してもよい。例えば、プロファイルは、データレコードがデータフィールドの共通の値（例えばｃｕｓｔ＿ｉｄデータフィールドの値）を介してリンクされ得ることを示してもよい。データレコードの他の分析も可能である。
【００４８】
[0052]  データレコードのサブセットが一旦サブセッティングモジュール１２０によって選択されると、データレコードの選択されたサブセットを示すデータがテスト中のアプリケーション１０６に提供される。例えば、データレコードの選択されたサブセット及びデータレコードのアドレスの識別子がアプリケーション１０６に提供されてもよい。データレコードの選択されたサブセットを含むファイルもアプリケーション１０６に提供されてもよい。
【００４９】
[0053]  データ処理アプリケーション１０６は、データレコードのサブセットを入力データとして用いて実行される。実行の後には、レコード選択サブシステム１０２のカバレッジ分析モジュール１２８にレポートが提供される。レポートはユーザ１２２にも提供されてもよい。レポートは、アプリケーションの実行を示すデータ（例えば、実行した又はしなかったアプリケーションの規則、アプリケーションの各論理規則が実行された回数、又は他の実行データ）を含む。いくつかの例においては、レポートは実行した又はしなかった規則を直接識別する。レポートは、各論理規則が実行された回数、実行中のアプリケーションの各変数の値、又は他の情報といった、アプリケーション１０６の実行についての追加的な情報も含んでいてもよい。
【００５０】
[0054]  実行しなかったアプリケーションの各論理規則については、カバレッジ分析モジュール１２８が、その論理規則に関係するアプリケーション１０６の１つ以上の変数を識別する。カバレッジ分析モジュール１２８は、レポートに含まれたデータ（例えば、アプリケーション１０６の中のデータの流れを示すデータ）や、アプリケーションについてのプリロードされた情報などに基づいて、変数を識別してもよい。場合によっては、カバレッジ分析モジュール１２８は、論理規則を実行させたであろう各変数の値又は値の範囲も識別する。入力データフィールドと、変数に対応する値又は値の範囲とは、識別され、サブセッティングモジュール１２０による以降のデータレコードの更新されたサブセットの選択において追加的なサブセッティング規則を規定するために用いられる。
【００５１】
[0055]  例えば、識別された変数がデータレコードのデータフィールドのうち１つに直接対応するアプリケーションの入力変数である場合には、カバレッジ分析モジュール１２８が、対応するデータフィールドと、そのデータフィールドの値又は値の範囲とを識別する。例えば、変数ｘが１０よりも大きく、且つ変数ｘが顧客取引の金額についてのデータを含む入力データフィールドｔｘｎ＿ａｍｔに対応するときにアプリケーション１０６の論理規則が実行するのであれば、カバレッジ分析モジュールは、入力データが、ｔｘｎ＿ａｍｔ＞１０である少なくとも１つのデータレコードを含むべきであると決定する。この決定（例えばｔｘｎ＿ａｍｔ＞１０）はサブセッティングモジュール１２０に提供され、サブセッティングモジュールが、アプリケーション１０６に提供されるデータレコードの以降のサブセットがｘ＞１０論理規則を実行させるのに十分なデータを含むように追加的なサブセッティング規則を規定する。
【００５２】
[0056]  例えば、識別された変数が入力変数でない（すなわち、識別された変数はデータレコードのデータフィールドのうちの１つに直接対応しない）場合には、カバレッジ分析モジュール１２８のデータリネージサブモジュール１３０が、アプリケーション１０６の論理を通じた変数の導出を追跡し、その識別された変数がどの入力変数から導出されたのかを識別する。すると、カバレッジ分析モジュール１２８が、対応するデータフィールド及びそのデータフィールドの値又は値の範囲を識別する。例えば、アプリケーション１０６の論理規則が、変数ｙの値が２であるときに実行するのであれば、データリネージサブモジュール１３０は、入力データフィールドｇｅｎｄｅｒ、ｉｎｃ＿ｒａｎｇｅ、及びｓｔａｔｅに対応する３つの入力変数の論理的組み合わせからアプリケーションの論理ステップを介してｙが導出されることを決定してもよい。変数ｙの論理的な導出に従うことによって、ｙ＝２とするデータフィールドｇｅｎｄｅｒ、ｉｎｃ＿ｒａｎｇｅ、及びｓｔａｔｅの値を決定することができる。例えば、論理規則ｙ＝２は、ｇｅｎｄｅｒ＝Ｆ、ｉｎｃ＿ｒａｎｇｅ＝ｈｉｇｈ、及びｓｔａｔｅ＝ＭＥ，ＮＨ，ＶＴ，ＭＡ，ＲＩ又はＣＴであるときに満足されてもよい。この決定はサブセッティングモジュール１２０に提供される。サブセッティングモジュールは、アプリケーション１０６に提供されるデータレコードの以降のサブセットがｙ＝２論理規則を実行させるのに十分なデータを含むように追加的なサブセッティング規則を規定する。別の一例としては、論理規則は、２つの変数の値が特定の関係を有するとき、例えばデータフィールドｆｉｒｓｔｎａｍｅ及びｌａｓｔｎａｍｅに対応する変数の値が等しいときなどに実行してもよい。
【００５３】
[0057]  いくつかの例においては、カバレッジ分析の結果はユーザ１２２にも提供される。ユーザは、追加的なサブセッティング規則をサブセッティングモジュール１２０に提供してもよく、あるいは以前に提供されたサブセッティング規則を変更してもよい。また、ユーザは、追加的な入力をプロファイリングモジュール１２６に提供して、以前にプロファイリングモジュールに提供された入力を変更してもよい。
【００５４】
[0058]  いくつかの例においては、データレコードの完全なセットであっても、アプリケーション１０６の論理規則を満足するのに十分なデータを含まない。例えば、アプリケーション１０６は、データフィールドｉｎｃｏｍｅの値が５００万ドルよりも大きいときにのみ実行する論理規則を含んでいてもよい。ｉｎｃｏｍｅ＞＄５，０００，０００のデータレコードがセット内に存在しないのであれば、データレコードのいずれのサブセットもその論理規則を実行させない。データセットにおけるそのような不備を識別するために、いくつかの例においては、アプリケーションが、データレコードのすべてを入力として用いて１回以上実行されてもよい。その結果生じるレポートは、入力のために選択されたデータレコードのサブセットに関係なく、カバーされ得ない規則を識別する。
【００５５】
[0059]  図２Ａ及び２Ｂに示すデータレコードのセット例２００，２５２を参照して、サブセッティングモジュール１２０及びプロファイリングモジュール１２６の動作を説明する。図２Ａは顧客取引レコードのセット２００のごく一部の例である。各顧客取引レコード２０２には、例えば顧客識別子（ｃｕｓｔ＿ｉｄ）２０４ａ、取引種別（ｔｘｎ＿ｔｙｐｅ）２０４ｂ、取引金額（ｔｘｎ＿ａｍｔ）２０４ｃ、取引期日（ｄａｔｅ）２０４ｄ、及び店舗識別子（ｓｔｏｒｅ＿ｉｄ）２０４ｅなど、いくつかのデータフィールド２０４がある。他のデータフィールドも含まれていてもよい。図２Ｂは人口統計レコードのセット２５０のごく一部の例である。各人口統計レコード２５２には、例えば顧客識別子（ｃｕｓｔ＿ｉｄ）２５４ａ、顧客住所（ａｄｄｒｅｓｓ，ｓｔａｔｅ，ＺＩＰ）２５４ｂ，２５４ｃ，２５４ｄ、顧客収入（ｉｎｃｏｍｅ）２５４ｅ、及び顧客性別（ｇｅｎｄｅｒ）２５４ｆなど、いくつかのデータフィールド２５４がある。他のデータフィールドも含まれていてもよい。プロファイリングモジュール１２６及びサブセッティングモジュール１２０の動作はこれらのデータセット例に限定されるものではなく、他の種類のデータセットにも同様に当てはまる。
【００５６】
[0060]  サブセッティングモジュール１２０は、１種類以上のサブセッティング規則に従ってデータレコードのサブセットを選択してもよい。いくつかのサブセッティング規則例は以下のようなものである。：
【００５７】
[0061]  フィルタリング
いくつかの例においては、サブセッティングモジュール１２０は、フィルタに従ってデータレコードのサブセットを選択する。例えば、フィルタは、所与のデータフィールドについて特定の値を有するすべてのデータレコードが選択されることを規定してもよい。例えば、フィルタは、ｓｔａｔｅ（データフィールド２５４ｃ）＝“ＭＡ”を有するセット２５０のすべての人口統計レコードがサブセットのために選択されることを規定してもよい。フィルタは、ユーザ、プロファイリングモジュール１２６、及び／又はカバレッジ分析モジュール１２８によって規定されてもよい。
【００５８】
[0062]  いくつかの例においては、サブセッティングモジュール１２０は、データレコードが所与のデータフィールドの値に基づいて除外される規則ベースのフィルタに従ってデータレコードのサブセットを選択する。例えば、フィルタは、ｓｔｏｒｅ＿ｉｄ（データフィールド２０４ｅ）＝“ｏｎｌｉｎｅ”のデータレコードがサブセットから除外されることを規定してもよい。規則ベースのフィルタは、ユーザ１２２、プロファイリングモジュール１２６、及び／又はカバレッジ分析モジュール１２８によって規定されてもよい。
【００５９】
[0063]  ターゲットデータフィールド
いくつかの例においては、サブセッティングモジュール１２０は、１つ以上のターゲットデータフィールドに基づいてデータレコードのサブセットを選択する。ターゲットデータフィールドとは、例えばアプリケーションの変数と関係のありそうなデータフィールドである。例えば、顧客取引レコードに作用するある特定のアプリケーションが店舗位置によって取引種別（すなわち購入又は返品）を追跡する場合には、アプリケーションの開発者は、データフィールドｔｘｎ＿ｔｙｐｅ（データフィールド２０４ｂ）及びｓｔｏｒｅ＿ｉｄ（データフィールド２０４ｅ）をターゲットデータフィールドとして識別してもよい。場合によっては、サブセッティングモジュール１２０は、データレコードのプロファイルに示されるデータフィールドの基数などのデータフィールドの特性に基づいて、ターゲットデータフィールドを識別してもよい。場合によっては、カバレッジ分析モジュール１２８が、アプリケーションの変数とデータフィールドとの間の関係に基づいてターゲットデータフィールドを識別してもよい。基数の低いデータフィールド（例えば閾値基数よりも小さい基数を有するデータフィールド）は、プロファイリングモジュール１２６がデータフィールドの内容について及びその内容がアプリケーションにどのように関係し得るのかについて他の情報をほとんど又は全く有さない場合であっても、ターゲットデータフィールドとして識別され得る。閾値基数はユーザにより規定されてもよいし、あるいはプロファイリングモジュールによって自動的に決定されてもよい。例えば、人口統計レコードのセット３５０のプロファイルに基づくと、データフィールドｓｔａｔｅは、もしも閾値基数が少なくとも５０に設定されるならば、ターゲットデータフィールドとして識別され得る。
【００６０】
[0064]  図３は、ターゲットデータフィールドに基づいてデータレコードのサブセットを選択するプロセス例のフローチャートである。１つ以上のターゲットデータフィールドが、例えばデータレコードのプロファイルに含まれた情報、ユーザからの情報、カバレッジ分析モジュール１２８からの情報等に基づいて、識別される（３００）。レコードのセットにおいては、各ターゲットデータフィールドについて一連の異なる値が識別される（３０２）。各ターゲットデータフィールドのそれぞれ異なる値がサブセット内の少なくとも１つのデータレコードに含まれるように、サブセットのためにデータレコードが選択される（３０４）。一例においては、ｓｔａｔｅデータフィールド及びｇｅｎｄｅｒデータフィールドが、人口統計レコードのセット２５０のためのターゲットデータフィールドとして識別される。データレコードのセット２５０は分析され、ｓｔａｔｅについての５０の異なる値と、ｇｅｎｄｅｒについての２つの異なる値とが識別される。データレコードは、ｓｔａｔｅについての５０の値の各々とｇｅｎｄｅｒについての２つの値の各々とがサブセット内の少なくとも１つのデータレコードに含まれるように選択される。いくつかの例においては、サブセッティング規則は、各ターゲットデータフィールドのそれぞれ異なる値がサブセットに含まれる回数を規定してもよい（例えば１回、１０回、５０回など）。
【００６１】
[0065]  ターゲットデータフィールドに基づくサブセッティングは、各データフィールドの各値のあらゆる組み合わせがサブセット内に表されることを必ずしも意味するものではない。例えば、ｓｔａｔｅについての５０の値の各々とｇｅｎｄｅｒについての２つの値の各々とが含まれているデータレコードのサブセットは、５０のデータレコードしか含まないかもしれない。いくつかの例においては、ターゲットデータフィールドとは、（例えば後述するようにプロファイリングモジュールによって構成された）擬似フィールドのような構成されたフィールドであり、同じレコード内の又は異なるレコードにまたがる１つ以上のデータフィールドに依存する。
【００６２】
[0066]  データ分類
いくつかの例においては、データレコードのサブセットは、データレコードの１つ以上のターゲットデータフィールドにおけるデータの分類に基づいて選択される。例えば、サブセッティング規則は、ターゲットデータフィールドを識別するとともに、ターゲットデータフィールドの値を分類可能な異なる値の範囲（「ビン」）を特定してもよい。サブセットのためのデータレコードは、ターゲットデータフィールドの正確な値よりもむしろターゲットデータフィールドのビンに基づいて選択される。一例においては、人口統計レコードのセット２５０のデータフィールドｉｎｃｏｍｅがターゲットデータフィールドとして識別される。３つのビン、すなわち「低」（ｉｎｃｏｍｅ＜＄５０，０００）、「中」（ｉｎｃｏｍｅが＄５０，０００と＄１５０，０００との間）、及び「高」（ｉｎｃｏｍｅ＞＄１５０，０００）が指定される。サブセッティングモジュール１２０がサブセットに含めることについて検討する各データレコードのｉｎｃｏｍｅデータフィールドの値は低、中、又は高として分類され、データレコードは、ｉｎｃｏｍｅの３つのビンの各々がサブセット内の少なくとも１つのデータレコードに含まれるように選択される。いくつかの例においては、データフィールドの値は（例えばプロファイリングモジュールによって）分類され、各データレコードの擬似フィールドに対応する分類された値が取り込まれる（例えばデータフィールドｉｎｃ＿ｒａｎｇｅ２５６）。これらの例においては、擬似フィールドがターゲットデータフィールドとして扱われ、データレコードは、擬似フィールドのそれぞれ異なる値がサブセット内の少なくとも１つのデータレコードに含まれるように選択される。分類されるデータフィールド、ビンの数、及び／又は各ビンの値の範囲は、ユーザ１２２によって規定されてもよいし、あるいはプロファイリングモジュール１２６及び／又はカバレッジ分析モジュール１２８によって自動的に識別されてもよい。
【００６３】
[0067]  組み合わせ論
いくつかの例においては、データレコードのサブセットは、２つ以上の他のサブセッティング規則の組み合わせを規定し得る組み合わせ論規則に従って選択される。例えば、組み合わせ論規則は、２つのターゲットデータフィールドを識別するとともに、その２つのターゲットデータフィールドの各々のすべての値のあらゆる可能な組み合わせがサブセット内の少なくとも１つのデータレコードに含まれることを規定してもよい。組み合わせ論規則の一例は、データフィールドｉｎｃ＿ｒａｎｇｅ及びｇｅｎｄｅｒをターゲットデータフィールドとして識別し、これらの２つのデータフィールドのすべての可能な組み合わせがサブセットに含まれることを規定してもよい。この組み合わせ論規則を満足するサブセットは、６つのデータレコード（すなわち、低＋女性、低＋男性、中＋女性、中＋男性、高＋女性、高＋男性）を含むであろう。一方、組み合わせ論規則でなければ、ｉｎｃ＿ｒａｎｇｅ及びｇｅｎｄｅｒをターゲットデータフィールドとして規定することは、わずか３つのレコード（例えば低＋女性、中＋男性、高＋女性）で満足され得る。いくつかの例においては、サブセッティング規則は、２つ以上のターゲットデータフィールドの組み合わせ論的な組み合わせと、その組み合わせ論的な組み合わせとは別の１つ以上の他のターゲットデータフィールドとを規定してもよい。例えば、サブセッティング規則は、ｉｎｃ＿ｒａｎｇｅ及びｇｅｎｄｅｒを組み合わせ論的な組み合わせに取り込まれるターゲットデータフィールドとして規定してもよく、また、ｓｔａｔｅをその組み合わせとは別のターゲットデータフィールドとして規定してもよい。より複雑な組み合わせもまた可能である。ターゲットデータフィールド及び特定の種類の組み合わせは、ユーザ１２２により規定されてもよいし、あるいはプロファイリングモジュール１２６及び／又はカバレッジ分析モジュール１２８により自動的に識別されてもよい。
【００６４】
[0068]  データレコード間の関係
いくつかの例においては、データレコードのサブセットは、データレコードのセット内の又はデータレコードの異なるセットにまたがるデータレコード間の関係に従って選択される。サブセッティング規則は、１つのデータレコードがサブセットのために選択される場合、結合キーを介してそのデータレコードに関係付けられた他のデータレコードもそのサブセットのために選択されるように、結合キーを規定してもよい。例えば、サブセッティング規則は、データフィールドｃｕｓｔ＿ｉｄを、顧客取引レコードのセット２００内のデータレコード及びこのセット２００と人口統計レコードのセット２５０との間のデータレコードを関付ける結合キーとして識別してもよい。サブセットのために（例えば別のサブセッティング規則に従って）選択されるいずれかのセットからの各データレコードについては、その選択されるデータレコードと同じｃｕｓｔ＿ｉｄの値を共有する他のデータレコードもサブセットのために選択される。関係に従ってデータレコードを選択することにより、サブセットは、例えば特定の顧客のすべての取引のデータレコードならびにその顧客の人口統計レコードを含むであろう。この関係は、ユーザ１２２により規定されてもよいし、あるいはプロファイリングモジュール１２６及び／又はカバレッジ分析モジュール１２８により自動的に識別されてもよい。
【００６５】
[0069]  いくつかの例においては、データレコード間の関係は、データレコードの１つ以上の特性に基づいていてもよい。例えば、注目データレコードが識別されてもよい（例えば不正なクレジットカード取引に対応するデータレコード）。その場合、対応するサブセッティング規則が、サブセットが識別された注目データレコードと類似の特性を有する５０のデータレコードを含むべきであることを規定して、例えばそのデータレコードにおける他の不正の事例を識別することを支援してもよい。
【００６６】
[0070]  他のサブセッティング規則も規定され得る。例えば、データレコード数が規定されてもよい（例えば、サブセットは、ｔｘｎ＿ｔｙｐｅ＝“ｐｕｒｃｈａｓｅ”である少なくとも１００のレコードを含むこととする）。統計パラメータが規定されてもよい（例えば、サブセットは、ｔｘｎ＿ｔｙｐｅ＝“ｐｕｒｃｈａｓｅ”のすべてのデータレコードと、ｔｘｎ＿ｔｙｐｅ＝“ｒｅｔｕｒｎ”のデータレコードの１５％とを含むこととする）。数値パラメータが規定されてもよい（例えば、サブセットは、データレコードのセット内の１００万のデータレコードにつき少なくとも指定した数のデータレコードを含むこととする）。これらのサブセッティング規則は、ユーザ１２２によって規定されてもよく、及び／又は（プロファイリングモジュール１２６によって生成された）プロファイルの分析及び／又は（カバレッジ分析モジュール１２８により提供された）実行の分析の結果に基づいてサブセッティングモジュール１２０により策定されてもよい。
【００６７】
[0071]  いくつかの例においては、複数のサブセッティング規則がデータレコードのセットに適用されてもよい。場合によっては、これらの複数のサブセッティング規則を適用した結果、いくつかのデータレコードがサブセットのために複数回選択されてもよい。サブセット内に１回よりも多く現れるデータレコードを排除するために、選択されたデータレコードに重複排除規則を適用してもよい。
【００６８】
[0072]  いくつかの例においては、サブセッティング規則は、プロファイリングモジュール１２６によって生成されたプロファイルの分析に基づいて策定される。プロファイリングモジュール１２６は、外部のソースからの入力を用いずに、あるいはユーザ１２２及び／又はカバレッジ分析モジュール１２８からの入力を用いて、データレコードを分析してもよい。プロファイリング分析のいくつかの例は以下のようなものである。：
【００６９】
[0073]  基数
いくつかの例においては、プロファイリングモジュール１２６は、データフィールドの基数（すなわち、セットのデータレコードのすべてにまたがるデータフィールドのための異なる値の数）を識別する。例えば、顧客取引レコードのセット３００をプロファイルするときには、プロファイリングモジュールは、ｔｘｎ＿ｔｙｐｅを基数の低い（セット３００のすべてのデータレコードに異なる値が２つしかない）データフィールドとして識別してもよい。人口統計レコードのセット３５０をプロファイルするときには、閾値基数が少なくとも５０に設定されるならば、データフィールドｓｔａｔｅが基数５０のデータフィールドとして識別され得る。データフィールドのいくつか又はすべての基数は、サブセッティング規則を規定するためにサブセッティングモジュール１２０によって用いられてもよい。
【００７０】
[0074]  分類
いくつかの例においては、プロファイリングモジュール１２６は、データフィールド内のデータを分類する。例えば、プロファイリングモジュールは、基数が高いデータフィールドの値を分類可能な値の異なる範囲（「ビン」）を識別してもよい。分類されるとき、データフィールドは、より低い基数を有し、したがって上述のようにターゲットデータフィールドとして識別されてもよい。場合によっては、プロファイリングモジュールは、各レコードを分析しながらそのレコードのデータフィールドの値を分類するが、その分類を記憶はしない。場合によっては、プロファイリングモジュールは各レコードのための擬似フィールドを生成し、そこにデータフィールドの値に対応するビンが記憶される。一例として、人口統計レコードのセット３５０のデータフィールドｉｎｃｏｍｅは高基数である。プロファイリングモジュールは、各レコードのｉｎｃｏｍｅ値を３つのビン（高、中、又は低）のうち１つに分類し、擬似フィールドｉｎｃ＿ｒａｎｇｅ３５６を生成して類別されたデータを記憶する。擬似フィールド３５６は基数３を有し、したがって、高基数のデータフィールドｉｎｃｏｍｅがターゲットデータフィールドとして識別され得なかった場合には、サブセッティングモジュール１２０によってターゲットデータフィールドとして識別されてもよい。いくつかの例においては、プロファイリングモジュールは、高基数のデータフィールドが自動的に分類され得ることを認識する。いくつかの例においては、ユーザが分類のためのデータフィールドを識別するとともに、ビンの数及び各ビンに該当する値の範囲を規定してもよい。いくつかの例においては、ユーザが、特定のデータフィールドを識別することなく、分類されるデータフィールドの特性を規定する（例えばユーザは、数値を有し１０と１００との間の基数を有する任意のデータフィールドが四分位数に分けられることを規定してもよい）。
【００７１】
[0075]  データフィールド間の関係
いくつかの例においては、プロファイリングモジュール１２６は、単一のデータレコード内のデータフィールド間の関係を決定する。例えば、あるデータレコード内の第１のデータフィールドが各データレコード内の第２のデータフィールドに依存する場合には、その第１のデータフィールドと第２のデータフィールドとのうち一方のみがターゲットデータフィールドと見なされる必要がある。例えば、データフィールドｓｔａｔｅとデータフィールドＺＩＰとは関係付けられている（すなわち、ＺＩＰの値はｓｔａｔｅの値に依存する）。プロファイルにおけるそのような関係の表示に基づいて、サブセッティングモジュール１２０は、２つの関係付けられたデータフィールドのうち一方のみを潜在的なターゲットデータフィールドと見なしてもよい。データフィールド間のより複雑な関係も識別可能であり、ターゲットデータフィールドの識別においてサブセッティングモジュール１２０により用いられ得る。プロファイリングモジュールは、ユーザ入力、例えば関係のありそうなデータフィールドのユーザ指定によってガイドされてもよい。
【００７２】
[0076]  データレコード間の関係
いくつかの例においては、プロファイリングモジュール１２６は、データレコードのセット内の又はデータレコードの異なるセットにまたがる異なるデータレコード間の関係を決定する。例えば、プロファイリングモジュールは、セット内のいくつかのデータレコードがデータフィールドの共通の値を介してリンクされていることを認識してもよい。例えば、顧客取引レコードのセット３００は、同じ顧客による取引に対応する複数のデータレコードを含んでいてもよい。これらのデータレコードは、ｃｕｓｔ＿ｉｄの共通の値（すなわち結合キー）を介してリンクされる。プロファイリングモジュールは、第１のセット内の第１のデータレコードがデータフィールドの共通の値を介して第２のセット内の第２のデータレコードと関係していることも認識し得る。例えば、顧客取引レコードのセット３００のデータレコードは、データフィールドｃｕｓｔ＿ｉｄを介して、人口統計レコードのセット３５０のデータレコードとリンクされていてもよい（すなわち、特定の顧客の取引レコードは、その顧客の人口統計レコードとリンクされ得る）。プロファイリングモジュールは、ユーザ入力、例えばデータレコードとリンクしそうなデータフィールドのユーザ指定によってガイドされてもよい。また、プロファイリングモジュールは、データレコードのセットと関連付けられたリレーショナルデータベースのスキーマの分析によって結合キー又は他の関係を識別するようガイドされてもよい。いくつかの例においては、プロファイリングモジュール１２６は、データレコード間の関係を決定し、その関係をユーザに対して提示する。するとユーザは、関係についての情報を用いてサブセッティングモジュール１２０にサブセッティング規則を規定する。
【００７３】
[0077]  プロファイルにおけるデータレコード間のそのような関係の表示に基づいて、サブセッティングモジュール１２０は、結合キーをサブセッティング規則の一部として規定してもよい。そのようなサブセッティング規則の下では、サブセットのために１つのデータレコードが選択される場合、結合キーを介してそのデータレコードに関係する他のデータレコードもサブセットのために選択される（例えば所与のｃｕｓｔ＿ｉｄを有する１つのデータレコードが選択される場合、同じｃｕｓｔ＿ｉｄを有する他のデータレコードも選択される）。
【００７４】
[0078]  擬似フィールド
いくつかの例においては、プロファイリングモジュール１２６は、関係するデータレコードの１つ以上のデータフィールドの値の操作によって決定された値を有する新たな擬似フィールドを生成し、その擬似フィールドをターゲットデータフィールドとして識別する。擬似フィールドの値は、結合キーを介して関係付けられたデータレコードの１つ以上のデータフィールドの値の組み合わせであってもよい。例えば、擬似フィールドの値は、累積値、例えば第２のデータフィールドの共通の値を介して関連付けられたデータレコードの第１のデータフィールドのすべての値の合計、総数、又は他の累積などの累積であってもよい。擬似フィールドの値は、累積値の分類であってもよい。例えば、所与の顧客の合計取引金額に応じたアクションを行うアプリケーションにおいてロジックを処理するために、擬似フィールドｔｏｔａｌ＿ａｍｔ２０６が顧客取引レコードのセット３００に生成される。所与のｃｕｓｔ＿ｉｄ値を有するデータレコードの擬似フィールドｔｏｔａｌ＿ａｍｔの値は、そのｃｕｓｔ＿ｉｄ値を有するすべてのデータレコードのｔｘｎ＿ａｍｔフィールドの値を合計し、その合計を３つのビン（高、中、又は低）のうち１つに分類することによって決定される。すると、擬似フィールドはサブセッティングモジュールによってターゲットデータフィールドとして識別され得る。
【００７５】
[0079]  図４を参照すると、あるプロセス例においては、複数のデータレコードがアクセスされる（４００）。各データレコードは複数のデータフィールドを有する。複数のデータレコードのうち少なくともいくつかについて、データフィールドのうち１つ以上の値が分析される（４０２）。この分析に基づいて、複数のデータレコードのプロファイルが生成される（４０４）。複数のデータレコードのプロファイルは、データレコードのセット内のデータを特徴付ける情報を含む。少なくとも１つのサブセッティング規則がプロファイルに基づいて策定される（４０６）。サブセッティング規則とは、複数のデータレコードからデータレコードのサブセットを選択する規則の仕様である。データレコードのサブセットは、少なくとも１つのサブセッティング規則に基づいて選択される（４０６）。例えば、データレコードのサブセットは、ターゲットデータフィールドの値に基づいて、及び／又はデータフィールドの値を介して関係付けられたデータレコード間の関係に基づいて、選択されてもよい。
【００７６】
[0080]  図５を参照すると、別のプロセス例においては、複数のデータレコードがアクセスされる（５００）。各データレコードは複数のデータフィールドを有する。データレコードの第１のサブセットが複数のデータレコードから選択される（５０２）。このデータレコードの第１のサブセットは、テスト中のアプリケーションなどのデータ処理アプリケーションに提供される（５０４）。アプリケーションは種々の規則を実装する。データ処理アプリケーションの規則は、アプリケーションの実行可能な部分であって、その実行は１つ以上の変数の値に依存する（例えばトリガされる）。規則のうち少なくとも１つがデータ処理アプリケーションによって実行された回数を示すレポートが受信される（５０６）。このレポートに基づいて、データレコードの第２のサブセットが複数のデータレコードから選択される（５０８）。このデータレコードの第２のサブセットはデータ処理アプリケーションに提供される（５１０）。例えば、第２のサブセットは、以前に実行されていない規則が実行され得るように、あるいは特定の規則が実行され得るように、選択される。
【００７７】
[0081]  いくつかの例においては、プロファイリングモジュール１２６により実施されたプロファイリング分析に基づいて、新たなデータレコードが生成可能である。例えば、プロファイリング分析は、データレコード内及びデータレコード間におけるデータフィールド間の関係及びデータレコードの既存のセット内のデータフィールドの可能な値の範囲を明らかにする。データフィールドのうち少なくともいくつかに既存のデータレコードについての情報から算出又は決定された値が取り込まれた新たなデータレコードが構築可能である。テストデータ生成は、例えばソースデータセットにアプリケーションの特定の論理規則、例えばｉｎｃｏｍｅ＞＄１０，０００，０００を要求する論理規則、あるいは要求された値のすべてがデータレコードのセット内に示されていない場合に複数のデータフィールドの特定の値の複雑な組み合わせを要求する論理規則を実行させるであろうデータレコードがないときに用いられてもよい。また、テストデータ生成は、プロファイルが元々のデータセットのプロファイルと合致する新たなデータセットを生成するために用いられてもよい。例えば、新たなデータセットは、元々のデータレコードのプライバシを守るために、元々のデータセットのデータを任意抽出することによって生成されてもよい。
【００７８】
[0082]  いくつかの例においては、上述のアプローチは、ＵＮＩＸオペレーティングシステムなどの適切なオペレーティングシステムの制御の下で、１つ以上の汎用コンピュータをホストとし得る実行環境において実行される。例えば、実行環境は、ローカルである（例えばＳＭＰコンピュータなどのマルチプロセッサシステム）か、又はローカルに分散された（例えばクラスタとして結合された複数のプロセッサ又はＭＰＰ）か、又はリモートであるか、又はリモートに分散された（例えばローカルエリアネットワーク（ＬＡＮ）及び／又は広域ネットワーク（ＷＡＮ）を介して結合された複数のプロセッサ）か、又はこれらの任意の組み合わせである複数の中央演算処理装置（ＣＰＵ）を使用するコンピュータシステムの構成を含む複数ノード並列計算環境を含むことができる。
【００７９】
[0083]  場合によっては、上述のアプローチは、頂点間の有向リンク（作業要素の流れを表す）によって接続された頂点（コンポーネント又はデータセットを表す）を含むデータフローグラフとして、アプリケーションを開発するシステムにより実行される。例えば、そのような環境は、「グラフ型計算のためのパラメータ管理」と題された米国特許出願公開第２００７／００１１６６８号に詳述されており、これは参照により本明細書に組み込まれる。そのようなグラフ型計算を実行するシステムは、米国特許第５，５６６，０７２号、「グラフとして表された操作の実行」に説明されており、これは参照により本明細書に組み込まれる。このシステムに従って作成されたデータフローグラフは、グラフコンポーネントにより表される個々のプロセス内外への情報を取得する方法、プロセス間で情報を移動させる方法、及びプロセスの実行順序を定義する方法を提供する。このシステムは、プロセス間通信方法を選ぶアルゴリズムを含む（例えば、グラフのリンクに従った通信路はＴＣＰ／ＩＰ又はＵＮＩＸドメインソケットを使用することができ、あるいは共有メモリを使用してプロセス間でデータを渡すことができる）。
【００８０】
[0084]  上述のアプローチは、コンピュータ上で実行されるソフトウェアを用いて実行することができる。例えば、ソフトウェアは、各々が少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性及び不揮発性メモリ及び／又は記憶要素など）、少なくとも１つの入力装置又はポート、及び少なくとも１つの出力装置又はポートを備えた１つ以上のプログラムされた又はプログラム可能なコンピュータシステム（分散型、クライアント／サーバ、又は格子など、様々なアーキテクチャであり得る）上で実行する１つ以上のコンピュータプログラムにおけるプロシージャを形成する。ソフトウェアは、例えばデータフローグラフの設計及び構成に関する他のサービスを提供するより大きなプログラムの１つ以上のモジュールを形成し得る。グラフのノード及び要素は、コンピュータ読み取り可能な媒体に記憶されたデータ構造又はデータリポジトリに記憶されたデータモデルに準拠する他の組織的なデータとして実装され得る。
【００８１】
[0085]  ソフトウェアは、汎用又は専用プログラム可能なコンピュータにより読み取り可能なＣＤ−ＲＯＭなどの記憶媒体に提供されてもよく、あるいはネットワークの通信媒体を介してそのソフトウェアが実行されるコンピュータの記憶媒体に配信（伝播信号中に符号化）されてもよい。機能のすべてが専用コンピュータ上で、又はコプロセッサなどの専用ハードウェアを用いて行われてもよい。ソフトウェアは、分散的に実装されて、ソフトウェアにより指定される計算の異なる部分が異なるコンピュータによって行われてもよい。そのようなコンピュータプログラムの各々は、好適には汎用又は専用のプログラム可能なコンピュータによって読み取り可能な記憶媒体又は装置（例えばソリッドステートメモリ又は媒体、あるいは磁気又は光学媒体）に記憶され又はダウンロードされて、本明細書に記載のプロシージャを行うべくこれらの記憶媒体又は装置がコンピュータシステムにより読み取られるときに、コンピュータを構成し動作させる。本発明のシステムは、コンピュータプログラムによって構成されたコンピュータ読み取り可能な記憶媒体として実装されるものと考えられてもよく、ここで、そのように構成された記憶媒体は、コンピュータシステムを、特定の所定の手法で動作させて、本明細書に記載の機能を行わせる。
【００８２】
[0086]  本発明の多数の実施形態を説明した。しかし、本発明の精神及び範囲を逸脱することなく様々な変更が行われ得ることは理解されるであろう。例えば、上述したステップのうちいくつかは順序に非依存であってもよく、したがって記載されたものとは異なる順序で行われ得る。
【００８３】
[0087]  上述の記載は説明を意図したものであり、添付の特許請求の範囲によって規定される本発明の範囲を限定することを意図したものではないことが理解されるべきである。例えば、上述した多数の機能ステップは、全体の処理に実質的に影響を及ぼすことなく、異なる順序で実行され得る。他の実施形態は下記の特許請求の範囲内にある。
【図１】
0006533746.tif 000002
【図２Ａ】
0006533746.tif 000003
【図２Ｂ】
0006533746.tif 000004
【図３】
0006533746.tif 000005
【図４】
0006533746.tif 000006
【図５】
0006533746.tif 000007