CN103473325A - 一种实现生成测试案例数据的系统及方法 - Google Patents

一种实现生成测试案例数据的系统及方法 Download PDF

Info

Publication number
CN103473325A
CN103473325A CN2013104182396A CN201310418239A CN103473325A CN 103473325 A CN103473325 A CN 103473325A CN 2013104182396 A CN2013104182396 A CN 2013104182396A CN 201310418239 A CN201310418239 A CN 201310418239A CN 103473325 A CN103473325 A CN 103473325A
Authority
CN
China
Prior art keywords
data
combination
screening
permutation
fields
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
Application number
CN2013104182396A
Other languages
English (en)
Other versions
CN103473325B (zh
Inventor
刘春玲
胡军全
杨伯恩
吕海文
邹大卫
舒广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201310418239.6A priority Critical patent/CN103473325B/zh
Publication of CN103473325A publication Critical patent/CN103473325A/zh
Application granted granted Critical
Publication of CN103473325B publication Critical patent/CN103473325B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种实现生成测试案例数据的系统及方法,其中,系统包括:本地数据库,用于保存相关的参数表;数据筛选预处理单元,用于从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;并对所述使用字段的字典的参数进行合法性检查,筛选出需要参与数据排列组合的字段;数据生成单元,用于利用所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段生成测试案例所需要的数据,并将生成的数据记录到数据库临时数据表中;数据输出单元,用于根据用户需求,将所述数据库临时数据表中记录的数据输出。

Description

一种实现生成测试案例数据的系统及方法
技术领域
本发明涉及数据处理领域,特别涉及一种实现生成测试案例数据的系统及方法。
背景技术
测试中常需要准备相应的各种数据,而这些数据在不同功能模块或不同系统之中并不相同,并且往往需要手工来准备。如果系统功能简单,准备的数据也相对简单,但实际上业务的复杂性使得系统的处理也变得复杂,比如:个人贷款业务、系统抽取业务的核算要素、组成产品组件等等,要验证这些组件是否符合要求,需要准备大量的不同情况的数据,如有15个组件,每个组件有2到10种可能,那么组合起来的情况可能达2的15次方到10的15次方的数据量,在测试的时候,就需要抽取相应的数据进行测试。目前常用的做法是采用直接由程序根据相关的逻辑条件生成,这种方法解决了人工编辑效率低下、容易出错的问题,但不能适应系统变化的情况,同一个功能模块或同一个系统,可能由于业务规则的变化,系统功能随之变化,数据可能需要重新准备,原来的程序就必须修改,并且这些数据只能应用于同一个系统,属于一次性使用,过后就可以抛弃。如果同时有多个项目在测试的时候,数据准备的工作量就大大增加,对项目进度也有较大影响。
发明内容
为解决上述问题,本发明提出一种实现生成测试案例数据的系统及方法,克服了现有测试数据准备工作中的不足,本申请提出的技术方案是一种实现简单,实施成本低,能够有效避免准备数据困难的生成测试案例数据的系统及方法。
为实现上述目的,本发明提供了一种实现生成测试案例数据的系统,包括:
本地数据库,用于保存相关的参数表;
数据筛选预处理单元,用于从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;并对所述使用字段的字典的参数进行合法性检查,筛选出需要参与数据排列组合的字段;
数据生成单元,用于利用所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段生成测试案例所需要的数据,并将生成的数据记录到数据库临时数据表中;
数据输出单元,用于根据用户需求,将所述数据库临时数据表中记录的数据输出。
可选的,在本发明一实施例中,所述数据筛选预处理单元包括使用字段模块和筛选模块;
所述使用字段模块,用于从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;
所述筛选模块,用于判断所述使用字段第一位的值是否为1;若是,则所述使用字段为参与数据排列组合的字段。
可选的,在本发明一实施例中,所述数据筛选预处理单元还包括数据量模块;
所述数据量模块,用于根据所述筛选模块筛选出的参与数据排列组合的字段后15位、字段ID查询数据字典表,确定所述字段的字典项,获取所述筛选模块筛选出的参与数据排列组合的字段全排列组合达到的数据量。
可选的,在本发明一实施例中,所述数据生成单元进一步用于根据所述数据筛选预处理单元中的数据量模块获取的数据量选择数据生成算法。
可选的,在本发明一实施例中,所述数据生成单元包括SQL筛选方式数据生成模块、分组方式数据生成模块和等价类划分方式数据生成模块;根据选择,从所述SQL筛选方式数据生成模块、所述分组方式数据生成模块和所述等价类划分方式数据生成模块中任选一种模块生成数据;其中,
所述SQL筛选方式数据生成模块,用于对所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段通过全排列组合方式生成全部可能组合的数据,保存到数据库临时数据表中;根据需要参与数据排列组合的字段的逻辑关系转化成SQL语句,利用SQL语句对数据进行筛选获取无效数据,并在数据库临时数据表中将所述无效数据记录状态置为无效;
所述分组方式数据生成模块,用于根据相对应的逻辑条件对所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段进行迭代判断得到有效分组;对有效分组进行全排列组合的方式生成有效数据,保存到数据库临时数据表中;
所述等价类划分方式数据生成模块,用于从所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段的数据字典中循环取值,对取得的每个字典值记录到数据库临时数据表中,直至所述字段的数据字典均取过至少一次。
为实现上述目的,本发明还提供了一种实现生成测试案例数据的方法,包括:
本地数据库保存相关的参数表;
从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;并对所述使用字段的字典的参数进行合法性检查,筛选出需要参与数据排列组合的字段;
利用所述筛选出的需要参与数据排列组合的字段生成测试案例所需要的数据,并将生成的数据记录到数据库临时数据表中;
根据用户需求,将所述数据库临时数据表中记录的数据输出。
可选的,在本发明一实施例中,所述筛选出需要参与数据排列组合的字段的步骤包括:
从本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;
判断所述使用字段第一位的值是否为1;若是,则所述使用字段为参与数据排列组合的字段。
可选的,在本发明一实施例中,所述筛选出需要参与数据排列组合的字段的步骤还包括:
根据所述筛选出的参与数据排列组合的字段后15位、字段ID查询数据字典表,确定所述字段的字典项,获取所述筛选出的参与数据排列组合的字段全排列组合达到的数据量。
可选的,在本发明一实施例中,所述生成所需要的数据的步骤具体包括:
根据所述筛选出的参与数据排列组合的字段全排列组合达到的数据量选择数据生成算法。
可选的,在本发明一实施例中,所述数据生成算法包括SQL筛选方式数据生成算法、分组方式数据生成算法和等价类划分方式数据生成模块;根据选择,从所述SQL筛选方式数据生成算法、所述分组方式数据生成算法和所述等价类划分方式数据生成算法中任选一种算法生成数据;其中,
所述SQL筛选方式数据生成算法,对所述筛选出的需要参与数据排列组合的字段通过全排列组合方式生成全部可能组合的数据,保存到数据库临时数据表中;根据需要参与数据排列组合的字段的逻辑关系转化成SQL语句,利用SQL语句对数据进行筛选获取无效数据,并在数据库临时数据表中将所述无效数据记录状态置为无效;
所述分组方式数据生成算法,根据相对应的逻辑条件对所述筛选出的需要参与数据排列组合的字段进行迭代判断得到有效分组;对有效分组进行全排列组合的方式生成有效数据,保存到数据库临时数据表中;
所述等价类划分方式数据生成算法,用于从所述筛选出的需要参与数据排列组合的字段的数据字典中循环取值,对取得的每个字典值记录到数据库临时数据表中,直至所述字段的数据字典均取过至少一次。
上述技术方案具有如下有益效果:
1)数据文件涉及的数据字段,其数据结构、数据字典采用共享方式,同一个字段在多个文件中出现的机率是很大的,因而可以实现一次配置后,多次使用,避免重复做繁琐的数据准备工作,提高了效率。
2)对已生成的数据,直接生成为外部文件,方便保存和使用,避免数据库保留太多数据,而导致效率降低和维护成本增加。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提出的一种实现生成测试案例数据的系统框图;
图2为本发明提出的一种实现生成测试案例数据的系统中数据筛选预处理单元框图之一;
图3为本发明提出的一种实现生成测试案例数据的系统中数据筛选预处理单元框图之二;
图4为本发明提出的一种实现生成测试案例数据的系统中数据生成单元框图;
图5为本发明提出的一种实现生成测试案例数据的方法流程图;
图6为实施例的实现生成测试案例数据的系统总体结构示意图;
图7为实施例中数据文件字段关系实例示意图;
图8为实施例中SQL筛选方式生成数据文实例示意图;
图9为实施例中分组方式生成数据文实例示意图;
图10为实施例中等价类划分方式生成数据文实例示意图;
图11为实施例中实现生成测试案例数据的方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明提出的一种实现生成测试案例数据的系统框图。包括:
本地数据库101,用于保存相关的参数表;
数据筛选预处理单元102,用于从所述本地数据库101读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;并对所述使用字段的字典的参数进行合法性检查,筛选出需要参与数据排列组合的字段;
数据生成单元103,用于利用所述数据筛选预处理单元102筛选出的需要参与数据排列组合的字段生成测试案例所需要的数据,并将生成的数据记录到数据库临时数据表中;
数据输出单元104,用于根据用户需求,将所述数据库临时数据表中记录的数据输出。
如图2所示,为本发明提出的一种实现生成测试案例数据的系统中数据筛选预处理单元框图之一。所述数据筛选预处理单元102包括使用字段模块1021和筛选模块1022;
所述使用字段模块1021,用于从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;
所述筛选模块1022,用于判断所述使用字段第一位的值是否为1;若是,则所述使用字段为参与数据排列组合的字段。
如图3所示,为本发明提出的一种实现生成测试案例数据的系统中数据筛选预处理单元框图之二。在图2的基础上,所述数据筛选预处理单元102还包括数据量模块1023;
所述数据量模块1023,用于根据所述筛选模块筛选出的参与数据排列组合的字段后15位、字段ID查询数据字典表,确定所述字段的字典项,获取所述筛选模块筛选出的参与数据排列组合的字段全排列组合达到的数据量。
可选的,在本发明一实施例中,所述数据生成单元103进一步用于根据所述数据筛选预处理单元102中的数据量模块获取的数据量选择数据生成算法。
如图4所示,所述数据生成单元103包括SQL筛选方式数据生成模块1031、分组方式数据生成模块1032和等价类划分方式数据生成模块1033;根据选择,从所述SQL筛选方式数据生成模块、所述分组方式数据生成模块和所述等价类划分方式数据生成模块中任选一种模块生成数据;其中,
所述SQL筛选方式数据生成模块1031,用于对所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段通过全排列组合方式生成全部可能组合的数据,保存到数据库临时数据表中;根据需要参与数据排列组合的字段的逻辑关系转化成SQL语句,利用SQL语句对数据进行筛选获取无效数据,并在数据库临时数据表中将所述无效数据记录状态置为无效;
所述分组方式数据生成模块1032,用于根据相对应的逻辑条件对所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段进行迭代判断得到有效分组;对有效分组进行全排列组合的方式生成有效数据,保存到数据库临时数据表中;
所述等价类划分方式数据生成模块1033,用于从所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段的数据字典中循环取值,对取得的每个字典值记录到数据库临时数据表中,直至所述字段的数据字典均取过至少一次。
如图5所示,为本发明提出的一种实现生成测试案例数据的方法流程图。包括:
步骤501):本地数据库保存相关的参数表;
步骤502):从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;并对所述使用字段的字典的参数进行合法性检查,筛选出需要参与数据排列组合的字段;
步骤503):利用所述筛选出的需要参与数据排列组合的字段生成测试案例所需要的数据,并将生成的数据记录到数据库临时数据表中;
步骤504):根据用户需求,将所述数据库临时数据表中记录的数据输出。
可选的,在本发明一实施例中,所述步骤502包括:
步骤5021):从本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;
步骤5022):判断所述使用字段第一位的值是否为1;若是,则所述使用字段为参与数据排列组合的字段。
可选的,在本发明一实施例中,所述步骤502还包括:
步骤5023):根据所述筛选出的参与数据排列组合的字段后15位、字段ID查询数据字典表,确定所述字段的字典项,获取所述筛选出的参与数据排列组合的字段全排列组合达到的数据量。
可选的,在本发明一实施例中,所述步骤503具体包括:
根据所述筛选出的参与数据排列组合的字段全排列组合达到的数据量选择数据生成算法。
可选的,在本发明一实施例中,所述数据生成算法包括SQL筛选方式数据生成算法、分组方式数据生成算法和等价类划分方式数据生成模块;根据选择,从所述SQL筛选方式数据生成算法、所述分组方式数据生成算法和所述等价类划分方式数据生成算法中任选一种算法生成数据;其中,
所述SQL筛选方式数据生成算法,对所述筛选出的需要参与数据排列组合的字段通过全排列组合方式生成全部可能组合的数据,保存到数据库临时数据表中;根据需要参与数据排列组合的字段的逻辑关系转化成SQL语句,利用SQL语句对数据进行筛选获取无效数据,并在数据库临时数据表中将所述无效数据记录状态置为无效;
所述分组方式数据生成算法,根据相对应的逻辑条件对所述筛选出的需要参与数据排列组合的字段进行迭代判断得到有效分组;对有效分组进行全排列组合的方式生成有效数据,保存到数据库临时数据表中;
所述等价类划分方式数据生成算法,用于从所述筛选出的需要参与数据排列组合的字段的数据字典中循环取值,对取得的每个字典值记录到数据库临时数据表中,直至所述字段的数据字典均取过至少一次。
实施例:
下面将对照附图,对本发明的技术方案进行详细说明。
如图6所示,为实施例的实现生成测试案例数据的系统总体结构示意图。该系统包括:本地数据库1、数据筛选预处理单元2、SQL筛选方式数据生成模块3、分组方式数据生成模块4、等价类划分方式数据生成模块5和数据输出单元6。其中,
本地数据库1主要用于保存相关参数表;
数据筛选预处理单元2主要用于对设置的参数进行相关的检查,包括计算组合的数据量,筛选出需要参与组合的字段等预处理功能,以便精简数据,为后续不同算法的分析处理,减少循环和判断处理,提高数据生成的效率;
SQL筛选方式数据生成模块3主要通过全排列组合方式生成全部可能组合的数据,保存到数据库临时表中,然后字段的逻辑关系转化成的SQL语句对数据进行筛选,最后得出所需的数据记录在数据库临时数据表;
分组方式数据生成模块4主要通过分组排列方式生成所需要的数据,将所需的数据记录在数据库临时数据表;
等价划分方式数据生成装置5是通过等价类划分方法的原理生成数据,将所需的数据记录在数据库临时数据表;
数据输出单元6是一个提供界面,由用户选择数据输出方式输出数据;
本地数据库1存储的相关参数则可通过数据文件管理模块7、数据结构管理模块8、数据字典管理模块9和数据逻辑关系管理模块10进行设置。其中,
数据文件管理模块7用于数据生成时,读定义数据文件名;
数据结构管理模块8是用于定义待生成文件的结构组成;
数据字典管理模块9用于定义数据结构中每个字段的取值字典;
数据逻辑关系管理模块10用于定义数据结构文件中各字段间的逻辑关系。
通过数据文件管理模块7定义了文件名后,再通过数据结构管理模块8定义文件结构,再由数据字典管理模块9定义结构的字典,然后通过数据逻辑关系管理模块10定义字段间的逻辑关系。以上要素定义完成后,通过数据筛选预处理单元2对选择的文件进行预处理,通过SQL筛选方式数据生成模块3、分组方式数据生成模块4、等价类划分方式数据生成模块5任一种数据组成方法生成数据,然后通过数据输出单元6输出数据,完成数据的生成。
下面是各装置的详细说明:
本地数据库1,用于保存相关的参数表,包括文件名称表、数据结构表、数据字典表、数据关联表、逻辑关系表及临时数据表,各表作用如下:
1、文件名称表(DATAFILE)定义需要生成的数据文件的名称,以TXT、EXCEL等文件形式来保存数据,方便直接导入到脚本中运行,或直接使用。表结构见表1,此表由数据文件管理模块6进行设置管理。
表1文件名称表(DATAFILE)
Figure BDA0000381895470000081
2、数据结构表(DATASTR)需要生成的数据有一定的结构,包括字段名称、中文描述、数据类型、数据长度、数据取值范围或数据字典取值等。表结构见表2,此表由数据结构管理模块7进行设置管理。
表2数据结构表(DATASTR)
Figure BDA0000381895470000082
3、数据字典表(DATADIC)每一个数据字段,均可设置用数据字典的形式来表示,数据字典中包括字段名称、字典代码、字典含义、使用方法。表结构见表3,此表由数据字典管理模块9进行设置管理。
表3、数据字典表(DATADIC)
4、逻辑关系表(LOGICREL)业务规则或系统的逻辑关系,可转化成数据字段之间的逻辑关系,最终转化成SQL的条件语句。表结构见表4,此表由数据逻辑关系管理模块8进行设置管理。
表4、逻辑关系表(LOGICREL)
Figure BDA0000381895470000092
5、数据关联表(DATAREL)通过本表确定数据文件包含的字段。表结构见表5。
表5、数据关联表(DATAREL)
Figure BDA0000381895470000093
6、临时数据表(DATATMP)将数据组合生成的临时结果也保存到本地数据库中,以便下一步处理。表结构见表6。
表6、临时数据表(DATATMP)
Figure BDA0000381895470000094
Figure BDA0000381895470000101
数据筛选预处理单元2根据当前选择的文件,检查文件定义的各字段的字典的参数进行相关的合法性检查,然后筛选出需要参与组合的字段,计算出组合的数据量等初步的处理,方便后续不同算法的分析处理,减少循环和判断处理,提高数据分析的效率。
SQL筛选方式数据生成模块3是一个生成全排列组合数据,保存到本地数据库的临时数据表中,再根据逻辑关系判断其中的无效组合,将记录状态置为无效的装置。
对于各字段之间的逻辑关系,可有以下情况:
1)如果字段A的值为某个字典值时,字段B不能为某个(或某几个)字典值;简化描述为:如果A=1,则B<>1;或如果A=1,则B not in(1,2,…);
2)如果字段A的值不为某个字典值时,字段B只能为某个(或某几个)字典值;简化描述为:如果A<>1,则B=1;或如果A<>1,则B in(1,2,…);
3)如果字段A的值为某个字典值,并且字段B的值为某个字段值时(,并且。。。),字段C只能为某些字段值;简化描述为:如果A=1and B=1(AND…),则C in(1,2…);
如图7所示,为实施例中数据文件字段关系实例示意图。文件存在a、b、c三个字段及相关的字典,这段之间存在如下关系:
1)a为1时,b不能为4
2)a为1或2时,b为5
3)a为1并且c为6时,b不能为4
对于SQL筛选方式数据生成算法来讲,首先对这字段字的各种字典项取值,进行全排列得到18种组合,如图8所示,将数据存储在本地数据库1的临时数据表(DATATMP)中,再根据逻辑关系表中记录的前提条件及结果,转化为相关的SQL语句的查询条件,将不符合条件的记录筛选出来,并标记为无效案例,转换后的SQL如下:
1)UPADTE DATATMP SET STATUS=1WHERE a=1and b=4;
2)UPADTE DATATMP SET STATUS=1WHERE a in(1,2)and b<>5;
3)UPADTE DATATMP SET STATUS=1WHERE a=1and c=6and b=4;
执行语句1),可以筛选出记录,如图8所示,“146、147、148”的3组记录,对应字段a的值为1,b的值为4,因为条件中说明a为1,b不能为4,这三组记录的b值为4,因而这三组案例是无效的数据;同理,执行语句2),可以筛选出记录,如图8所示,“146、147、148、246、247、248”的6组记录,执行语句3),可以筛选出记录,如图8所示,“146”的1组记录;从而可知不符合条件的记录有6组,符合的记录有12组,而第1和3条语句是多余的,因条件2已经能够筛选出的无效记录包含了条件1和3的无效记录。
分组方式数据生成模块4提供一个根据分组排列组合的算法,生成有效组合数据的装置。对于字段数及对应字典组合不多的情况,可以直接进行全排列组合的方法生成全部数据,再进行筛选,但当字段数及对应字典组合很多的情况,直接按全排列组合后再筛选的方法有可能导致效率低下。本算法采用先分组,排除无效记录,再对各组有效分组进行全排列组合的方法生成有效数据。
其原理是先根据条件判断,如第1个条件a为1,b不能为4,则将a的取值分成两部分,即a1=1,a2<>1的两种情况,再根据条件判断相关字段的取值范围;执行分组后的结果,记录到临时文件中。当每个条件检查完成后,保留最新的临时结果,如图9所示,从初始状态开始,执行条件1后,只记录执行条件1后的状态,如此类推,直至执行完全部的条件后,得到最后一个分组结果。对各分组进行全排列组合,生成最终符合条件的全部组合数据。
等价类划分方式数据生成模块5是选择采用等价类划分法的原理来生成数据的装置。采用等价类划分法是因为不可能进行穷举测试,为了节省时间和资源,提高测试效率,必须要从数据量极大的可用测试数据中精心挑选出具有代表性或特殊性的测试数据来进行测试,在数据生成中,可以等价类划分的方法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。
如图10所示,采用全排列组合,能够生成18条数据,但如果采用等价类方法,只生成3数据。等价类的方法是根据各字段的全部可能输入项,生成的案例数为最多可能取值的字段的字典数。这种方法生成的数据组合,能涵盖全部取值,并且生成的数据量最少。
数据输出单元6是一个提供界面,可以让用户选择输出的数据文件的格式,根据不同格式的转换要求,生成符合用户需要的各种数据文件。如用户需要生成txt格式的文件,该类文件对所有字段的数据,要求必须按字段长度填充数据,如数字类型的字段,需要左补0处理,字符类型的字段需要右补空格处理、日期字段必须以日期格式YYYY-MM-DD输出。数据输出单元6根据数据库重的文件名称表中用户设置文件名称、文件输出类型、数据生成算法要求,生成满足用户要求的数据文件。
如图11所示,为实施例中实现生成测试案例数据的方法的流程示意图。下面结合图11对本系统的处理流程进行说明。
步骤1:数据筛选预处理单元2从本地数据库1中读文件名称表,对计数器进行初始化。
步骤2:数据筛选预处理单元2根据步骤1得到的文件名称表中读取数据关联表,得到使用字段数DATASTR_NUM;
步骤3:数据筛选预处理单元2根据步骤2获取的使用字段DATAREL_1第一位的值,进行判断该字段是否参与数据排列组合或筛选处理;如果为1,则转到步骤4中处理;否则,转到步骤5中处理;
步骤4:数据筛选预处理单元2当使用字段第1位为1,则表示字段DATAREL_1参与数据排列组合或筛选,根据字段DATAREL_1后15位以及字段ID查询数据字典表,确定字段DATAREL_1有多少个字典项,循环处理,根据每个字段的字典项数目,计算全排列组合达到的数据量;
步骤5:数据筛选预处理单元2处理完一个使用字段后,循环处理文件对应的全部字段,并通过计数器N进行记录。
步骤6:数据筛选预处理单元2判断计算器的值是否大于DATASTR_NUM,若是,则进入步骤7,否则跳到步骤2,继续循环处理。
步骤7:数据筛选预处理单元2根据用户选择的算法,跳转到不同数据生成模块进行处理,如果选择SQL筛选,转步骤8,如果选择分组排列组合,则转步骤12,如果选择等价类划分,则转步骤15。
步骤8:SQL筛选方式数据生成模块3取所有参与排列组合的使用字段,进行全排列组合,并将生成的数据存储到数据库临时数据表中。
步骤9:SQL筛选方式数据生成模块3根据文件名读取相应的逻辑关系表,循环处理;
步骤10:SQL筛选方式数据生成模块3根据所取得的逻辑关系语句,前提条件及无效结果两部分,拼装成SQL语句,更新临时数据表的状态为1-无效记录。
步骤11:SQL筛选方式数据生成模块3判断是否已处理完全部逻辑关系,如是,结束循环处理,进入步骤18;否则转至步骤9,继续处理;
步骤12:如果选择分组排列,则分组方式数据生成模块4对逻辑条件的前提部分划分成两部分,然后根据有效结果部分进行分组,剔除不满足条件的组合。循环处理所有的逻辑条件。
步骤13:分组方式数据生成模块4检查步骤12是否已处理完所有的逻辑条件,如是则进入步骤14,否则转至步骤12,继续根据逻辑条件分组;
步骤14:分组方式数据生成模块4分别对生成的各个分组分别进行全排列组合,将数据插入到数据库临时数据表中,状态置为0-有效记录。
步骤15:如果选择等价类划分,则等价类划分方式数据生成模块5从每个使用字段的数据字典中,先后从第1个取值,直到每个使用字段的字典值均取过至少一次,对于某些字典值较少的字段,在循环过程中,如果已达到最后一个,则一直取最一个字典。
步骤16:等价类划分方式数据生成模块5对每个字典取值后,将其记录到数据库临时数据表中。
步骤17:等价类划分方式数据生成模块5检查是否每个使用字段的字典都已用过,如果是,则跳到步骤18,否则继续处理。
步骤18:数据输出单元6根据临时数据表中的记录,读数据关联表,数据结构表及数据字典表取值,以及文件输出类型,进行赋值及做相应的补位等处理,输出数据文件。
本技术方案对生成数据的各项要素,包括文件名称、数据结构、数据字典、数据逻辑关系,采用配置的方法实现,可以随时更换、修改,或新增,测试人员不需要修改程序,即使被测的程序逻辑控制有修改,或者业务规则有变化,只需修改相关的逻辑条件的配置,如果是数据字段变化,包括类型或字典值的增减,同样只需改字典的配置,可以实现各项目的测试数据的自动生成。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种实现生成测试案例数据的系统,其特征在于,包括:
本地数据库,用于保存相关的参数表;
数据筛选预处理单元,用于从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;并对所述使用字段的字典的参数进行合法性检查,筛选出需要参与数据排列组合的字段;
数据生成单元,用于利用所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段生成测试案例所需要的数据,并将生成的数据记录到数据库临时数据表中;
数据输出单元,用于根据用户需求,将所述数据库临时数据表中记录的数据输出。
2.如权利要求1所述的系统,其特征在于,所述数据筛选预处理单元包括使用字段模块和筛选模块;
所述使用字段模块,用于从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;
所述筛选模块,用于判断所述使用字段第一位的值是否为1;若是,则所述使用字段为参与数据排列组合的字段。
3.如权利要求2所述的系统,其特征在于,所述数据筛选预处理单元还包括数据量模块;
所述数据量模块,用于根据所述筛选模块筛选出的参与数据排列组合的字段后15位、字段ID查询数据字典表,确定所述字段的字典项,获取所述筛选模块筛选出的参与数据排列组合的字段全排列组合达到的数据量。
4.如权利要求3所述的系统,其特征在于,所述数据生成单元进一步用于根据所述数据筛选预处理单元中的数据量模块获取的数据量选择数据生成算法。
5.如权利要求4所述的系统,其特征在于,所述数据生成单元包括SQL筛选方式数据生成模块、分组方式数据生成模块和等价类划分方式数据生成模块;根据选择,从所述SQL筛选方式数据生成模块、所述分组方式数据生成模块和所述等价类划分方式数据生成模块中任选一种模块生成数据;其中,
所述SQL筛选方式数据生成模块,用于对所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段通过全排列组合方式生成全部可能组合的数据,保存到数据库临时数据表中;根据需要参与数据排列组合的字段的逻辑关系转化成SQL语句,利用SQL语句对数据进行筛选获取无效数据,并在数据库临时数据表中将所述无效数据记录状态置为无效;
所述分组方式数据生成模块,用于根据相对应的逻辑条件对所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段进行迭代判断得到有效分组;对有效分组进行全排列组合的方式生成有效数据,保存到数据库临时数据表中;
所述等价类划分方式数据生成模块,用于从所述数据筛选预处理单元筛选出的需要参与数据排列组合的字段的数据字典中循环取值,对取得的每个字典值记录到数据库临时数据表中,直至所述字段的数据字典均取过至少一次。
6.一种实现生成测试案例数据的方法,其特征在于,包括:
本地数据库保存相关的参数表;
从所述本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;并对所述使用字段的字典的参数进行合法性检查,筛选出需要参与数据排列组合的字段;
利用所述筛选出的需要参与数据排列组合的字段生成测试案例所需要的数据,并将生成的数据记录到数据库临时数据表中;
根据用户需求,将所述数据库临时数据表中记录的数据输出。
7.如权利要求6所述的方法,其特征在于,所述筛选出需要参与数据排列组合的字段的步骤包括:
从本地数据库读取文件名称表,根据所述文件名称表读取数据关联表得到使用字段;
判断所述使用字段第一位的值是否为1;若是,则所述使用字段为参与数据排列组合的字段。
8.如权利要求7所述的方法,其特征在于,所述筛选出需要参与数据排列组合的字段的步骤还包括:
根据所述筛选出的参与数据排列组合的字段后15位、字段ID查询数据字典表,确定所述字段的字典项,获取所述筛选出的参与数据排列组合的字段全排列组合达到的数据量。
9.如权利要求8所述的方法,其特征在于,所述生成所需要的数据的步骤具体包括:
根据所述筛选出的参与数据排列组合的字段全排列组合达到的数据量选择数据生成算法。
10.如权利要求9所述的方法,其特征在于,所述数据生成算法包括SQL筛选方式数据生成算法、分组方式数据生成算法和等价类划分方式数据生成模块;根据选择,从所述SQL筛选方式数据生成算法、所述分组方式数据生成算法和所述等价类划分方式数据生成算法中任选一种算法生成数据;其中,
所述SQL筛选方式数据生成算法,对所述筛选出的需要参与数据排列组合的字段通过全排列组合方式生成全部可能组合的数据,保存到数据库临时数据表中;根据需要参与数据排列组合的字段的逻辑关系转化成SQL语句,利用SQL语句对数据进行筛选获取无效数据,并在数据库临时数据表中将所述无效数据记录状态置为无效;
所述分组方式数据生成算法,根据相对应的逻辑条件对所述筛选出的需要参与数据排列组合的字段进行迭代判断得到有效分组;对有效分组进行全排列组合的方式生成有效数据,保存到数据库临时数据表中;
所述等价类划分方式数据生成算法,用于从所述筛选出的需要参与数据排列组合的字段的数据字典中循环取值,对取得的每个字典值记录到数据库临时数据表中,直至所述字段的数据字典均取过至少一次。
CN201310418239.6A 2013-09-13 2013-09-13 一种实现生成测试案例数据的系统及方法 Active CN103473325B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310418239.6A CN103473325B (zh) 2013-09-13 2013-09-13 一种实现生成测试案例数据的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310418239.6A CN103473325B (zh) 2013-09-13 2013-09-13 一种实现生成测试案例数据的系统及方法

