测试用例自动化管理方法、装置、设备及存储介质与流程

文档序号:13661173阅读:193来源:国知局
测试用例自动化管理方法、装置、设备及存储介质与流程

本发明涉及软件自动化测试技术领域,特别涉及一种测试用例自动化管理方法、装置、设备及存储介质。



背景技术:

在自动化测试中,自动化测试用例一般都是按每个系统来进行管理的,测试用例之间的共享性不高,而且存储位置比较分散,导致对测试用例的管理比较复杂,此外,在执行测试用例进行检测的过程中,由于测试用例保存的位置不同,无法确保执行的测试用例是最新的版本。



技术实现要素:

本发明的目的在于提供一种测试用例自动化管理方法、装置、设备及存储介质,能够实现对测试用例的统一管理以及保证执行的测试用例是最新的版本。

本发明是这样实现的,本发明第一方面提供一种测试用例自动化管理方法,所述测试用例自动化管理方法包括:

获取测试用例集合,所述测试用例集合包括各个子系统所需的测试用例;

将所述测试用例集合中每个测试用例与基本信息数据模型进行匹配,按预设类别将所述测试用例分类存储到测试用例数据库中;

执行测试时根据所需的测试用例的类别和最新版本号在测试用例数据库中进行检索,获取相匹配的测试用例;

根据所述最新版本的测试用例完成测试后,将测试结果导入到所述测试用例数据库中。

本发明第二方面提供一种测试用例自动化管理装置,所述测试用例自动化管理装置包括:

测试用例获取模块,用于获取测试用例集合,所述测试用例集合包括各个子系统所需的测试用例;

测试用例分类模块,用于将所述测试用例集合中每个测试用例与基本信息数据模型进行匹配,按预设类别将所述测试用例分类存储到测试用例数据库中;

测试用例匹配模块,用于执行测试时根据所需的测试用例的类别和版本号在测试用例数据库中进行检索,获取相匹配的测试用例;

测试结果导入模块,用于根据所述最新版本的测试用例完成测试后,将测试结果导入到所述测试用例数据库中。

本发明第三方面提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面所述方法的步骤。

本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述方法的步骤。

本发明实施例提供一种测试用例自动化管理方法,将各个系统所使用的用例集中化,可便于对测试用例的集中管理,可实现各个子系统测试包直接共享代码,另外,由于测试自动化执行系统和测试自动化用例管理系统属于统一的平台,自动化测试执行系统测试系统执行任务时,测试执行系统可以通过版本检索到对应的测试脚本,拉取测试脚本并执行,解决了执行系统所执行的代码不是最新代码的问题。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一种实施例提供的一种测试用例自动化管理方法的流程图;

图2是本发明一种实施例提供的一种测试用例自动化管理方法中的步骤s30的一种实施方式提供的具体流程图;

图3是本发明另一种实施例提供的一种测试用例自动化管理装置的结构示意图;

图4是本发明另一种实施例提供的一种测试用例自动化管理装置中的测试包更新模块的结构示意图;

图5是本发明另一种实施例提供的一种测试用例自动化管理装置的结构示意图;

图6是本发明另一种实施例提供的终端设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了说明本发明的技术方案,下面通过具体实施例来进行说明。

本发明实施例提供一种测试用例自动化管理方法,如图1所示,该自动化测试任务管理方法包括步骤s10、步骤s20、步骤s30以及步骤s40,每个步骤的具体内容如下:

步骤s10.获取测试用例集合,测试用例集合包括各个子系统所需的测试用例。

在步骤s10中,建立测试用例集合,将各个子系统所需的测试用例导入到测试用例集合中,可以从代码管理工具进行下载,代码管理工具为程序员编写代码的软件。

步骤s20.将测试用例集合中每个测试用例与数据库中的基本信息数据模型进行匹配。

在步骤s20中,测试用例的基本信息通常包括:名称、标识、输入、输出、功能、用例标识、测试步骤、预期结果、测试日期和更新日期,基本信息数据模型包括:项目名称、项目标识、缺陷数目、软件版本、存放路径和用例版本;导入所需测试用例时,将测试用例的基本信息与基本信息数据模型进行匹配,例如,可以根据测试用例的基本信息中的名称、用例标志以及更新日期分别与基本信息数据模型中的项目名称、标志以及用例版本进行匹配,通过对测试用例与基本信息数据模型进行匹配分类,可以实现对测试用例的快速提取,其中各个子系统中所需的测试用例脚本编写具有统一的规范性,可使各个子系统直接共享测试用例。

步骤s30.执行测试任务时根据所需求的测试用例的信息在基本信息数据模型中检索测试用例,并获取最新版本的测试用例。

