一种自动生成测试数据的方法

文档序号:6623369阅读:189来源:国知局
一种自动生成测试数据的方法
【专利摘要】本发明公开了一种自动生成测试数据的方法,包括建立测试数据生成工具;利用所述测试数据生成工具分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取测试数据的生成程序;并根据所述测试数据的生成程序生成测试数据。本发明提供的自动生成测试数据方法,能够根据实际测试场合的需要,向数据库快速、高效地录入完整、全面的测试数据,从而在软件测试过程中提高测试数据的生成效率以及测试数据的质量。
【专利说明】一种自动生成测试数据的方法

【技术领域】
[0001]本发明涉及数据测试【技术领域】,尤其涉及一种自动生成测试数据的方法。

【背景技术】
[0002]随着信息化社会的飞速发展,软件开发的项目越来越多,软件架构也越来越复杂,而且关于软件产品的升级和更新的频率也越来越频繁。软件测试是提高软件产品可靠性、保证软件产品质量的重要手段,它是指利用测试工具按照测试方案和流程对产品进行功能和性能测试。软件测试活动已经融入到软件产品全生命周期的各个阶段中,软件测试采用的各类技术方法以及测试工具已经日趋成熟,相关的测试方法、测试用例和测试工具也在不断地完善,因此软件测试正在朝着规范化不断发展。
[0003]在软件测试过程中,首先需要生成测试数据。目前,测试数据的生成主要有两种方法,一种方法是人工地通过软件界面逐条录入,即手动录入或生成测试数据;另外一种方法是编写程序,循环录入该程序所指定控制过程生成所需的测试数据。现有技术在生成测试数据时,手动录入过程繁琐且耗时较长,测试数据的生成效率较低;而现有的采用编写程序自动控制生成测试数据的技术方案,由于其程序指定的规则有限,会使得生成的测试数据不完整或不全面,导致生成的测试数据与预期目标相差较大。对不同的业务操作类型,用户所需的测试数据的类型参数、测试数据的全面性等的要求并不相同,不同的测试数据对所要测试的软件实际运行结果的影响至关重要,影响度量待测试软件的质量以及质量的真实程度,并且现有技术也不能按照用户期望的场景自动生成数据。


【发明内容】

[0004]本发明所要解决的技术问题是,提供一种自动生成测试数据的方法,可根据用户预定义的配置信息自动生成测试数据。
[0005]为解决以上技术问题,本发明实施例提供一种自动生成测试数据的方法,包括:
[0006]建立测试数据生成工具;
[0007]利用所述测试数据生成工具分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取测试数据的生成程序;并根据所述测试数据的生成程序生成测试数据。
[0008]优选地,所述测试数据生成工具采用轻量级架构设计,并结合windows系统的可执行命令进行通信和整合。
[0009]进一步地,所述测试数据生成工具包括控制层、业务逻辑层和数据访问层;
[0010]所述控制层通过发出控制代码监测所述测试数据生成工具的页面跳转逻辑关系,收集用户请求数据,转发用户请求以及根据用户操作控制所述测试数据生成工具跳转至指定的显示页面;
[0011]所述业务逻辑层根据所述控制层所监测得到的页面跳转逻辑关系,将用户的操作转化为业务逻辑;
[0012]所述数据访问层根据所述业务逻辑与所述测试用例数据库进行数据传输与存储,并将控制数据传输与存储的访问控制命令进行独立封装。
[0013]再进一步地,利用所述测试数据生成工具分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取测试数据的生成程序包括:
[0014]利用所述控制层获取所述配置信息,所述配置信息包括测试数据的模块信息、类型信息和函数信息;
[0015]利用所述业务逻辑层对所述配置信息进行解析,根据用户的输入指令和所述配置信息建立测试数据的模型关系以及测试数据生成程序。
[0016]再进一步地,根据所述测试数据的生成程序生成测试数据包括:
[0017]利用所述业务逻辑层将用户的输入指令转换为相应的业务逻辑程序语句;
[0018]利用所述数据访问层根据所述测试数据的模型关系,按照所述测试数据生成程序输出测试数据表,并根据所述业务逻辑程序语句对所述测试数据表的字段信息进行设置,生成用户指定的测试数据。
[0019]优选地,所述根据业务逻辑程序语句对所述测试数据表的字段信息进行设置,包括:
[0020]对所述测试用例数据库中的数据进行新增、改写或删除。
[0021]优选地,所述测试数据表的字段信息包括字段名称、字段类型和字段长度,以及是否允许字段为空。
[0022]优选地,所述测试用例数据库为关系型数据库,所述业务逻辑程序语句为采用结构化查询语言编程的程序语句。
[0023]本发明实施例提供的自动生成测试数据的方法,通过建立智能的测试数据生成工具,能够自动分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取数据生成程序,并根据所述数据生成程序生成数据。本发明能够根据实际测试场合的需要,向数据库快速、高效地录入完整、全面的测试数据,从而在软件测试过程中提高测试数据的生成效率以及测试数据的质量。

