一种测试案例的排序方法及装置与流程

文档序号:21362290发布日期:2020-07-04 04:36阅读:180来源:国知局
一种测试案例的排序方法及装置与流程

本发明涉及软件测试技术领域,更具体,涉及一种测试案例的排序方法及装置。



背景技术:

系统测试是系统开发中的一个重要环节,直接关系到开发的系统是否能够交付使用。系统测试之前需要对测试案例进行排序,随后根据测试案例的顺序进行测试。伴随着系统功能的多样化,系统的测试案例越来越多,以银行系统为例,系统测试往往涉及多种交易的测试案例,若手工对测试案例进行排序效率极低且容易出错。

为了提高测试效率,目前一般根据测试案例之间的输入与输出关系,自动对测试案例进行排序,如a测试案例的输出参数为b测试案例的输入参数,则将a测试案例排在b测试案例之前。但是,当测试案例涉及多个输入参数和多个输出参数时,测试案例之间的输入输出关系比较复杂,仅根据测试案例之间的输入与输出关系无法准确对测试案例进行排序。



技术实现要素:

有鉴于此,本发明提供的一种测试案例的排序方法及装置,实现对测试案例的准确排序。

为了实现上述发明目的,本发明提供的具体技术方案如下:

一种测试案例的排序方法,包括:

获取每个测试案例的输出参数和输入参数;

分别统计每个测试案例中输出参数在其他测试案例中作为输入参数的总次数,作为每个测试案例的输出参数引用权重;

分别统计每个测试案例中输入参数在其他测试案例中作为输出参数的总次数,作为每个测试案例的输入参数引用权重;

分别根据每个测试案例的输出参数引用权重与输入参数引用权重,确定每个测试案例的排序权重;

根据每个测试案例的排序权重对测试案例进行排序。

可选的,所述获取每个测试案例的输出参数和输入参数,包括:

分别对每个测试案例进行解析,得到每个测试案例的标识、输出参数和输入参数;

分别对每个测试案例的标识、输出参数和输入参数以数组的形式进行存储。

可选的,所述分别根据每个测试案例的输出参数引用权重与输入参数引用权重,确定每个测试案例的排序权重,包括:

分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重。

可选的,所述分别根据每个测试案例的输出参数引用权重与输入参数引用权重,确定每个测试案例的排序权重,包括:

分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重;

当存在排序权重相同的两个或两个以上测试案例时,采用递归算法,再次计算排序权重相同的测试案例的排序权重,直到所有测试案例的排序权重均不相同。

可选的,在所述根据每个测试案例的排序权重对测试案例进行排序之后,所述方法还包括:

按照每个测试案例的排序,将每个测试案例存储在链表中。

一种测试案例的排序装置,包括:

参数获取单元,用于获取每个测试案例的输出参数和输入参数;

第一权重确定单元,用于分别统计每个测试案例中输出参数在其他测试案例中作为输入参数的总次数,作为每个测试案例的输出参数引用权重;

第二权重确定单元,用于分别统计每个测试案例中输入参数在其他测试案例中作为输出参数的总次数,作为每个测试案例的输入参数引用权重;

第三权重确定单元,用于分别根据每个测试案例的输出参数引用权重与输入参数引用权重,确定每个测试案例的排序权重;

案例排序单元,用于根据每个测试案例的排序权重对测试案例进行排序。

可选的,所述参数获取单元,具体用于:

分别对每个测试案例进行解析,得到每个测试案例的标识、输出参数和输入参数;

分别对每个测试案例的标识、输出参数和输入参数以数组的形式进行存储。

可选的,所述第三权重确定单元,具体用于:

分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重。

可选的,所述第三权重确定单元,具体用于:

分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重;

当存在排序权重相同的两个或两个以上测试案例时,采用递归算法,再次计算排序权重相同的测试案例的排序权重,直到所有测试案例的排序权重均不相同。

可选的,所述装置还包括:

案例存储单元,用于按照每个测试案例的排序,将每个测试案例存储在链表中。

相对于现有技术,本发明的有益效果如下:

