一种生成测试用例的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种生成测试用例的方法和装置。
背景技术
随着企业业务量的增长,软件规模与复杂度的增长越来越快,进而使得自动化测试变得越来越重要。其中,自动化测试是一种把以人为驱动的测试行为转化为机器执行的过程。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
然而在进行自动化测试之前,往往需要人工录入可适应自动化测试的各种测试用例。即目前,测试用例的生成过程中,往往需要通过人工录入大量的系统数据,且人工录制数据需要消耗极其长的时间。比如,对于一个测试用例中的待测信息而言,人工录入往往需要花费5分钟。但是当需要产生多个测试用例,且各测试用例中携带不同的待测变量时,将会极大的增加录入这些待测信息的时间,且信息录入过程中的人为操作极为繁琐。
发明内容
本发明实施例所要解决的技术问题在于,提供一种生成测试用例的方法和装置,可避免繁琐的手动操作,且可根据需求快速产生大量的测试用例。
本发明实施例提供了一种生成测试用例的方法,包括:
获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;
根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;
获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;
获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。
其中,所述获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例,包括:
获取数据库中所有的历史业务单,并分别提取各历史业务单对应的关键变量;每个历史业务单均包含历史数据信息;
在所述各历史业务单中筛选具有相同关键变量的历史业务单,并将具有相同关键变量的历史业务单添加至同一业务数据集合,并分别统计各业务数据集合中历史业务单的总数量;
将所述各业务数据集合中历史业务单的总数量进行比较,生成待控比例。
其中,所述获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例,包括:
获取与所述各关键变量分别对应的业务数据集合,并从各业务数据集合中筛选出与多个子待测数量分别对应的目标历史业务单;所述多个子待测数量是由所述待测数量以及所述待控比例所确定的;
从各目标历史业务单中获取与所述待测变量相关的目标历史数据信息;
根据所述各关键变量分别对应的子待测数量,对所述目标用例模型中的初始变量值进行复制,并依次将复制后所得的多个初始变量值修改为各目标历史数据信息中的目标变量值,生成与所述各子待测数量对应的测试用例。
其中,所述获取待测试信息,包括:
获取待测试信息,并提取所述待测试信息中的待测数量;
获取多个关键变量之间的所述待控比例,并根据所述待控比例对所述待测数量进行划分,得到与所述各关键变量分别对应的所述子待测数量;各所述子待测数量之和等于所述待测数量。
其中,所述根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型,包括:
获取数据库中所有的测试用例模型,
在各测试用例模型中,查找是否存在与所述待测信息中的待测变量的各子变量相匹配的测试用例模型;
若存在,则将与所述待测信息中的待测变量的各子变量相匹配的测试用例模型作为目标用例模块,并对所述目标用例模型进行解析,得到与所述各子变量分别对应的初始变量值。
本发明实施例第二方面提供了一种生成测试用例的装置,包括:
测试信息获取模块,用于获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;
目标模型查找模块,用于根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;
待控比例生成模块,用于获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;
测试用例生成模块,用于获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。
其中,所述待控比例生成模块包括:
业务单获取单元,用于获取数据库中所有的历史业务单,并分别提取各历史业务单对应的关键变量;每个历史业务单均包含历史数据信息;
业务单筛选单元,用于在所述各历史业务单中筛选具有相同关键变量的历史业务单,并将具有相同关键变量的历史业务单添加至同一业务数据集合,并分别统计各业务数据集合中历史业务单的总数量;
待控比例生成单元,用于将所述各业务数据集合中历史业务单的总数量进行比较,生成待控比例。
其中,所述测试用例生成模块包括:
数据集合获取单元,用于获取与所述各关键变量分别对应的业务数据集合,并从各业务数据集合中筛选出与多个子待测数量分别对应的目标历史业务单;所述多个子待测数量是由所述待测数量以及所述待控比例所确定的;
历史数据获取单元,用于从各目标历史业务单中获取与所述待测变量相关的目标历史数据信息;
测试用例生成单元,用于根据所述各关键变量分别对应的子待测数量,对所述目标用例模型中的初始变量值进行复制,并依次将复制后所得的多个初始变量值修改为各目标历史数据信息中的目标变量值,生成与所述各子待测数量对应的测试用例。
其中,所述测试信息获取模块包括:
待测数量提取单元,用于获取待测试信息,并提取所述待测试信息中的待测数量;
待测数量划分单元,用于获取多个关键变量之间的所述待控比例,并根据所述待控比例对所述待测数量进行划分,得到与所述各关键变量分别对应的所述子待测数量;各所述子待测数量之和等于所述待测数量。
其中,所述目标模型查找模块包括:
模型获取单元,用于获取数据库中所有的测试用例模型,
模型查找单元,用于在各测试用例模型中,查找是否存在与所述待测信息中的待测变量的各子变量相匹配的测试用例模型;
模型解析单元,用于若存在,则将与所述待测信息中的待测变量的各子变量相匹配的测试用例模型作为目标用例模块,并对所述目标用例模型进行解析,得到与所述各子变量分别对应的初始变量值。
本发明实施例第三方面提供了一种生成测试用例的装置,包括:处理器、存储器、用户接口;
所述处理器分别与用户接口、存储器相连,其中,所述用户接口用于接收当前用户输入的待测试信息,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本发明实施例第一方面中所述的方法。
本发明实施例第四方面提供了一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,当所述处理器执行所述程序指令时执行如本发明实施例第一方面中的方法。
实施本发明实施例,具有如下有益效果:
本发明实施例通过获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。由此可见,本发明可根据实际统计到的待控比例,对所述待测信息中的待测数量进行划分,并根据划分后的待测数量以及目标历史数据信息对目标用例模型中的待测变量进行赋值操作,从而可以根据需求快速产生大量的测试用例。此外,采用这种自动化生成测试用例的方式,可避免人工录制的繁琐操作,从而可解决测试用例需要大量人力进行编写与维护的问题,并且也降低了自动化测试所需成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种生成测试用例的方法的流程示意图;
图2是本发明实施例提供的另一种生成测试用例的方法的流程示意图;
图3是本发明实施例提供的一种生成测试用例的装置的结构示意图;
图4是本发明实施例提供的一种待控比例生成模块的结构示意图
图5是本发明实施例提供的一种测试用例生成模块的结构示意图;
图6是本发明实施例提供的一种测试信息获取模块的结构示意图;
图7是本发明实施例提供的一种目标模型查找模块的结构示意图;
图8是本发明实施例提供的另一种生成测试用例的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的一种生成测试用例的方法的流程示意图,所述方法至少包括:
步骤S101,获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;
具体的,服务器还可接收测试人员在浏览器终端界面上确认执行的点击指令,并可根据所述点击指令对所选择的自动化用例模型进行解析,以得到与所述点击指令对应的待测试信息。
可选的,所述服务器还可以接收测试人员在测试环境中的浏览器终端(web终端)上直接输入待测试信息。
其中,所述自动化用例模型为测试人员在浏览器终端(web终端)上的选择区域中所选择的需要录入测试数据(即待测变量所对应的数据)的自动化用例的测试类型。应当注意,不同的业务系统将会对应不同的测试类型,因此,测试人员可以在测试环境中的web终端上选择与某个业务系统对应的测试类型,并可进一步在该web终端上将显示与所述测试类型相关的自动化用例。因此,当测试人员在该web终端上确认选择某个自动化用例,并输入待测数量时,可显示并启动与服务器中应用程序对应的可操作区域(即显示一个用于执行点击指令的点击按钮)。当测试人员执行该点击指令时,所述服务器可以根据该点击指令启动与所述待测试信息所对应的应用程序,以便于进一步根据该应用程序执行步骤S102。其中,所述应用程序与所述数据库之间具有数据传输关系,即该应用程序可用于调取数据库中所存储的所有测试用例相关的数据。
比如,测试人员可以在A系统对应的选择区域中呈现100个自动化用例,并可进一步在这100个自动化用例中选择一个与测试类型对应的自动化用例,即可选择一个与待测试信息中所述待测变量对应的自动化用例A,该自动化用例A可以为产品A所对应的自动化用例。其中,每个自动化用例均对应着不同的待测试信息。
其中,所述待测变量可以包括多个子待测变量,且所述待测变量可用于描述和说明该测试类型所对应的自动化用例所具备的测试功能。
与此同时,该测试人员还可在该web终端上的选择区域中选择需要生成测试用例的数量,该数量即为与所待测变量对应的待测数量,当然,该数量也是在基于调用自动化用例所对应的脚本生成相应的测试用例之后,需要自动化执行这些测试用例的用例数。
步骤S102,根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;
具体的,所述服务器可以在执行完上述步骤S101之后,进一步获取数据库中某个业务系统的所有的测试用例模型(即该服务器内部的应用程序可用于调用数据库中所存储的该业务系统的所有的测试用例模型),并在各测试用例模型中,查找是否存在与所述待测信息中的待测变量的各子变量相匹配的测试用例模型;随后,若所述服务器确认存在与所述各子变量相匹配的测试用例模型,则可进一步将与所述待测信息中的待测变量的各子变量相匹配的测试用例模型作为目标用例模块,并对所述目标用例模型进行解析,得到与所述各子变量分别对应的初始变量值。可选的,若所述服务器确认不存在与所述各子变量相匹配的测试用例模型,则可创建与所述各子变量对应的测试用例模型。并对创建的测试用例模型中的各子变量分别对应的测试数据进行初始化处理,以得到与所述各子变量分别对应的初始变量值。
比如,以即时通信应用登录系统中的用户登录为例,其中,所述登录账号和登录密码可以作为待测变量,且登录账号和登录密码均为该待测变量的子变量。在检测到应用程序启动时,所述服务器可通过该应用程序调取数据库中所存储的所有的测试用例模型(比如,用户正常登录时的测试用例模型M,用户异常登录时的测试用例模型N),随后,所述服务器可以在这两个测试用例模型中,查找是否存在与所述待测信息中的待测变量的各子变量相匹配的测试用例模型;此时,若所述登录账号和登录密码为用户正常登录时的账号和密码,则该服务器可以将测试用例模型M作为目标用例模块,并对所述目标用例模型进行解析,得到与所述各子变量分别对应的初始变量值(例如,在该目标用例模型中,与登录账号对应的初始变量值为AAAA,与登录密码对应的初始变量值为aaaa)。
可选的,又比如,仍以即时通信应用登录系统中的用户登录为例,所述待测变量为登录账号和登录密码以及验证方式,此时,所述登录账号和登录密码以及验证方式可以作为该待测变量的三个子变量。当所述待测试信息中的登录账号和登录密码为异常登录时的账号、密码以及验证方式,且所述服务器仅在数据库中查找到与异常登录时的两个子变量(即登录账号和登录密码)所对应的测试用例模型N,即该测试用例模型N中缺少对第三个子变量(验证方式)的相关描述时,所述服务器可以确定不存在与这三个子变量(登录账号和登录密码以及验证方式)相匹配的测试用例模型,故而可以根据这三个子变量创建用于描述这三个子变量的测试用例模型N’,并对创建的测试用例模型N’中的各子变量分别对应的测试数据进行初始化处理,以得到与所述各子变量分别对应的初始变量值(例如,在所创建的测试用例模型N’中,与登录账号对应的初始变量值为0000,与登录密码对应的初始变量值为0000,与验证方式对应的初始变量值为0000)。
鉴于此,已存储于所述数据库中的所述目标用例模型,可用于存储与所述待测变量对应的初始变量值。
可选的,对于新创建的测试用例模型,其初始变量值可以为空值,即此时,所述服务器需要在所述待测变量的各子待测变量中,选择一个子待测变量作为目标子变量,并从与该目标子变量相关的业务数据集合中选择一个与该目标子变量相符的历史数据信息中的目标变量值,作为该目标子变量的变量值。于是,当所述待测变量中的所有子待测变量均被选择作为目标子变量时,可得到与各子待测变量分别对应的变量值,随后,所述服务器可将与各子待测变量的分别对应的变量值进行组合,可进一步得到与所述待测变量相匹配的目标用例模型。紧接着,所述服务器可进一步执行步骤S103,以得到可对所述待测试信息中的待测数量进行划分的待控比例,即基于该待控比例可将所述待测数量划分为多个子待测数量。随后,所述服务器可在生成大量测试用例的过程中,直接参见获取该目标用例模型的具体执行过程以及划分后的各子待测数量,分别从对应业务数据集合中,提取与所述各目标子变量相符的目标历史数据信息中的目标变量值,作为各目标子变量分别对应的目标变量值。可见,所述服务器可直接根据划分后所得的各子待测数量,以及与各子待测数量分别对应的目标历史数据信息中的目标变量值,对该目标用例模型中各子待测变量(即目标用例模型中的待测变量)进行赋值操作,以快速生成大量的测试用例。
步骤S103,获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;
具体的,所述服务器可以获取数据库中所有的历史业务单,并提取各历史业务单分别对应的关键变量,并将相同关键变量的历史业务单添加至同一业务数据集合,以统计各业务数据集合中历史业务单的总数量,并将各业务数据集合中历史业务单的总数量进行比较,从而得到各关键变量之间的待控比例。
其中,一个业务数据集合可以对应一个关键变量,因此,当测试人员需要对所述待测变量中的某些关键变量进行重点关注时,所述服务器可从与这些关键变量对应的业务数据集合中,筛选出与所述待测数量中的各子待测变量分别对应的目标历史业务单,其中,所述目标历史业务单中携带与所述待测变量相关的目标历史数据信息。
其中,所述关键变量为待测变量中需要重点关注的变量,比如针对业务提单系统的测试用例,关键变量就可以是业务类型变量,针对分期业务,就可以为历史业务单中的分期信息(比如,0首付分8期,1成首付分10期等信息),即该分期信息可用于描述该产品的业务类型。当然,根据测试目的,关键变量也可以是其他需要关注的变量,比如门店地址、客户地址、分期购买的商品等等。
步骤S104,获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。
具体的,所述服务器可在执行完步骤S103之后,进一步获取与所述各关键变量分别对应的业务数据集合,并从各业务数据集合中筛选出与多个子待测数量分别对应的目标历史业务单,并从各目标历史业务单中获取与所述待测变量相关的目标历史数据信息,并根据所述各关键变量分别对应的子待测数量,对所述目标用例模型中的初始变量值进行复制,并依次将复制后所得的多个初始变量值修改为各目标历史数据信息中的目标变量值,生成与所述各子待测数量对应的测试用例。
其中,所述多个子待测数量是由所述待测数量以及所述待控比例所确定的。
其中,所述待控比例可用于对所述待测试信息中的待测数量进行划分,以便于控制测试用例中相应商品信息和产品信息的出现数量。
其中,在生成与所述待测数量对应的测试用例之前,所述服务器还用于对所述目标用例模型中的初始变量值的修改过程进行监控,即该服务器可以先根据待测数量对所述目标用例模型中的初始变量值进行复制(比如,先形成1000组测试数据),然后,再根据各待测数量中的各个子待测数量,以及从与各个子待测数量分别对应的业务数据集合中所提取出来的各目标历史业务单,依次对这1000组测试数据的值进行修改。随后,所述服务器可以监测是否完成对对这1000组测试数据的修改(比如,每修改完一组测试数据,则在数据统计栏中对已修改数进行加一处理,以监控对这1000组数据的修改进度),若已完成修改,则可生成与所述各子待测数量对应的测试用例。
比如,以测试用例中的关键变量为分期业务为例,于是,该关键变量的值可以为购买A商品的分期信息,例如,用户可以分一期进行购买,也可以分三期进行购买,还可以分六期进行购买,而这三种情况则为A商品在实际提单中所提取出来的分期信息。自A商品销售以来,共有10000个历史业务单,且这10000个历史业务单中分一期进行购买的历史业务单有2000个,分三期进行购买的历史业务单有3000个,分六期进行购买的历史业务单有5000个,故而可得到这三种分期信息分别对应的待控比例为2:3:5。因此,当测试人员需要生成1000组测试用例,即待测数量为1000组时,可以根据待控比例对这1000组待测数量进行划分,得到多个子待测数量,即可以得到200个以一期进行购买的测试用例,300个以三期进行购买的测试用例和500个以六期进行购买的测试用例,从而可以快速产生1000组符合该A商品的分期业务要求的测试数据。可见,通过对各历史业务单中的分期信息进行分类,可以得到不同分期信息(即关键变量的不同值)之间的提单比例,进而可以根据实际需求快速生成符合实际情况的测试用例。
可选的,在对所述目标用例模型中的初始变量值进行复制的过程中,也可以同步对所述初始变量值进行修改。即每复制完一组初始变量值,则可根据各子待测数量,以及与各子待测数量分别对应的业务数据集合中所提取出来的各目标历史业务单依次对各初始变量值进行修改,从而生成与所述各子待测数量对应的测试用例。
比如,以三组子待测数量分别为200,300和500为例,所述服务器可以首先从与这三组子待测数量分别对应的各业务数据集合(比如,业务数据集合A,业务数据集合B和业务数据集合C)中提取出相应数量的目标历史业务单。因此,所述服务器可以先从业务数据集合A中筛选出与子待测数量(200)对应的200个目标历史业务单,从业务数据集合B中筛选出与子待测数量(300)对应的300个目标历史业务单,以及从业务数据集合C中筛选出与子待测数量(200)对应的500个目标历史业务单。随后,所述服务器在每复制完一组所述目标用例模型中的初始变量值,则可用200个目标历史业务单中的一个历史订单中的目标历史数据信息对该初始变量值进行修改,直到这200个目标历史业务单中的目标历史数据信息均用作测试用例中的测试数据时,则可继续根据300个目标历史业务单中的一个目标历史数据信息对目标用例模型中的初始变量值进行修改;最后,所述服务器可按照前述步骤,同理根据300个目标历史业务单中的各目标历史数据信息对目标用例模型中的初始变量值进行修改,以快速生成与这三个子待测数量对应的测试用例。
应当理解,在本发明实施例中,步骤S103的具体执行步骤可置于步骤S101-S102之间的任意位置,比如,可在执行步骤S101中获取待测试信息之前,执行步骤S103中的步骤,因此,本发明实施例在此将不对其具体执行步骤的顺序进行限定。
可选的,在生成大量的测试用例之前,所述服务器还可对与各业务数据集合分别对应的关键变量的值的进行统计,以在生成测试用例时,进一步控制每个业务数据集合中不同值的出现概率,即该关键变量的不同值被取出的概率。比如,以业务数据集合A为例,与该业务数据集合A对应的关键变量为产品信息,则与该产品信息对应的值可以为:一期购买,二期购买和三期购买,因此,所述服务器可以得到该业务数据集合A中所有的历史业务单的总数量,并在这些历史业务单中划分出一期购买的历史业务单的第一数量,并在这些历史业务单中划分出二期购买的历史业务单的第二数量,并在这些历史业务单中划分出三期购买的历史业务单的第三数量。由于该业务数据集合A中关键变量的各个值所对应的历史业务数据单的数量是一定的,因此,在生成与该关键变量对应的测试用例时,每从该业务集合中拿出一个以一期购买的历史业务单,则该业务数据集合A中以一期购买的历史业务单的第一数量将相应减少一个,从而可以控制该业务数据集合A中不同值的出现概率。
本发明实施例通过获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。由此可见,本发明可根据实际统计到的待控比例,对所述待测信息中的待测数量进行划分,并根据划分后的待测数量以及目标历史数据信息对目标用例模型中的待测变量进行赋值操作,从而可以根据需求快速产生大量的测试用例。此外,采用这种自动化生成测试用例的方式,可避免人工录制的繁琐操作,从而可解决测试用例需要大量人力进行编写与维护的问题,并且也降低了自动化测试所需成本。
进一步的,请参见图2,是本发明实施例提供的另一种生成测试用例的方法的流程示意图,所述方法包括:
步骤S201,获取数据库中所有的历史业务单,并分别提取各历史业务单对应的关键变量;每个历史业务单均包含历史数据信息;
比如,以测试用例中的关键变量为商品信息为例,则该公司近期(例如,近一个月内)所销售的三款商品(比如,X商品,Y商品和Z商品)的信息则为该关键变量的值,即近一个月内所销售的X商品,Y商品和Z商品则为该公司在实际业务单(即提单)中所提取出来的关键变量的值,即该公司每卖出一款商品,则会对应的产生一个提单(历史业务单),且该提单将会上传至所述服务器中的数据库进行存储。于是,所述服务器可从这些存储在该数据库中的各历史业务单中提取相应的关键变量以及与该关键变量对应的值(即各个历史业务单中与该关键变量对应的历史数据信息)。
步骤S202,在所述各历史业务单中筛选具有相同关键变量的历史业务单,并将具有相同关键变量的历史业务单添加至同一业务数据集合,并分别统计各业务数据集合中历史业务单的总数量;
比如,以测试用例中的三个关键变量(例如,3个门店地址)为例,此时,这3个门店地址(即门店地址X,门店地址Y和门店地址Z)则可以为待测变量中需要重点关注的变量(即需要重点关注的多个子待测变量)。于是,所述服务器可在执行完上述步骤S202之后,将具有相同关键变量的历史业务单添加至同一业务数据集合。例如,所述服务器可以将关键变量为门店地址X的所有订单历史订单添加至业务数据集合A,将关键变量为门店地址Y的所有订单历史订单添加至业务数据集合B,并将关键变量为门店地址Z的所有订单历史订单添加至业务数据集合C。因此,在业务数据集合A中有400个门店地址X对应的历史业务单,在业务数据集合B中有600个门店地址Y对应的历史业务单,在业务数据集合C中有800个门店地址Z对应的历史业务单。
步骤S203,将所述各业务数据集合中历史业务单的总数量进行比较,生成待控比例,以便于后续根据所述待控比例对所述待测试信息中的待测数量进行划分。
比如,仍以测试用例中的三个关键变量为门店地址X,门店地址Y和门店地址Z为例,所述服务器在执行完步骤S202之后,可以统计到在业务数据集合A中有400个与门店地址X对应的历史业务单,在业务数据集合B中有600个与门店地址Y对应的历史业务单,在业务数据集合C中有800个与门店地址Z对应的历史业务单。于是,该服务器可将这三个业务数据集合中的历史业务单的总数量进行比较,以得到这三种关键变量之间的待控比例(即该待控比例=业务数据集合A中的总数量:业务数据集合B中的总数量:业务数据集合C中的总数量=400:600:800=2:3:4)。因此,当测试人员需要生成900组测试用例时,所述服务器可以进一步根据待控比例(2:3:4))对这900组待测数量进行划分,以得到多个子待测数量,即与门店地址X对应的子待测数量为200个,与门店地址Y对应的子待测数量为300个,与门店地址Z对应的子待测数量为400个。
可选的,所述服务器还可在执行完上述步骤S202之后,进一步在每个业务数据集合中,将预设周期时长内具有相同关键变量的历史业务单添加至同一子业务数据集合,并分别统计各子业务数据集合中历史业务单的子业务数量;随后,所述服务器还可进一步在每个业务数据集合中,对所述各子业务数据集合中历史业务单的子业务数量进行比较,以得到与所述预设周期时长分别对应的待控比例,以便于后续根据所述待控比例对所述待测试信息中的待测数量进行划分。其中,所述预设周期时长可以为以年为统计单位、月为统计单位、周为统计单位或天为统计单位。因此,在本发明实施例中,将不对具体的预设周期时长的统计单位进行限定。
比如,仍以上述测试用例中的三个关键变量为门店地址X,门店地址Y和门店地址Z为例,其中,所述预设周期时长以月为统计单位,所述服务器在执行完步骤S202之后,可以统计到在业务数据集合A中有400个与门店地址X对应的历史业务单,且这400个与门店地址X对应的历史业务单为上半年内所统计到的历史业务单的总数量。其中,上半年内的前三个月(即1月,2月和3月)共有100个历史业务单,上半年内的后三个月(即4月,5月和6月)共有300个历史业务单。因此,所述服务器可进一步在该门店地址X对应的业务数据集合A中,分别将4月的历史业务单添加至子业务数据集合A1,将5月的历史业务单添加至子业务数据集合A2,并将6月的历史业务单添加至子业务数据集合A3。其中,子业务数据集合A1中历史业务单的子业务数量为80个,子业务数据集合A2中历史业务单的子业务数量为100个,子业务数据集合A3中历史业务单的子业务数量为120个,于是,所述服务器可进一步将这3个子业务数据集合中的各历史业务单的子数量进行比较,以得到相同关键变量在预设周期时长内的待控比例(即此时,该待控比例=子业务数据集合A1中的子数量:子业务数据集合A2中的子数量:子业务数据集合A3中的子数量=80:100:120=4:5:6)。
可选的,所述服务器还可在统计得到该业务数据集合A中近三个月内的各子业务数据集合的各子数量时,进一步基于线性回归函数估算该门店地址X在7月份的业务单的子业务数量,从而根据新计算得到的子业务数量和近三个月内的各子业务数量之间的变化关系,得到相同关键变量在不同月份下所对应的变量关系之间的待控比例。
应当理解,对于其它各业务数据集合中相同关键变量近期内所对应的待控比例的计算,也可参见上述业务数据集合A中门店地址X近三个月内对生成所述待控比例(4:5:6)的具体描述,这里将不再继续进行赘述。
步骤S204,获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;
步骤S205,根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;
其中,所述目标用例模型可以用于存储与所述待测变量对应的初始变量值;
步骤S206,获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。
比如,所述服务器在执行步骤S206时,可以根据步骤S203中所得到的各子待测数量,分别从相应的业务数据集合中筛选出相应数量的目标历史业务单,即所述服务器可以从与门店地址X对应的业务数据集合A中筛选出200个目标历史业务单,并用这200个目标历史业务数据单中的目标历史数据信息依次对各初始变量值进行修改,从而得到200组与门店地址X对应的测试用例。同理,所述服务器可以从与门店地址Y对应的业务数据集合B中筛选出300个目标历史业务单,并用这300个目标历史业务数据单中的目标历史数据信息依次对各初始变量值进行修改,从而得到300组与门店地址Y对应的测试用例。同理,所述服务器可以从与门店地址Z对应的业务数据集合C中筛选出400个目标历史业务单,并用这400个目标历史业务数据单中的目标历史数据信息依次对各初始变量值进行修改,从而得到400组与门店地址Z对应的测试用例。可见,通过对各历史业务单中的关键变量进行分类,可以得到不同关键变量之间的待控比例,并可根据待控比例从各业务数据集合中获取相应数量的历史业务单,进而得到大量的用于修改所述目标用例模型中的初始变量值的目标历史数据信息,从而可以快速产生大量的测试用例。
其中,所述步骤S203-步骤S206的具体实现方式可以参见上述图1所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。
可选的,所述服务器在执行完上述步骤S206之后,即在生成与所述待测数量对应的测试用例之后,还可以进一步将这些测试用例返回至测试人员所使用的Web终端,并控制Web终端执行这些测试用例,并将执行后的测试结果和预期返回结果显示在所述Web终端上。
例如,在生成1000组与A产品相关的测试用例之后,所述服务器会将这些测试返回至Web终端上进行显示,以便于测试人员查看执行这些用例后的测试结果是否符合预期结果,以进一步验证测试用例的可靠性和有效性。
本发明实施例通过获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。由此可见,本发明可根据实际统计到的待控比例,对所述待测信息中的待测数量进行划分,并根据划分后的待测数量以及目标历史数据信息对目标用例模型中各待测变量进行赋值操作,从而可以根据需求快速产生大量的测试用例。此外,采用这种自动化生成测试用例的方式,可避免人工录制的繁琐操作,从而可解决测试用例需要大量人力进行编写与维护的问题,并且也降低了自动化测试所需成本。
进一步的,请参见图3,是本发明实施例提供的一种生成测试用例的装置的结构示意图,如图3所示,所述生成测试用例的装置1可以为上述图1所对应实施例中的服务器,所述生成测试用例的装置1可以包括:测试信息获取模块10,目标模型查找模块20,待控比例生成模块40和测试用例生成模块30;
所述测试信息获取模块10,用于获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;
所述目标模型查找模块20,用于根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;
所述待控比例生成模块40,用于获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;
所述测试用例生成模块30,用于获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。
其中,所述测试信息获取模块10,目标模型查找模块20,待控比例生成模块40和测试用例生成模块30的具体实现方式可以参见上述图1所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。
进一步的,请参见图4,是本发明实施例提供的一种待控比例生成模块40的结构示意图,如图4所示,所述待控比例生成模块40可以包括:业务单获取单元401,业务单筛选单元402和待控比例生成单元403;
所述业务单获取单元401,用于获取数据库中所有的历史业务单,并分别提取各历史业务单对应的关键变量;每个历史业务单均包含历史数据信息;
所述业务单筛选单元402,用于在所述各历史业务单中筛选具有相同关键变量的历史业务单,并将具有相同关键变量的历史业务单添加至同一业务数据集合,并分别统计各业务数据集合中历史业务单的总数量;
所述待控比例生成单元403,用于将所述各业务数据集合中历史业务单的总数量进行比较,生成待控比例。
其中,所述业务单获取单元401,业务单筛选单元402和待控比例生成单元403的具体实现方式可以参见上述图2所对应实施例中对步骤S201-步骤S203的描述,这里将不再继续进行赘述。
进一步的,请参见图5,是本发明实施例提供的一种测试用例生成模块的结构示意图,如图5所示,所述测试用例生成模块30可以包括:数据集合获取单元301,历史数据获取单元302和测试用例生成单元303;
所述数据集合获取单元301,用于获取与所述各关键变量分别对应的业务数据集合,并从各业务数据集合中筛选出与多个子待测数量分别对应的目标历史业务单;所述多个子待测数量是由所述待测数量以及所述待控比例所确定的;
所述历史数据获取单元302,用于从各目标历史业务单中获取与所述待测变量相关的目标历史数据信息;
所述测试用例生成单元303,用于根据所述各关键变量分别对应的子待测数量,对所述目标用例模型中的初始变量值进行复制,并依次将复制后所得的多个初始变量值修改为各目标历史数据信息中的目标变量值,生成与所述各子待测数量对应的测试用例。
其中,所述数据集合获取单元301,历史数据获取单元302和测试用例生成单元303的具体实现方式可以参见上述图1所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
进一步的,请参见图6,是本发明实施例提供的一种测试信息获取模块的结构示意图,如图6所示,所述测试信息获取模块10可以包括:待测数量提取单元101和待测数量划分单元102;
所述待测数量提取单元101,用于获取待测试信息,并提取所述待测试信息中的待测数量;
所述待测数量划分单元102,用于获取多个关键变量之间的所述待控比例,并根据所述待控比例对所述待测数量进行划分,得到与所述各关键变量分别对应的所述子待测数量;各所述子待测数量之和等于所述待测数量。
其中,所述待测数量提取单元101和待测数量划分单元102的具体实现方式可以参见上述图1所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
进一步的,请参见图7,是本发明实施例提供的一种目标模型查找模块的结构示意图,如图7所示,所述目标模型查找模块20可以包括:模型获取单元201,模型查找单元202和模型解析单元203;
所述模型获取单元201,用于获取数据库中所有的测试用例模型,
所述模型查找单元202,用于在各测试用例模型中,查找是否存在与所述待测信息中的待测变量的各子变量相匹配的测试用例模型;
所述模型解析单元203,用于若存在,则将与所述待测信息中的待测变量的各子变量相匹配的测试用例模型作为目标用例模块,并对所述目标用例模型进行解析,得到与所述各子变量分别对应的初始变量值。
其中,所述模型获取单元201,模型查找单元202和模型解析单元203的具体实现方式可以参见上述图1所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
本发明实施例通过获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。由此可见,本发明可根据实际统计到的待控比例,对所述待测信息中的待测数量进行划分,并根据划分后的待测数量以及目标历史数据信息对目标用例模型中各待测变量进行赋值操作,从而可以根据需求快速产生大量的测试用例。此外,采用这种自动化生成测试用例的方式,可避免人工录制的繁琐操作,从而可解决测试用例需要大量人力进行编写与维护的问题,并且也降低了自动化测试所需成本。
进一步地,请参见图8,是本发明实施例提供的另一种生成测试用例的装置的结构示意图。如图8所示,所述生成测试用例的装置1000可以应用于上述图1对应实施例中的服务器,所述生成测试用例的装置1000可以包括:处理器1001,网络接口1004和存储器1005,此外,所述数据处理装置1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1004可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图8所示的数据处理装置1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口,即接收当前用户输入的待测试信息;而处理器1001可以用于调用存储器1004中存储的设备控制应用程序,以实现:
获取待测试信息,所述待测试信息中包括待测变量和与所述待测变量对应的待测数量;
根据所述待测试信息中的待测变量在数据库中查找与所述待测变量相匹配的目标用例模型;
获取与所述待测变量相关的多个业务数据集合,并根据各业务数据集合中历史业务单的总数量,生成待控比例;
获取与所述待测变量相关的目标历史数据信息,并根据所述目标历史数据信息、所述目标用例模型、所述待测数量以及待控比例,生成与所述待测数量对应的测试用例。
应当理解,本发明实施例中所描述的生成测试用例的装置1000可执行前文图1或图2所对应实施例中对所述生成测试用例的方法的描述,也可执行前文图3所对应实施例中对所述生成测试用例的装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的生成测试用例的装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图1或图2所对应实施例中对所述生成测试用例的方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。