Publications (2)

Publication Number Publication Date
CN103473325A true CN103473325A (zh) 2013-12-25
CN103473325B CN103473325B (zh) 2017-01-25

Family

ID=49798173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310418239.6A Active CN103473325B (zh) 2013-09-13 2013-09-13 一种实现生成测试案例数据的系统及方法

Country Status (1)

Country Link
CN (1) CN103473325B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955890A (zh) * 2016-05-13 2016-09-21 中国建设银行股份有限公司 一种功能测试案例的生成方法及装置
CN106612330A (zh) * 2017-01-05 2017-05-03 广州慧睿思通信息科技有限公司 支持分布式多文件导入的系统及方法
CN106649082A (zh) * 2016-09-05 2017-05-10 中国银行股份有限公司 一种生成测试数据的方法及装置
CN107122485A (zh) * 2017-05-09 2017-09-01 北京精真估信息技术有限公司 一种车型数据拆分匹配方法及设备
CN108399130A (zh) * 2018-02-28 2018-08-14 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质
CN108763083A (zh) * 2018-05-30 2018-11-06 平安普惠企业管理有限公司 自动化测试方法、装置、计算机设备及存储介质
CN110019327A (zh) * 2017-11-28 2019-07-16 北京众享比特科技有限公司 基于区块链的数据库系统中数据库表的审计方法
CN110888797A (zh) * 2019-10-11 2020-03-17 平安信托有限责任公司 测试数据生成方法、装置、计算机设备及存储介质
CN111164585A (zh) * 2017-09-30 2020-05-15 甲骨文国际公司 对外部驻留数据执行存储器中列分析查询
CN113569547A (zh) * 2020-04-28 2021-10-29 北京国双科技有限公司 警务系统测试方法及相关装置
CN114140047A (zh) * 2021-11-20 2022-03-04 苏州浪潮智能科技有限公司 一种系统物料清单生成方法、系统、存储介质及设备
CN116594917A (zh) * 2023-07-18 2023-08-15 建信金融科技有限责任公司 Ui测试方法和装置、电子设备及机器可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430661A (zh) * 2008-11-18 2009-05-13 阿里巴巴集团控股有限公司 一种批量生成测试数据的方法、系统和装置
CN102902685A (zh) * 2011-07-27 2013-01-30 阿里巴巴集团控股有限公司 基于数据库的工具系统的测试方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101430661A (zh) * 2008-11-18 2009-05-13 阿里巴巴集团控股有限公司 一种批量生成测试数据的方法、系统和装置
CN102902685A (zh) * 2011-07-27 2013-01-30 阿里巴巴集团控股有限公司 基于数据库的工具系统的测试方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邓璐娟等: "软件测试数据自动生成方法的研究进展", 《郑州轻工业学院学报(自然科学版)》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955890A (zh) * 2016-05-13 2016-09-21 中国建设银行股份有限公司 一种功能测试案例的生成方法及装置
CN105955890B (zh) * 2016-05-13 2018-10-19 中国建设银行股份有限公司 一种功能测试案例的生成方法及装置
CN106649082A (zh) * 2016-09-05 2017-05-10 中国银行股份有限公司 一种生成测试数据的方法及装置
CN106612330A (zh) * 2017-01-05 2017-05-03 广州慧睿思通信息科技有限公司 支持分布式多文件导入的系统及方法
CN107122485A (zh) * 2017-05-09 2017-09-01 北京精真估信息技术有限公司 一种车型数据拆分匹配方法及设备
CN111164585B (zh) * 2017-09-30 2023-08-08 甲骨文国际公司 对外部驻留数据执行存储器中列分析查询
CN111164585A (zh) * 2017-09-30 2020-05-15 甲骨文国际公司 对外部驻留数据执行存储器中列分析查询
CN110019327A (zh) * 2017-11-28 2019-07-16 北京众享比特科技有限公司 基于区块链的数据库系统中数据库表的审计方法
WO2019165691A1 (zh) * 2018-02-28 2019-09-06 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质
CN108399130A (zh) * 2018-02-28 2018-08-14 平安科技(深圳)有限公司 自动生成测试案例的方法、装置、设备及可读存储介质
CN108763083A (zh) * 2018-05-30 2018-11-06 平安普惠企业管理有限公司 自动化测试方法、装置、计算机设备及存储介质
CN110888797A (zh) * 2019-10-11 2020-03-17 平安信托有限责任公司 测试数据生成方法、装置、计算机设备及存储介质
CN113569547A (zh) * 2020-04-28 2021-10-29 北京国双科技有限公司 警务系统测试方法及相关装置
CN114140047A (zh) * 2021-11-20 2022-03-04 苏州浪潮智能科技有限公司 一种系统物料清单生成方法、系统、存储介质及设备
CN114140047B (zh) * 2021-11-20 2024-01-19 苏州浪潮智能科技有限公司 一种系统物料清单生成方法、系统、存储介质及设备
CN116594917A (zh) * 2023-07-18 2023-08-15 建信金融科技有限责任公司 Ui测试方法和装置、电子设备及机器可读存储介质
CN116594917B (zh) * 2023-07-18 2023-09-22 建信金融科技有限责任公司 Ui测试方法和装置、电子设备及机器可读存储介质

