CN104063314A - 一种测试数据自动生成装置及方法 - Google Patents
一种测试数据自动生成装置及方法 Download PDFInfo
- Publication number
- CN104063314A CN104063314A CN201410213844.4A CN201410213844A CN104063314A CN 104063314 A CN104063314 A CN 104063314A CN 201410213844 A CN201410213844 A CN 201410213844A CN 104063314 A CN104063314 A CN 104063314A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- metadata
- test
- boolean
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种测试数据自动生成装置及方法,其中,装置包括:数据存储单元存储测试对象、元数据关系信息和元数据字典值;样本数据抽取单元根据所述元数据关系信息获取样本数据;数据解析单元根据元数据字典值对测试对象进行分层解析,获得布尔矩阵和布尔列表;测试路径生成单元根据剪枝策略对布尔矩阵和布尔列表的冗余部分、冲突部分处理获得测试路径的节点、布尔列表的有效取值范围及无效取值范围;数据路径生成单元根据测试对象及元数据关系信息获取数据路径的节点,并利用数据路径的节点、样本数据、布尔列表的有效取值范围及无效取值范围生成数据路径节点数据;测试数据生成单元根据数据路径节点数据来完成测试数据的自动化生成。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种测试数据自动生成装置及方法。
背景技术
随着大数据时代的来临,业务对技术的依赖程度越来越高,同时对软件的质量、研发周期也提出了更高的要求,而软件测试作为产品质量的守护者,更亟需寻求一种新思路、新方法来应对大规模研发下的软件质量和测试效率的问题。
过去,一个项目由多名测试人员共同测试,测试时间充裕,人力资源充足,手工设计测试路径、手工设计测试数据、人工进行测试结果的核对可基本保证测试质量。而如今,简单的手工操作已无法满足高时效、高强度研发下对软件质量的要求,主要存在的问题如下:
1、测试设计的全手工操作容易导致测试要点遗漏、测试路径覆盖不全等问题,测试质量无法保证。
2、测试资产缺乏合理地管理,测试过程的输出物得不到有效的复用,使得资源利用率低,且重复的测试分析、测试设计造成大量的资源浪费。
3、手工设计的测试数据质量不高,大量不符合业务含义的异常数据需要在测试执行阶段反复修正,数据质量难以满足测试要求,测试效率也难以提升。
4、测试准备的自动化程度不高,大量重复的手工操作,使人力资源无法释放,从而影响下个版本的人员投入,容易形成恶性循环。
发明内容
为了克服目前测试中存在的测试要点遗漏、测试路径覆盖不全、测试数据不符合业务含义以及大量重复手工操作等问题,本发明提出了一种测试数据自动生成装置及方法,保证了测试数据的质量,有效提升了测试效率。
为实现上述目的,本发明提供了一种测试数据自动生成装置,所述装置包括:
数据存储单元、样本数据抽取单元、数据解析单元、测试路径生成单元、数据路径生成单元和测试数据生成单元;其中,
所述数据存储单元,用于存储测试对象、元数据关系信息和元数据字典值;
所述样本数据抽取单元,用于根据所述元数据关系信息建立业务模型,根据所述业务模型获取样本数据;
所述数据解析单元,用于根据所述元数据字典值对所述测试对象进行分层解析,获得布尔矩阵和布尔列表;
所述测试路径生成单元,用于根据剪枝策略对所述布尔矩阵和布尔列表的冗余部分、冲突部分进行合并、剪裁,生成测试路径的节点、布尔列表的有效取值范围以及无效取值范围;
所述数据路径生成单元,用于根据所述测试对象、所述元数据关系信息以及所述测试路径获取数据路径的节点,并利用所述数据路径的节点、所述样本数据、所述布尔列表的有效取值范围以及无效取值范围生成了数据路径节点数据;
所述测试数据生成单元,用于根据所述数据路径节点数据,运用模拟策略生成宽表数据,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将所述宽表数据回填至基础表中,完成测试数据的自动化生成。
可选的,在本发明一实施例中,所述数据存储单元还用于存储元数据基本信息、所述样本数据抽取单元获得的样本数据以及所述测试数据生成单元生成的测试数据。
可选的,在本发明一实施例中,所述数据存储单元包括元数据存储模块、元数据关系存储模块、元数据字典值存储模块、样本数据存储模块、测试对象存储模块以及基础表数据存储模块;
所述元数据存储模块,用于存储元数据基本信息,所述元数据基本信息包括测试对象中涉及的业务元数据以及测试数据生成单元需要用到的技术元数据;
所述元数据关系存储模块,用于存放样本数据抽取单元中建业务模型需要的业务元数据关系、数据路径生成单元中需要用到的技术元数据相关关系及测试数据生成单元中涉及到的业务与技术的转换关系;
所述元数据字典值存储模块,用于数据解析单元中的节点值域解析以及测试数据生成单元中生成基础表的数据;
所述样本数据存储单元,用于所述数据路径生成单元生成的数据路径节点数据及所述测试数据生成单元生成的基础表中的数据;
所述测试对象存储模块,用于存储测试对象;
所述基础表数据存储模块,用于存储所述测试数据生成单元生成的修改后的基础 表数据,即测试数据。
可选的,在本发明一实施例中,所述样本数据存储模块包括模型样本数据存储子模块和独立样本数据存储子模块;其中,
所述模型样本数据存储子模块,用于存储了根据所述样本数据抽取单元中的业务模型抽取的生产数据;其中,所述生产数据为数据之间存在一定的相关性,用于表示被关注某些特征的样本数据;
所述独立样本数据存储子模块,用于存储所述样本数据抽取单元抽取的具有独立含义的生产数据;其中,所述独立含义的生产数据为一个独立的数据集合,可用于标识不被关注特征的样本数据。
可选的,在本发明一实施例中,所述测试对象存储模块包括统计规则存储子模块、统计对象存储子模块、统计维度存储子模块以及接口数据存储子模块;其中,
所述统计规则存储子模块,用于存储测试对象中单个统计规则以及统计规则关系;其中,所述统计规则关系为在获取统计对象过程中需要遵循的筛选规则,用于标识统计对象的某些特征;
所述统计对象存储子模块,用于存储统计的内容;
所述统计维度存储子模块,用于存储统计信息展现的粒度;
所述接口数据存储子模块,用于存储测试对象涉及的应用、表信息;
可选的,在本发明一实施例中,所述样本数据抽取单元包括模型生成模块和数据抽取模块;其中,
所述模型生成模块,用于根据数据存储单元中的业务元数据关系,将具有业务相关性的业务元数据组合起来,通过关联相关的元数据关系建立针对不同主体具有某些特征的业务模型;
所述数据抽取模块,用于根据数据存储单元中的业务元数据与技术元数据关系,将基础表中的生产数据转换为业务元数据的生产数据,并根据模型生成模块建立的业务模型,将模型中涉及的业务元数据以集合的形式一并抽出,作为业务模型的样本数据;对于业务模型中不涉及的独立的业务元数据,则单独获取生产数据的不同值,作为独立样本数据。
可选的,在本发明一实施例中,所述数据解析单元包括:词法分析模块、语法分析模块、语义分析模块、布尔矩阵生成模块和布尔列表生成模块;其中,
所述词法分析模块,用于负责扫描所述数据存储单元中的统计规则关系,对每个扫描到的统计规则关系进行识别,根据识别结果对每个扫描到的统计规则关系按表达式的形式进行表达,并对每个表达式进行结构化拆分;
所述语法分析模块,用于负责将所述词法分析模块输出的经过结构化拆分的统计规则关系表达式进行转换,将中缀表达式用堆栈算法转换成后缀表达式,转换后的后缀表达式已去除括号因素,且按运算的优先级顺序排列;
所述语义分析模块,用于对所述语法分析模块输出的结构化后缀表达式运用布尔运算法则进行关系解析,同时,解析每个统计规则关系的值域范围;
所述布尔矩阵生成模块,用于根据所述语义分析模块中统计规则关系解析的结果生成布尔矩阵;
所述布尔列表生成模块,用于根据所述语义分析模块中值域解析的结果生成布尔列表。
可选的,在本发明一实施例中,所述词法分析模块包括扫描子模块、判定子模块和拆分子模块;其中,
所述扫描子模块,用于负责读入统计规则关系的表达式,从左至右逐个元素进行扫描,在扫描的过程中过滤掉空格标识、制表符标识、换行符标识;
所述判定子模块,用于负责对所述扫描子模块输出的信息的属性进行识别;
所述拆分子模块,用于负责根据所述判定子模块的识别结果,对所述统计规则关系进行拆分,以单个表达式为单位拆分为变量、运算符和值,以统计规则关系为单位拆分成表达式和属性,并以扫描的顺序进行排列后输出至所述语法分析模块。
可选的,在本发明一实施例中,所述语义分析模块包括:关系解析子模块和值域解析子模块;其中,
所述关系解析子模块,用于根所述据语法分析模块中的后缀表达式的关系运算符,结合布尔运算法则,对统计规则关系进行解析,获得表达式在不同组合下的输出结果;
所述值域解析子模块,用于根据所述词法分析模块中对每个表达式的结构化拆分结果,结合运算符的解析和取值策略,解析出每个表达式对应地有效、无效取值范围。
可选的,在本发明一实施例中,所述测试路径生成单元包括:决策树剪枝模块和决策树生成模块;其中,
所述决策树剪枝模块,用于根据剪枝策略对布尔矩阵和布尔列表中的冗余组合和冲突组合进行合并、裁剪;
所述决策树生成模块,用于根据所述决策树剪枝模块输出的经过剪枝后的布尔矩阵和布尔列表,组合表达式的布尔取值以及表达式的有效、无效取值范围,生成最终的决策树,也即测试路径。
可选的,在本发明一实施例中,所述数据路径生成单元包括路径节点选取模块和路径数据生成模块;其中,
所述路径节点选取模块,用于负责根据所述测试路径,结合所述数据存储单元中统计对象、统计维度以及元数据关系信息,组成数据路径的节点;
所述路径数据生成模块,用于负责根据所述路径节点选取模块中生成的所述数据路径的节点,结合样本数据以及所述测试路径生成单元中统计规则的有效、无效取值范围获得具有符合业务含义的数据路径节点数据。
可选的,在本发明一实施例中,所述测试数据生成单元包括数据结构获取模块、数据模拟模块和数据回填模块;其中,
所述数据结构获取模块,用于负责根据所述数据存储单元中的技术元数据基本信息获取表结构信息;
所述数据模拟模块,用于负责根据数据模拟策略对数据路径的节点中未涉及的业务元数据进行模拟,根据业务与技术元数据字典值关系及样本数据,对数据路径的节点中涉及的业务元数据生成宽表数据;
所述数据回填模块,用于负责根据技术元数据关系中的主辅数据源关系以及主外键关系,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将宽表数据回填回基础表,完成测试数据的自动化生成。
为实现上述目的,本发明还提供了一种测试数据自动生成方法,所述方法包括:
存储测试对象、元数据关系信息和元数据字典值;
根据所述元数据关系信息建立业务模型,根据所述业务模型获取样本数据;
根据所述元数据字典值对所述测试对象进行分层解析,获得布尔矩阵和布尔列表;
根据剪枝策略对所述布尔矩阵和布尔列表的冗余部分、冲突部分进行合并、剪裁,生成测试路径的节点、布尔列表的有效取值范围以及无效取值范围;
根据所述测试对象、所述元数据关系信息以及所述测试路径获取数据路径的节点,并利用所述数据路径的节点、所述样本数据、所述布尔列表的有效取值范围以及无效取值范围生成了数据路径节点数据;
根据所述数据路径节点数据,运用模拟策略生成宽表数据,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将所述宽表数据回填至基础表中,完成测试数据的自动化生成。
可选的,在本发明一实施例中,所述方法还包括:
存储元数据基本信息、所述样本数据以及所述测试数据。
本发明通过对测试对象进行自动解析,以结构化的形式进行拆分,并利用元数据关系、元数据字典值以及样本数据,完成从测试路径生成到测试数据生成的自动化。与传统的方法相比,本技术方案的效果和优点体现在以下几个方面:
1、自动化程度高
测试设计过程中充分利用元数据资源,并对测试对象进行自动解析,实现测试路径、测试数据的自动生成。
2、资源复用性好
测试分析的输出物及样本数据、元数据关系、元数据字典值等资源在数据存储单元中以结构化的形式存储、管理,使资源可以重复利用,满足了资源的复用性要求。
3、测试路径覆盖面全
通过自动解析统计规则关系,生成覆盖统计规则的测试路径,避免了测试要点遗漏,实现了测试路径的全覆盖。
4、测试数据质量高
测试数据的生成充分利用了业务模型、样本数据以及元数据字典值,还原了业务数据的相关性和真实性,保证了数据质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提出的一种测试数据自动生成装置框图;
图2为本发明提出的一种测试数据自动生成方法流程图;
图3为本实施例提供的一种测试数据自动生成装置的结构图;
图4为本实施例的装置中数据存储单元1的结构图;
图5为本实施例的装置中样本数据存储模块14的结构图;
图6为本实施例的装置中测试对象存储模块15的结构图;
图7为本实施例的装置中样本数据抽取单元2的结构图;
图8为本实施例的装置中数据解析单元3的结构图;
图9为本实施例的装置中词法分析模块31的结构图;
图10为本实施例的装置中语义分析模块33的结构图;
图11为本实施例的装置中测试路径生成单元4的结构图;
图12为本实施例的装置中数据路径生成单元5的结构图;
图13为本实施例的装置中测试数据生成单元的结构图;
图14为本实施例的装置自动生成测试数据的方法流程图;
图15为本实施例的决策树生成模块最终生成的决策树示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种根据测试对象自动解析测试路径并生成测试数据的自动化装置和方法。该方法采用结构化存储的方式对测试资产进行有效管理,并对测试对象进行分层解析,依次实现关系和节点值域的解析,在模拟数据时采用业务模型驱动的样本数据及模拟策略相结合的数据模拟方式,最大程度上提升了测试在业务含义上的正确性以及覆盖面,并在最终生成测试数据时采用先“宽表”后“回填”的方式,真正实现了测试设计和测试数据的松耦合,有效提升了测试数据的复用性,更好的满足了高时效、高强度研发背景下对软件质量和测试效率的要求,完成了覆盖业务含义的测试数据的自动生成。
首先对本文涉及的术语进行说明:
元数据——提供关于信息资源或数据的一种结构化的数据,用于描述数据的内容,覆盖范围、质量、管理方式、数据的所有者、数据的提供方式等信息,是数据与 数据用户之间的桥梁。元数据按用途分成业务元数据和技术元数据。
业务元数据——定义了和业务相关的数据信息,包含业务规则、定义、术语和系统使用的业务语言等,提供了介于使用者和实际系统之间的语义层,是对IT系统的数据和处理规则的业务化描述。
技术元数据——定义了和技术细节相关的数据信息,包括表、字段定义、字典值、数据的存放位置、数据的存储类型、数据的血缘关系等,提供了IT基础架构中对数据的说明以及数据在IT环境之中的流转信息,偏重于数据结构以及数据处理细节方面的技术化描述。
主数据源——每一项数据都必须唯一确定一个应用负责进行管理,该应用称为数据的拥有者,拥有者管理的数据称主数据源。
辅数据源——从系统访问效率考虑,允许将部分数据复制、冗余存放到其它应用,该冗余数据称为辅数据源。
如图1所示,为本发明提出的一种测试数据自动生成装置框图。所述装置包括:
数据存储单元101、样本数据抽取单元102、数据解析单元103、测试路径生成单元104、数据路径生成单元105和测试数据生成单元106;其中,
所述数据存储单元101,用于存储测试对象、元数据关系信息和元数据字典值;
所述样本数据抽取单元102,用于根据所述元数据关系信息建立业务模型,根据所述业务模型获取样本数据;
所述数据解析单元103,用于根据所述元数据字典值对所述测试对象进行分层解析,获得布尔矩阵和布尔列表;
所述测试路径生成单元104,用于根据剪枝策略对所述布尔矩阵和布尔列表的冗余部分、冲突部分进行合并、剪裁,生成测试路径的节点、布尔列表的有效取值范围以及无效取值范围;
所述数据路径生成单元105,用于根据所述测试对象、所述元数据关系信息以及所述测试路径获取数据路径的节点,并利用所述数据路径的节点、所述样本数据、所述布尔列表的有效取值范围以及无效取值范围生成了数据路径节点数据;
所述测试数据生成单元106,用于根据所述数据路径节点数据,运用模拟策略生成宽表数据,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将所述宽表数据回填至基础表中,完成测试数据的自动化生成。
如图2所示,为本发明提出的一种测试数据自动生成方法流程图。所述方法包括:
步骤201):存储测试对象、元数据关系信息和元数据字典值;
步骤202):根据所述元数据关系信息建立业务模型,根据所述业务模型获取样本数据;
步骤203):根据所述元数据字典值对所述测试对象进行分层解析,获得布尔矩阵和布尔列表;
步骤204):根据剪枝策略对所述布尔矩阵和布尔列表的冗余部分、冲突部分进行合并、剪裁,生成测试路径的节点、布尔列表的有效取值范围以及无效取值范围;
步骤205):根据所述测试对象、所述元数据关系信息以及所述测试路径获取数据路径的节点,并利用所述数据路径的节点、所述样本数据、所述布尔列表的有效取值范围以及无效取值范围生成了数据路径节点数据;
步骤206):根据所述数据路径节点数据,运用模拟策略生成宽表数据,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将所述宽表数据回填至基础表中,完成测试数据的自动化生成。
实施例:
如图3所示,为本实施例提供的一种测试数据自动生成装置的结构图。本装置由数据存储单元1,样本数据抽取单元2,数据解析单元3,测试路径生成单元4,数据路径生成单元5以及测试数据生成单元6组成。
数据存储单元1,负责存储并存储生成测试数据过程中需要用到的元数据基本信息、元数据关系、元数据字典值和统计规则、统计对象等测试对象,以及从样本数据抽取单元2获取的样本数据和通过测试数据生成单元6生成的基础表数据。
样本数据抽取单元2,负责根据数据存储单元1中元数据关系建立业务模型,并按业务模型抽取生产数据,生成的样本数据在数据存储单元1中进行存储管理。
数据解析单元3,负责运用数据存储单元1中的元数据字典值对统计规则关系进行分层解析,并拆分成具有固定格式的布尔矩阵和布尔列表,解析的结果将通过测试路径生成单元4展现测试路径。
测试路径生成单元4,负责根据剪枝策略对数据解析单元3中生成的布尔矩阵和布尔列表的冗余部分、冲突部分进行合并、裁剪,并生成测试路径的决策树,作为数据路径生成单元5中路径节点选取单元的部分节点。
数据路径生成单元5,负责根据数据存储单元1中的统计对象、统计维度以及元数据关系,继承测试路径生成单元4中的测试路径节点,共同组成数据路径的节点,并根据样本数据、业务元数据字典值生成节点数据,提供给测试数据生成单元6以生成基础表中相关节点的具体数据。
测试数据生成单元6,负责根据数据存储单元1中元数据信息、元数据关系、元数据字典值及样本数据结合数据路径生成单元5中的节点数据,运用模拟策略,生成基础表中的数据,并在数据存储单元1中进行存储管理。
如图4所示,为本实施例的装置中数据存储单元1的结构图。由元数据存储模块11,元数据关系存储模块12、元数据字典值存储模块13、样本数据存储模块14、测试对象存储模块15以及基础表数据存储模块16组成。
元数据存储模块11,包含业务与技术元数据的基本信息,主要用于存放测试测试对象中涉及的业务元数据信息以及测试数据生成单元6中结构获取模块需要用到的表结构信息包括字段类型、长度、精度等技术元数据信息。
业务元数据基本信息表样:
业务元数据中文名 | 主题 | 业务定义 | 业务规则 |
客户类型 | 当事人.个人客户 | XXXX | XXXX |
技术元数据基本信息表样:
元数据关系存储模块12,包含业务元数据间关系、技术元数据间关系及业务及技术元数据间关系,主要用于存放样本数据抽取单元2中建业务模型需要的业务元数据关系、数据路径生成单元5中路径节点选取模块需要用到的技术元数据相关关系及测试数据生成单元6中数据模拟模块要用到的业务与技术的转换关系。
业务元数据间关系表样:
主题 | 业务元数据 | 相关主题 | 相关业务元数据 |
当事人.个人客户 | 个人客户编号 | 当事人.个人客户 | 个人身份证号码 |
当事人.个人客户 | 个人身份证号码 | 当事人.个人客户 | 出生日期 |
技术元数据间关系表样:
业务及技术元数据间关系表样:
业务元数据中文名 | 应用 | 表名 | 字段名 |
教育程度 | 个人客户信息 | A(个人客户信息表) | a2(受教育程度) |
元数据字典值存储模块13,包含了业务元数据字典值、技术元数据字典值及业务与技术字典值间关系,主要用于数据解析单元3中的节点值域解析以及测试数据生成单元6中生成基础表的数据。
业务元数据字典值表样:
业务元数据中文名 | 字典值 | 字典值描述 |
教育程度 | 100 | 博士及以上 |
教育程度 | 200 | 硕士 |
技术元数据字典值及业务与技术字典值间关系表样:
样本数据存储模块14,存储了由样本数据抽取单元2抽取的模型样本数据及独立样本数据,用于数据路径生成单元5生成路径节点数据及测试数据生成单元6生成 基础表中的数据。
测试对象存储模块15,存储了测试分析的输出物,如统计规则、统计对象、统计维度以及接口数据信息,用于数据解析单元3、数据路径生成单元5、测试数据生成单元6的输入。
基础表数据存储模块16,存储了测试数据生成单元6生成的基础表数据,作为测试数据生成单元6的输出。
如图5所示,为本实施例的装置中样本数据存储模块14的结构图,由模型样本数据存储子模块141和独立样本数据存储子模块142组成。
模型样本数据存储子模块141,存储了根据样本数据抽取单元2中的业务模型抽取的生产数据,用于数据路径生成单元5按照模型来获取多个相关节点数据。根据业务模型抽取的生产数据,数据之间会存在一定的相关性,可用于标识被关注某些特征的主体。
模型样本数据表样:
独立样本数据存储子模块142,存储了由样本数据抽取单元2抽取的具有独立含义的生产数据,用于数据路径生成单元5获取独立节点数据。独立含义的生产数据是一个独立的数据集合,可用于标识不被关注特征的主体。
独立样本数据表样:
如图6所示,为本实施例的装置中测试对象存储模块15的结构图。由统计规则存储子模块151、统计对象存储子模块152、统计维度存储子模块153以及接口数据存储子模块154组成。
统计规则存储子模块151,存储了测试对象中单个统计规则以及统计规则关系,用于数据解析单元3的输入。统计规则主要是在获取统计对象过程中需要遵循的筛选规则,用于标识统计对象的某些特征。
单个统计规则表样:
测试对象 | 序号 | 统计规则 |
A | 1 | 教育程度=硕士(200) |
A | 2 | 客户类型=个人(1) |
统计规则关系表样:
测试对象 | 统计规则关系 |
A | 教育程度=硕士(200)AND客户类型=个人(1) |
该测试对象标识了一个教育程度是硕士的个人客户。
统计对象存储子模块152,存储了统计的内容,作为数据路径生成单元5的输入。统计对象是统计规则用于标识的主体。
统计对象表样:
测试对象 | 统计对象 |
A | 交易金额 |
统计维度存储子模块153,存储了统计信息展现的粒度,作为数据路径生成单元5的输入。统计维度是信息呈现的一种视角。
统计维度表样:
测试对象 | 序号 | 统计维度 |
A | 1 | 机构 |
A | 2 | 币种 |
该测试对象是以机构和币种的维度来展现交易金额的。
接口数据存储子模块154,存储了测试对象涉及的应用、表信息,作为测试数据生成单元6中获取业务对应技术元数据的参考依据。
接口数据表样:
测试对象 | 序号 | 应用 | 接口数据表 |
A | 1 | 个人客户信息 | A(个人客户信息表) |
A | 2 | 客户资产信息 | B(客户房产信息表) |
如图7所示,为本实施例的装置中样本数据抽取单元2的结构图。由模型生成模块21和数据抽取模块22组成。
模型生成模块21,负责运用数据存储单元1中的业务元数据关系将具有业务相关性的业务元数据组合起来,通过关联相关的元数据关系建立针对不同主体具有某些特征的业务模型,并提供模型抽取模块22获取符合业务模型的样本数据。
业务模型表样:
业务模型主题 | 业务模型名称 | 序号 | 主题 | 业务元数据 |
当事人 | 个人客户信息 | 1 | 当事人.个人客户 | 个人客户编号 |
当事人 | 个人客户信息 | 2 | 当事人.个人客户 | 教育程度 |
当事人 | 个人客户信息 | 3 | 当事人.个人客户 | 出生日期 |
数据抽取模块22,负责根据数据存储单元1中的业务与技术元数据关系,将基础表中的生产数据转换为业务元数据的生产数据,并根据模型生成模块21建立的业务模型,将模型中涉及的业务元数据以集合的形式一并抽出,作为业务模型的样本数据;对于业务模型中不涉及的独立的业务元数据,则单独获取生产数据的不同值,作为独立样本数据。模型样本数据和独立样本数据,均存放在数据存储单元1中的样本数据存储模块14存储管理。
如图8所示,为本实施例的装置中数据解析单元3的结构图。由词法分析模块31、语法分析模块32、语义分析模块33、布尔矩阵生成模块34以及布尔列表生成模块35组成。
词法分析模块31,负责扫描数据存储单元1中的统计规则关系,对每个扫描到的统计规则关系按表达式的形式进行表达,并对每个表达式进行结构化拆分,作为语法分析单元的输入。
语法分析模块32,负责将词法分析模块31中输出的经过结构化拆分的统计规则关系表达式进行转换,将常规的中缀表达式用“堆栈算法”转换成后缀表达式,转换后的后缀表达式已去除括号因素且按运算的优先级顺序排列好,转换结果同样以结构化的形式进行存储,并作为语义分析模块33的输入。
所谓“堆栈算法”即是以一种“后进先出”的时间原则对数据进行处理,将运算符按从左至右的顺序依此进行判断:
a.若为'(',则直接入栈;
b.若为')',则依次把栈中的的运算符加入后缀表达式中,直到出现'(',从栈中删除'(';
c.若为除括号外的其他运算符,当其优先级高于栈顶运算符时,直接入栈。否则从栈顶开始,依次弹出比当前处理的运算符优先级高和优先级相等的运算符,直到一个比它优先级低的或者遇到了一个左括号为止。
当扫描的中缀表达式结束时,栈中的的所有运算符按“后进先出”出栈。
运算符的优先级顺序如下所示:
级别 | 运算符类型 | 运算符 |
1 | 括号 | () |
2 | 一元 | !not |
3 | 乘除 | */% |
4 | 加减 | +- |
5 | 比较1 | <><=>= |
6 | 比较2 | =!=<> |
7 | 条件“与” | and&& |
8 | 条件“或” | or|| |
以统计规则关系(a=1and b>5)or c<>2为例,用简称A代表a=1,B代表b>5,C代表c<>2,用简称表示的中缀表达式为(A AND B)OR C,则转换后的后缀表达式为A B AND C OR。转换后的后缀表达式表样为:
序号 | 表达式 | 属性 |
1 | A | 表达式 |
2 | B | 表达式 |
3 | AND | 关系符 |
4 | C | 表达式 |
5 | OR | 关系符 |
语义分析模块33,负责根据语法分析模块32输出的结构化后缀表达式运用“布尔运算法则”进行关系解析,输出布尔矩阵,同时解析单个规则的值域范围,运用解析策略输出布尔列表。
布尔矩阵生成模块34,根据语义分析模块33中统计规则关系解析的结果生成布尔矩阵,并于布尔矩阵生成模块34中进行存储管理。
A | B | C | (A AND B)OR C |
T | T | T | T |
T | T | F | T |
T | F | T | T |
F | T | T | T |
F | F | T | T |
T | F | F | F |
F | T | F | F |
F | F | F | F |
布尔列表生成模块35,根据语义分析模块33中值域解析的结果生成布尔列表,并于布尔列表生成模块35中进行存储管理。
如图9所示,为本实施例的装置中词法分析模块31的结构图。由扫描子模块311、判定子模块312以及拆分子模块313组成。
扫描子模块311,负责读入统计规则关系表达式,从左至右逐个元素进行扫描,在扫描的过程中同时过滤空格、制表符、换行符等标识,并将扫描的内容逐个传送给判定子模块312对元素进行属性判断。
判定子模块312,负责对扫描子模块311传入的元素进行识别,并对每个元素的属性进行标识,以提供拆分子模块313对统计规则关系进行结构化拆分。
以(a=1and b>5)or c<>2为例,将(、)识别为括号,将a、b、c识别为变量,将=、>、<>识别为运算符,将1、5、2识别为具体的值,同时将a=1、b>5、c<>2识别为表达式,而and、or作为表达式关系符。
拆分子模块313,负责对判定子模块312的判定结果,以结构化的形式将原统计 规则关系进行拆分,以单个表达式为单位拆分为变量、运算符和值,以统计规则关系为单位拆分成表达式和属性,并以扫描的顺序进行排列(根据序号组合起来即为中缀表达式),以提供语法分析模块32对中缀表达式转换为后缀表达式。
对单个表达式进行拆分:
表达式 | 变量 | 运算符 | 值 |
A | a | = | 1 |
B | b | > | 5 |
C | c | <> | 2 |
对统计规则关系进行拆分:
序号 | 表达式 | 属性 |
1 | ( | 左括号 |
2 | A | 表达式 |
3 | AND | 关系符 |
4 | B | 表达式 |
5 | ) | 右括号 |
6 | OR | 关系符 |
7 | C | 表达式 |
如图10所示,为本实施例的装置中语义分析模块33的结构图。由关系解析子模块331和值域解析子模块332组成。
关系解析子模块331,负责根据语法分析模块32中的后缀表达式中的关系运算符,结合“布尔运算法则”,对统计规则关系进行解析,获得表达式在不同组合下的输出结果,为布尔矩阵的生成提供两两之间的组合关系。
关系符主要有NOT、AND、OR三种,下面是这三种关系符的布尔运算法则:
值域解析子模块332,负责根据词法分析模块31中对单个表达式的结构化拆分结果,结合运算符的解析和取值策略,解析出每个表达式的有效、无效取值范围,为布尔列表的生成提供参考数据。
对于数值的运算可以参考运算符的解析和取值策略进行解析,对于字符的运算需要结合元数据字典值及技术元数据中的字段类型、字段长度等,通过判断字符的值是否属于元数据字典值范围再对取值进行解析。
数值的运算的解析策略:
字符的运算的解析策略:
变量 | 序号 | 字典值 |
b | 1 | b1 |
b | 2 | b2 |
b | 3 | b3 |
b | 4 | b4 |
如图11所示,为本实施例的装置中测试路径生成单元4的结构图。由决策树剪枝模块41和决策树生成模块42组成。
决策树剪枝模块41,负责根据剪枝策略对布尔矩阵和布尔列表中的冗余组合和冲突组合进行合并、裁剪,并提供给决策树生成模块42,用以生成符合统计规则的最小决策树。
剪枝策略:
冗余组合
1.两两组合中AND条件下,由于两两之中任何一个的F取值都能通过T/F和F/T的组合验证到,所以F/F的情况可裁剪。
2.两两组合中OR条件下,由于两两之中任何一个的T取值都能通过T/F和F/T的组合验证到,所以T/T的情况可裁剪。
冲突组合
当表达式A和表达式B都是针对同一个变量的表达式,且表达式的运算条件和取值有冲突的情况下,需要进行裁剪。例如:A:a=1,B:a<>1,则在AND条件下,T/T组合需裁剪(F/F组合在冗余组合中已裁剪);在OR条件下,F/F组合需裁剪(T/T组合在冗余组合中已裁剪)。
由于例子中的布尔列表中不存在冲突组合涉及的情况,故只列出剪枝后的布尔矩 阵:
A | B | C | (A AND B)OR C | 剪枝标志 |
T | T | T | T | 可剪枝 |
T | T | F | T | 保留 |
T | F | T | T | 保留 |
F | T | T | T | 保留 |
F | F | T | T | 可剪枝 |
T | F | F | F | 保留 |
F | T | F | F | 保留 |
F | F | F | F | 可剪枝 |
决策树生成模块42,负责根据决策树剪枝模块41中经过剪枝后的布尔矩阵和布尔列表,组合表达式的布尔取值以及表达式的有效无效值,生成最终的决策树,也即测试路径。如图15所示,为本实施例的决策树生成模块最终生成的决策树示意图。
组合方式为:当布尔矩阵中表达式取值为T时,获取布尔列表的有效表达式及有效取值范围;当布尔矩阵中表达式取值为F时,获取布尔列表的无效表达式及无效取值范围。
有效、无效表达式可用于生成测试路径的决策树,而有效、无效的取值范围可提供数据路径生成单元5用于生成数据路径的节点数据。
如图12所示,为本实施例的装置中数据路径生成单元5的结构图。由路径节点 选取模块51和路径数据生成模块52组成。
路径节点选取模块51,负责根据测试路径结合数据存储单元1中统计对象、统计维度以及元数据关系,共同组成数据路径的节点。
例如:按交易机构和币种统计年龄大于等于50岁的个人客户使用网上银行进行交易的交易金额。
统计对象:交易金额
统计规则:客户年龄、交易渠道(客户年龄>=50AND交易渠道=网上银行)
统计维度:(交易)机构、币种
业务元数据间关系:个人客户编号(个人客户信息/客户交易信息)
组合以上信息共同生成数据路径节点,数据路径节点的表样为:
个人客户编号 | 客户年龄 | (交易)机构 | 交易渠道 | 币种 | 交易金额 |
路径数据生成模块52,负责根据路径节点选取模块51中生成的数据路径节点结合样本数据以及测试路径生成单元中统计规则的有效无效取值范围生成了具有符合业务含义的数据路径节点数据,并标识数据路径的最终出数情况,以提供测试数据生成单元6生成基础表中相关节点的具体数据。
结合上述路径节点选取模块51中举的例子,可从模型样本数据、独立样本数据、业务元数据字典值中分别获取到以下信息:
模型样本数据:(个人客户信息业务模型中的其他业务元数据信息已省略)
独立样本数据:
业务元数据 | 主题 | 应用 | 字典值 | 数据 |
机构 | 机构 | 机构信息 | 机构1 | 0020000001 |
... | ... | ... | ... | ... |
交易金额 | 交易 | 客户交易信息 | 交易金额1 | 100.00 |
交易金额 | 交易 | 客户交易信息 | 交易金额2 | 110.00 |
... | ... | ... | ... | ... |
业务元数据字典值:
业务元数据中文名 | 字典值 | 字典值描述 |
交易渠道 | 1 | 网上银行 |
交易渠道 | 2 | ATM |
... | ... | ... |
币种 | 1 | 人民币 |
币种 | 2 | 美元 |
... | ... | ... |
有效、无效取值范围:
业务元数据 | 有效值范围 | 无效值范围 |
客户年龄 | 50,51,52 | 48,49 |
交易渠道 | 1-网上银行 | 2-ATM,3-柜面 |
数据路径的节点数据生成如下:
个人客户编号 | 客户年龄 | (交易)机构 | 交易渠道 | 币种 | 交易金额 | 是否出数 |
个人客户编号1 | 50 | 机构1 | 1-网上银行 | 1-人民币 | 交易金额1 | 出数 |
个人客户编号2 | 51 | 机构1 | 1-网上银行 | 1-人民币 | 交易金额2 | 出数 |
个人客户编号3 | 52 | 机构1 | 1-网上银行 | 2-美元 | 交易金额3 | 出数 |
个人客户编号4 | 48 | 机构1 | 1-网上银行 | 1-人民币 | 交易金额4 | 不出数 |
个人客户编号5 | 49 | 机构1 | 1-网上银行 | 1-人民币 | 交易金额5 | 不出数 |
个人客户编号6 | 50 | 机构2 | 2-ATM | 1-人民币 | 交易金额1 | 不出数 |
个人客户编号7 | 50 | 机构3 | 3-柜面 | 1-人民币 | 交易金额1 | 不出数 |
如图13所示,为本实施例的装置中测试数据生成单元的结构图。由数据结构获取模块61、数据模拟模块62以及数据回填模块63组成。
数据结构获取模块61,负责根据数据存储单元1中的技术元数据基本信息获取表结构信息,用于数据模拟模块62对数据路径节点中未涉及的字段模拟数据。
数据模拟模块62,负责根据数据模拟策略对数据路径的节点中未涉及的业务元数据进行模拟,根据业务与技术元数据字典值关系及样本数据,对数据路径的节点中涉及的业务元数据生成最终的宽表数据,以提供数据回填模块63根据技术元数据关系以表为单元进行数据回填。
由于关注的元数据值以体现在数据路径中,表中剩下的其他业务元数据则是统计规则中无需关注的,故只需根据业务元数据的含义结合数据模拟策略对字段实际值进行模拟。数据模拟策略分以下几种情况:
字段有对应的技术元数据字典值
根据应用、表、字段从技术元数据字典值中随机选取字典值。
字段对应的业务元数据样本数据
根据字段对应的业务元数据查找是否存在于模型样本数据中,如存在模型样本数据,则根据主体获取对应的特征值,如不存在于模型样本数据中,则从独立样本数据中随机获取字典值。例如,客户性别存在于个人客户信息业务模型中,则通过对应的 个人客户编号获取其对应的客户性别值。
字段无字典值且无样本数据
根据字段的字段类型、字段长度、字段精度选取对应的模块模拟适合其他类型、长度、精度的数据,各模块会根据不同的长度、精度随机生成数据。例如,对于字段类型是字符,字段长度为5的字段,可以模拟成‘azevr’。
字段类型 | 字段长度 | 字段精度 | 模块 |
字符 | n | / | Gen_char(n) |
数值 | n | m | Gen_decimal(n,m) |
日期 | 10 | / | Gen_date(‘YYYY-MM-DD’) |
日期 | 8 | / | Gen_date(‘YYYYMMDD’) |
... | ... | ... | ... |
通过数据模拟模块62生成的宽表信息如下:
数据回填模块63,负责根据数据模拟模块62生成的宽表数据结合技术元数据关 系中的主辅数据源关系以及主外键关系对宽表进行拆分,把基础表中主外键字段补齐,并将宽表数据回填回基础表,完成测试数据的自动化生成,并将生成的基础表数据存放在数据存储单元1的基础表数据存储模块16。
例如,宽表中只有一个个人客户编号,通过技术元数据关系中主辅数据源关系得出,个人客户信息表的个人客户编号同客户交易明细表的个人客户编号存在关系,故将宽表中客户交易明细表的内容补上个人客户信息表的个人客户编号,并回填至客户交易明细表,至此客户交易明细表的测试数据已通过自动化的形式生成。
如图14所示,为本实施例的装置自动生成测试数据的方法流程图。包含如下步骤:
步骤701,词法分析模块对统计规则关系进行扫描、判定并按表达式的形式对统计规则关系及单个表达式进行结构化拆分。
步骤702,语法分析模块将结构化拆分的统计规则关系转换为按运算优先级顺序排列好的后缀表达式。
步骤703,语义分析模块对结构化并转换为后缀表达式的统计规则关系进行关系解析及值域解析。
步骤704,布尔矩阵生成模块及布尔列表生成模块根据关系解析及值域解析的结果,生成布尔矩阵和布尔列表。
步骤705,测试路径生成单元根据布尔矩阵、布尔列表结合剪枝策略对冗余组合和冲突组合进行合并、裁剪,并对布尔矩阵、布尔列表进行组合生成测试路径。
步骤706,数据路径生成单元根据测试路径结合统计对象、统计维度以及元数据关系共同组成数据路径的节点,并根据样本数据、业务元数据字典值生成数据路径节点数据。
步骤707,结构获取模块根据接口数据存储模块从元数据存储模块中获取表结构信息。
步骤708,数据模拟模块根据数据路径结合数据模拟策略、样本数据以及业务与技术元数据字段值关系生成宽表数据。
步骤709,数据回填模块根据数据模拟模块生成的宽表数据结合技术元数据关系对宽表进行拆分,把基础表中的主外键字段补齐后回填回对应的表,完成测试数据的自动化生成,并将基础表数据存放到数据存储单元中。
由上述实施例分析可知,本实施例的技术方案是一种根据测试分析输出自动解析测试路径并生成测试数据的自动化装置和方法,保证了测试数据的质量,有效提升了测试效率。
最后应说明的是:上述仅用以说明本发明而并非限制本发明所描述的技术方案;尽管本说明书对本发明已进行了详细的说明,但是,本领域的技术人员仍然可以对本发明进行修改或等同替换,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。
Claims (14)
1.一种测试数据自动生成装置,其特征在于,所述装置包括:
数据存储单元、样本数据抽取单元、数据解析单元、测试路径生成单元、数据路径生成单元和测试数据生成单元;其中,
所述数据存储单元,用于存储测试对象、元数据关系信息和元数据字典值;
所述样本数据抽取单元,用于根据所述元数据关系信息建立业务模型,根据所述业务模型获取样本数据;
所述数据解析单元,用于根据所述元数据字典值对所述测试对象进行分层解析,获得布尔矩阵和布尔列表;
所述测试路径生成单元,用于根据剪枝策略对所述布尔矩阵和布尔列表的冗余部分、冲突部分进行合并、剪裁,生成测试路径的节点、布尔列表的有效取值范围以及无效取值范围;
所述数据路径生成单元,用于根据所述测试对象及元数据关系信息获取数据路径的节点,并利用所述数据路径的节点、所述样本数据、所述布尔列表的有效取值范围以及无效取值范围生成数据路径节点数据;
所述测试数据生成单元,用于根据所述数据路径节点数据,运用模拟策略生成宽表数据,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将所述宽表数据回填至基础表中,完成测试数据的自动化生成。
2.如权利要求1所述的装置,其特征在于,所述数据存储单元还用于存储元数据基本信息、所述样本数据抽取单元获得的样本数据以及所述测试数据生成单元生成的测试数据。
3.如权利要求2所述的装置,其特征在于,所述数据存储单元包括元数据存储模块、元数据关系存储模块、元数据字典值存储模块、样本数据存储模块、测试对象存储模块以及基础表数据存储模块;
所述元数据存储模块,用于存储元数据基本信息,所述元数据基本信息包括测试对象中涉及的业务元数据以及测试数据生成单元需要用到的技术元数据;
所述元数据关系存储模块,用于存放样本数据抽取单元中建业务模型需要的业务元数据关系、数据路径生成单元中需要用到的技术元数据相关关系及测试数据生成单元中涉及到的业务与技术的转换关系;
所述元数据字典值存储模块,用于数据解析单元中的节点值域解析以及测试数据生成单元中生成基础表的数据;
所述样本数据存储单元,用于所述数据路径生成单元生成的数据路径节点数据及所述测试数据生成单元生成的基础表中的数据;
所述测试对象存储模块,用于存储测试对象;
所述基础表数据存储模块,用于存储所述测试数据生成单元生成的修改后的基础表数据,即测试数据。
4.如权利要求3所述的装置,其特征在于,所述样本数据存储模块包括模型样本数据存储子模块和独立样本数据存储子模块;其中,
所述模型样本数据存储子模块,用于存储了根据所述样本数据抽取单元中的业务模型抽取的生产数据;其中,所述生产数据为数据之间存在一定的相关性,用于表示被关注某些特征的样本数据;
所述独立样本数据存储子模块,用于存储所述样本数据抽取单元抽取的具有独立含义的生产数据;其中,所述独立含义的生产数据为一个独立的数据集合,可用于标识不被关注特征的样本数据。
5.如权利要求3所述的装置,其特征在于,所述测试对象存储模块包括统计规则存储子模块、统计对象存储子模块、统计维度存储子模块以及接口数据存储子模块;其中,
所述统计规则存储子模块,用于存储测试对象中单个统计规则以及统计规则关系;其中,所述统计规则关系为在获取统计对象过程中需要遵循的筛选规则,用于标识统计对象的某些特征;
所述统计对象存储子模块,用于存储统计的内容;
所述统计维度存储子模块,用于存储统计信息展现的粒度;
所述接口数据存储子模块,用于存储测试对象涉及的应用、表信息。
6.如权利要求3所述的装置,其特征在于,所述样本数据抽取单元包括模型生成模块和数据抽取模块;其中,
所述模型生成模块,用于根据数据存储单元中的业务元数据关系,将具有业务相关性的业务元数据组合起来,通过关联相关的元数据关系建立针对不同主体具有某些特征的业务模型;
所述数据抽取模块,用于根据数据存储单元中的业务元数据与技术元数据关系,将基础表中的生产数据转换为业务元数据的生产数据,并根据模型生成模块建立的业务模型,将模型中涉及的业务元数据以集合的形式一并抽出,作为业务模型的样本数据;对于业务模型中不涉及的独立的业务元数据,则单独获取生产数据的不同值,作为独立样本数据。
7.如权利要求6所述的装置,其特征在于,所述数据解析单元包括:词法分析模块、语法分析模块、语义分析模块、布尔矩阵生成模块和布尔列表生成模块;其中,
所述词法分析模块,用于负责扫描所述数据存储单元中的统计规则关系,对每个扫描到的统计规则关系进行识别,根据识别结果对每个扫描到的统计规则关系按表达式的形式进行表达,并对每个表达式进行结构化拆分;
所述语法分析模块,用于负责将所述词法分析模块输出的经过结构化拆分的统计规则关系表达式进行转换,将中缀表达式用堆栈算法转换成后缀表达式,转换后的后缀表达式已去除括号因素,且按运算的优先级顺序排列;
所述语义分析模块,用于对所述语法分析模块输出的结构化后缀表达式运用布尔运算法则进行关系解析,同时,解析每个统计规则关系的值域范围;
所述布尔矩阵生成模块,用于根据所述语义分析模块中统计规则关系解析的结果生成布尔矩阵;
所述布尔列表生成模块,用于根据所述语义分析模块中值域解析的结果生成布尔列表。
8.如权利要求7所述的装置,其特征在于,所述词法分析模块包括扫描子模块、判定子模块和拆分子模块;其中,
所述扫描子模块,用于负责读入统计规则关系的表达式,从左至右逐个元素进行扫描,在扫描的过程中过滤掉空格标识、制表符标识、换行符标识;
所述判定子模块,用于负责对所述扫描子模块输出的信息的属性进行识别;
所述拆分子模块,用于负责根据所述判定子模块的识别结果,对所述统计规则关系进行拆分,以单个表达式为单位拆分为变量、运算符和值,以统计规则关系为单位拆分成表达式和属性,并以扫描的顺序进行排列后输出至所述语法分析模块。
9.如权利要求7所述的装置,其特征在于,所述语义分析模块包括:关系解析子模块和值域解析子模块;其中,
所述关系解析子模块,用于根所述据语法分析模块中的后缀表达式的关系运算符,结合布尔运算法则,对统计规则关系进行解析,获得表达式在不同组合下的输出结果;
所述值域解析子模块,用于根据所述词法分析模块中对每个表达式的结构化拆分结果,结合运算符的解析和取值策略,解析出每个表达式对应地有效、无效取值范围。
10.如权利要求3所述的装置,其特征在于,所述测试路径生成单元包括:决策树剪枝模块和决策树生成模块;其中,
所述决策树剪枝模块,用于根据剪枝策略对布尔矩阵和布尔列表中的冗余组合和冲突组合进行合并、裁剪;
所述决策树生成模块,用于根据所述决策树剪枝模块输出的经过剪枝后的布尔矩阵和布尔列表,组合表达式的布尔取值以及表达式的有效、无效取值范围,生成最终的决策树,也即测试路径。
11.如权利要求3所述的装置,其特征在于,所述数据路径生成单元包括路径节点选取模块和路径数据生成模块;其中,
所述路径节点选取模块,用于负责根据所述测试路径,结合所述数据存储单元中统计对象、统计维度以及元数据关系信息,组成数据路径的节点;
所述路径数据生成模块,用于负责根据所述路径节点选取模块中生成的所述数据路径的节点,结合样本数据以及所述测试路径生成单元中统计规则的有效、无效取值范围获得具有符合业务含义的数据路径节点数据。
12.如权利要求3所述的装置,其特征在于,所述测试数据生成单元包括数据结构获取模块、数据模拟模块和数据回填模块;其中,
所述数据结构获取模块,用于负责根据所述数据存储单元中的技术元数据基本信息获取表结构信息;
所述数据模拟模块,用于负责根据数据模拟策略对数据路径的节点中未涉及的业务元数据进行模拟,根据业务与技术元数据字典值关系及样本数据,对数据路径的节点中涉及的业务元数据生成宽表数据;
所述数据回填模块,用于负责根据技术元数据关系中的主辅数据源关系以及主外键关系,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将宽表数据回填回基础表,完成测试数据的自动化生成。
13.一种测试数据自动生成方法,其特征在于,所述方法包括:
存储测试对象、元数据关系信息和元数据字典值;
根据所述元数据关系信息建立业务模型,根据所述业务模型获取样本数据;
根据所述元数据字典值对所述测试对象进行分层解析,获得布尔矩阵和布尔列表;
根据剪枝策略对所述布尔矩阵和布尔列表的冗余部分、冲突部分进行合并、剪裁,生成测试路径的节点、布尔列表的有效取值范围以及无效取值范围;
根据所述测试对象、所述元数据关系信息以及所述测试路径获取数据路径的节点,并利用所述数据路径的节点、所述样本数据、所述布尔列表的有效取值范围以及无效取值范围生成了数据路径节点数据;
根据所述数据路径节点数据,运用模拟策略生成宽表数据,对所述宽表数据进行拆分,把基础表中主外键字段补齐,并将所述宽表数据回填至基础表中,完成测试数据的自动化生成。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
存储元数据基本信息、所述样本数据以及所述测试数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410213844.4A CN104063314B (zh) | 2014-05-20 | 2014-05-20 | 一种测试数据自动生成装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410213844.4A CN104063314B (zh) | 2014-05-20 | 2014-05-20 | 一种测试数据自动生成装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063314A true CN104063314A (zh) | 2014-09-24 |
CN104063314B CN104063314B (zh) | 2016-10-05 |
Family
ID=51551036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410213844.4A Active CN104063314B (zh) | 2014-05-20 | 2014-05-20 | 一种测试数据自动生成装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063314B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360850A (zh) * | 2014-10-29 | 2015-02-18 | 中国建设银行股份有限公司 | 一种业务代码处理方法及装置 |
CN105243018A (zh) * | 2015-10-24 | 2016-01-13 | 北京航空航天大学 | 一种面向对象的类测试数据生成方法 |
CN109491903A (zh) * | 2018-11-02 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种自动测试脚本拼接处理方法、装置、终端及存储介质 |
US10324827B2 (en) | 2016-09-30 | 2019-06-18 | Wipro Limited | Method and system for automatically generating test data for testing applications |
CN110198247A (zh) * | 2018-02-26 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 接口测试方法及系统 |
CN110399600A (zh) * | 2019-07-24 | 2019-11-01 | 北京明略软件系统有限公司 | 生成宽表的方法及装置 |
CN111124892A (zh) * | 2019-12-04 | 2020-05-08 | 四川安迪科技实业有限公司 | 基于命令行的自动化测试方法及系统 |
CN111221728A (zh) * | 2019-12-31 | 2020-06-02 | 卡斯柯信号有限公司 | 用于轨道交通自动控制软件的自适应测试脚本系统及方法 |
CN111444094A (zh) * | 2020-03-25 | 2020-07-24 | 中国邮政储蓄银行股份有限公司 | 一种测试数据的生成方法和系统 |
CN111459484A (zh) * | 2020-03-30 | 2020-07-28 | 星辰天合(北京)数据科技有限公司 | 网页前后端分离开发时后端数据模拟方法 |
CN112685611A (zh) * | 2020-12-31 | 2021-04-20 | 恒安嘉新(北京)科技股份公司 | 一种数据过滤方法、装置、存储介质及电子设备 |
CN113032271A (zh) * | 2021-03-31 | 2021-06-25 | 中国电子科技集团公司第十五研究所 | 数据样本冗余性定量判定方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375236A (en) * | 1989-11-16 | 1994-12-20 | Nec Corporation | Down line-loading start control system |
CN101714119A (zh) * | 2009-12-09 | 2010-05-26 | 北京邮电大学 | 基于二进制程序的测试数据生成器和方法 |
CN102243608A (zh) * | 2010-05-13 | 2011-11-16 | 方兴 | 基于全局数据结构描述的软件安全测试方法 |
-
2014
- 2014-05-20 CN CN201410213844.4A patent/CN104063314B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375236A (en) * | 1989-11-16 | 1994-12-20 | Nec Corporation | Down line-loading start control system |
CN101714119A (zh) * | 2009-12-09 | 2010-05-26 | 北京邮电大学 | 基于二进制程序的测试数据生成器和方法 |
CN102243608A (zh) * | 2010-05-13 | 2011-11-16 | 方兴 | 基于全局数据结构描述的软件安全测试方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360850B (zh) * | 2014-10-29 | 2019-06-07 | 中国建设银行股份有限公司 | 一种业务代码处理方法及装置 |
CN104360850A (zh) * | 2014-10-29 | 2015-02-18 | 中国建设银行股份有限公司 | 一种业务代码处理方法及装置 |
CN105243018A (zh) * | 2015-10-24 | 2016-01-13 | 北京航空航天大学 | 一种面向对象的类测试数据生成方法 |
CN105243018B (zh) * | 2015-10-24 | 2017-11-24 | 北京航空航天大学 | 一种面向对象的类测试数据生成方法 |
US10324827B2 (en) | 2016-09-30 | 2019-06-18 | Wipro Limited | Method and system for automatically generating test data for testing applications |
CN110198247B (zh) * | 2018-02-26 | 2022-02-18 | 腾讯科技(深圳)有限公司 | 接口测试方法及系统 |
CN110198247A (zh) * | 2018-02-26 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 接口测试方法及系统 |
CN109491903A (zh) * | 2018-11-02 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种自动测试脚本拼接处理方法、装置、终端及存储介质 |
CN110399600A (zh) * | 2019-07-24 | 2019-11-01 | 北京明略软件系统有限公司 | 生成宽表的方法及装置 |
CN111124892A (zh) * | 2019-12-04 | 2020-05-08 | 四川安迪科技实业有限公司 | 基于命令行的自动化测试方法及系统 |
CN111221728A (zh) * | 2019-12-31 | 2020-06-02 | 卡斯柯信号有限公司 | 用于轨道交通自动控制软件的自适应测试脚本系统及方法 |
CN111221728B (zh) * | 2019-12-31 | 2022-08-23 | 卡斯柯信号有限公司 | 用于轨道交通自动控制软件的自适应测试脚本系统及方法 |
CN111444094A (zh) * | 2020-03-25 | 2020-07-24 | 中国邮政储蓄银行股份有限公司 | 一种测试数据的生成方法和系统 |
CN111444094B (zh) * | 2020-03-25 | 2023-08-04 | 中国邮政储蓄银行股份有限公司 | 一种测试数据的生成方法和系统 |
CN111459484A (zh) * | 2020-03-30 | 2020-07-28 | 星辰天合(北京)数据科技有限公司 | 网页前后端分离开发时后端数据模拟方法 |
CN111459484B (zh) * | 2020-03-30 | 2022-11-29 | 北京星辰天合科技股份有限公司 | 网页前后端分离开发时后端数据模拟方法 |
CN112685611A (zh) * | 2020-12-31 | 2021-04-20 | 恒安嘉新(北京)科技股份公司 | 一种数据过滤方法、装置、存储介质及电子设备 |
CN113032271A (zh) * | 2021-03-31 | 2021-06-25 | 中国电子科技集团公司第十五研究所 | 数据样本冗余性定量判定方法及系统 |
CN113032271B (zh) * | 2021-03-31 | 2023-10-13 | 中国电子科技集团公司第十五研究所 | 数据样本冗余性定量判定方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104063314B (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104063314A (zh) | 一种测试数据自动生成装置及方法 | |
CN104866426B (zh) | 软件测试综合控制方法及系统 | |
CN110750649A (zh) | 知识图谱构建及智能应答方法、装置、设备及存储介质 | |
CN103177068B (zh) | 按照生存规则合并源记录的系统和方法 | |
US7984031B2 (en) | Query builder for testing query languages | |
CN107704265A (zh) | 一种面向业务流可配置的规则生成方法 | |
Isakowitz et al. | Toward a logical/physical theory of spreadsheet modeling | |
CN106537333A (zh) | 用于软件产物的数据库的系统和方法 | |
EP2988230A1 (en) | Data processing method and computer system | |
CN101145152A (zh) | 在特定上下文内自动精细化本体的系统和方法 | |
CN106663101A (zh) | 本体映射方法和设备 | |
CN106844380A (zh) | 一种数据库操作方法、信息处理方法和相应装置 | |
CN101493820A (zh) | 一种药监行业知识库的平台及其构建方法 | |
CN105469204A (zh) | 深度融合大数据分析技术的重装制造企业综合评价系统 | |
Groß et al. | GOMMA results for OAEI 2012. | |
CN111177322A (zh) | 一种领域知识图谱的本体模型构建方法 | |
CN103678436A (zh) | 信息处理系统和信息处理方法 | |
CN103425740A (zh) | 一种面向物联网的基于语义聚类的物资信息检索方法 | |
CN109241104A (zh) | 决策型分布式数据库系统中aisql的解析器及其实现方法 | |
CN104537280B (zh) | 基于文本关系相似性的蛋白质交互关系识别方法 | |
Agrawal et al. | An enhanced extract-transform-load system for migrating data in telecom billing | |
CN102707938A (zh) | 表形式软件规格制作支援方法及装置 | |
CN109408592B (zh) | 一种决策型分布式数据库系统中ai的特征工程知识库及其实现方法 | |
CN115827885A (zh) | 一种运维知识图谱的构建方法、装置及电子设备 | |
CN115935943A (zh) | 一种支持自然语言结构计算的分析框架 |
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 |