在步骤s30中,执行测试任务时根据所需求的测试用例的信息可以为根据执行测试任务时需要测试用例的功能或者名称或者执行时间检索测试用例,基本信息数据模型中的同一测试用例可能具有多个,当测试用例数据库中检测到不止一个与之相匹配的测试用例时,则根据测试用例的更新时间来判断是否为最新版本号,具体地,若相匹配的测试例中含有a、b、c三个版本号,根据获取文件修改的最新时间来判断,如c的修改时间在测试用例集合中为最新,b次之,a修改时间为最后,则最新版本号为c版本。

步骤s40.根据最新版本的测试用例完成测试后,将测试结果导入到测试用例数据库中。

在步骤s40中,根据相匹配的测试完成测试后,将测试结果导入到用测试例数据库中,将测试结果与期望结果进行比较,当测试结果与期望结果一致时,则根据测试用例的测试编号将测试成功结果及测试时间结果写入测试数据库对应的测试用例表,并同步保存于历史结果表,当测试结果与期望结果不一致时,则根据测试用例标识保存测试失败结果至数据库对应的测试用例表。

本发明实施例提供一种测试用例自动化管理方法,将各个系统所使用的用例集中化,可便于对测试用例的集中管理,可实现各个子系统测试包直接共享代码,另外,由于测试自动化执行系统和测试自动化用例管理系统属于统一的平台,自动化测试执行系统测试系统执行任务时,测试执行系统可以通过版本检索到对应的测试脚本,拉取测试脚本并执行,解决了执行系统所执行的代码不是最新代码的问题。

对于上述实施例中的步骤s30,作为一种实施方式,如图2所示,在执行测试任务时根据所需求的测试用例的信息在基本信息数据模型中检索测试用例,并获取最新版本的测试用例,包括:

步骤s101.在执行测试任务时根据所需求的测试用例的信息在基本信息数据模型中检索测试用例。

步骤s102.当检索到信息完全匹配的测试用例时,则直接采用该测试用例。

步骤s103.当没有检索到信息完全匹配的测试用例,则获取近似测试用例,并将近似测试用例进行修改形成需要的测试用例。

在步骤s103中,在基本信息数据模型中检索测试用例,可能存在不完全匹配的情况,例如,测试用例的名称匹配,但是测试用例的功能不匹配,此时根据测试用例的名称查找功能近似的测试用例,并对该测试用例进行更新获取相匹配的测试用例,也可能是测试用例的功能相匹配,测试用例的名称不匹配,此时可以修改测试用例的名称得到所需的测试用例,也可能是测试用例的最新版本不匹配,对于测试用例的最新版本的不匹配,需要预先获取测试用例的代码更新情况,例如,预先获得新写入的代码或者补丁包的时间,而其对应的测试用例的更新时间晚于该时间,则可以判定该测试用例不是最新版本的测试用例,可以为将近似测试用例的版本进行升级后形成所需要版本的测试用例,即通过下载相应的补丁,对该测试用例进行版本更新以获取最新版本的测试用例。

步骤s104.当新增测试用例的其他信息和基本信息数据模型完全匹配时,则将新增测试用例和其对应的基本信息数据模型存入测试用例集合中。

步骤s105.当新增测试用例的其他信息和基本信息数据模型不完全匹配时,则修改与新增测试用例匹配的基本信息数据模型,形成新增基本信息数据模型,将新增测试用例和新增基本信息数据模型存入测试用例集合中。

在步骤s105中,检索到近似测试用例后对其进行修改,形成需要的新增测试用例,该测试用例可能与基本信息数据模型不完全匹配,例如,对测试用例进行版本更新后增加了测试用例的测试优先级,即通过测试用例的测试优先级可以获取执行测试用例的顺序,此时,需要修改基本信息数据模型,使基本信息数据模型的信息中增加测试优先级这一项。

本发明实施方式,在没有检索到完全匹配的测试用例,则获取近似测试用例,并将近似测试用例进行修改形成需要的测试用例,可以实现对测试用例的更新,同时当更新后的测试用例与基本信息数据模型不完全匹配时,修改基本信息数据模型,可以实现对更新后的测试用例的统一管理。

在实施例一中,在步骤s40中根据相匹配的测试用例完成测试后,将测试结果导入到测试用例数据库中,对于测试成功的测试用例,为了对这些新测试用例进行优中选优,可以对其进行优先化排序。

作为一种实施方式,选择贝叶斯分类hnb和aode两个模型,对每个测试用例采用对应的训练集进行模型训练,根据模型预测的综合结果对测试用例进行优先化排序。

具体的,分别载入这两个模型并进行初始化。由于hnb不需要设置任何参数,因此在载入hnb时以默认方式初始化。对于aode,需要设置最小频度freq,该参数为整数,表示出现至少freq次的组合予以考虑。正常情况取1即可;若训练集较大,也可适当增加freq的值,减少偶然组合的影响。