本发明公开的一种测试案例的排序方法,通过统计每个测试案例中输出参数在其他测试案例中作为输入参数的总次数,得到表示每个测试案例的输出重要程度的输出参数引用权重,并通过统计每个测试案例中输入参数在其他测试案例中作为输出参数的总次数,得到表示每个测试案例的输入重要程度的输入参数引用权重,由于输出参数作为其他测试案例的输入参数的测试案例需要优先执行,需要其他测试案例的输出参数作为自身输入参数的测试案例需要延后执行,本发明通过将测试案例的输出参数引用权重与输入参数引用权重的差值确定为排序权重,在此基础上,根据每个测试案例的排序权重对测试案例进行排序,可以保证对测试案例排序的准确性。

附图说明

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

图1为本发明实施例公开的一种测试案例的排序方法的流程示意图;

图2为本发明实施例公开的一种获取测试案例的输出参数和输入参数的方法的流程示意图;

图3为本发明实施例公开的另一种测试案例的排序方法的流程示意图;

图4为本发明实施例公开的一种测试案例的排序方法的图表示意图;

图5为本发明实施例公开的一种测试案例的排序装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开的一种测试案例的排序方法,应用于系统测试场景下的自动化测试平台,具体可以应用在生成测试案例后自动对测试案例进行排序,也可以应用在测试人员已经对测试案例进行排序,但是导入至案例调度平台的顺序发生变更时的案例排序,能够实现对测试案例的准确排序,从而保证测试案例的正确执行。

具体的,请参阅图1,本实施例公开的一种测试案例的排序方法包括以下步骤:

s101:获取每个测试案例的输出参数和输入参数;

在自动化测试平台接收到测试案例后,首先需要获取每个测试案例的输入参数和输入参数,其中,输入参数为执行测试案例时,需要输入到该测试案例中的参数,输出参数为执行测试案例时,该测试案例输出的参数。

请参阅图2,获取每个测试案例的输出参数和输入参数的方法如下:

s201:分别对每个测试案例进行解析,得到每个测试案例的标识、输出参数和输入参数;

具体的,需要根据测试案例的格式对测试案例进行解析,本实施例支持对多种测试案例格式的解析,预先存储不同格式的测试案例的解析方法,在确定待解析测试案例的格式,如var时,调用该测试案例的格式对应的解析方法对该测试案例进行解析,得到每个测试案例的标识、输出参数和输入参数。

s202:分别对每个测试案例的标识、输出参数和输入参数以数组的形式进行存储。

在获取每个测试案例的标识、输出参数和输入参数之后,为了便于后续对测试案例进行排序,分别对每个测试案例的标识、输出参数和输入参数以数组的形式进行存储。

s102:分别统计每个测试案例中输出参数在其他测试案例中作为输入参数的总次数,作为每个测试案例的输出参数引用权重;

测试案例的输出参数引用权重表示测试案例的输出重要程度,一个测试案例的输出参数作为其他案例的输入参数的次数越多,表示在该测试案例执行后才能执行的测试案例越多,该测试案例越需要优先执行。

当测试案例只有一个输出参数时,这个输出参数在其他测试案例中作为输入参数的总次数即为测试案例的输出参数引用权重。

当测试案例有一个以上输出参数时,统计将该测试案例中任一个输出参数作为输入参数的其他测试案例的数量,即统计测试案例中输出参数在其他测试案例中作为输入参数的总次数,作为每个测试案例的输出参数引用权重。

s103:分别统计每个测试案例中输入参数在其他测试案例中作为输出参数的总次数,作为每个测试案例的输入参数引用权重;

测试案例的输入参数引用权重表示测试案例的输入重要程度,一个测试案例的输入参数作为其他案例的输出参数的次数越多,表示在该测试案例执行之前需要执行的测试案例越多,该测试案例越需要后续执行。

当测试案例只有一个输入参数时,这个输入参数在其他测试案例中作为输出参数的总次数即为测试案例的输入参数引用权重。

当测试案例有一个以上输入参数时,统计将该测试案例中任一个输入参数作为输出参数的其他测试案例的数量,即统计测试案例中输入参数在其他测试案例中作为输出参数的总次数,作为每个测试案例的输入参数引用权重。

s104:分别根据每个测试案例的输出参数引用权重与输入参数引用权重,确定每个测试案例的排序权重;

