CN102460076A - 生成测试数据 - Google Patents
生成测试数据 Download PDFInfo
- Publication number
- CN102460076A CN102460076A CN2010800354097A CN201080035409A CN102460076A CN 102460076 A CN102460076 A CN 102460076A CN 2010800354097 A CN2010800354097 A CN 2010800354097A CN 201080035409 A CN201080035409 A CN 201080035409A CN 102460076 A CN102460076 A CN 102460076A
- Authority
- CN
- China
- Prior art keywords
- test data
- value
- data
- model
- generate
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
生成测试数据包括:从数据源(102)读取在多个记录的至少一个字段中出现的值;存储包括对值的特征进行描述的统计信息的简档信息;基于统计信息生成(206)字段的概率分布的模型(300);使用所生成的模型生成(206)多个测试数据值,使得给定值在测试数据值中出现的频率对应于由模型(300)分配给该给定值的概率;以及将包括测试数据值的测试数据(114)的集合存储(212)在数据存储系统(116)中。
Description
相关申请的交叉引用
本申请要求2009年6月10提交的美国申请第61/185797号的优先权,其通过引用合并于此。
技术领域
本说明书涉及生成测试数据。
背景技术
一些组织拥有它们希望保密的数据(例如,可能包括客户信息的生产数据)。当要通过程序处理保密数据时,出于安全的原因,可能需要开发者开发不对实际生产数据进行访问的程序。例如,使得生产数据保密的一种途径是使看到生产数据的人的数量最小化。然而,为了确保他们的应用在有生产数据的情况下正确运行,程序员可能需要真实的测试数据用于开发和测试,所述真实的测试数据展示生产数据的某些特征,但不暴露任何机密信息。
发明内容
在一个方面,总体上,一种用于生成测试数据的方法包括:从数据源读取在多个记录(record)的至少一个字段(field)中出现的值;存储包括对所述值的特征进行描述的统计信息(statistics)的简档(profile)信息;基于所述统计信息生成所述字段的概率分布的模型;使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于由所述模型分配给该给定值的概率;以及将包括测试数据值的测试数据的集合存储在数据存储系统中。
多个方面可以包括下列特征中的一个或多个。
所生成的模型包括所述概率分布的估计的至少第一部分和所述概率分布的估计的至少第二部分,所述概率分布的估计的至少第一部分对应于值的连续范围上的概率密度,所述概率分布的估计的至少第二部分对应于离散值的一个或多个离散概率值。
所述统计信息包括指示值的多个连续范围中的每个连续范围内落入多少值的信息。
所述第一部分至少部分地从指示值的连续范围之一内落入多少值的信息导出。
所述统计信息包括指示多个特定值中的每个值在所述记录中出现的频率的信息。
所述第二部分中的离散概率值之一至少部分地从指示特定值之一在所述记录中出现的频率的信息中导出。
该方法还包括使用所生成的模型和指示从数据源读取的出现在字段中的值的特征的附加信息来生成多个测试数据值。
所述附加信息指示出现在字段中的无效值的数量。
所述附加信息指示出现在字段中的相异值(distinct value)的比率(fraction)。
该方法还包括提供开发环境,用于使用数据存储系统中存储的测试数据的集合来开发用于处理来自数据源的记录的至少一个程序。
所述开发环境不能访问来自数据源的记录。
所述方法还包括所述开发环境不能访问所述数据源。
在另一方面,总体上,一种用于生成测试数据的系统包括:数据源,其提供在一个或多个字段中具有值的记录;数据存储系统;以及一个或多个处理器,其耦合到所述数据存储系统,用于提供执行环境以执行以下处理:从数据源读取在多个记录的至少一个字段中出现的值,存储包括对所述值的特征进行描述的统计信息的简档信息,基于所述统计信息生成所述字段的概率分布的模型,使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于由所述模型分配给该给定值的概率,以及将包括测试数据值的测试数据的集合存储在数据存储系统中。
在另一方面,总体上,一种用于生成测试数据的系统包括:数据源,其提供在一个或多个字段中具有值的记录;数据存储系统;以及用于处理所述记录以生成测试数据的装置,所述处理包括:从数据源读取在多个记录的至少一个字段中出现的值,存储包括对所述值的特征进行描述的统计信息的简档信息,基于所述统计信息生成所述字段的概率分布的模型,使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于由所述模型分配给该给定值的概率,以及将包括测试数据值的测试数据的集合存储在数据存储系统中。
在另一方面,总体上,一种计算机可读介质存储用于生成测试数据的计算机程序。所述计算机程序包括用于使计算机执行以下操作的指令,所述操作包括:从数据源读取在多个记录的至少一个字段中出现的值;存储包括对所述值的特征进行描述的统计信息的简档信息;基于所述统计信息生成所述字段的概率分布的模型;使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于所述模型分配给该给定值的概率;以及将包括测试数据值的测试数据的集合存储在数据存储系统中。
多个方面可以包括以下优点中的一个或多个优点。
测试数据可以随机地生成,但是要以这样的方式来进行,即,生产数据的原始集合的各种特征可以被复制以提供更真实的测试。来自原始数据的诸如统计特性的特征以及一些实际值可以被包括在测试数据中,同时确保机密信息不被包括在测试数据中。初始剖析过程使得统计特性和实际值被提取出来并且在简档信息内进行概述,所述简档信息随后用于生成测试数据。只要机密信息没有泄露到简档信息中,测试数据中就不会有机密信息。在简档信息中表示的实际值是各个字段的最常见的值,其不可能对应于机密信息(机密信息一般对于给定客户是唯一的,因此在原始数据内很少见)。
本发明的其它特征和优点将从后面的说明书以及权利要求中变得清楚。
附图说明
图1是使用所生成的测试数据来开发程序的示例性系统。
图2是示例性测试数据生成过程的流程图。
图3A-3B是统计信息的示例。
图3C是概率分布模型的示例。
具体实施方式
参考图1,使用测试数据来开发程序的系统100包括数据源102,数据源102可以包括数据的一个或多个源,比如存储设备或到在线数据流的连接,它们中的每一个可能存储各种存储格式(比如,数据库表、电子数据表文件、纯文本文件(flat text file)、或者大型机所使用的原生格式)中的任何一种存储格式的数据。用于生成测试数据的执行环境104包括数据剖析(profiling)模块106和测试数据生成模块112。执行环境104可以被托管(host)在处于适合的操作系统(例如UNIX操作系统)控制下的一个或多个通用计算机上。例如,执行环境104可以包括多节点并行计算环境,该多节点并行计算环境包括使用多个中央处理单元(CPU)的计算机系统的配置,所述计算机系统的配置要么是本地的(例如,诸如SMP计算机的多处理器系统)、要么是本地分布式的(例如,耦合成簇或MPP的多个处理器)、要么是远程的、要么是远程分布式的(例如,经由LAN网络或WAN网络耦合的多个处理器)或者是它们的任意组合。
数据剖析模块106从数据源102读取数据并且存储对数据源102中出现的数据值的各种特征进行描述的简档信息。提供数据源102的存储设备可以位于执行环境104本地,例如,存储在连接到运行执行环境104的计算机的存储介质(例如,硬驱108)上,或者可以远离执行环境104,例如,托管在通过局域或广域数据网络与运行执行环境104的计算机通信的远程系统(例如,大型机110)上。
测试数据生成模块112使用数据剖析模型106生成的简档信息来生成存储在执行环境104可访问的数据存储系统116中的测试数据114的集合(collection)。数据存储系统116也可以被开发环境118访问,在开发环境118中,开发者120能够使用测试数据114来开发和测试程序。然而,可以通过使数据源102中的原始生产数据不能被开发者120访问,来保持数据源102中的原始生产数据的安全。在一些实现方案中,开发环境118是用于开发作为数据流图的应用的系统,所述数据流图包括顶点(组件或数据集),所述顶点由顶点之间的有向链接(directed link)(代表工作元素的流)连接。例如,在美国公开第2007/0011668号(名称为“Managing Parameters for Graph-BasedApplications”,通过引用合并于此)中更加详细地描述了这样的环境。
数据剖析模块106能够剖析(profile)来自包括不同形式数据库系统的各种类型系统的数据。所述数据可以被组织为记录,所述记录具有针对各个字段(也称为“属性”或“列”)的值,包括可能为空的值。可以组织简档信息以便为不同的字段提供单独的简档,称为“字段简档”,其描述在那些字段中出现的值。当从数据源第一次读取数据时,数据剖析模块106一般以关于那个数据源中的记录的一些初始格式信息开始。(注意,在一些情况中,即使最初可能不知道数据源的记录结构,也可以在分析该数据源之后确定该数据源的记录结构)。关于记录的初始信息可以包括表示相异值(distinct value)的比特的数量、记录内的字段的顺序、以及所述比特所表示的值的类型(例如,字符串(string)、有符号/无符号整数)。当数据剖析模块106从数据源读取记录时,其计算反映给定字段内的值的统计信息和其它描述信息。然后,数据剖析模块106以字段简档的形式存储那些统计信息和描述信息,以供测试数据生成模块112访问。针对给定字段的字段简档中的统计信息可以包括例如该字段中的值的直方图、该字段中出现的最大值、最小值和平均值、以及该字段中出现的最不常见和最常见的值的样本。简档信息也可以包括与数据源102中的记录的多个字段相关联的信息,比如,记录的总数、以及有效记录的总数或无效记录的总数。例如,在美国公开第2005/0114369号(名称为“DataProfiling”,通过引用合并于此)中描述了剖析数据源的字段的过程。
图2示出示例性测试数据生成过程200的流程图。测试数据生成模块112针对将为其生成测试数据的第一字段检索(202)所存储的字段简档。在一些实现方案中,可以在所述字段简档被加载之后计算并且存储能够从所述字段简档中的信息中导出的附加信息。可选地,模块112接收(204)关于所生成的测试数据值应当具有的特征的用户输入(例如,指示测试数据值中应当出现的相异值的数量的信息,如以下更详细地描述的)。模块112基于针对该字段所检索的字段简档中的统计信息生成(206)该字段的概率分布的模型。该模型包括针对允许出现在该字段中的、值的范围的概率估计,如以下参照图3的示例所描述的。
模块112对于每个将要生成的测试数据值都调用(208)一次测试数据生成器函数。该测试数据生成器函数将概率分布的模型以及可选的自变量(argument)“索引(index)”和“限制(limit)”作为输入自变量,如下面更详细地描述的。测试数据生成器函数根据作为输入提供的模型和下面描述的其它特征,提供测试数据值作为输出。在一些情况中,可以选择将为给定字段生成的测试数据值的数量,使其与所剖析的来自原始数据源的数据集中的记录的总数相匹配,所述记录的总数包含在简档信息中。在一些情况中,用户可能想要生成特定数量的值,这可以由用户直接提供(例如,在步骤204中)。从所述函数输出的值可以被插入到将要被提供为测试数据114的集合的记录的适当字段中。模块112确定(210)是否将处理附加字段,如果是则执行测试数据生成的另一次迭代。模块112将所生成的测试数据114的集合存储(212)在数据存储系统116中。
在一些实现方案中,将要为给定字段生成的测试数据值的数量可以通过对于在输入记录流中所接收的每个记录都调用一次测试数据生成器函数来隐式地确定。例如,当开发环境118支持作为数据流图的应用的开发和执行时,执行环境104也可以将数据剖析模块106和测试数据生成模块112实现为数据流图本身。在一些实现方案中,数据剖析模块将从数据源112读取作为N个单独记录的流的生产数据,并且将这些记录作为N个单独记录的流提供给模块112。模块112将能够利用针对那些字段生成的测试数据值来替换原始记录的每个字段中的值。模块112能够对M个字段中的每个字段执行单独的处理N个记录的流的迭代,从而在M次迭代中的每次迭代中生成N个测试数据值。不同迭代的测试数据值接连地顺序生成,或者同时并行地生成。在一些实现方案中,被替换的原始值的某些特性可以保留在所生成的测试数据值中(比如,例如州和邮政编码等字段之间的函数依赖(functional dependence))。此外,在一些实现方案中,可以选择原始记录的字段的子集,用于利用根据各自模型生成的测试数据值对其进行替换,并且剩余字段可以保持它们的原始值或者根据不同的技术对剩余字段进行处理,比如利用常数值或者根据均匀概率分布生成的伪随机值对剩余字段进行替换。
测试数据生成器函数返回特定数据类型(例如,字符串、十进制数(decimal)、日期、或者包括日期和时间的日期-时间类型)的测试数据值,其中基于给定字段的字段简档来确定所述数据类型。测试数据值作为记录内的给定字段的值被收集在测试数据114的集合中。使用该模型至少部分地基于随机选择(例如,利用伪随机数生成技术)来生成测试数据值,使得给定值在测试数据114中出现的频率对应于由作为到测试数据生成器函数的输入提供的模型分配给该值的概率。测试数据生成器函数生成测试数据,使得对测试数据114的集合进行处理的数据剖析模块106将会产生与用来生成测试数据114的集合的简档信息类似的简档信息。
图3A和图3B示出字段简档中的示例性统计信息,并且图3C示出字段的概率分布的示例性模型300。本示例中的测试数据值是从具有定义的顺序的可能值的范围中选择出来的(例如,按照数字值排序的数、或按照定义的字母顺序排序的字符串)。本示例中的统计信息包括十分位数的图表(plot ofdeciles)(图3A),其指示值的几分之几落在范围的最小值和最大值之间的10个等份(10deciles)中的每一份中(在本示例中为0和10之间的实数)。图3A中示出的图表的水平轴被标记成示出与每个等份相对应的值的范围(0-1、1-2、等等)。在其他示例中,水平轴将覆盖与被建模的任何字段相对应的值的范围。潜在值的任何域(domain)(包括字符串)都可以被映射到这样的图表的数值范围(例如,通过将字符串中的字符解释为适当基数(base)中的数)。统计信息也包括频率值的列表(图3B),在本示例中,该列表包括前5个最频繁的值以及每个值出现的次数。这个字段的概率分布的模型300既考虑十分位数的图表提供的连续信息,也考虑频率值列表提供的离散信息。
例如,模型300包括与十分位数的图表给出的比率成比例的、每个连续等份范围内的值的连续概率密度、以及频率值列表中值的离散概率,该离散概率对应于与列表中的出现次数成比例的、那些离散值处的离散概率(例如,δ(delta)函数)。相对于δ函数的高度的概率分布的连续部分的高度取决于等份所表示的原始数据中值的数量。通过减去频率值列表中落在每个等份中的任何值所表示的出现的总次数,相对于等份的高度降低概率分布的连续部分的高度(这样,那些频率值不会被进行两次计数)。如果频率值落在等份之间的边界上(例如,图3C中的值4.0),那么该值的出现次数被从包括该值的等份中减去。例如,在一个实现方案中,该值的出现次数被从其左侧的等份中减去,在该实现方案中,值基于等于或小于测试被分配给等份。概率的绝对值被确定为使得分布的积分为1(即,所有概率的和等于1)。其它类型的统计信息可以用来导出该模型,其它类型的统计信息比如是在所剖析的数据的字段中出现的值的直方图。指示多少值落在某个范围中的统计信息促成该模型的连续部分,而指示特定值出现频率的统计信息促成该模型的离散部分(例如,δ函数)。
通过将该模型与所剖析的数据的概率分布相匹配,通过概率分布确定所生成的测试数据的特征,比如均值、标准差、公共值(例如,该模型中的δ函数处的值)、以及最大和最小容许值,被自动与所剖析的数据的那些特征相匹配。
除了通过概率分布确定的特征之外,测试数据生成器函数能够考虑附加特征以获得与字段的简档信息更接近的匹配。下面是测试数据生成器函数在基于所提供的模型执行随机选择时能够考虑的一些示例性特征。
·无效值比率:测试数据生成器函数能够以与所剖析的数据中的比率近似相同的比率在字段中生成无效值。在一些情况中,字段简档可以包括可从中进行选择的公共无效值列表。在一些情况中,如果字段简档包括规定什么值构成字段的有效值的有效性规范,则测试数据生成器函数能够选择违反该规范的无效值。或者,如果不存在样本无效值或有效性规范,则该函数可以选择对于字段的数据类型来说无效的值(例如,十进制的字母、或不正确格式的日期)。
·相异值比率:测试数据生成器函数能够以与所剖析的数据中的比率近似相同的比率(例如,相异值的数量/值的总数)在字段中生成相异值。为此,该函数接收可选的“索引”和“限制”自变量作为输入。索引自变量是非负整数,其对于每次函数调用都不同(例如,对于每个记录递增的整数),而限制自变量等于或大于已经或将要作为索引自变量提供的任何值。限制自变量可以在开始生成字段的测试数据值时确定一次,并且可以基于用户输入来提供(例如,步骤204)。例如,限制自变量的值可以被设置为用户将要请求的记录的数量,用户可以事先知道该数量,但是运行测试数据生成器函数的处理器(多个处理器)事先不会知道该数量。
·最大和最小长度:测试数据生成器函数能够生成与所剖析的数据具有相同最大和最小长度的值。例如,对于字符串来说,长度对应于字符的数量,而对于数(number)来说,长度可以被定义为数字(digit)的数量,包括小数点后的数字。
·观察字符(observed character):测试数据生成器函数能够生成仅仅由所剖析的数据中出现的字符组成的值,比如,字符串。
可以用于测试数据生成器函数以对于给定的限制自变量L、当索引自变量I从0变化到L-1时确定输出测试数据值的技术的一个示例涉及生成I从0到L-1的所有值的伪随机排列(permutation)以及对这些值进行换算使得它们落在0到1的范围内(例如,通过将它们除以L)。这样,I的每个输入值可以被映射到对模型概率分布的相应部分进行限定的数的不同范围。例如,对于L=10,使用所述排列可以将从0到9的10个索引值伪随机地映射到0和1之间的不同范围:0到0.1、0.1到0.2、等等。概率分布被划分成相等概率的相应数量的段(slice)(在本例中为10段),并且所选择的段内某处的输出值被选为输出测试数据值。该函数通过相应地减少段的数量并且不止一次地输出不同段内的值来考虑要输出的唯一值的数量。例如,如果存在全部值的一半那么多的唯一值,那么每个值被输出两次。各种技术中的任何一种都可以用于生成所述排列(例如,在Berlin:Springer Verlag的“Advances in Cryptology-EUROCRYPT′92(Lecture Notes in Computer Science),”的1992年第658卷、第239-255页中的Ueli Maurer的“A simplified and generalized treatment ofLuby-Rackoff pseudorandom permutation generators”中描述了基于Luby-Rackoff类型的算法的技术,其通过引用合并于此)。
上述的测试数据生成方法可以使用在计算机上执行的软件来实现。例如,该软件形成在一个或多个已编程或可编程的计算机系统(其可以是各种架构,比如分布式、客户机/服务器、或网格)上执行的一个或多个计算机程序中的过程,所述计算机系统每个都包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口、以及至少一个输出设备或端口。该软件可以形成较大程序的一个或多个模块,举例来说,所述较大程序提供与计算图的设计和配置有关的其它服务。图的节点和元素可以被实现为计算机可读介质中存储的数据结构或者符合数据存储库中存储的数据模型的其它经组织的数据。
该软件可以被提供在可以由通用或专用可编程计算机读取的、诸如CD-ROM的存储介质上,或者该软件可以通过连接到执行该软件的计算机的网络的通信介质来递送(被编码成传播信号)。所有功能都可以在专用计算机上执行,或者使用诸如协处理器的专用硬件来执行。该软件可以以分布式方式来实现,其中该软件所规定的计算的不同部分由不同计算机来执行。每个这样的计算机程序优选地存储在或下载到通用或专用可编程计算机可读取的存储介质或设备(例如,固态存储器或介质、或者磁或光介质),用于当计算机系统读取该存储介质或设备时配置和操作该计算机,以执行这里描述的过程。也可以考虑将本发明的系统实现为配置有计算机程序的计算机可读存储介质,其中如此配置的存储介质使得计算机系统以特定和预先定义的方式操作,以执行这里描述功能。
已经描述了本发明的一些实施例。尽管如此,还是要理解可以在不脱离本发明的精神和范围的情况下进行各种修改。例如,上述的一些步骤可以是与顺序无关的,因此可以以与所描述的顺序不同的顺序来执行这些步骤。
要理解,前面的描述旨在说明而不是限制本发明的范围,本发明的范围由所附权利要求的范围来限定。例如,上述的一些功能步骤可以以不同的顺序来执行,而基本上不影响总体处理。其它实施例落在所附权利要求的范围内。
Claims (15)
1.一种用于生成测试数据的方法,该方法包括:
从数据源读取在多个记录的至少一个字段中出现的值;
存储包括对所述值的特征进行描述的统计信息的简档信息;
基于所述统计信息生成所述字段的概率分布的模型;
使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于由所述模型分配给该给定值的概率;以及
将包括测试数据值的测试数据的集合存储在数据存储系统中。
2.如权利要求1所述的方法,其中所生成的模型包括所述概率分布的估计的至少第一部分和所述概率分布的估计的至少第二部分,所述概率分布的估计的至少第一部分对应于值的连续范围上的概率密度,所述概率分布的估计的至少第二部分对应于离散值的一个或多个离散概率值。
3.如权利要求2所述的方法,其中所述统计信息包括指示值的多个连续范围中的每个连续范围内落入多少值的信息。
4.如权利要求3所述的方法,其中所述第一部分至少部分地从指示值的连续范围之一内落入多少值的信息导出。
5.如权利要求2所述的方法,其中所述统计信息包括指示多个特定值中的每个值在所述记录中出现的频率的信息。
6.如权利要求5所述的方法,其中所述第二部分中的离散概率值之一至少部分地从指示特定值之一在所述记录中出现的频率的信息中导出。
7.如权利要求1所述的方法,还包括使用所生成的模型和指示从数据源读取的出现在字段中的值的特征的附加信息来生成多个测试数据值。
8.如权利要求7所述的方法,其中所述附加信息指示出现在字段中的无效值的数量。
9.如权利要求7所述的方法,其中所述附加信息指示出现在字段中的相异值的比率。
10.如权利要求1所述的方法,还包括提供开发环境,用于使用所述数据存储系统中存储的测试数据的集合来开发用于处理来自所述数据源的记录的至少一个程序。
11.如权利要求10所述的方法,其中所述开发环境不能访问来自所述数据源的记录。
12.如权利要求11所述的方法,其中所述开发环境不能访问所述数据源。
13.一种用于生成测试数据的系统,该系统包括:
数据源,其提供在一个或多个字段中具有值的记录;
数据存储系统;以及
一个或多个处理器,其耦合到所述数据存储系统,用于提供执行环境以执行以下处理:
从所述数据源读取在多个记录的至少一个字段中出现的值,
存储包括对所述值的特征进行描述的统计信息的简档信息,
基于所述统计信息生成所述字段的概率分布的模型,
使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于由所述模型分配给该给定值的概率,以及
将包括测试数据值的测试数据的集合存储在所述数据存储系统中。
14.一种用于生成测试数据的系统,该系统包括:
数据源,其提供在一个或多个字段中具有值的记录;
数据存储系统;以及
用于处理所述记录以生成测试数据的装置,所述处理包括:
从所述数据源读取在多个记录的至少一个字段中出现的值,
存储包括对所述值的特征进行描述的统计信息的简档信息,
基于所述统计信息生成所述字段的概率分布的模型,
使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于由所述模型分配给该给定值的概率,以及
将包括测试数据值的测试数据的集合存储在所述数据存储系统中。
15.一种计算机可读介质,用于存储用于生成测试数据的计算机程序,所述计算机程序包括用于使计算机执行以下操作的指令,所述操作包括:
从所述数据源读取在多个记录的至少一个字段中出现的值;
存储包括对所述值的特征进行描述的统计信息的简档信息;
基于所述统计信息生成所述字段的概率分布的模型;
使用所生成的模型生成多个测试数据值,使得给定值在测试数据值中出现的频率对应于由所述模型分配给该给定值的概率;以及
将包括测试数据值的测试数据的集合存储在所述数据存储系统中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18579709P | 2009-06-10 | 2009-06-10 | |
US61/185,797 | 2009-06-10 | ||
PCT/US2010/038018 WO2010144608A1 (en) | 2009-06-10 | 2010-06-09 | Generating test data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102460076A true CN102460076A (zh) | 2012-05-16 |
CN102460076B CN102460076B (zh) | 2015-06-03 |
Family
ID=43307221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080035409.7A Active CN102460076B (zh) | 2009-06-10 | 2010-06-09 | 生成测试数据 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9411712B2 (zh) |
EP (1) | EP2440882B1 (zh) |
JP (1) | JP5620984B2 (zh) |
KR (2) | KR20150040384A (zh) |
CN (1) | CN102460076B (zh) |
AU (1) | AU2010258731B2 (zh) |
CA (1) | CA2764390C (zh) |
WO (1) | WO2010144608A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636404A (zh) * | 2013-11-14 | 2015-05-20 | 华为技术有限公司 | 用于测试的大规模数据生成方法和装置 |
CN107577604A (zh) * | 2017-09-04 | 2018-01-12 | 北京京东尚科信息技术有限公司 | 测试数据的生成方法、装置和计算机可读存储介质 |
CN107810500A (zh) * | 2015-06-12 | 2018-03-16 | 起元技术有限责任公司 | 数据质量分析 |
CN112231232A (zh) * | 2020-11-18 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 确定测试数据模型及生成测试数据的方法、装置及设备 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10102398B2 (en) | 2009-06-01 | 2018-10-16 | Ab Initio Technology Llc | Generating obfuscated data |
US20120041989A1 (en) * | 2010-08-16 | 2012-02-16 | Tata Consultancy Services Limited | Generating assessment data |
JP5651050B2 (ja) * | 2011-03-08 | 2015-01-07 | 株式会社富士通マーケティング | データ生成装置及びデータ生成プログラム |
US20120330880A1 (en) * | 2011-06-23 | 2012-12-27 | Microsoft Corporation | Synthetic data generation |
US9460069B2 (en) * | 2012-10-19 | 2016-10-04 | International Business Machines Corporation | Generation of test data using text analytics |
JP5933410B2 (ja) * | 2012-10-25 | 2016-06-08 | 株式会社日立製作所 | データベース分析装置及びデータベース分析方法 |
KR102026662B1 (ko) | 2013-04-22 | 2019-09-30 | 삼성전자 주식회사 | 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 |
US9246935B2 (en) | 2013-10-14 | 2016-01-26 | Intuit Inc. | Method and system for dynamic and comprehensive vulnerability management |
US9313281B1 (en) | 2013-11-13 | 2016-04-12 | Intuit Inc. | Method and system for creating and dynamically deploying resource specific discovery agents for determining the state of a cloud computing environment |
US20150169433A1 (en) * | 2013-12-12 | 2015-06-18 | Rafi Bryl | Automated Generation of Semantically Correct Test Data for Application Development |
JP6882892B2 (ja) * | 2013-12-18 | 2021-06-02 | アビニシオ テクノロジー エルエルシー | データ生成 |
US9501345B1 (en) | 2013-12-23 | 2016-11-22 | Intuit Inc. | Method and system for creating enriched log data |
US9323926B2 (en) | 2013-12-30 | 2016-04-26 | Intuit Inc. | Method and system for intrusion and extrusion detection |
US20150304343A1 (en) | 2014-04-18 | 2015-10-22 | Intuit Inc. | Method and system for providing self-monitoring, self-reporting, and self-repairing virtual assets in a cloud computing environment |
US9325726B2 (en) | 2014-02-03 | 2016-04-26 | Intuit Inc. | Method and system for virtual asset assisted extrusion and intrusion detection in a cloud computing environment |
US9866581B2 (en) | 2014-06-30 | 2018-01-09 | Intuit Inc. | Method and system for secure delivery of information to computing environments |
US10757133B2 (en) | 2014-02-21 | 2020-08-25 | Intuit Inc. | Method and system for creating and deploying virtual assets |
US9276945B2 (en) | 2014-04-07 | 2016-03-01 | Intuit Inc. | Method and system for providing security aware applications |
US20150269064A1 (en) * | 2014-03-21 | 2015-09-24 | Intuit Inc. | Method and system for testing cloud based applications in a production environment using fabricated user data |
US9245117B2 (en) | 2014-03-31 | 2016-01-26 | Intuit Inc. | Method and system for comparing different versions of a cloud based application in a production environment using segregated backend systems |
US11294700B2 (en) | 2014-04-18 | 2022-04-05 | Intuit Inc. | Method and system for enabling self-monitoring virtual assets to correlate external events with characteristic patterns associated with the virtual assets |
US9374389B2 (en) | 2014-04-25 | 2016-06-21 | Intuit Inc. | Method and system for ensuring an application conforms with security and regulatory controls prior to deployment |
US9900322B2 (en) | 2014-04-30 | 2018-02-20 | Intuit Inc. | Method and system for providing permissions management |
US9319415B2 (en) | 2014-04-30 | 2016-04-19 | Intuit Inc. | Method and system for providing reference architecture pattern-based permissions management |
US9330263B2 (en) | 2014-05-27 | 2016-05-03 | Intuit Inc. | Method and apparatus for automating the building of threat models for the public cloud |
US10102082B2 (en) | 2014-07-31 | 2018-10-16 | Intuit Inc. | Method and system for providing automated self-healing virtual assets |
US9473481B2 (en) | 2014-07-31 | 2016-10-18 | Intuit Inc. | Method and system for providing a virtual asset perimeter |
EP3191963B1 (en) | 2014-09-08 | 2023-11-22 | AB Initio Technology LLC | Data-driven testing framework |
US9558089B2 (en) * | 2014-11-12 | 2017-01-31 | Intuit Inc. | Testing insecure computing environments using random data sets generated from characterizations of real data sets |
JP6482338B2 (ja) * | 2015-03-19 | 2019-03-13 | 株式会社エヌ・ティ・ティ・データ | 質問表回答テストデータ生成システム、質問表回答テストデータ生成方法及びプログラム |
EP3188038B1 (en) * | 2015-12-31 | 2020-11-04 | Dassault Systèmes | Evaluation of a training set |
CN106021097B (zh) * | 2016-05-09 | 2019-02-26 | 北京航空航天大学 | 基于测试特征的软件可靠性指标区间估计方法 |
US20180293272A1 (en) * | 2017-04-05 | 2018-10-11 | Futurewei Technologies, Inc. | Statistics-Based Multidimensional Data Cloning |
CN111213146B (zh) * | 2017-10-13 | 2024-05-03 | 日本电信电话株式会社 | 伪数据生成装置、其方法和记录介质 |
KR102392642B1 (ko) * | 2017-11-08 | 2022-04-29 | 한국전력공사 | Cfg를 이용한 패턴 기반의 소프트웨어 절차변경 동작 감시 장치 및 그 방법 |
US11443837B2 (en) * | 2017-11-17 | 2022-09-13 | International Business Machines Corporation | Generation of test data for a data platform |
CN108874666A (zh) * | 2018-05-30 | 2018-11-23 | 平安普惠企业管理有限公司 | 测试数据自动生成方法、装置、计算机设备及存储介质 |
US11227065B2 (en) | 2018-11-06 | 2022-01-18 | Microsoft Technology Licensing, Llc | Static data masking |
US10956301B2 (en) * | 2019-07-03 | 2021-03-23 | Ownbackup Ltd. | Production data in continuous integration flows |
US11269757B2 (en) * | 2019-07-03 | 2022-03-08 | Ownbackup Ltd. | Production data in continuous integration flows |
US11188451B2 (en) * | 2020-03-08 | 2021-11-30 | Ownbackup Ltd. | Test data generation for automatic software testing |
KR102276290B1 (ko) | 2020-04-10 | 2021-07-12 | 숭실대학교산학협력단 | 대용량 테스트 데이터 생성장치 |
US11841836B2 (en) | 2021-01-04 | 2023-12-12 | Ownbackup Ltd. | Target environment data seeding |
US11914503B2 (en) * | 2021-09-01 | 2024-02-27 | Sap Se | Automated performance measurement over software lifecycle |
CN114860575B (zh) * | 2022-03-31 | 2023-10-03 | 中国电信股份有限公司 | 测试数据生成方法及装置、存储介质及电子设备 |
US20240070141A1 (en) * | 2022-08-31 | 2024-02-29 | Palantir Technologies Inc. | Systems and methods for generating interrelated notional data |
CN116303102B (zh) * | 2023-05-19 | 2023-08-11 | 建信金融科技有限责任公司 | 测试数据的生成方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1030943A (ja) * | 1996-07-15 | 1998-02-03 | Ckd Corp | センサ装置、表示装置及びデータ書き込み装置 |
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 |
US6581058B1 (en) * | 1998-05-22 | 2003-06-17 | Microsoft Corporation | Scalable system for clustering of large databases having mixed data attributes |
CN1495584A (zh) * | 2002-08-22 | 2004-05-12 | �����Ʒ�뻯ѧ��˾ | 基于模型控制的设备快速测试 |
US6957161B2 (en) * | 2003-09-25 | 2005-10-18 | Dell Products L.P. | Information handling system including power supply self diagnostics |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
DE19911176A1 (de) | 1999-03-12 | 2000-09-21 | Lok Lombardkasse Ag | Anonymisierungsverfahren |
AU5782900A (en) * | 1999-06-30 | 2001-01-31 | Stephen Billester | Secure, limited-access database system and method |
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 |
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 |
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 |
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 |
US7739249B2 (en) * | 2007-04-16 | 2010-06-15 | Sap, Ag | Data generator apparatus testing data dependent applications, verifying schemas and sizing systems |
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 |
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 |
EP2189925A3 (en) * | 2008-11-25 | 2015-10-14 | SafeNet, Inc. | Database obfuscation system and method |
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 | 起元科技有限公司 | 生成数据模式信息 |
US9558089B2 (en) * | 2014-11-12 | 2017-01-31 | Intuit Inc. | Testing insecure computing environments using random data sets generated from characterizations of real data sets |
-
2010
- 2010-06-09 EP EP10786799.6A patent/EP2440882B1/en active Active
- 2010-06-09 CN CN201080035409.7A patent/CN102460076B/zh active Active
- 2010-06-09 US US12/797,509 patent/US9411712B2/en active Active
- 2010-06-09 AU AU2010258731A patent/AU2010258731B2/en active Active
- 2010-06-09 CA CA2764390A patent/CA2764390C/en active Active
- 2010-06-09 KR KR1020157008165A patent/KR20150040384A/ko not_active Application Discontinuation
- 2010-06-09 WO PCT/US2010/038018 patent/WO2010144608A1/en active Application Filing
- 2010-06-09 KR KR1020127000470A patent/KR101660853B1/ko active IP Right Grant
- 2010-06-09 JP JP2012515111A patent/JP5620984B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1030943A (ja) * | 1996-07-15 | 1998-02-03 | Ckd Corp | センサ装置、表示装置及びデータ書き込み装置 |
US6581058B1 (en) * | 1998-05-22 | 2003-06-17 | Microsoft Corporation | Scalable system for clustering of large databases having mixed data attributes |
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 |
CN1495584A (zh) * | 2002-08-22 | 2004-05-12 | �����Ʒ�뻯ѧ��˾ | 基于模型控制的设备快速测试 |
US6957161B2 (en) * | 2003-09-25 | 2005-10-18 | Dell Products L.P. | Information handling system including power supply self diagnostics |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636404A (zh) * | 2013-11-14 | 2015-05-20 | 华为技术有限公司 | 用于测试的大规模数据生成方法和装置 |
WO2015070759A1 (zh) * | 2013-11-14 | 2015-05-21 | 华为技术有限公司 | 用于测试的大规模数据生成方法和装置 |
CN104636404B (zh) * | 2013-11-14 | 2019-02-19 | 华为技术有限公司 | 用于测试的大规模数据生成方法和装置 |
CN107810500A (zh) * | 2015-06-12 | 2018-03-16 | 起元技术有限责任公司 | 数据质量分析 |
US11249981B2 (en) | 2015-06-12 | 2022-02-15 | Ab Initio Technology Llc | Data quality analysis |
CN107810500B (zh) * | 2015-06-12 | 2023-12-08 | 起元技术有限责任公司 | 数据质量分析 |
CN107577604A (zh) * | 2017-09-04 | 2018-01-12 | 北京京东尚科信息技术有限公司 | 测试数据的生成方法、装置和计算机可读存储介质 |
CN112231232A (zh) * | 2020-11-18 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 确定测试数据模型及生成测试数据的方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2440882A4 (en) | 2017-06-14 |
KR101660853B1 (ko) | 2016-09-28 |
AU2010258731B2 (en) | 2015-07-23 |
KR20150040384A (ko) | 2015-04-14 |
AU2010258731A1 (en) | 2011-12-22 |
EP2440882A1 (en) | 2012-04-18 |
CN102460076B (zh) | 2015-06-03 |
JP2012529716A (ja) | 2012-11-22 |
EP2440882B1 (en) | 2020-02-12 |
WO2010144608A1 (en) | 2010-12-16 |
CA2764390A1 (en) | 2010-12-16 |
JP5620984B2 (ja) | 2014-11-05 |
US20100318481A1 (en) | 2010-12-16 |
CA2764390C (en) | 2019-02-26 |
US9411712B2 (en) | 2016-08-09 |
KR20120039616A (ko) | 2012-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102460076B (zh) | 生成测试数据 | |
CN102460404B (zh) | 生成混淆数据 | |
Wang et al. | Searchable encryption over feature-rich data | |
JP6899065B2 (ja) | ブロックチェーン・データからの分析結果の自動生成のための方法、装置および非一過性コンピュータ可読ストレージ媒体 | |
Templ et al. | Statistical disclosure control for micro-data using the R package sdcMicro | |
CN102945240B (zh) | 一种支持分布式计算的关联规则挖掘算法实现方法及装置 | |
US8412735B2 (en) | Data quality enhancement for smart grid applications | |
Brazeau et al. | An algorithm for morphological phylogenetic analysis with inapplicable data | |
CN106062751A (zh) | 对与数据类型有关的数据剖析操作的管理 | |
CN110023925A (zh) | 生成、访问和显示沿袭元数据 | |
Gui et al. | IFC-based partial data model retrieval for distributed collaborative design | |
CN115203435A (zh) | 基于知识图谱的实体关系生成方法及数据查询方法 | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN111680083B (zh) | 智能化多级政府财政数据采集系统及数据采集方法 | |
CN111523921B (zh) | 漏斗分析方法、分析设备、电子设备及可读存储介质 | |
CN102707938A (zh) | 表形式软件规格制作支援方法及装置 | |
Haug | Bad big data science | |
CN114860819A (zh) | 商业智能系统的构建方法、装置、设备和存储介质 | |
Karataş et al. | Global constraints on feature models | |
Leifeld et al. | Package ‘btergm’ | |
CN109063097B (zh) | 基于区块链的数据对比及共识方法 | |
Aydin et al. | Data modelling for large-scale social media analytics: design challenges and lessons learned | |
Zhang et al. | Large Scale CVR Prediction through Hierarchical History Modeling | |
CN113641659B (zh) | 医疗特征数据库构建方法、装置、设备及存储介质 | |
JP2012252547A (ja) | コンテンツ管理システム、コンテンツ管理方法、コンテンツ管理プログラムおよびコンテンツ管理サーバ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |