一种面向数据库的测试数据自动衍生方法和装置的制作方法

文档序号:6442645阅读:222来源:国知局
专利名称:一种面向数据库的测试数据自动衍生方法和装置的制作方法
技术领域
本发明涉及计算机软件测试,并且尤其涉及一种面向数据库的测试数据自动衍生方法和装置。
背景技术
在软件开发过程中,系统测试通常是软件开发生命周期中不可或缺的一部分,测试的质量直接关系着系统的质量。在真实的测试过程中,测试类型的划分多种多样,有白盒测试、黑盒测试、功能测试、性能测试等等。因此,在测试过程中,对测试数据的需求也不同。目前,国内外众多软件测试数据的主要生成手段是手工方式。测试数据的准备全部依仗于人工的编写。但是,人工方式仅能应对简单的功能测试;当基于测试案例要编写的测试数据的数据量很大,或者要求测试数据产生各种变化,或者测试数据必须满足某些特定逻辑关系来适应各种测试场景和测试案例时,通过人工方式生成测试数据,通常无法在短时间内生产出大量测试数据,每一条数据的创建都需要人工干预,而且对测试人员也提出了高难度的要求,因此测试将非常耗时耗力而且测试效率较低。在这种情况下,测试数据的手工准备成为软件测试过程中的瓶颈。测试数据的自动衍生可以大大改善软件测试过程中的这种瓶颈效应。申请号为02139613.2的中国专利申请公开的测试数据自动生成方法提出了一种面向程序路径的自动生成方法,这种方法通过输入接口、词法分析器、语法分析器、约束构造器、约束求解器、路径满足检查器、输出接口模块实现测试数据自动生成,该方法包括以下4个步骤:
(1)用户从输入接口指定程序路径W、各输入变量的初值和增量以及其它参数值,如W上的所有谓词函数是否均为输入变量的线性函数、当W上的某谓词函数为输入变量的非线性函数时迭代求解的次数上限、以及当W上存在黑盒且黑盒中包含输入语句时,根据黑盒的接口规范所规定的黑盒中的输入变量的个数及各输入变量的数据类型等;
(2)词法分析器对W进行词法分析后,语法分析器根据词法分析的结果对W进行语法分析,将W转换为约束构造程序和路径满足检查程序,约束构造程序经编译产生约束构造器,路径满足检查程序经编译产生路径满足检查器;
(3)约束构造器根据当前程序输入和各输入变量的增量执行W上的语句,不分析W上的语句之间的数据依赖关系,构造W上各谓词函数的线性算术表示,然后建立输入变量的线性约束系统;
(4)约束求解器采用线性规划、线性整数规划、线性混合整数规划和最小二乘解法相结合的方法求解该线性约束系统:若用户指定W上的谓词函数均为输入变量的线性函数,则采用线性规划、线性整数规划、线性混合整数规划方法求解;若用户指定W上的谓词函数中含有输入变量的非线性函数,则先采用线性规划、线性整数规划、线性混合整数规划方法求解,若无法找到解,则将该线性约束系统转换为线性方程系统,求它的最小二乘解;求解后获得新的程序输入即测试数据;最后由路径满足检查器进行检查,若该程序输入能使W被经过则结束,若该程序输入不能使W被经过则根据W上所有谓词函数是否为输入变量的线性函数以及迭代次数上限决定是否继续迭代求解;求解结果由输出接口输出。上述方法的算法逻辑过于复杂,该方法在实际运用中缺乏一定的简单易操作性。申请号为200910147768.0的中国专利申请公开的测试数据自动生成方法提出了一种嵌入式软件测试开发的方法,该方法包括以下8个步骤:
(1)加载测试方案,所述测试方案是根据对被测嵌入式软件文档的分析,按照被测软件的特点以及测试要求,明确测试开发工作的输入而形成的;
(2)测试环境配置,根据测试方案对嵌入式软件自动化测试环境的通用参数进行配置,以使得所生成的测试环境配置更好地适配自动化测试平台;
(3)交联环境建模,即完成交联设备仿真模型的构建,生成所述交联设备仿真模型的信息;
(4)测试脚本开发,即调用所述交联设备仿真模型的信息,组织测试过程,选用测试脚本语言,生成测试脚本;
(5)测试面板开发,使用测试面板插件,以可视化的虚拟仪表方式允许用户通过拖拽建立测试显示面板;
(6)测试任务管理,使用测试任务管理插件,以测试单元的方式灵活地组织每次测试所需的仿真模型文件、测试脚本文件,测试面板文件等信息;
(7)生成基于XML格式的测试配置信息及测试数据的描述;
(8)交由自动化测试平台执行,即将已生成的XML格式的测试配置信息及测试数据加载到特定测试平台,可驱动测试过程,完成嵌入式软件的自动化测试。上述方法针对的是嵌入式系统,无法应用到企业级的基于关系型数据库的应用软件系统上来,因此其应用存在一定的局限性。因此,需要一种面向数据库的测试数据自动衍生方法和装置。

发明内容
为解决上述问题,本发明提供一种面向数据库的测试数据自动衍生方法,包括以下步骤:
配置步骤,在该步骤中,
根据基础数据表和目标数据表的表结构定义,配置基础数据表到目标数据表的匹配关系,其中,上述基础数据表存储有基础数据,所述目标数据表用于存储作为测试数据的目标数据,匹配关系包括基础数据表名称和目标数据表名称之间的匹配,基础数据表字段名称和目标数据表字段名称之间的匹配,
配置简单形变策略,该简单形变策略定义基础数据表字段值和目标数据表字段值之间的对应,
配置逻辑转变策略,该逻辑转变策略定义基础数据表字段值到目标数据表字段值的逻辑转变,
配置数据繁殖策略,数据繁殖策略定义基础数据表的字段繁殖逻辑和字段繁殖数量; 指令生成步骤,在该步骤中,
根据简单形变策略生成简单形变指令集,
根据逻辑转变策略生成逻辑转变指令集, 根据数据繁殖策略生成数据繁殖指令集;
执行步骤,在该步骤中,
根据所述简单形变指令集、逻辑转变指令集和数据繁殖指令集中的一个或多个执行数据衍生,以从基础数据得到目标数据,以及,
将所述目标数据写入目标数据表。在上述公开的方案中,所述配置步骤还包括:
配置目标数据落地方式;
在所述执行步骤中,根据目标数据落地方式将所述目标数据写入目标数据表。 在上述公开的方案中,所述目标数据落地方式包括将所述目标数据追加写入目标数据表或者将所述目标数据覆盖写入目标数据表。在上述公开的方案中,所述简单形变策略定义对基础数据表字段值进行裁剪以对应到目标数据表字段值。在上述公开的方案中,所述逻辑转变策略定义的基础数据表字段值到目标数据表字段值的逻辑转变包括逻辑判断过程和逻辑筛选过程。在上述公开的方案中,所述逻辑判断过程包括对基础数据表字段值的取值判断和/或取值范围判断。在上述公开的方案中,所述逻辑筛选过程包括对基础数据表字段值的全值匹配筛选和/或模糊匹配筛选。在上述公开的方案中,所述数据繁殖策略定义基础数据表的主键繁殖逻辑和主键
繁殖数量。在上述公开的方案中,所述执行步骤依次执行简单形变指令集、逻辑转变指令集和数据繁殖指令集以从基础数据得到目标数据。根据本发明的另一个目的,提供一种面向数据库的测试数据自动衍生装置,包括:
配置单元,被构造成:
配置基础数据表到目标数据表的匹配关系,其中,上述基础数据表存储有基础数据,所述目标数据表用于存储作为测试数据的目标数据,匹配关系包括基础数据表名称和目标数据表名称之间的匹配,基础数据表字段名称和目标数据表字段名称之间的匹配,
配置简单形变策略,该简单形变策略定义基础数据表字段值和目标数据表字段值之间的对应,
配置逻辑转变策略,该逻辑转变策略定义基础数据表字段值到目标数据表字段值的逻辑转变,
配置数据繁殖策略,数据繁殖策略定义基础数据表的字段繁殖逻辑和字段繁殖数量; 指令生成单元,被构造成:
根据简单形变策略生成简单形变指令集,
根据逻辑转变策略生成逻辑转变指令集,
根据数据繁殖策略生成数据繁殖指令集;
执行单元,被构造成:
根据所述简单形变指令集、逻辑转变指令集和数据繁殖指令集中的一个或多个执行数据衍生,以从基础数据得到目标数据,以及,
将所述目标数据写入目标数据表。在上述公开的方案中,所述配置单元还被构造成配置目标数据落地方式;
所述执行单元还被构造成根据目标数据落地方式将所述目标数据写入目标数据表。在上述公开的方案中,所述目标数据落地方式包括将所述目标数据追加写入目标数据表或者将所述目标数据覆盖写入目标数据表。 在上述公开的方案中,所述简单形变策略定义对基础数据表字段值进行裁剪以对应到目标数据表字段值。在上述公开的方案中,所述逻辑转变策略定义的基础数据表字段值到目标数据表字段值的逻辑转变包括逻辑判断过程和逻辑筛选过程。在上述公开的方案中,所述逻辑判断过程包括对基础数据表字段值的取值判断和/或取值范围判断。在上述公开的方案中,所述逻辑筛选过程包括对基础数据表字段值的全值匹配筛选和/或模糊匹配筛选。在上述公开的方案中,所述数据繁殖策略定义基础数据表的主键繁殖逻辑和主键
繁殖数量。在上述公开的方案中,所述执行单元依次执行简单形变指令集、逻辑转变指令集和数据繁殖指令集以从基础数据得到目标数据。本发明提出针对数据库表结构的通用的,能够用于白盒、黑盒的,能够完成功能测试、性能测试的测试数据自动衍生方法和装置。本发明测试数据的生成的技术方案配置灵活,能够满足不同测试数据生成的需要,而且通用性和可移植性好,适用广泛。