由于一个测试案例的输出参数引用权重越大,越需要优先执行,反之输入参数引用权重越大,越需要后续执行,综合考虑每个测试案例的输出参数引用权重和输入参数引用权重,即可确定每个测试案例的排序权重。

其中,一种优选的排序权重确定方法为:分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重。

需要说明的是,将测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重,仅为本实施例中的一种优选方案,还可以对测试案例的输出参数引用权重与输入参数引用权重进行加权求和,确定测试案例的排序权重,其中,输出参数引用权重的权重为正数,输入参数引用权重的权重为负数。任何一种根据每个测试案例的输出参数引用权重与输入参数引用权重,确定每个测试案例的排序权重的方案均在本发明的保护范围之内。

s105:根据每个测试案例的排序权重对测试案例进行排序。

对测试案例进行排序实际上是对测试案例的标识进行排序,具体按测试案例的排序权重从大到小的顺序,对测试案例进行排序,排序权重大的测试案例先执行,排序权重小的测试案例后执行。

为了便于表示测试案例的排序,可以按照每个测试案例的排序,将每个测试案例存储在链表中,在执行系统测试时,可以按照链表中测试案例的排序,依次从链表中提取相应的测试案例进行测试。

进一步,在实际应用中,可能出现两个或两个以上测试案例的排序权重相同的情况,在这种情况下为了实现对测试案例进行准确排序,本实施例公开了另一种测试案例的排序方法,请参阅图3,该测试案例排序方法包括以下步骤:

s301:获取每个测试案例的输出参数和输入参数;

s302:分别统计每个测试案例中每个输出参数在其他测试案例中作为输入参数的总次数,作为每个测试案例的输出参数引用权重;

s303:分别统计每个测试案例中每个输入参数在其他测试案例中作为输出参数的总次数,作为每个测试案例的输入参数引用权重;

s304:分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重;

s305:判断是否存在排序权重相同的两个或两个以上测试案例;

若存在,s306:采用递归算法,再次计算排序权重相同的测试案例的排序权重,直到所有测试案例的排序权重均不相同;

若不存在,s307:根据每个测试案例的排序权重对测试案例进行排序。

具体请参阅图4,未排序测试案例为1.1,1.2,1.3,1.4,1.5,1.6,1.7和1.8。

首先,通过对未排序测试案例进行解析,获取每个测试案例的输出参数和输入参数,其中,测试案例1.1的输出参数为a,输入参数为b和e;测试案例1.2没有输出参数,输入参数为a和c;测试案例1.3的输出参数为b,没有输出参数;测试案例1.4没有输出参数,输入参数为b、c、d和e;测试案例1.5的输出参数为c,输入参数为d、e和f;测试案例1.6没有输出参数,也没有输入参数;测试案例1.7的输出参数为d,输入参数为a和e;测试案例1.8的输出参数为e和f,输入参数为b。

分别统计每个测试案例中每个输出参数在其他测试案例中作为输入参数的总次数,作为每个测试案例的输出参数引用权重。以测试案例1.1为例,输出参数a分别作为测试案例1.2和测试案例1.7的输入参数,因此,测试案例1.1的输出参数引用权重为2;测试案例1.8的输出参数e分别作为测试案例1.1、测试案例1.4、测试案例1.5和测试案例1.7的输入参数,测试案例1.8的输出参数f作为测试案例1.5的输入参数,由于e、f同时作为测试案例1.5的输入参数,因此,测试案例1.8的输出参数引用权重为4。

分别统计每个测试案例每个测试案例中每个输入参数在其他测试案例中作为输出参数的总次数,作为每个测试案例的输入参数引用权重。以测试案例1.8为例,输入参数b为测试案例1.3的输出参数,因此,测试案例1.8的输入参数引用权重为1。

分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重。

可以发现,测试案例1.3和测试案例1.8的排序权重相同,都是4;测试案例1.1、测试案例1.6和测试案例1.7的排序权重相同,都是0,第一轮排序后测试案例的排序如下:测试案例1.3和测试案例1.8并列排第一、(测试案例1.1、测试案例1.6和测试案例1.7并列第三)、测试案例1.5排第六、测试案例1.2排第七、测试案例1.4排第八。