Also Published As

Publication number Publication date
CN103473325B (zh) 2017-01-25

Similar Documents

Publication Publication Date Title
CN103473325B (zh) 一种实现生成测试案例数据的系统及方法
CN104866426B (zh) 软件测试综合控制方法及系统
CN104572122B (zh) 一种软件应用数据的生成装置及方法
CN102122265B (zh) 一种计算机软件测试结果的验证方法及系统
CN111400387B (zh) 导入导出数据的转换方法、装置、终端设备及存储介质
CN111522817B (zh) 表格内容映射系统、方法及非暂时性存储介质
CN110990274B (zh) 一种生成测试案例的数据处理方法、装置及系统
CN102117202A (zh) 基于j2ee架构的代码生成装置
CN111679979B (zh) 破坏性测试方法及装置
CN104618955A (zh) 一种移动通信终端一致性测试项目集生成方法及其生成系统
CN112395339B (zh) 系统间数据准入校验方法、装置、计算机设备和存储介质
CN112560413B (zh) 基于配置模式的报表扩展方法、装置和设备
CN111984826A (zh) 基于xml的数据自动入库方法、系统、装置和存储介质
CN115048359A (zh) 一种多类型接入数据源的通用数据处理架构设计方法
US9477927B2 (en) Automatic test generation for decision table based rules
CN114416531A (zh) 一种测试数据生成方法、装置、设备及介质
CN113448965A (zh) 一种全表扫描的结构化查询语句的确定方法、装置和设备
CN113377801A (zh) 数据检验方法、装置、电子设备及计算机存储介质
CN111752677A (zh) 一种云资源配置方法、系统、终端及存储介质
CN111813769A (zh) 数据加工方法与装置
CN111610964A (zh) 一种编码规则生成方法及装置
CN106951427B (zh) 一种业务对象的数据抽取方法及装置
CN116431677B (zh) 基于内存数据库的数据路由方法、系统和可读存储介质
CN112231226B (zh) 一种软件测试数据生成、维护和导出的方法及系统
CN117370370A (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