數(shù)據(jù)記錄的選擇的制作方法
【專利說明】數(shù)據(jù)記錄的選擇
[0001]優(yōu)先權(quán)聲明
[0002]本申請要求提交于2013年2月I日的美國專利申請序列號61/759799以及提交于2013年3月14日的美國專利申請序列號13/827558的優(yōu)先權(quán),這兩者的全部內(nèi)容通過引用并入本文。
【背景技術(shù)】
[0003]存儲的數(shù)據(jù)集通常包括事先不知道其各種特性的數(shù)據(jù)。例如,數(shù)據(jù)集的典型值的數(shù)值范圍、數(shù)據(jù)集中不同字段的關(guān)系、或是不同字段中的值之間的函數(shù)依賴,可能是未知的。數(shù)據(jù)簡檔(data profiling)可以涉及檢查數(shù)據(jù)集的源,以便確定這些特性。
【發(fā)明內(nèi)容】
[0004]在數(shù)據(jù)處理應(yīng)用的開發(fā)期間,開發(fā)人員可能在生產(chǎn)環(huán)境之外工作,并且可能無法訪問生產(chǎn)數(shù)據(jù)。為了確保數(shù)據(jù)處理應(yīng)用(在本文中稱為“應(yīng)用”)將在生產(chǎn)中適當(dāng)?shù)貓?zhí)行實(shí)際數(shù)據(jù),可以在該應(yīng)用的執(zhí)行與測試期間使用真實(shí)的數(shù)據(jù)。應(yīng)用通常包括執(zhí)行依賴于一個或多個變量的值的規(guī)則。這些變量可以是對應(yīng)于輸入數(shù)據(jù)的輸入變量,可以是依賴于一個或多個輸入變量的派生變量,等等??梢詮膶⒈挥糜趹?yīng)用的開發(fā)和測試的實(shí)際生產(chǎn)數(shù)據(jù)中選擇數(shù)據(jù)記錄的子集。通常選擇這些數(shù)據(jù)記錄使得該輸入數(shù)據(jù)對將被執(zhí)行的應(yīng)用中的每一條規(guī)則是足夠的(例如,以使得達(dá)到在應(yīng)用中的完整代碼覆蓋率)。
[0005]在一般方面中,一種計算機(jī)實(shí)現(xiàn)的方法,包括:訪問多個數(shù)據(jù)記錄,每一個數(shù)據(jù)記錄具有多個數(shù)據(jù)字段。該方法還包括為所述多個數(shù)據(jù)記錄中的至少一些分析一個或多個數(shù)據(jù)字段的值,并且基于該分析生成多個數(shù)據(jù)記錄的簡檔。該方法還包括基于所述簡檔制定至少一個子集規(guī)則;以及基于所述至少一個子集規(guī)則,從所述多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的子集。
[0006]實(shí)施例可包括下面的一項或多項。
[0007]制定至少一個子集規(guī)則包括基于第一數(shù)據(jù)字段的基數(shù)(cardinality),將第一數(shù)據(jù)字段標(biāo)識為目標(biāo)數(shù)據(jù)字段。在一些情況下,目標(biāo)數(shù)據(jù)字段具有多個數(shù)據(jù)記錄中的不同的值的集合,并且其中選擇數(shù)據(jù)記錄的子集包括:選擇數(shù)據(jù)記錄以使得在所選擇的子集中有至少一個數(shù)據(jù)記錄具有目標(biāo)數(shù)據(jù)字段的各個不同的值。
[0008]生成簡檔包括對多個數(shù)據(jù)記錄中的第一數(shù)據(jù)字段的值進(jìn)行分類。制定至少一個子集規(guī)則包括基于所述分類,將第一數(shù)據(jù)字段標(biāo)識為目標(biāo)數(shù)據(jù)字段。在一些情況下,目標(biāo)字段具有多個數(shù)據(jù)記錄中的不同的值的集合,并且其中選擇數(shù)據(jù)記錄的子集包括選擇數(shù)據(jù)記錄以使得在所選擇的子集中有至少一個數(shù)據(jù)記錄具有目標(biāo)數(shù)據(jù)字段的各個不同的值。
[0009]制定至少一個子集規(guī)則包括將第一數(shù)據(jù)字段標(biāo)識為第一目標(biāo)數(shù)據(jù)字段以及將第二數(shù)據(jù)字段標(biāo)識為第二目標(biāo)數(shù)據(jù)字段。在一些情況下,選擇數(shù)據(jù)記錄的子集包括基于所述第一目標(biāo)數(shù)據(jù)字段的不同的值的第一集合和所述第二目標(biāo)數(shù)據(jù)字段的不同的值的第二集合的組合選擇數(shù)據(jù)記錄的子集。
[0010]生成簡檔包括標(biāo)識經(jīng)由第一數(shù)據(jù)字段的值相關(guān)的數(shù)據(jù)記錄之間的關(guān)系。至少一個子集規(guī)則包括關(guān)系的標(biāo)識。在一些情況下,選擇的數(shù)據(jù)記錄的子集包括選擇第一數(shù)據(jù)記錄;以及選擇經(jīng)由在子集規(guī)則中標(biāo)識的關(guān)系與第一數(shù)據(jù)記錄相關(guān)的一個或多個第二數(shù)據(jù)記錄。在一些情況下,數(shù)據(jù)記錄之間的關(guān)系包括在數(shù)據(jù)記錄的第一集合中的數(shù)據(jù)記錄和數(shù)據(jù)記錄的第二集合的數(shù)據(jù)記錄之間的關(guān)系。
[0011]生成簡檔包括對多個數(shù)據(jù)記錄中的至少一些生成偽字段;以及使用累計值填充每個相應(yīng)數(shù)據(jù)記錄的偽字段?;诘谝粩?shù)據(jù)記錄以及與第一數(shù)據(jù)記錄相關(guān)的至少一個其它數(shù)據(jù)記錄來確定用于第一數(shù)據(jù)記錄中的累計值。第一數(shù)據(jù)記錄經(jīng)由第一數(shù)據(jù)字段的值與所述至少一個其它數(shù)據(jù)記錄相關(guān)。在一些情況下,該方法包括基于第一數(shù)據(jù)記錄中的第二數(shù)據(jù)字段的值以及每個其它想的數(shù)據(jù)記錄的第二數(shù)據(jù)字段的值的總和確定累計值。
[0012]該方法包括接收子集規(guī)則。
[0013]該方法包括將所選的數(shù)據(jù)記錄的子集提供給數(shù)據(jù)處理應(yīng)用。在一些情況下,該方法包括基于數(shù)據(jù)處理應(yīng)用的結(jié)果制定第二子集規(guī)則;以及基于所述第二子集規(guī)則選擇數(shù)據(jù)記錄的第二子集。
[0014]在一般方面中,存儲在計算機(jī)可讀介質(zhì)的軟件包括導(dǎo)致計算系統(tǒng)訪問多個數(shù)據(jù)記錄的指令,每一個數(shù)據(jù)字段具有多個數(shù)據(jù)記錄。該軟件包括導(dǎo)致計算系統(tǒng)分析所述多個數(shù)據(jù)記錄中的至少一些的一個或多個數(shù)據(jù)字段的指令;以及基于所述分析生成多個數(shù)據(jù)記錄的簡檔。該軟件還包括用于導(dǎo)致計算系統(tǒng)基于所述簡檔,制定至少一個子集規(guī)則的指令;以及基于所述至少一個子集規(guī)則從多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的子集。
[0015]在一般方面中,一種計算系統(tǒng)包括被配置為訪問多個數(shù)據(jù)記錄的至少一個處理器,每一個數(shù)據(jù)記錄具有多個數(shù)據(jù)字段。處理器被配置為分析多個數(shù)據(jù)記錄中的至少一些的一個或多個數(shù)據(jù)字段的指令,以及基于所述分析生成多個數(shù)據(jù)記錄的簡檔。處理器也被配置為基于所述簡檔制定至少一個子集規(guī)則;以及基于所述至少一個子集規(guī)則從多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的子集。
[0016]在一般方面中,一種計算系統(tǒng)包括用于訪問多個數(shù)據(jù)記錄的裝置,每一個數(shù)據(jù)記錄具有多個數(shù)據(jù)字段。計算系統(tǒng)包括用于分析所述多個數(shù)據(jù)記錄中的至少一些的一個或多個數(shù)據(jù)字段的裝置;以及用于基于所述分析生成多個數(shù)據(jù)記錄的簡檔的裝置。該計算系統(tǒng)還包括用于基于所述簡檔,制定至少一個子集規(guī)則的裝置;以及用于基于所述至少一個子集規(guī)則從多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的子集的裝置。
[0017]在一般方面中,一種計算機(jī)實(shí)現(xiàn)的方法包括:訪問多個數(shù)據(jù)記錄,每一個數(shù)據(jù)記錄具有多個數(shù)據(jù)字段,以及從所述多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄中的第一子集。該方法包括將數(shù)據(jù)記錄的第一子集提供給實(shí)現(xiàn)多個規(guī)則的數(shù)據(jù)處理應(yīng)用,以及接收指示至少一個規(guī)則被數(shù)據(jù)處理應(yīng)用執(zhí)行的次數(shù)的報告。該方法包括,基于該報告,從多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的第二子集。
[0018]實(shí)施例可包括以下的一項或多項。
[0019]該方法包括將數(shù)據(jù)記錄的第二子集提供給數(shù)據(jù)處理應(yīng)用。
[0020]該方法包括,基于該報告,標(biāo)識未由數(shù)據(jù)處理應(yīng)用執(zhí)行的一個或多個未執(zhí)行的規(guī)貝1J。選擇數(shù)據(jù)記錄的第二子集包括基于所述標(biāo)識選擇數(shù)據(jù)記錄。
[0021]該方法包括,基于該報告,標(biāo)識各自執(zhí)行少于相應(yīng)最大次數(shù)的一個或多個規(guī)則。選擇數(shù)據(jù)記錄的第二子集包括基于所述標(biāo)識選擇數(shù)據(jù)記錄。
[0022]該方法包括,基于該報告,標(biāo)識各自執(zhí)行大于相應(yīng)最小閾值次數(shù)的一個或多個規(guī)貝1J。選擇數(shù)據(jù)記錄的第二子集包括基于所述標(biāo)識選擇數(shù)據(jù)記錄。
[0023]選擇數(shù)據(jù)記錄的第一子集包括:基于第一子集規(guī)則選擇數(shù)據(jù)記錄的第一子集。在一些情況下,基于第一子集規(guī)則選擇數(shù)據(jù)記錄的第一子集包括:選擇數(shù)據(jù)記錄的第一子集以使得該子集中的至少一個數(shù)據(jù)記錄具有目標(biāo)數(shù)據(jù)字段的不同的值的集合的每一個。在一些情況下,基于第一子集規(guī)則選擇數(shù)據(jù)記錄的第一子集包括:選擇第一數(shù)據(jù)記錄,以及選擇經(jīng)由所述第一子集規(guī)則中標(biāo)識的關(guān)系與第一數(shù)據(jù)記錄相關(guān)的一個或多個第二數(shù)據(jù)記錄。在一些情況下,選擇數(shù)據(jù)記錄的第二子集包括:基于與第一子集規(guī)則不同的第二子集規(guī)則選擇數(shù)據(jù)記錄的第二子集。
[0024]該報告包括指示觸發(fā)數(shù)據(jù)處理應(yīng)用的一個或多個規(guī)則執(zhí)行的變量的值的數(shù)據(jù)。該方法包括:基于該變量將一個或多個數(shù)據(jù)字段標(biāo)識為目標(biāo)數(shù)據(jù)字段,其中所述變量取決于所標(biāo)識的一個或多個數(shù)據(jù)字段。
[0025]數(shù)據(jù)記錄的第二子集包括數(shù)據(jù)記錄的第一子集。
[0026]該方法包括:迭代地選擇數(shù)據(jù)記錄的子集,并將數(shù)據(jù)記錄的子集提供給數(shù)據(jù)處理的應(yīng)用,直到報告指示數(shù)據(jù)處理應(yīng)用已經(jīng)執(zhí)行了至少閾值數(shù)目的規(guī)則。
[0027]在一般方面中,存儲在計算機(jī)可讀介質(zhì)的軟件包括導(dǎo)致計算系統(tǒng)來訪問多個數(shù)據(jù)記錄的指令,每一個數(shù)據(jù)記錄具有多個數(shù)據(jù)字段,以及從多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的第一子集。該軟件包括導(dǎo)致該計算系統(tǒng)將數(shù)據(jù)記錄的第一子集提供給實(shí)現(xiàn)多個規(guī)則的數(shù)據(jù)處理應(yīng)用并且接收指示至少一個規(guī)則已經(jīng)被數(shù)據(jù)處理應(yīng)用執(zhí)行的次數(shù)的報告的指令。該軟件包括導(dǎo)致所述計算系統(tǒng)基于報告從所述多條數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的第二子集的指令。
[0028]在一般方面中,一種計算系統(tǒng)包括被配置來訪問多個數(shù)據(jù)記錄的至少一個處理器,每一個數(shù)據(jù)記錄具有多個數(shù)據(jù)字段,以及從所述多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的第一子集。所述處理器被配置為將數(shù)據(jù)記錄的第一子集提供給實(shí)現(xiàn)多個規(guī)則的數(shù)據(jù)處理應(yīng)用,以及接收指示至少一個規(guī)則已經(jīng)被數(shù)據(jù)處理應(yīng)用執(zhí)行的次數(shù)的報告。該處理器被配置為基于所述報告從多條數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的第二子集。
[0029]在一般方面中,一種計算系統(tǒng)包括:用于訪問多個數(shù)據(jù)記錄的裝置,每個數(shù)據(jù)記錄具有多個數(shù)據(jù)字段;用于從所述多個數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的第一子集的裝置。該計算系統(tǒng)包括:用于將數(shù)據(jù)記錄的第一子集提供給實(shí)現(xiàn)多個規(guī)則的數(shù)據(jù)處理應(yīng)用的裝置,以及用于接收指示至少一個規(guī)則由數(shù)據(jù)處理應(yīng)用執(zhí)行的次數(shù)的報告的裝置。該計算系統(tǒng)包括:用于基于所述報告從多條數(shù)據(jù)記錄中選擇數(shù)據(jù)記錄的第二子集的裝置。
[0030]本文所述的技術(shù)可以具有以下優(yōu)點(diǎn)中的一個或多個。例如,完整的生產(chǎn)數(shù)據(jù)記錄集可以是大規(guī)模的,使用這樣大的記錄測試數(shù)據(jù)處理應(yīng)用可能是緩慢和不切實(shí)際的。通過僅使用所選的可表示與數(shù)據(jù)處理應(yīng)用的操作相關(guān)的完整的數(shù)據(jù)記錄集的特征的數(shù)據(jù)記錄的子集,可以實(shí)現(xiàn)徹底和有效的測試。可以經(jīng)由對完整數(shù)據(jù)記錄集的自動簡檔的分析以及執(zhí)行數(shù)據(jù)處理應(yīng)用的反饋,來實(shí)現(xiàn)準(zhǔn)確地選擇用于有效測試應(yīng)用的最小數(shù)目的數(shù)據(jù)記錄。
[0031]其它特征和優(yōu)點(diǎn)從下面的描述和權(quán)利要求書中是顯而易見的。
【附圖說明】
[0032]圖1是數(shù)據(jù)處理系統(tǒng)的框圖。
[0033]圖2A是客戶交易記錄示例集的一小部分。
[0034]圖2B是人口統(tǒng)計數(shù)據(jù)記錄的示例集的一小部分。
[0035]圖3是用于基于目標(biāo)數(shù)據(jù)字段選擇數(shù)據(jù)記錄的子集的示例過程的流程圖。
[0036]圖4是用于選擇數(shù)據(jù)記錄的示例過程的流程圖。
[0037]圖5是用于選擇數(shù)據(jù)記錄的另一個示例過程的流程圖。
【具體實(shí)施方式】
[0038]在數(shù)據(jù)處理應(yīng)用的開發(fā)期間,開發(fā)人員可能在生產(chǎn)環(huán)境之外工作,并且可能無法訪問生產(chǎn)數(shù)據(jù)。為了確保數(shù)據(jù)處理應(yīng)用將在生產(chǎn)中適當(dāng)?shù)貓?zhí)行實(shí)際數(shù)據(jù),可以在該應(yīng)用的開發(fā)與測試期間使用真實(shí)的數(shù)據(jù)。應(yīng)用通常實(shí)現(xiàn)其執(zhí)行依賴于(例如,由其