对每个测试用例ti,载入对应的训练集ti进行训练,当训练集较大时,可设置最大训练步数和最大训练时间,其中,训练集ti=[δ,ri],是一个n’×(l+1)的矩阵。其中δ(n’,l)取自模块变更数据矩阵δ(n,l),不考虑未执行用例ti的版本;ri是一个n’×1向量,是测试用例执行结果矩阵r(m,n)中第i行的转置,表示测试用例ti在n个版本中的执行结果,同样不考虑未执行用例ti的版本。

准备好新版本的模块变更信息,以训练集相同的格式要求填入检验集testseti=[δnew,θi]。其中新版本变更信息集合δnew={δ1,new,δ2,new,...,δl,new},代表新版本中的模块变更向量。

将检验集代入上一个步骤训练好的模型,预测出测试用例ti在新版本的执行结果θi,这个值是浮点值(处于0和1之间),代表测试用例ti能够发现新版本中软件缺陷的概率。

综合所有测试用例的预测结果,最终输出是一个三元组集合prof={<ti,θi,type>|ti∈t,0<θi≤1,1≤i≤m,type∈{hnb,aode}},其中ti为测试用例;type是选用的分类模型;概率θi表示测试用例ti能够发现新版本软件缺陷的概率,θi越高表示测试用例ti的价值越高,越值得优先测试。

采用hnb和aode两个贝叶斯分类挖掘模型分别预测,首先取测试用例ti对应的prof集合中两个三元组,将其中的两个θi求和取平均值,得到测试用例ti发现新版本软件缺陷的最终预测概率pi。根据每个测试用例发现软件缺陷的最终概率pi对所有测试用例进行排序。

本发明实施例的有益效果是:选择贝叶斯分类hnb和aode两个模型,对每个测试用例采用对应的训练集进行模型训练,根据模型预测的综合结果对测试用例进行优先化排序,从而使用户根据测试用例的排序选择测试用例,提高了测试效率。

本发明另一种实施例提供一种测试用例自动化管理装置40,如图3所示,测试用例自动化管理装置40包括:

测试用例集合获取模块401,用于获取测试用例集合,测试用例集合包括各个子系统所需的测试用例;

测试用例匹配模块402,用于将测试用例集合中每个测试用例与数据库中的基本信息数据模型进行匹配;

测试用例获取模块403,用于在执行测试任务时根据所需求的测试用例的信息在基本信息数据模型中检索测试用例,并获取最新版本的测试用例;

测试结果导入模块404,用于根据最新版本的测试用例完成测试后,将测试结果导入到测试用例数据库中。

进一步的,如图4所示,作为一种实施方式,测试用例匹配模块402包括:

测试用例检索模块410,用于在执行测试任务时根据所需求的测试用例的信息在基本信息数据模型中检索测试用例;

测试用例更新模块411,在没有检索到完全匹配的测试用例时,获取近似测试用例,并将近似测试用例进行修改形成需要的测试用例。

如图5所示,测试用例自动化管理装置40还包括数据模型更新模块405;

测试用例匹配模块402还用于对新增测试用例和基本信息数据模型进行匹配,若完全匹配,则将新增测试用例和其对应的基本信息数据模型存入测试用例集合中,

数据模型更新模块405用于在新增测试用例和基本信息数据模型不匹配时,修改与新增测试用例匹配的基本信息数据模型,形成新增基本信息数据模型,将新增测试用例和新增基本信息数据模型存入测试用例集合中。

上述终端设备中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明另一种实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的测试用例自动化管理方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述实施例中测试用例自动化管理装置中各模块/单元的功能,为避免重复,这里不再赘述。

图6是本实施例中终端设备的示意图。如图6所示,终端设备6包括处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62。处理器60执行计算机程序62时实现上述实施例中测试用例自动化管理方法的各个步骤,例如图1所示的步骤s10、s20、s30和s40。或者,处理器60执行计算机程序62时实现上述实施例中测试用例自动化管理装置各模块/单元的功能,如图3所示的测试用例集合获取模块401、测试用例匹配模块402、测试用例获取模块403以及测试结果导入模块404的功能。

示例性的,计算机程序62可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器61中,并由处理器60执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序62在终端设备6中的执行过程。例如,计算机程序62可以被分割成测试用例集合获取模块401、测试用例匹配模块402、测试用例获取模块403以及测试结果导入模块404。

该终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器60可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器61可以是终端设备6的内部存储单元,例如终端设备6的硬盘或内存。存储器61也可以是终端设备6的外部存储设备,例如终端设备6上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器61还可以既包括终端设备6的内部存储单元也包括外部存储设备。存储器61用于存储计算机程序以及终端设备所需的其他程序和数据。存储器61还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1