利用递归算法分别对测试案例1.3和测试案例1.8、以及测试案例1.1、测试案例1.6和测试案例1.7进行排序,在第二轮排序中,在测试案例1.3和测试案例1.8中分别确定每个测试案例的输出参数引用权重和输入参数引用权重,最后得到测试案例1.3和测试案例1.8的排序权重分别为1和-1,可以确定测试案例1.3排第一,测试案例1.8排第二。

在第三轮排序中,测试案例1.1、测试案例1.6和测试案例1.7中分别确定每个测试案例的输出参数引用权重和输入参数引用权重,最后得到测试案例1.1、测试案例1.6和测试案例1.7的排序权重分别为-1、0和-1,其中,可以确定测试案例1.6排第三,测试案例1.1和测试案例1.7的排序权重相同,需要进行第四轮排序。

在第四轮排序中,测试案例1.1和测试案例1.7中分别确定每个测试案例的输出参数引用权重和输入参数引用权重,最后得到测试案例1.1和测试案例1.7的排序权重分别为-1和-2,可以确定测试案例1.1排第四,测试案例1.7排第五,至此,所有测试案例排序结束。

可见,本实施例公开的一种测试案例的排序方法,通过统计每个测试案例中输出参数在其他测试案例中作为输入参数的总次数,得到表示每个测试案例的输出重要程度的输出参数引用权重,并通过统计每个测试案例中每个参数在其他测试案例中作为输出参数的总次数,得到表示每个测试案例的输入重要程度的输入参数引用权重,由于输出参数作为其他测试案例的输入参数的测试案例需要优先执行,需要其他测试案例的输出参数作为自身输入参数的测试案例需要延后执行,本发明通过将测试案例的输出参数引用权重与输入参数引用权重的差值确定为排序权重,在此基础上,根据每个测试案例的排序权重对测试案例进行排序,可以保证对测试案例排序的准确性。

基于上述实施例公开的一种测试案例的排序方法,本实施例对应公开了一种测试案例的排序装置,请参阅图5,该装置包括:

参数获取单元501,用于获取每个测试案例的输出参数和输入参数;

第一权重确定单元502,用于分别统计每个测试案例中输出参数在其他测试案例中作为输入参数的总次数,作为每个测试案例的输出参数引用权重;

第二权重确定单元503,用于分别统计每个测试案例中输入参数在其他测试案例中作为输出参数的总次数,作为每个测试案例的输入参数引用权重;

第三权重确定单元504,用于分别根据每个测试案例的输出参数引用权重与输入参数引用权重,确定每个测试案例的排序权重;

案例排序单元505,用于根据每个测试案例的排序权重对测试案例进行排序。

可选的,所述参数获取单元501,具体用于:

分别对每个测试案例进行解析,得到每个测试案例的标识、输出参数和输入参数;

分别对每个测试案例的标识、输出参数和输入参数以数组的形式进行存储。

可选的,所述第三权重确定单元504,具体用于:

分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重。

可选的,所述第三权重确定单元504,具体用于:

分别将每个测试案例的输出参数引用权重与输入参数引用权重的差值确定为相应测试案例的排序权重;

当存在排序权重相同的两个或两个以上测试案例时,采用递归算法,再次计算排序权重相同的测试案例的排序权重,直到所有测试案例的排序权重均不相同。

可选的,所述装置还包括:

案例存储单元,用于按照每个测试案例的排序,将每个测试案例存储在链表中。

本实施例公开的一种测试案例的排序装置,通过统计每个测试案例中输出参数在其他测试案例中作为输入参数的总次数,得到表示每个测试案例的输出重要程度的输出参数引用权重,并通过统计每个测试案例中输入参数在其他测试案例中作为输出参数的总次数,得到表示每个测试案例的输入重要程度的输入参数引用权重,由于输出参数作为其他测试案例的输入参数的测试案例需要优先执行,需要其他测试案例的输出参数作为自身输入参数的测试案例需要延后执行,本发明通过将测试案例的输出参数引用权重与输入参数引用权重的差值确定为排序权重,在此基础上,根据每个测试案例的排序权重对测试案例进行排序,可以保证对测试案例排序的准确性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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