【专利附图】

【附图说明】
[0024]图1是本发明提供的自动生成测试数据的方法的一个实施例的步骤流程图。
[0025]图2是本发明提供的测试数据生成工具的一种数据架构图。
[0026]图3是本发明提供的利用测试数据生成工具生成测试数据的一种实现方式的步骤流程图。
[0027]图4是本发明提供的各种测试数据的一种数据模型关系图。
[0028]图5是本发明提供的测试数据用于生成测试用例的平台架构图。

【具体实施方式】
[0029]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0030]参见图1,是本发明提供的自动生成测试数据的方法的一个实施例的步骤流程图。
[0031]具体地,本实施例提供的自动生成测试数据的方法主要包括以下步骤:
[0032]步骤SlOl:建立测试数据生成工具。
[0033]步骤S102:利用所述测试数据生成工具分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取测试数据的生成程序;并根据所述测试数据的生成程序生成测试数据。
[0034]在优选的实施方式中,所述测试数据生成工具采用轻量级架构设计,并结合windows系统(微软公司制作和研发的一套桌面操作系统)的可执行命令进行通信和整合。其中,轻量级架构是相对于重量级架构而言的一种程序设计模式。轻量级架构不带有侵略性API (Applicat1n Programming Interface,应用程序接口 ),对容器也没有依赖性,易于进行配置、通用、启动时间较短,因而轻量级架构对测试数据生成工具的设计具有一定的优势,可减小工具开发的复杂度,使应用工具不依赖于任何容器,提高开发调试效率;并且开源社区提供了良好的设计和快速构建工具以及大量现成可供参考的开源代码,有利于对测试数据生成工具的快速开发。
[0035]参看图2,是本发明提供的测试数据生成工具的一种数据架构图。
[0036]在本实施例中,所述数据生成工具包括控制层(Command)、业务逻辑层(Service)和数据访问层(Data Access Object,简称DAO)。
[0037]其中,所述控制层通过发出控制代码监测所述测试数据生成工具的页面跳转逻辑关系,收集用户请求数据,转发用户请求以及根据用户操作控制所述测试数据生成工具跳转至指定的显示页面(Java Server Pages,简称JSP)。如图2所示,控制层可以包括服务接口层、展现层、身份认证授权管理模块、安全控制日志管理模块和ESB(Enterprise ServiceBus,企业服务总线)服务总线等,以连接和控制整个测试数据生成工具的信号,控制测试数据生成工具的工作状态。此外,展现层还通过连接客户端上的各种浏览器(InternetExplorer)与用户进行数据通信。
[0038]在本实施例中,生成测试数据的软件工具采用总线型架构设计,可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口,提供其它系统使用。
[0039]进一步地,所述业务逻辑层根据所述控制层所监测得到的页面跳转逻辑关系,将用户的操作转化为业务逻辑。对于非纯业务逻辑的控制,可以交由AOP(Aspect OrientedProgramming,面向切面编程)的专门程序处理,提高测试数据生成的效率。
[0040]所述数据访问层根据所述业务逻辑与所述测试用例数据库进行数据传输与存储,并将控制数据传输与存储的访问控制命令进行独立封装。具体地,DAO层主要生成业务逻辑中需要与数据库之间进行交互的控制代码,例如,本实施例对SQL (Structured QueryLanguage,结构化查询语言)程序语句、数据存储过程等相应的数据库进行数据存取的部分控制代码的封装,将数据访问层抽离独立出来可以实现对测试数据更好的移植性。
[0041]如图3所示,是本发明提供的利用测试数据生成工具生成测试数据的一种实现方式的步骤流程图。
[0042]具体实施时,在所述步骤S102中,利用所述测试数据生成工具分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取测试数据的生成程序,进一步地,包括:
[0043]步骤S201:利用所述控制层获取所述配置信息,所述配置信息包括测试数据的模块信息、类型信息和函数信息;
[0044]步骤S202:利用所述业务逻辑层对所述配置信息进行解析,根据用户的输入指令和所述配置信息建立测试数据的模型关系以及测试数据生成程序。
[0045]根据所述测试数据的生成程序生成测试数据的过程中,本实施例中的步骤S102进一步地还包括:
[0046]步骤S203:利用所述业务逻辑层将用户的输入指令转换为相应的业务逻辑程序语句;
[0047]步骤S204:利用所述数据访问层根据所述测试数据的模型关系,按照所述测试数据生成程序输出测试数据表,并根据所述业务逻辑程序语句对所述测试数据表的字段信息进行设置,生成用户指定的测试数据。
[0048]参见图4,是本发明提供的各种测试数据的一种数据模型关系图。其中,表TPM_NEff_TEST_CASE为测试用例信息表,表TPM_NEW_PROJECT_REFBIZ为项目参考关联表;表TPM_NEff_KEY_CASE_STEP为关键字用例步骤表;表TPM_NEW_SYSTEM_MODULE为系统模块表,表TPM_NEW_TEST_CASE_STEP为测试用例步骤表。各个表之间有先后的关联关系。
[0049]其中,所述测试数据表的字段信息包括字段名称、字段类型和字段长度,以及是否允许字段为空。
[0050]其中,字段类型包括但不限于字符型、整数型、日期型及浮点型。若所述字段类型为字符型,该字段对应的测试数据由任意字符组成;若所述字段类型为浮点型,该字段对应的测试数据由包含小数点的数字组成;若所述字段类型为整数型或日期型,该字段对应的测试数据由整数组成。此外,在本实施例中,若数据表中含有字段内容为系统自动编号的字段,则不为该字段生成测试数据。需要说明的是,字段信息具体内容可根据各个数据表应用自行设置,在此不再一一举例说明。具体实施时,用户可利用测试数据生成工具的工作原理,根据自定义的测试数据生成规则来生成测试场合所需要的数据。
[0051]优选地,所述测试用例数据库为关系型数据库,所述业务逻辑程序语句为采用结构化查询语言编程(SQL)的程序语句。当用户在客户端浏览器页面进行某项操作时,获取并解析用户操作对应的程序语句,将该语句中包含的所有数据表的字段信息分别导出。需要说明的是,可以采用所述的次测试数据生成工具根据用户的配置与操作生成一种或多种测试数据表。
[0052]譬如,若用户通过某一浏览器登录测试数据生成工具后,利用该软件工具建立数据组(表现为数据组表TPM_DATA_GR0UP),则可以获得该数据组表的字段信息如下表I所
/Jn ο
[0053]表I数据组表
[0054]
序号I字段名称I字段描述I字段类型pEW5
1IDIDNUMBER19N
2DATA—GROUP—NAME~数据组名称VARCHAR2256 N

【权利要求】
1.一种自动生成测试数据的方法,其特征在于,包括: 建立测试数据生成工具; 利用所述测试数据生成工具分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取测试数据的生成程序;并根据所述测试数据的生成程序生成测试数据。
2.如权利要求1所述的自动生成测试数据的方法,其特征在于,所述测试数据生成工具采用轻量级架构设计,并结合windows系统的可执行命令进行通信和整合。
3.如权利要求2所述的自动生成测试数据的方法,其特征在于,所述测试数据生成工具包括控制层、业务逻辑层和数据访问层; 所述控制层通过发出控制代码监测所述测试数据生成工具的页面跳转逻辑关系,收集用户请求数据,转发用户请求以及根据用户操作控制所述测试数据生成工具跳转至指定的显示页面; 所述业务逻辑层根据所述控制层所监测得到的页面跳转逻辑关系,将用户的操作转化为业务逻辑; 所述数据访问层根据所述业务逻辑与所述测试用例数据库进行数据传输与存储,并将控制数据传输与存储的访问控制命令进行独立封装。
4.如权利要求3所述的自动生成测试数据的方法,其特征在于,利用所述测试数据生成工具分析当前测试用例数据库中数据的配置信息,根据所述配置信息获取测试数据的生成程序包括: 利用所述控制层获取所述配置信息,所述配置信息包括测试数据的模块信息、类型信息和函数信息; 利用所述业务逻辑层对所述配置信息进行解析,根据用户的输入指令和所述配置信息建立测试数据的模型关系以及测试数据生成程序。
5.如权利要求4所述的自动生成测试数据的方法,其特征在于,根据所述测试数据的生成程序生成测试数据包括: 利用所述业务逻辑层将用户的输入指令转换为相应的业务逻辑程序语句; 利用所述数据访问层根据所述测试数据的模型关系,按照所述测试数据生成程序输出测试数据表,并根据所述业务逻辑程序语句对所述测试数据表的字段信息进行设置,生成用户指定的测试数据。
6.如权利要求5所述的自动生成测试数据的方法,其特征在于,所述根据业务逻辑程序语句对所述测试数据表的字段信息进行设置,包括: 对所述测试用例数据库中的数据进行新增、改写或删除。
7.如权利要求6所述的自动生成测试数据的方法,其特征在于,所述测试数据表的字段信息包括字段名称、字段类型和字段长度,以及是否允许字段为空。
8.如权利要求7所述的自动生成测试数据的方法,其特征在于,所述测试用例数据库为关系型数据库,所述业务逻辑程序语句为采用结构化查询语言编程的程序语句。
【文档编号】G06F11/36GK104133772SQ201410397662
【公开日】2014年11月5日 申请日期:2014年8月13日 优先权日:2014年8月13日
【发明者】魏理豪, 钱扬, 崔磊, 张超, 邹洪 申请人:广东电网公司信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1