在参照附图阅读了本发明的具体实施方式
以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合具体实施方式
说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。图1是根据本发明实施例的面向数据库的测试数据自动衍生方法的步骤示意图。图2是根据本发明实施例的面向数据库的测试数据自动衍生装置的示意图。
具体实施例方式下面参照附图,对本发明的具体实施方式
作进一步的详细描述。如图1所示,图1是根据本发明实施例的面向数据库的测试数据自动衍生方法的步骤示意图。该方法包括,配置步骤、指令生成步骤和执行步骤。在配置步骤中,根据基础数据表和目标数据表的表结构定义,配置基础数据表到目标数据表的匹配关系,其中,上述基础数据表存储有基础数据,所述目标数据表用于存储作为测试数据的目标数据,匹配关系包括基础数据表名称和目标数据表名称之间的匹配,基础数据表字段名称和目标数据表字段名称之间的匹配。系统运行所依赖的数据库的基础数据表对应于作为测试数据的基础数据。对于新软件系统而言,基础数据可以通过手工准备;对于已运作的系统而言,基础数据可以来自已运作的系统的数据。在一个示例中,可以根据基础数据表和目标数据表的表结构定义,对同名字段自动进行对应匹配;当然也可以自定义字段对应关系。在该过程中,配置基础数据的在基础数据表中的抽取来源字段和目标数据的在目标数据表中的落脚字段。可以理解,上述基础数据表可以是一张或者多张,因此目标数据表名称可以与一张或者多张基础数据表的名称匹配,目标数据表字段名称可以与来自不同的基础数据表的基础数据表字段名称匹配。由此,可以根据需要从不同的基础数据表中包含的基础数据产生目标数据。在配置步骤中,配置简单形变策略。该简单形变策略定义基础数据表字段值和目标数据表字段值之间的对应,即,将基础数据表的字段的字段值视为相应的目标数据表的字段的字段值。这在一个示例中,所述简单形变策略定义对基础数据表字段值进行裁剪以对应到目标数据表字段值。例如,根据该简单形变策略,在执行测试数据衍生过程中,可以取基础数据表某字段值的第2位到第8位值对应到目标数据表某字段。在配置步骤中,配置逻辑转变策略。该逻辑转变策略定义基础数据表字段值到目标数据表字段值的逻辑转变,即,完成基础数据表字段值的逻辑转变。在一个示例中,所述逻辑转变策略定义的基础数据表字段值到目标数据表字段值的逻辑转变包括逻辑判断过程和逻辑筛选过程。在一个例子中,逻辑判断过程包括对基础数据表字段值的取值判断和/或取值范围判断。例如,根据该逻辑判断过程,在执行测试数据衍生过程中仅提取基础数据中字段A取值为“abc”或字段B取值>100的基础数据对应到目标数据表中相应的字段。在一个例子中,所述逻辑筛选过程可以包括对基础数据表字段值的全值匹配筛选、模糊匹配筛选和取值筛选。例如,根据该逻辑筛选过程,在执行测试数据衍生过程中,对于字符串类型的字段,可以进行全值匹配筛选、模糊匹配筛选;对于整型类的字段,可以进行〈、>、=、<=、>=等方式的取值筛选等。在配置步骤中,配置数据繁殖策略。数据繁殖策略定义基础数据表的字段繁殖逻辑和字段繁殖数量。在一个示例中,所述数据繁殖策略定义基础数据表的主键繁殖逻辑和主键繁殖数量。例如,主键数值自增长I或者字符串转变(例如,末尾字符的ASC II码值加I),繁殖1000条。在其它实施例中,可以还可以定义非主键值的繁殖策略。该过程完成基础数据到目标数据的自我繁殖。在执行测试数据衍生过程中,根据数据繁殖策略完成从基础数据的自我繁殖。在指令生成步骤中,根据简单形变策略生成简单形变指令集,根据逻辑转变策略生成逻辑转变指令集,根据数据繁殖策略生成数据繁殖指令集。可以理解,简单形变指令集、逻辑转变指令集和数据繁殖指令集是针对基础数据表进行的一系列的操作的集合,通过计算机程序来实现。还可以理解,可以根据需要采用上述一个或多个指令集来对基础数据表中的基础数据进行操作。针对基础数据表,这些指令集可以被重复地执行,当所有指令操作完成时,则可以认为经过最后的操作得到的基础数据表中的数据为目标数据。如上所述,这些指令集也可以针对多个基础数据表进行操作。在执行步骤中,根据所述简单形变指令集、逻辑转变指令集和数据繁殖指令集中的一个或多个执行数据衍生,以从基础数据得到目标数据。这里,“数据衍生”可以是基础数据的简单形变、逻辑转变、数据繁殖中的一个或多个。在一个示例中,可以依次执行简单形变指令集、逻辑转变指令集和数据繁殖指令集以从基础数据得到目标数据;以及,将所述目标数据写入目标数据表。由此,可以以目标数据表中存储的目标数据为测试数据进行系统测试。如上所述,还可以对视为目标数据的最后操作完成的基础数据继续重复或者不重复地执行上述一个或多个指令集以产生另外的目标数据。在另一个实施例中,还可以视存储有生成的目标数据的目标数据表为基础数据表,根据新制定的配置策略进行新一轮测试数据的衍生。在另一个实施例中,所述配置步骤还包括配置目标数据落地方式;在所述执行步骤中,根据目标数据落地方式将所述目标数据写入目标数据表。在一个示例中,所述目标数据落地方式包括将所述目标数据追加写入目标数据表或者将所述目标数据覆盖写入目标数据表。追加写入指保留目标数据表中的原有数据,在其后进行目标数据追加;覆盖写入指清除目标数据表中的原有数据,以新生成的目标数据作为目标数据表中的全部数据。图2是根据本发明实施例的面向数据库的测试数据自动衍生装置的示意图。面向数据库的测试数据自动衍生装置包括配置单元、指令生成单元和执行单元。其中,配置单元被构造成:配置基础数据表到目标数据表的匹配关系,其中,上述基础数据表存储有基础数据,所述目标数据表用于存储作为测试数据的目标数据,匹配关系包括基础数据表名称和目标数据表名称之间的匹配,基础数据表字段名称和目标数据表字段名称之间的匹配;配置简单形变策略,该简单形变策略定义基础数据表字段值和目标数据表字段值之间的对应;配置逻辑转变策略,该逻辑转变策略定义基础数据表字段值到目标数据表字段值的逻辑转变;配置数据繁殖策略,数据繁殖策略定义基础数据表的字段繁殖逻辑和字段繁殖数量。指令生成单元被构造成根据简单形变策略生成简单形变指令集;根据逻辑转变策略生成逻辑转变指令集;根据数据繁殖策略生成数据繁殖指令集。执行单元被构造成根据所述简单形变指令集、逻辑转变指令集和数据繁殖指令集中的一个或多个执行数据衍生,以从基础数据得到目标数据;以及,将所述目标数据写入目标数据表。如上所述的根据本发明实施例的面向数据库的测试数据自动衍生装置,优选地,所述配置单元还被构造成配置目标数据落地方式;所述执行单元还被构造成根据目标数据落地方式将所述目标数据写入目标数据表。优选地,所述目标数据落地方式包括将所述目标数据追加写入目标数据表或者将所述目标数据覆盖写入目标数据表。优选地,所述简单形变策略定义对基础数据表字段值进行裁剪以对应到目标数据表字段值。优选地,所述逻辑转变策略定义的基础数据表字段值到目标数据表字段值的逻辑转变包括逻辑判断过程和逻辑筛选过程。优选地,所述逻辑判断过程包括对基础数据表字段值的取值判断和/或取值范围判断。优选地,所述逻辑筛选过程包括对基础数据表字段值的全值匹配筛选和/或模糊匹配筛选。优选地,所述数据繁殖策略定义基础数据表的主键繁殖逻辑和主键繁殖数量。优选地,所述执行单元依次执行简单形变指令集、逻辑转变指令集和数据繁殖指令集以从基础数据得到目标数据。本发明提供的技术方案从测试数据的自动衍生方式上进行了创新。通过灵活地配置衍生策略,使得测试数据的自动衍生方式仅和数据库关联而与应用系统解耦合。进一步,目标数据可在新一轮衍生过程中作为基础数据,完成测试数据由少变多的不断衍生和自我繁殖过程,从而极大地降低了人工处理负荷,以自动化的方式,高效地适应测试数据特征变化以及性能测试数据压力的变化,提高了测试效率。另一方面,本发明提供的技术方案使技术人员减少组织变化多样的测试数据、组织大量测试数据上的人工开销,降低系统测试成本。另一方便,由于本发明提供的技术方案与各应用系统是解耦合的,只依赖于系统的数据库表设计,因此也提高了本发明的普遍适用性,避免因为业务需求的变化而带来的重复开发。通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件和/或硬件平台的方式来实现。本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式
作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
权利要求
1.一种面向数据库的测试数据自动衍生方法,其特征在于,包括以下步骤: 配置步骤,在该步骤中, 根据基础数据表和目标数据表的表结构定义,配置基础数据表到目标数据表的匹配关系,其中,上述基础数据表存储有基础数据,所述目标数据表用于存储作为测试数据的目标数据,匹配关系包括基础数据表名称和目标数据表名称之间的匹配,基础数据表字段名称和目标数据表字段名称之间的匹配, 配置简单形变策略,该简单形变策略定义基础数据表字段值和目标数据表字段值之间的对应, 配置逻辑转变策略,该逻辑转变策略定义基础数据表字段值到目标数据表字段值的逻辑转变, 配置数据繁殖策略,数据繁殖策略定义基础数据表的字段繁殖逻辑和字段繁殖数量; 指令生成步骤,在该步骤中, 根据简单形变策略生成简单形变指令集, 根据逻辑转变策略生成逻辑转变指令集, 根据数据繁殖策略生成数据繁殖指令集; 执行步骤,在该步骤中, 根据所述简单形变指令集、逻辑转变指令集和数据繁殖指令集中的一个或多个执行数据衍生,以从基础数据得到目标数据,以及, 将所述目标数据写入目标数据表。
2.如权利要求1所述的方法,其特征在于, 所述配置步骤还包括: 配置目标数据落地方式; 在所述执行步骤中,根据目标数据落地方式将所述目标数据写入目标数据表。
3.如权利要求2所述的方法,其特征在于, 所述目标数据落地方式包括将所述目标数据追加写入目标数据表或者将所述目标数据覆盖写入目标数据表。
4.如权利要求1所述的方法,其特征在于, 所述简单形变策略定义对基础数据表字段值进行裁剪以对应到目标数据表字段值。
5.如权利要求1所述的方法,其特征在于, 所述逻辑转变策略定义的基础数据表字段值到目标数据表字段值的逻辑转变包括逻辑判断过程和逻辑筛选过程。
6.如权利要求5所述的方法,其特征在于, 所述逻辑判断过程包括对基础数据表字段值的取值判断和/或取值范围判断。
7.如权利要求5所述的方法,其特征在于, 所述逻辑筛选过程包括对基础数据表字段值的全值匹配筛选和/或模糊匹配筛选。
8.如权利要求1所述的方法,其特征在于, 所述数据繁殖策略定义基础数据表的主键繁殖逻辑和主键繁殖数量。
9.如权利要求1所述的方法,其特征在于, 所述执行步骤依次执行简单形变指令集、逻辑转变指令集和数据繁殖指令集以从基础数据得到目标数据。
10.一种面向数据库的测试数据自动衍生装置,其特征在于,包括: 配置单元,被构造成: 配置基础数据表到目标数据表的匹配关系,其中,上述基础数据表存储有基础数据,所述目标数据表用于存储作为测试数据的目标数据,匹配关系包括基础数据表名称和目标数据表名称之间的匹配,基础数据表字段名称和目标数据表字段名称之间的匹配, 配置简单形变策略,该简单形变策略定义基础数据表字段值和目标数据表字段值之间的对应, 配置逻辑转变策略,该逻辑转变策略定义基础数据表字段值到目标数据表字段值的逻辑转变, 配置数据繁殖策略,数据繁殖策略定义基础数据表的字段繁殖逻辑和字段繁殖数量; 指令生成单元,被构造成: 根据简单形变策略生成简单形变指令集, 根据逻辑转变策略生成逻辑转变指令集, 根据数据繁殖策略生成数据繁殖指令集; 执行单元,被构造成: 根据所述简单形变 指令集、逻辑转变指令集和数据繁殖指令集中的一个或多个执行数据衍生,以从基础数据得到目标数据,以及, 将所述目标数据写入目标数据表。
11.如权利要求10所述的装置,其特征在于, 所述配置单元还被构造成配置目标数据落地方式; 所述执行单元还被构造成根据目标数据落地方式将所述目标数据写入目标数据表。
12.如权利要求11所述的装置,其特征在于, 所述目标数据落地方式包括将所述目标数据追加写入目标数据表或者将所述目标数据覆盖写入目标数据表。
13.如权利要求10所述的装置,其特征在于, 所述简单形变策略定义对基础数据表字段值进行裁剪以对应到目标数据表字段值。
14.如权利要求10所述的装置,其特征在于, 所述逻辑转变策略定义的基础数据表字段值到目标数据表字段值的逻辑转变包括逻辑判断过程和逻辑筛选过程。
15.如权利要求14所述的装置,其特征在于, 所述逻辑判断过程包括对基础数据表字段值的取值判断和/或取值范围判断。
16.如权利要求14所述的装置,其特征在于, 所述逻辑筛选过程包括对基础数据表字段值的全值匹配筛选和/或模糊匹配筛选。
17.如权利要求10所述的装置,其特征在于, 所述数据繁殖策略定义基础数据表的主键繁殖逻辑和主键繁殖数量。
18.如权利要求10所述的装置,其特征在于, 所述执行单元依次执行简单形变指令集、逻辑转变指令集和数据繁殖指令集以从基础数据得到目标数据。
全文摘要
本发明提供了一种面向数据库的测试数据自动衍生方法和装置。本发明的技术方案通过配置衍生策略、生成指令以及执行所述指令从而从基础数据得到目标数据,该目标数据被作为测试数据。
文档编号G06F11/36GK103176894SQ201110435120
公开日2013年6月26日 申请日期2011年12月22日 优先权日2011年12月22日
发明者肖哲 申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1