CN114510410A - 合成去识别的测试数据 - Google Patents
合成去识别的测试数据 Download PDFInfo
- Publication number
- CN114510410A CN114510410A CN202111352718.3A CN202111352718A CN114510410A CN 114510410 A CN114510410 A CN 114510410A CN 202111352718 A CN202111352718 A CN 202111352718A CN 114510410 A CN114510410 A CN 114510410A
- Authority
- CN
- China
- Prior art keywords
- data
- test data
- organic
- entities
- processors
- 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/3692—Test management for test results analysis
-
- 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/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
实施例包括一种用于一个或多个处理器接收有机数据集和领域知识库的方法。该一个或多个处理器识别存在于有机数据集内的私有数据实体。该一个或多个处理器确定在有机数据集内识别的私有数据实体的统计属性。该一个或多个处理器通过从有机数据集中移除私有数据实体来创建多个测试数据模板。该一个或多个处理器从领域知识库选择分别与所移除的私有数据实体的数据类型匹配并且与私有数据实体的统计属性对准的合成数据实体,并且该一个或多个处理器通过分别将用于所移除的私有数据实体的匹配数据类型的合成数据实体插入到测试数据模板中来生成合成测试数据。
Description
技术领域
本发明一般涉及应用开发领域,尤其涉及从有机数据(organic data)生成去识别的(deidentified)测试数据集以测试开发中的应用。
背景技术
应用的有效性和性能取决于在生产准备就绪之前执行的测试。应用开发通常包括在应用组件被编码时测试它们,并且可以包括在组件被集成到应用的最终测试版本中时的若干测试层。应用测试的有效性通常取决于识别跨越应用预期执行的所有预期用途和条件的应用用例。
选择代表性数据集用于测试所开发的应用可成功地识别该应用的预期以及非预期操作。期望紧密反映应用的预期使用的测试数据。数据元素可以被称为数据实体,并且可以包括特定数据类型,诸如数字计数、财务数字、交易以及通常包括单词和短语的非结构化数据,并且也可以与数字数据混合。
发明内容
本发明的实施例公开了一种用于生成合成测试数据集的方法、计算机程序产品和系统。该方法提供一个或多个处理器来接收有机数据集和领域知识库。一个或多个处理器识别存在于有机数据集内的私有数据实体。一个或多个处理器确定在有机数据集中识别的私有数据实体的统计属性。一个或多个处理器通过从有机数据集中移除私有数据实体来创建多个测试数据模板。一个或多个处理器从领域知识库中选择分别与所移除的私有数据实体的数据类型匹配并且与私有数据实体的统计属性对准的合成数据实体,并且一个或多个处理器通过分别将用于所移除的私有数据实体的匹配数据类型的合成数据实体插入到测试数据模板中来生成合成测试数据。
附图说明
图1是示出根据本发明实施例的分布式数据处理环境的功能框图。
图2是描绘根据本发明实施例的在图1的分布式数据处理环境中操作的模型生成程序的操作步骤的流程图。
图3是描绘根据本发明实施例的在图1的分布式数据处理环境中操作的数据插入程序的操作步骤的流程图。
图4描绘了根据本发明的实施例的计算系统的组件的框图,该计算系统包括被配置为可操作地执行图2的模型生成程序和图3的数据插入程序的计算设备。
具体实施方式
本发明的实施例认识到,软件工程师和递送生产就绪软件的测试工程师通常需要包括各种拐角边缘(corner edge)情况的大量测试数据,以便保证所递送的软件满足规范要求。实施例认识到,一些解决方案提供直接使用有机数据的测试数据,该有机数据包含未编辑的、未过滤的数据元素,该数据元素可以用于基于数据内的私有识别实体来识别个体。私有识别实体包括将个体连接到私有实体信息的可以恶意方式使用和/或导致识别个体的数据和信息。有机数据的使用通常需要来自多个监督机构的批准,或者甚至可能需要来自数据集内表示的个体的批准。在一些情况下,有机数据的使用将执行软件测试的组暴露于隐私侵犯、法律后果,并且可能增加数据破坏的风险。
本发明的实施例认识到,为了克服有机数据使用的顾虑和风险,一些测试组织或提供商致力于人工产生合成数据,尝试包括与原始有机数据集相同的属性。这种努力是极其耗时的,因此不能代表与正在开发的软件的性能目的实时对应。必须生成考虑表示软件要求的每个场景的数据集,以及标准可重用方法以确保测试数据相对于实际数据集(即,有机数据)的充分覆盖通常不可用。
实施例还认识到,可以针对合成测试数据生成过程的部分尝试半自动测试数据生成。半自动生成依赖于由测试工程师创建的表示应用开发规范所需的特定拐角边缘用例的大规则集。通常将规则考虑为两种类型:数据规则和约束规则。数据规则基于数据集内固有的属性对原始有机数据集建模。示例包括规则的知识库集,其指定数据集中可以用合成实体替换的元素或实体。替换包括使用用于转换一个数据集的数据以生成具有合成实体的另一数据集的编程规则。
约束规则解决了数据本身不固有但与数据意图如何使用的方面和属性相关的数据的方面和属性。约束规则不能从数据本身推断,而是取决于数据使用的上下文,这需要手动指定约束,并且可以指定将数据限制到与特定测试场景相关的子集。本发明的实施例认识到,需要大量的建立准备来确定数据规则并为每个拐角测试用例预见和建立约束规则,并且规则的建立和准备对于半自动化生成所基于的有机数据集的改变是不可重复使用的。
本发明的实施例提供了一种用于从给定的有机测试数据源自动生成合成(即,人工)测试数据的方法、计算机程序产品和计算机系统,其中,数据内的私有实体标识符被移除,并且原始有机测试数据的合成数据实体、匹配数据类型和统计属性被插入到有机测试数据的模板化版本的占位符位置中。实施例提供了合成数据的完全自动化的生成,并且可以通过将细微的合成数据实体变化应用于有机数据集的识别的私有数据实体来提供与需求水平匹配的大量合成数据。实施例不需要冗长的努力来手动产生规则,然而,合成生成的数据集的部分可以被选择用于匹配拐角边缘情况测试,并且合成数据集的生成不依赖于特定有机数据,这使得能够跨多个有机数据集容易地使用。
现在将参照附图详细描述本发明。图1是示出根据本发明的实施例的分布式数据处理环境的功能框图,通常指定为100。图1仅提供了一种实现的图示,并且不暗示对其中可实现不同实施例的环境的任何限制。本领域技术人员可以对所描述的环境进行许多修改,而不偏离权利要求所陈述的本发明的范围。
分布式数据处理环境100包括服务器110、有机测试数据120、文本生成模型训练器130和领域知识库140,所有这些都经由网络150互连。网络150可以是例如局域网(LAN)、诸如因特网的广域网(WAN)、虚拟局域网(VLAN)或可以包括有线、无线或光连接的任何组合。通常,网络150可以是支持服务器110、有机测试数据120、文本生成模型训练器130和领域知识库140之间的通信和数据传输的连接和协议的任意组合。
有机测试数据120是源自真实世界数据的数据集合,其可包含被认为是标识其数据被包括在真实世界数据中的用户的元素的私有实体。有机测试数据120可以包括结构化和非结构化数据中的任一个或两者。有机测试数据120的数据实体包括单词、名称、数字、符号、关系、相关性或其它元素中的一个或组合,这些元素标识或有助于标识其数据被包括在有机测试数据120的真实世界数据源中的个体或个体的属性。有机测试数据120由数据所有者以原始形式提供,并且包括被认为是应用开发测试用例所需的属性和内容。有机非结构化数据的示例包括:“Mary Smith is 30 years old and has 2 younger sisters and 3older brothers and has lived in London for 5 years”。示例非结构化数据的数据实体包括:“<Mary><Smith><30><2><3><伦敦><5>”。尽管本发明的实施例适用于结构化和非结构化数据中的任一个或两者,但是为了方便和清楚起见,实施例概念的描述和讨论将针对非结构化数据。
文本生成模型训练器130接收去识别的测试数据模板,并用作模型生成程序200的训练数据,以创建生成与原始有机测试数据相对应的合成测试数据模板的模型。在本发明的一个实施例中,文本生成模型训练器130利用编码器-解码器模型生成方法(例如,序列到序列模型)。文本生成模型训练器130应用将单词向量与来自所接收的去识别的测试数据模板的状态向量相组合的神经网络(NN)函数。每个去识别的测试数据模板字或占位符被添加并被编码用于当前状态。从NN学习的权重提供关于如何组合过去信息(NN记忆向量)和当前信息(新字向量)的信息。从多个去识别的测试数据模板以及监督训练形成概率分布,以产生已训练的测试数据生成模型。
领域知识库140包括多个领域特定术语和数据元素,其提供用于填充去识别的测试数据模板以产生合成测试数据的替换单词和术语。领域知识库140可以是相似类型的单词、术语、数字或短语的集合。在本发明的一些实施例中,领域知识库140由名和姓的字典组成,并且包括国家、州或省、城市和街道的列表。在其它实施例中,领域知识库140具有位置(即,国家、州、城市、街道)的分类结构。
在其他实施例中,领域知识库140可以包括基于web的内容的部分,诸如DBpedia,其包括来自在维基百科项目中创建的信息的组织的内容。该结构化信息在万维网上可用,并允许用户语义地查询维基百科资源,包括到其它相关数据集的链接。DBpedia数据集的较早发布描述了6.0百万个实体,其中5.2百万个被分类在一致本体中,包括1.5M个人、810k个地点、135k个音乐专辑、106k个电影、20k个视频游戏、275k个组织、301k个物种和5k个疾病。领域知识库140可以包括数字数据、关系术语和在有机测试数据120中发现的其它数据类型。领域知识库140提供在合成测试数据的生成中使用的单词、数字和其它实体的源。
服务器110是托管模型生成程序200和数据插入程序300的计算设备,并且被配置为在分布式环境中操作。服务器110经由网络150通信地连接到有机测试数据120、文本生成模型训练器130和领域知识库140。在一些实施例中,服务器110可以是刀片服务器、web服务器、膝上型计算机、台式计算机、独立移动计算设备、智能电话、平板计算机或能够接收、发送和处理数据的其他电子设备或计算系统。在其他实施例中,服务器110可以是与在云计算环境中托管和操作的应用和服务交互的计算设备。在另一个实施例中,服务器110可以是上网本计算机、个体数字助理(PDA)或能够生成输入并将输入发送到事件日志程序300和从事件日志程序接收编程指令的另一个可编程电子设备。替代地,在一些实施例中,服务器110可以通信地连接到远程操作的模型生成程序200和数据插入程序300(未示出)。服务器110可以包括内部和外部硬件组件,在图4中更详细地描述。
模型生成程序200是被描述为在服务器110上运行的软件应用。模型生成程序200包括数据编目模块202、去识别模块204、统计分析模块206,并且经由网络150与文本生成模型训练器130通信地连接。模型生成程序200确定有机测试数据120的私有数据实体,生成去识别的测试数据模板,并确定数据内的统计属性和导出的规则。模型生成程序200与文本生成模型训练器130交互以创建合成测试数据生成模型。
数据编目模块202是模型生成程序200的组件模块。数据编目模块202接收有机测试数据120,并分析内容,识别私有数据实体。数据编目模块202对在有机测试数据120内识别的私有数据实体进行编目。在一些实施例中,通过使用数据保密工具包(DPT)来识别要保护的有机测试数据120内的私有数据实体。
去识别模块204是模型生成程序200的组件模块。去识别模块204提取由数据编目模块202识别的有机测试数据120的私有数据实体,并用对应于所提取的数据类型的模板占位符替换所提取的私有数据实体。去识别模块204对有机测试数据120的整个数据集执行提取-替换操作,这产生测试数据模板集,文本生成模型训练器130使用该测试数据模板集来生成并训练合成测试数据模型。
例如,数据编目模块202识别包括在有机测试数据120中的个体的名、姓和年龄。去识别模块204提取由数据编目模块202识别的第一名称,并用占位符(诸如<first_name>)替换所提取的第一名称。类似地,去识别模块204提取有机测试数据120中的姓,并用占位符<last_name>替换姓,以及用占位符<age>替换与相应个体的名和姓相关联的数字年龄。模型生成程序200将去识别的测试数据模板的集合发送到文本生成模型训练器130,以用于训练合成测试数据模型。
统计分析模块206是模型生成程序200的组件模块。统计分析模块206接收由数据编目模块202和去识别模块204编目的私有数据实体,并且执行分析以确定有机测试数据120的私有数据实体的统计属性。统计分析模块206产生统计签名,该统计签名包括私有数据实体的类型(即,姓名、位置、年龄、亲属)的分布和包括私有数据实体类型之间的相关性的属性。统计分析模块206产生作为有机测试数据120的数据集实体的特性的分析结果。
此外,统计分析模块206提供导出的约束规则,其捕获在数据实体之间发现的相关性,诸如与具有驾驶执照的个体相关联的年龄限制。统计分析模块206还提供描述实体的原始分布的私有数据实体的统计属性,诸如包括在有机测试数据120中的名为Mary的个体的数量,或者具有伦敦、柏林、纽约和多伦多的位置的个体的相对数量。统计分析模块206通过模仿所确定的有机测试数据120的模式,并通过将属性、相关性和规则信息包括到文本生成模型训练器130,将模式应用于合成测试数据,来维护统计属性和相关性。
数据插入程序300是被描述为在服务器110上运行的软件应用。数据生成程序300生成包括从有机测试数据确定的统计属性和导出规则的合成测试数据。数据插入程序300将相对于有机测试数据人工的数据实体插入到识别出的测试数据模板的占位符位置,从而匹配实体类型和特性。数据插入程序300创建合成测试数据,并且包括合成数据实体生成模块302、合成数据插入模块304和合成数据过滤器模块306。
合成数据实体生成模块302是数据插入程序300的组件模块,其接收由统计分析模块206确定的私有数据实体的统计属性,并将该特性应用于领域知识库140。合成数据实体生成模块302生成与有机测试数据120类似但不完全相同的合成数据实体;匹配数据类型,并且具有与有机测试数据120的私有数据实体相同的相关性、特性和统计属性。
合成数据插入模块304是数据插入程序300的组件模块。合成数据插入模块302利用合成测试数据模板和文本生成模型,通过在合成测试数据模板的占位符位置中插入相似类型的合成数据实体来替换在有机测试数据中发现的私有数据实体。合成数据插入模块304插入由合成测试数据模板的占位符指定的匹配类型的合成数据,并且保持原始测试数据的统计属性、相关性和特性。作为简单化的示例,如果原始有机测试数据集包括名为“Mary”和位置为“Paris”的特定频率,则合成数据插入模块304在诸如“Naomi”和“Berlin”的合成数据实体之间保持类似的频率。
合成数据过滤器模块306是数据插入程序300的组件模块,并且提供了基于正在开发的应用的用例的特定要求过滤所生成的合成测试数据以包括或排除合成测试数据的各部分的可选特征。合成数据过滤器模块306将手动产生的规则和约束应用于合成数据。例如,用于测试应用的特定用例可以应用于特定地理(诸如北美)或特定位置(诸如瑞士日内瓦)。合成数据过滤器模块306使得测试工程师能够对应用的某些拐角边缘测试区域实行控制。
如前所述,本发明的实施例也应用于结构化数据,其中在生成合成测试数据的过程中确定并维护方案和数据结构。
图2是描述根据本发明实施例的在图1的分布式数据处理环境100中操作的模型生成程序200的操作步骤的流程图。模型生成程序200向诸如序列到序列模型生成器等数据生成模型提供训练数据,并利用该模型来生成与在原始有机测试数据内确定的数据的统计属性、特征和模式对齐的合成数据实体。模型生成程序200包括先前讨论的数据编目模块202、去识别模块204和统计分析模块206。在此,关于模型生成程序200参考由模块执行的详细步骤。
模型生成程序200接收有机测试数据(步骤210)。模型生成程序200接收用于应用测试的数据集,该数据集包括被认为是私有的并且潜在识别个体或展示与个体相关联的私有或个人数据的原始实体。在本发明的一些实施例中,模型生成程序200存储将用于生成合成测试数据的有机测试数据,并且在创建文本生成模型和合成测试数据之后从所有存储器中删除所接收的原始测试数据。本发明的实施例认识到,为了使用原始测试数据的属性、内容类型和模式来生成合成测试数据,已经给予了适当的权威机构对最初接收有机测试数据的同意。
模型生成程序200执行有机测试数据的私有数据实体的编目(步骤220)。模型生成程序200分析所接收的有机测试数据内容,并识别包括在有机测试数据中的私有数据实体。在本发明的一些实施例中,通过使用正则表达式、字典或表征私有和敏感数据的代码的模式来识别私有数据实体,所述代码的模式诸如电子邮件中的“@”和域的检测、英语名称的字典、区域的有效Zip代码、或医学术语和条件/治疗代码。识别的私有数据实体包括被认为能够识别数据所应用的个体的内容,或者包括个体的个人或私有信息。模型生成程序200对在有机测试数据120内识别的私有数据实体进行编目,确定数据的类型,诸如名、姓、年龄、国家位置和城市位置。在一些实施例中,通过使用工具包来检测和管理数据隐私,来识别要保护的有机测试数据120内的私有数据实体。
例如,模型生成程序200分析有机测试数据120,并识别与包括在有机测试数据120中的个体相关联的私有数据实体。模型生成程序200标识实体并确定数据的类型,诸如名、姓、关系数据、位置数据和年龄数据。
模型生成程序200用模板占位符替换有机测试数据的私有数据实体(步骤230)。在确定了有机测试数据内的私有数据实体和私有实体的类型之后,模型生成程序200从原始有机测试数据提取私有数据实体,并且插入用于所提取的私有数据实体的占位符。原始的有机测试数据变成多个合成测试数据模板,这些模板保持它们的原始结构,但是包括占位符而不是私有数据实体。占位符包括指示已被提取的数据实体的类型的信息。
例如,模型生成程序200访问从有机测试数据120识别的编目的私有数据实体。模型生成程序200定位非结构化有机测试数据内的私有数据实体的每个实例,诸如名和姓,并提取名(即,Mary)和姓(即,Smith)的实例。模型生成程序200用占位符“first_name0001”替换由第一名称保存的位置,包括关于从有机数据内的位置提取的数据实体的类型的信息。该信息指示实体数据的类型,并且可以容纳实体数据的类型的多个实例,诸如名为“Mary”的100次出现。
模型生成程序200确定有机测试数据的私有数据实体的统计分布和属性(步骤240)。模型生成程序200执行对原始有机测试数据的编目私有数据实体的分析,其产生私有数据实体的统计属性,其可以包括实体的频率和实体之间的相关性。另外,模型生成程序200确定私有数据实体的特性和数据内的模式。例如,模型生成程序200确定在有机测试数据内存在827个名为“Mary”的实例,其中233个实例驻留在伦敦,但是不存在名为“Mary”的实例驻留在巴黎。模型生成程序200可确定名称为“Mary”的421个实例在35岁以下,但仅374个具有驾驶证。
模型生成程序200通过利用去识别的测试数据模板进行训练来创建数据生成模型(步骤250)。在一个实施例中,对于非结构化数据,模型生成程序200利用序列到序列神经网络模型和文本生成训练器应用,并将去识别的测试数据模板应用于训练器应用,以生成合成数据生成模型。在本发明的一些实施例中,文本生成训练器训练模型使模型生成程序200生成与原始有机测试数据相对应的合成测试数据模板,而无需私有数据实体。
在本发明的一个实施例中,模型生成程序200利用编码器-解码器模型生成方法(例如,序列到序列模型)。模型生成程序200应用神经网络(NN)模型,例如,将单词嵌入向量与来自所接收的去识别的测试数据模板的状态向量组合。每个去识别的测试数据模板字或占位符被添加并被编码用于当前状态。从NN学习的权重提供关于如何组合过去信息(NN记忆向量)和当前信息(新字向量)的信息。从多个去识别的测试数据模板以及监督训练形成概率分布,以产生已训练的测试数据生成模型。文本生成训练器130接收去识别的测试数据模板,将权重应用于模板的非结构化单词成分和占位符,使得模型可通过将单词添加到模板使模板的其余部分有意义来替换占位符。模型生成程序200产生合成测试数据模型,该合成测试数据模型可以通过重复地将不同的术语应用于占位符、记住应用于占位符的先前的单词/术语、以及随后应用新的术语来产生模板句子/短语的多个版本。
模型生成程序200将数据生成模型提供给数据插入程序300(步骤260)。在生成了数据生成模型(对于一些非结构化数据,文本生成模型)之后,模型生成程序200向数据生成模型提供对数据插入程序300的访问并结束。在本发明的一些实施例中,通过提交新的或附加的有机测试数据集,并通过模型生成程序200进行处理,来改变数据生成模型。
图3是描述根据本发明实施例的在图1的分布式数据处理环境中操作的数据插入程序300的操作步骤的流程图。数据插入程序300访问由模型生成程序200创建的数据生成模型,并且通过插入合成测试数据模板的占位符的合成数据实体来生成合成测试数据。
数据插入程序300接收数据实体的统计分布和属性(步骤310)。数据插入程序300接收在模型生成程序200对原始有机测试数据的分析期间确定的统计属性、相关性、模式和特性。数据插入程序300利用有机测试数据的统计属性来确定应用于合成数据实体的频率、相关性和模式,以保持原始有机测试数据的特性。
例如,数据插入程序300从模型生成程序200的统计分析模块206执行的分析接收统计属性和相关性以及有机测试数据120的模式。统计属性可以指示私有数据实体的频率,诸如名,并且包括与其他私有数据实体的相关性,诸如位置和年龄。数据插入程序300保留统计属性、相关性和模式以应用于合成测试数据的生成,从而保持与有机测试数据120的相似性。
数据插入程序300接收领域知识库内容(步骤320)。数据插入程序300访问和接收领域知识库内容,该内容包括用于特定数据领域的大量数据实体,诸如个体的个体信息。在一些实施例中,数据插入程序300访问并接收来自多个领域知识库的内容,所述内容对应于有机测试数据的数据实体类型。数据插入程序300确定与包括在有机测试数据的统计属性中的私有数据实体的数据类型匹配的领域知识库的数据实体内容。在一些实施例中,非结构化有机测试数据的领域知识库可以包括字、名称、位置的词典,或者可以包括位置的分类(即,国家、州/省、城市、街道)或其他数据集。
数据插入程序300选择合成数据实体(步骤330)。数据插入程序300将从原始有机测试数据确定的统计属性、相关性和模式应用于领域知识库的内容,并选择与数据类型匹配且与有机测试数据的私有数据实体相似的数据实体。例如,数据插入程序300访问领域知识库140,并且确定知识库包括名、姓、年龄、位置城市和关系类型的列表。在该示例中,原始有机测试数据包括名和姓以及位置城市的列表。数据插入程序300从领域知识库140的内容中选择名、姓和位置城市的列表,不包括年龄和关系类型的数据实体。
数据插入程序300通过将合成数据实体插入到相应的合成测试数据模板中来生成合成测试数据(步骤340)。数据插入程序300接收包括占位符的相应合成测试数据模板,并且每个占位符指示被替换的特定数据类型。数据插入程序300插入从领域知识库获取的合成数据实体,以代替用于每个相应的合成测试数据模板的占位符。合成测试数据模板保持非结构化数据的原始格式。数据插入程序300将从领域知识库中选择的、并且对应于原始有机测试数据的相同数据类型的合成数据实体插入占位符位置。
例如,数据插入程序300接收合成测试数据模板,该合成测试数据模板从有机测试数据120产生并且包括用于所提取的私有数据实体的占位符。数据插入程序300插入合成数据实体,诸如名“Naomi”,其已经从领域知识库140中被选择,并且其对应于从与占位符相关联的信息中指示的数据类型“first name”。当合成数据实体被插入合成测试数据模板中时,数据插入程序300保持与有机测试数据120相关联的统计属性和相关性。
数据插入程序300通过应用数据导出的和手动输入的约束来过滤合成测试数据(步骤350)。由模型生成程序200执行的对有机测试数据和所提取的私有数据实体的分析包括确定除了统计属性和相关性之外的在数据本身内导出的规则。数据插入程序300在执行合成数据实体的选择和插入时应用导出的规则,从而导致过滤被插入到合成测试数据模板的占位符位置的合成测试数据实体。
例如,导出的规则可以确定原始的有机测试数据不包括与名“Mary”和城市位置“Paris”组合相关联的任何数据。类似地,包括关于具有驾驶执照的个体的信息的测试数据将具有最小年龄水平,因为直到个体达到合法驾驶年龄才能获得驾驶执照。因此,综合测试数据将反映具有驾驶执照并且具有等于或大于最低合法驾驶年龄的个体的类似关联。
另外,数据插入程序300可以接收要应用于合成测试数据的生成的一组可选的约束规则,从而提供附加的过滤。例如,对于应用测试的特定拐角边缘用例,可能需要将合成测试数据减少到特定的使用期限范围或位置的子集。约束规则被手动输入到数据插入程序300,其在生成和过滤包括合成数据实体的所得合成测试数据时应用附加约束。数据插入程序300移除不符合过滤规则的合成测试数据。作为另一示例,来自用于在线购买的信用卡的使用的电子购买交易数据通常包括正数量,然而,在退款或调整的情况下,交易可包括负数量。应用测试工程师可以手动地指示约束以在合成测试数据中包括负交易量。
数据插入程序300生成合成测试数据(步骤360)。数据插入程序300完成针对相应合成测试数据模板的合成数据实体插入,并应用数据导出规则和手动添加的约束规则,这产生合成测试数据。在本发明的实施例中,合成测试数据的数量不受原始有机测试数据的数量的限制。通过改变对合成数据实体的选择,并且包括来自领域知识库的附加数据实体作为源,数据插入程序300可以产生几乎无限量的测试数据,同时保持在原始有机数据集内确定的属性和相关性。在生成了合成测试数据之后,数据生成程序300结束。
图4描绘了根据本发明实施例的计算系统的组件的框图,该计算系统包括计算设备405,其被配置为包括或可操作地连接到图1中描述的组件,并具有分别可操作地执行图2和3的模型生成程序200和数据插入程序300的能力。
根据本发明的说明性实施例,计算设备405包括与服务器110(图1)的组件类似的组件和功能能力。应当理解,图4仅提供了一种实现的图示,而不暗示对其中可实现不同实施例的环境的任何限制。可以对所描述的环境进行许多修改。
计算设备405包括通信结构402,其提供计算机处理器404、存储器406、永久性存储408、通信单元410、输入/输出(I/O)接口412之间的通信。通信结构402可以用被设计成在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其它硬件组件之间传递数据和/或控制信息的任何架构来实现。例如,通信结构402可以用一个或多个总线来实现。
存储器406、高速缓存存储器416和持久性存储408是计算机可读存储介质。在该实施例中,存储器406包括随机存取存储器(RAM)414。通常,存储器406可以包括任何合适的易失性或非易失性计算机可读存储介质。
在一个实施例中,模型生成程序200和数据插入程序300存储在永久性存储408中,以便由相应计算机处理器404中的一个或多个经由存储器406的一个或多个存储器来执行。在该实施例中,永久性存储408包括磁硬盘驱动器。作为磁硬盘驱动器的替代或补充,永久性存储408可包括固态硬盘驱动器、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存或能够存储程序指令或数字信息的任何其它计算机可读存储介质。
永久性存储408所使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储408。其它示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便传送到也是持久存储408的一部分的另一计算机可读存储介质上。
在这些示例中,通信单元410提供与包括分布式数据处理环境100的资源在内的其他数据处理系统或设备的通信。在这些示例中,通信单元410包括一个或多个网络接口卡。通信单元410可以通过使用物理和无线通信链路中的一种或两种来提供通信。模型生成程序200和数据插入程序300可以通过通信单元410下载到永久性存储408。
I/O接口412允许与可连接到计算系统400的其它设备输入和输出数据。例如,I/O接口412可以提供到诸如键盘、小键盘、触摸屏和/或一些其它合适的输入设备的外部设备418的连接。外部设备418还可以包括便携式计算机可读存储介质,诸如例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据(例如模型生成程序200和数据插入程序300)可以存储在这种便携式计算机可读存储介质上,并且可以经由I/O接口412加载到永久性存储408上。I/O接口412还连接到显示器420。
显示器420提供向用户显示数据的机制,并且可以是例如计算机监视器。
这里描述的程序是基于在本发明的特定实施例中实现它们的应用来标识的。然而,应当理解,这里的任何特定程序术语仅是为了方便而使用,因此本发明不应当限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或媒介),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保持和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码设备,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,诸如Smalltalk、C++等)和过程式编程语言(例如“C”编程语言或类似的编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机的处理器或其他可编程数据处理装置以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
Claims (9)
1.一种用于生成合成测试数据集的方法,所述方法包括:
由一个或多个处理器接收有机数据集和领域知识库;
由所述一个或多个处理器识别存在于所述有机数据集内的私有数据实体;
由所述一个或多个处理器确定在所述有机数据集内识别的所述私有数据实体的统计属性;
由所述一个或多个处理器通过从所述有机数据集中移除所述私有数据实体来创建多个测试数据模板;
由所述一个或多个处理器从所述领域知识库选择合成数据实体,所述合成数据实体分别匹配所移除的私有数据实体的数据类型,并且与所述私有数据实体的所述统计属性对准;以及
由所述一个或多个处理器通过分别将用于所移除的私有数据实体的匹配数据类型的所述合成数据实体插入所述测试数据模板中来生成合成测试数据。
2.根据权利要求1所述的方法,还包括:
由所述一个或多个处理器使用序列到序列模型来生成测试数据生成模型;以及
由所述一个或多个处理器基于所述多个测试数据模板和所述有机数据集的识别的私有数据实体的所述统计属性来训练所述测试数据生成模型。
3.根据权利要求1所述的方法,还包括:
由所述一个或多个处理器确定适用于由所述有机数据集的统计分析导出的所述合成测试数据的规则;
由所述一个或多个处理器基于由所述有机数据集的所述统计分析导出的所述规则来过滤所述合成测试数据;以及
由所述一个或多个处理器从所述合成测试数据移除不符合由所述有机数据集的所述统计分析导出的所述规则的合成测试数据。
4.根据权利要求1所述的方法,还包括:
由所述一个或多个处理器用占位符替换从所述有机数据集中移除的所述私有数据实体;以及
由所述一个或多个处理器利用所述占位符包括被移除的所述私有数据实体的数据类型的指示符。
5.根据权利要求1所述的方法,其中,确定所述有机数据集的所述私有数据实体的所述统计属性还包括:
由所述一个或多个处理器确定有机数据集内的所述私有数据实体之间的相关性以及所述所述私有数据实体的模式。
6.根据权利要求1所述的方法,其中,所述合成测试数据是通过约束规则被过滤的,所述约束规则是手动输入的并且对应于拐角用例测试。
7.根据权利要求1所述的方法,其中,基于改变从所述领域知识库选择的所述合成数据实体,生成满足所需量的所述合成测试数据的量。
8.一种用于生成合成测试数据集的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质,以及存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括用于实现权利要求1-7中的一项中的步骤的程序指令。
9.一种用于生成合成测试数据集的计算机系统,所述计算机系统包括:
一个或多个计算机处理器;
一个或多个计算机可读存储介质,以及存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令用于实现权利要求1-7中的一项中的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/098,549 | 2020-11-16 | ||
US17/098,549 US11392487B2 (en) | 2020-11-16 | 2020-11-16 | Synthetic deidentified test data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114510410A true CN114510410A (zh) | 2022-05-17 |
CN114510410B CN114510410B (zh) | 2023-04-28 |
Family
ID=81547481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111352718.3A Active CN114510410B (zh) | 2020-11-16 | 2021-11-16 | 合成去识别的测试数据 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11392487B2 (zh) |
JP (1) | JP2022079438A (zh) |
CN (1) | CN114510410B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042583A1 (en) * | 2008-08-13 | 2010-02-18 | Gervais Thomas J | Systems and methods for de-identification of personal data |
CN107851465A (zh) * | 2015-07-29 | 2018-03-27 | 皇家飞利浦有限公司 | 经改变的数据集的数据分析中的可靠性度量 |
CN108242234A (zh) * | 2018-01-10 | 2018-07-03 | 腾讯科技(深圳)有限公司 | 语音识别模型生成方法及其设备、存储介质、电子设备 |
CN108399130A (zh) * | 2018-02-28 | 2018-08-14 | 平安科技(深圳)有限公司 | 自动生成测试案例的方法、装置、设备及可读存储介质 |
CN109543183A (zh) * | 2018-11-16 | 2019-03-29 | 西安交通大学 | 基于深度神经网络和标注策略的多标签实体-关系联合提取方法 |
CN110083814A (zh) * | 2019-04-09 | 2019-08-02 | 大唐微电子技术有限公司 | 一种报表生成方法和装置、计算机可读存储介质 |
US20200012934A1 (en) * | 2018-07-06 | 2020-01-09 | Capital One Services, Llc | Automatically scalable system for serverless hyperparameter tuning |
CN111417954A (zh) * | 2017-12-15 | 2020-07-14 | 国际商业机器公司 | 基于数据去标识过程的可允许配置的检测的数据去标识 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084531A2 (en) * | 2001-04-10 | 2002-10-24 | Univ Carnegie Mellon | Systems and methods for deidentifying entries in a data source |
US8862557B2 (en) | 2009-12-23 | 2014-10-14 | Adi, Llc | System and method for rule-driven constraint-based generation of domain-specific data sets |
EP2597573B1 (en) | 2011-11-28 | 2018-08-29 | Tata Consultancy Services Limited | Test data generation |
US10467039B2 (en) * | 2017-08-07 | 2019-11-05 | Open Data Group Inc. | Deployment and management platform for model execution engine containers |
US20190362222A1 (en) * | 2018-05-22 | 2019-11-28 | Adobe Inc. | Generating new machine learning models based on combinations of historical feature-extraction rules and historical machine-learning models |
-
2020
- 2020-11-16 US US17/098,549 patent/US11392487B2/en active Active
-
2021
- 2021-11-12 JP JP2021185218A patent/JP2022079438A/ja active Pending
- 2021-11-16 CN CN202111352718.3A patent/CN114510410B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100042583A1 (en) * | 2008-08-13 | 2010-02-18 | Gervais Thomas J | Systems and methods for de-identification of personal data |
CN107851465A (zh) * | 2015-07-29 | 2018-03-27 | 皇家飞利浦有限公司 | 经改变的数据集的数据分析中的可靠性度量 |
CN111417954A (zh) * | 2017-12-15 | 2020-07-14 | 国际商业机器公司 | 基于数据去标识过程的可允许配置的检测的数据去标识 |
CN108242234A (zh) * | 2018-01-10 | 2018-07-03 | 腾讯科技(深圳)有限公司 | 语音识别模型生成方法及其设备、存储介质、电子设备 |
CN108399130A (zh) * | 2018-02-28 | 2018-08-14 | 平安科技(深圳)有限公司 | 自动生成测试案例的方法、装置、设备及可读存储介质 |
US20200012934A1 (en) * | 2018-07-06 | 2020-01-09 | Capital One Services, Llc | Automatically scalable system for serverless hyperparameter tuning |
CN109543183A (zh) * | 2018-11-16 | 2019-03-29 | 西安交通大学 | 基于深度神经网络和标注策略的多标签实体-关系联合提取方法 |
CN110083814A (zh) * | 2019-04-09 | 2019-08-02 | 大唐微电子技术有限公司 | 一种报表生成方法和装置、计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
ARMIN GERL 等: ""Policy-Based De-Identification Test Framework"" * |
都丽婷: "\"临床文本数据信息挖掘去识别技术研究\"" * |
Also Published As
Publication number | Publication date |
---|---|
US11392487B2 (en) | 2022-07-19 |
CN114510410B (zh) | 2023-04-28 |
US20220156177A1 (en) | 2022-05-19 |
JP2022079438A (ja) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177569B (zh) | 基于人工智能的推荐处理方法、装置及设备 | |
CN109635298B (zh) | 团体状态识别方法、装置、计算机设备及存储介质 | |
US10713423B2 (en) | Content adjustment and display augmentation for communication | |
CN104050224B (zh) | 组合不同类型强制组件以实现延迟类型评估的方法和系统 | |
US10546054B1 (en) | System and method for synthetic form image generation | |
CN107644011A (zh) | 用于细粒度医疗实体提取的系统和方法 | |
CN110263157B (zh) | 一种数据风险预测方法、装置及设备 | |
CN106155686A (zh) | 界面生成方法、装置和系统 | |
CN111967242A (zh) | 一种文本信息的抽取方法、装置及设备 | |
WO2022048363A1 (zh) | 网站分类方法、装置、计算机设备及存储介质 | |
US11178022B2 (en) | Evidence mining for compliance management | |
US20220398379A1 (en) | Content tailoring for diverse audiences | |
US20220269820A1 (en) | Artificial intelligence based data redaction of documents | |
CN111723870B (zh) | 基于人工智能的数据集获取方法、装置、设备和介质 | |
CN114510410B (zh) | 合成去识别的测试数据 | |
CN116797195A (zh) | 工单处理方法、装置、计算机设备和计算机可读存储介质 | |
CN111859985B (zh) | Ai客服模型测试方法、装置、电子设备及存储介质 | |
CN116601644A (zh) | 使用分布式分类账提供可解释的机器学习模型结果 | |
CN113158635A (zh) | 电子报表生成方法及装置 | |
Saxena et al. | Towards recommendations from user-specific insights based on historical legal cases | |
Bansal et al. | Literature review of finding duplicate bugs in open source systems | |
US20240161109A1 (en) | Distributed evaluation platform for nonfungible tokens using virtual token cloning | |
CN116702834B (zh) | 数据生成方法、数据生成装置及计算机可读存储介质 | |
CN113609391B (zh) | 事件识别方法及装置、电子设备、介质和程序 | |
Moghaddam et al. | Generating Examples From CLI Usage: Can Transformers Help? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |