CN109960639A - 一种生成测试用例的方法和装置 - Google Patents

一种生成测试用例的方法和装置 Download PDF

Info

Publication number
CN109960639A
CN109960639A CN201711337272.0A CN201711337272A CN109960639A CN 109960639 A CN109960639 A CN 109960639A CN 201711337272 A CN201711337272 A CN 201711337272A CN 109960639 A CN109960639 A CN 109960639A
Authority
CN
China
Prior art keywords
node
test case
interface
test
tree structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711337272.0A
Other languages
English (en)
Inventor
王沙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201711337272.0A priority Critical patent/CN109960639A/zh
Publication of CN109960639A publication Critical patent/CN109960639A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种生成测试用例的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量;根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中;根据树形结构的多个叶子结点,由根结点到叶子结点生成测试用例。该实施方式克服了现有技术中在一定的置信区间下设计较少的测试用例来满足绝大部分测试目标存在困难的技术问题,进而达到利用树形结构来生成较少的测试用例的技术效果,有利于利用生成的较少的测试用例来覆盖较多的测试范围。

Description

一种生成测试用例的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种生成测试用例的方法和装置。
背景技术
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例的选择无论对于黑盒测试还是对于白盒测试来说都起着关键的作用。一般而言,测试用例设计和选择的原则是在给定的测试需求下所选择的测试用例集合要尽可能覆盖要测试的所有可能性。
目前,在接口测试中常用的测试方法有以下两种:
1、在应用中调用接口,即间接测试接口。在应用中测试接口时,由于应用中数据情况有限,所以无法覆盖所有的输入情况。
2、单独对接口进行测试,即直接测试接口。常用的测试用例选择方法是对每个接口的参数采用边界值分析法和等价类划分法选取一些典型性的值,或者采用启发式从中进行筛选。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
基于黑盒的接口测试用例选择方法是使用边界值分析方法和等价类划分方法等选取一组较为典型的值,然后在这些取值组合中随机选取一组测试用例进行软件测试。但是如果对于被测软件系统来说具有多个输入参数,而且它们可能由于自身的取值约束关系,具有不同的取值范围,最终会造成测试用例的集合具有很大的规模,这给选取测试用例带来了困难,如果随机选取的话,有可能造成选取的测试用例不能够涵盖大多数测试需求,如果要涵盖大多数测试需求,则不得不面对如此多的测试用例。
因此,如何在一定的置信区间下设计较少的测试用例来满足绝大部分测试目标,是亟待解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种生成测试用例的方法和装置,能够解决现有技术中在一定的置信区间下,无法生成较少的测试用例来满足绝大部分的测试目标的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成测试用例的方法。
本发明实施例一种生成测试用例的方法包括:根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量;根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中;根据树形结构的多个叶子结点,由根结点到叶子结点生成测试用例
可选地,本发明的实施例在由根结点到叶子结点生成测试用例的步骤之后还包括:以多个测试用例为测试用例集,验证测试用例集中各结点形成的路径在树形结构中是否全覆盖;若验证通过,则以所述测试用例集为最终结果;若验证不通过,则将在树形结构中遗漏的路径补充到测试用例集中。
可选地,本发明的实施例验证测试用例集中各结点形成的路径在树形结构中是否全覆盖的步骤包括:基于测试用例集中各结点形成的路径,在树形结构的每两层上进行验证,验证测试用例集中各结点是否全覆盖;将在树形结构中遗漏的路径补充到测试用例集中的步骤包括:根据遗漏的路径所对应的结点的位置确定该结的点子结点的位置以及该结点的父结点的位置,然后根据重新确定的所有结点的位置,由根结点到叶子结点生成补充测试用例;将补充测试用例补充到测试用例集中。
可选地,本发明的实施例中根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中的步骤包括:根据每个接口的参数数量对所有接口由大到小进行排序,并将排序后的接口中的参数设置于树形结构中每一层的各结点中。
可选地,本发明的实施例中由根结点到叶子结点生成测试用例的步骤包括:根据各结点所在的位置选择顺序的子结点,直至到达该结点的叶子结点,然后以根结点到该叶子结点的路径为测试用例。
为实现上述目的,根据本发明实施例的另一方面,提供了一种生成测试用例的装置。
本发明实施例的一种生成测试用例的装置包括:确定模块,用于根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量;排序模块,用于根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中;生成模块,用于根据树形结构的多个叶子结点,由根结点到叶子结点生成测试用例。
可选地,本发明的实施例中还包括验证补充模块,用于:以多个测试用例为测试用例集,验证测试用例集中各结点形成的路径在树形结构中是否全覆盖;若验证通过,则以所述测试用例集为最终结果;若验证不通过,则将在树形结构中遗漏的路径补充到测试用例集中。
可选地,本发明的实施例还包括验证模块,用于:基于测试用例集中各结点形成的路径,在树形结构的每两层上进行验证,验证测试用例集中各结点是否全覆盖;验证补充模块还用于:根据遗漏的路径所对应的各结点的位置,确定每个结点的子结点的位置以及每个结点的父结点的位置,然后根据重新确定的所有结点的位置,由根结点到叶子结点生成补充测试用例;将补充测试用例补充到测试用例集中。
可选地,本发明的实施例的排序模块还用于:根据每个接口的参数数量对所有接口由大到小进行排序,并将排序后的接口中的参数设置于树形结构中每一层的各结点中。
可选地,本发明的实施例的生成模块还用于:根据各结点所在的位置选择顺序的子结点,直至到达该结点的叶子结点,然后以根结点到该叶子结点的路径为测试用例。
为实现上述目的,根据本发明的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明生成测试用例的方法。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,其特征在于,程序被处理器执行时实现本发明生成测试用例的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用先根据预设的参数范围阈值对接口参数进行预处理,然后将处理后的接口进行排序并设置到树形结构中,从而由根结点到叶子结点生成测试用例的技术手段,所以克服了现有技术中在一定的置信区间下设计较少的测试用例来满足绝大部分测试目标存在困难的技术问题,进而达到利用树形结构来生成较少的测试用例的技术效果,有利于利用生成的较少的测试用例来覆盖较多的测试范围;通过本发明的生成测试用例的方法,可以保证任意两层接口参数的各种组合被全面覆盖,相比现有技术中生成测试用例的方法而言,减少了测试用例的数量,提高了测试用例覆盖的范围。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是根据本发明实施例的生成测试用例的方法的主要流程的示意图;
图2是根据本发明实施例生成测试用例的方法的流程图;
图3是根据本发明实施例的算法生成的树形结构示意图;
图4是根据本发明实施例的算法将接口参数代入到树形结构之后的示意图;
图5是根据本发明实施例的补充测试用例的算法流程图;
图6是根据本发明实施例的生成测试用例的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的生成测试用例的方法的主要流程的示意图,如图1所示,本发明实施例的一种生成测试用例的方法主要包括如下步骤:
步骤S101:根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量。现有的接口参数的取值非常多,因此,需要通过预设的参数范围阈值对每个接口中的参数进行筛选处理,从而确定出用于测试的参数数量,以减少接口参数的取值。需要说明的是,在本发明中是通过参数范围阈值来对参数进行筛选处理的,当然,也可以利用现有技术中的其他简化算法来对参数进行简化处理,以达到缩小参数的取值范围的目的。
步骤S102:根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中。通过对接口进行排序然后将接口中的参数设置到树形结构中,方便后续生成测试用例,在本发明的实施例中是根据每个接口的参数数量对所有接口由大到小进行排序,并将排序后的接口中的参数设置于树形结构中每一层的各结点中。也就是说,在树形结构中,每一层代表一个接口参数,每一层中的各结点代表该接口中的各参数,当然,各参数在结点中的排序是没有限制的。通过上述排序的方式,使得树形结构从上到下的参数数量递减,每一层结点的数量可以随参数的递减而减少,也可以和第一层保持一致(即各层的结点数量一致)。
步骤S103:根据树形结构的多个叶子结点,由根结点到叶子结点生成测试用例。基于树形结构的有序树原则,在本发明的实施例中是根据各结点所在的位置选择顺序的子结点,直至到达该结点的叶子结点,然后以根结点到该叶子结点的路径为测试用例。也就是说,从根结点开始按照顺序自上而下遍历每个结点直到叶子结点形成的路径为测试用例,从而形成多个测试用例。
需要说明的是,通过上述步骤生成的测试用例,可能因接口的参数在结点中的排序问题而导致生成的测试用例没有完全覆盖整个测试用例,因此,需要对生成的测试用例进行全覆盖校验。在本发明的实施例中,在由根结点到叶子结点生成测试用例的步骤之后还包括:以多个测试用例为测试用例集,验证测试用例集中各结点形成的路径在树形结构中是否全覆盖;若验证通过,则以所述测试用例集为最终结果;若验证不通过,则将在树形结构中遗漏的路径补充到测试用例集中。一般而言,是在树形结构的每两层或者间隔两层上进行验证,验证测试用例集中的各节点是否形成了全覆盖(也即验证测试用例集中的各节点所形成的路径是否在树形结构中全覆盖),例如,在测试用例集中第二层和第四层的各结点在树形结构中的第二层和第四层的各结点,按照顺序方式验证是否有包含了所有的结点路径的全覆盖,具体的验证方法将在后续的论述中详尽阐述,与此不再赘述。
在验证出存在遗漏的接口参数时,需要将遗漏的接口参数重新组合并添加到测试用例集中,在本发明的实施例中,还包括验证模块,用于:基于测试用例集中各结点形成的路径,在树形结构的每两层上进行验证,验证测试用例集中各结点是否全覆盖;将在树形结构中遗漏的路径补充到测试用例集中的步骤包括:根据遗漏的路径所对应的各结点的位置,确定每个结点的子结点的位置以及每个结点的父结点的位置,然后根据重新确定的所有结点的位置,由根结点到叶子结点生成补充测试用例;将补充测试用例补充到测试用例集中。例如,在确定了第二层和第四层中存在遗漏的结点时,仅需要重新确定除了第二层和第四层之外的所对应的结点的位置并重新按照确定的所有结点的位置生成补充测试用例即可,需要说明的是,重新生成的补充测试用例可能不是按照步骤S102确定的各结点的顺序的路径生成的,例如,按照重新确定的所有结点的位置单独生成相应的测试用例。
图2是根据本发明实施例生成测试用例的方法的流程图。本文提出了一种基于树形结构对接口参数进行组合,对接口每两层参数(也即每两层的结点)两两覆盖,保证每两层参数的各种组合被全部覆盖,生成接口测试用例,这种方法在综合考虑了外部接口参数和取值组合所产生的系统影响后,具有一定的通用性和稳定性。
在现有技术中,对于一个接口来说,黑盒测试主要关注的是接口的输入参数以及输出结果,从而获知被测接口是否满足测试需求。例如,输入参数的数量为10个,根据等价类划分的数据集规模为6(即接口参数的参数个数为6个),那么最终得到组合的测试用例集为(610)60466176种,才能完全满足测试需求。但是在实际工作中,在测试这么多的输入参数和输出参数的时候,可能由于测试进度的原因,没有能选择足够多的测试用例覆盖大多数测试需求,造成测试工作不够完善和效率底下的问题。因此,本申请提出一种对接口中任意两个接口参数的两两组合的测试用例生成的方法,如图2所示,主要步骤如下:
步骤一,接口参数简化。需要对接口参数进行简化处理,以得到最少的参数个数,从而得到最小的测试用例集。
步骤二,基本测试用例生成。通过划分树形结构,生成测试用例。需要注意的是,测试用例生成的好坏会直接影响到后边步骤的工作量以及算法的覆盖程度。
步骤三,算法覆盖校验。对上一步骤生成的测试用例进行覆盖性校验。如果满足要求,则不进行步骤四,将该测试用例直接作为最终测试用例;如果不满足要求,则说明缺少必要的测试用例,需要进行步骤四来补充生成测试用例,最终得到一组完全满足要求或符合规定的测试用例。
步骤四,补充测试用例生成。
此外,在本发明的实施例中,设系统对外接口由m个接口参数c1、c2、……,cm组成,cj接口参数可取值的参数个数为sj,下面就按上述四个步骤对本发明进行详尽阐述:
步骤一,接口参数简化。
一般的处理方法是从系统出发,自顶向下逐步对接口参数细化并消除冗余,具体步骤如下:
1、确定一个接口参数的可能取值(即接口参数中的参数个数或参数数量)并统一放到列表S中。
2、根据简化算法对列表S内的数据进行简化处理:
通过该简化算法处理之后可以消除列表S的冗余,最终得到一组无冗余的参数取值。
3、将每个接口参数都按照上述步骤进行处理,最终所有的接口参数都得到简化处理,cj接口参数可取值的参数个数为tj,且t1≥t2≥….≥tm
步骤二,基本测试用例生成。
需要先生成树形结构,如图3所示,是根据本发明实施例的算法生成的树形结构示意图,接口参数有m个(即树的深度为m),第i个接口参数有ti个取值(即i-1层的所有结点的分支结点个数均为ti),并且对参数个数按由大到小的顺序排列(t1≥t2≥….≥tm),树的具体构成方法如下:
1、树形结构的根结点为算法的起始位置。
2、树形结构的第1层由左至右依次填充接口参数的参数个数,编号为1、2、…….,t1。ti
3、树形结构的第2层及后续各层的构成方法如下:第i层(i<m)的每个结点均有ti+1个分支结点,并且由左至右依次填充接口参数的参数个数,编号为1、2、…..、ti+1
需要说明的是,每层代表一个接口参数的取值(即参数个数),并且由上到下分支结点的个数越来越少。从第1层的某个结点出发,沿着深度搜索最终到达树形结构的叶子结点,形成一条路径,这条路径就代表了一条测试用例。
根据上述生成的树形结构,再将接口的参数填入树形接口的结点中。例如,如图4所示,是根据本发明实施例的算法将接口参数代入到树形结构之后的示意图,某一接口参数包含4个参数,4个参数分别标记为1、2、3、4,接口参数取值根据参数类型采用数字进行编号,树形结构的层次从倒立树的根结点开始按照由上到下的顺序进行编号,具体编号如下表1所示:
表1树形结构编号
根据树形结构得到基本测试用例的具体过程如下:第1层每个结点按由左向右的顺序对各自的子结点按由左向右是顺序发送自己的结点号;第2层每个结点接收到一个结点号,并把自己装配在这个结点号后面,形成一个结点号串;第3层开始按下面算法向下一层每个结点发送在该结点内形成的结点号串:第i层(i≥3)的第j个结点(1≤j≤ti)按照由左至右的顺序依次连接到他的子结点j、j+1,…,ti+1,1,2,j-1;最终每个叶子结点得到一组结点号串,这些结点号串就构成了基本测试用例集。
上述树形结构生成的基本测试用例如下:
1-1-1-1,1-2-2-2,1-3-3-3,1-4-1-1,
2-1-2-1,2-2-3-2,2-3-1-3,2-4-2-1,
3-1-3-1,3-2-1-2,3-3-2-3,3-4-3-2,
4-1-1-1,4-2-2-2,4-3-3-1,4-4-1-3。
步骤三,覆盖性校验。
通过上述步骤得到的基本测试用例集不一定满足测试要求,可能是一个覆盖不全的测试用例,或者遗漏了结点的路径的测试用例,因此,要对输出的基本测试用例集进行检查,验证任意两2层的接口参数之间的取值是否全覆盖。如果是全覆盖,测试用例生成结束,所得的基本测试用例集就是所要得到的测试用例集,否则生成一张测试用例补充表,结合附图3可知,下表2所示的表中内容就是需要补充的接口参数的组合,如下表2所示,参数2、参数4部分用例未覆盖,得到测试用例补充表:
表2测试用例补充表
需要说明的是,上述表中待补充的接口参数所对应的是树形结构中的层数,即在第2层到第4层的路径中缺少必要的测试用例,而待补充项则是缺少的路径。
步骤四,补充测试用例生成。
补充测试用例生成的目的是根据检测出来需要补充的待补充项,重新根据新添加的结点来生成待补充测试用例并补充到测试用例集中,从而形成一个完整的测试用例集。如图5所示,是根据本发明实施例的补充测试用例的算法流程图。
具体步骤如下:
1、从测试用例补充表(即图示中遗漏表)的待补充项中选出1项并填充数据(例如选选择待补充项1-2中的一项,即在第二层添加结点1或在第四层添加结点2,并填充参数),将该待补充项中剩下的结点位置标记为待定(若确定在第二层添加结点1则将第四层中的结点标记为待定,若确定在第四层添加结点2则将第二层中的结点标记为待定),然后将该待补充项从测试用例补充表中去掉。
2、以确定接口参数为中心(即上面添加的第二层的结点1或第四层的结点2),查找相关的待补充项。例如,具体是以第二层的结点1为中心查找第一层和第三层在测试用例补充表的待补充项中是否有需要补充的项,若有,说明在测试用例补充表中存在和需要补充的项相同的待补充项,则以该待补充项为需要补充的项来生成结点,同时从测试用例补充表中去掉该待补充项;若没有,说明在测试用例补充表中不存在和需要补充的项相同的待补充项,则在第一层和第三层中随机生成结点(其中,由于第一层的结点不会出错,因此第一层的结点以树形结构中的结点为生成结点即可,并且是在原树形结构的结点位置范围内进行随机生成的,不会超出原树形结构中结点的范围)。然后在生成结点中填充参数。
需要说明的是,在进行查找的时候,查找的顺序不受限制,例如,可以先以第一层为中心,然后查找第二层、第三层,…,直至最后一层;也可以是先以第一层为中心查找其他层一次,然后以第二层为中心查找其它层一次,以此类推;也可以是随机的选择两层进行查找。
3、以新填入的接口参数(即生成结点)为中心,判断该接口参数是否有待定标记,若有,重复上述步骤的查找流程,直到该待补充项中各个接口参数没有待定标记为止。
4、输出该条测试用例,判断测试用例补充表中是否还有待补充项,若有,重复执行上述所有步骤,直到测试用例补充表中没有待补充项为止。
根据上述示例,最终输出的多条补充测试用例为:1-1-2-2,1-1-3-3,2-2-1-1,2-2-1-3,3-3-1-2。需要说明的是,由于只有第二层和第四层是固定的补充数据,第一层和第三层的结点位置以及对应的参数是可随机填充的,所以生成的补充用例不唯一。
根据本发明实施例的生成测试用例的方法可以看出,因为采用先根据预设的参数范围阈值对接口参数进行预处理,然后将处理后的接口进行排序并设置到树形结构中,从而由根结点到叶子结点生成测试用例的技术手段,所以克服了现有技术中在一定的置信区间下设计较少的测试用例来满足绝大部分测试目标存在困难的技术问题,进而达到利用树形结构来生成较少的测试用例的技术效果,有利于利用生成的较少的测试用例来覆盖较多的测试范围;通过本发明的生成测试用例的方法,可以保证任意两层接口参数的各种组合被全面覆盖,相比现有技术中生成测试用例的方法而言,减少了测试用例的数量,提高了测试用例覆盖的范围。
图6是根据本发明实施例的生成测试用例的装置的主要模块的示意图,如图6所示,是本发明实施例的生成测试用例的装置600的主要包括:确定模块601、排序模块602以及生成模块603。其中:
确定模块601,用于根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量;排序模块602,用于根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中;生成模块603,用于根据树形结构的多个叶子结点,由根结点到叶子结点生成测试用例。
可选地,本发明的实施例中还包括验证补充模块(图中未示出),用于:以多个测试用例为测试用例集,验证测试用例集中各结点形成的路径在树形结构中是否全覆盖;若验证通过,则以所述测试用例集为最终结果;若验证不通过,则将在树形结构中遗漏的路径补充到测试用例集中。
可选地,本发明的实施例的树形结构中各结点均有与接口的参数对应的位置;验证补充模块还用于:根据遗漏的路径所对应的各结点的位置,确定每个结点的子结点的位置以及每个结点的父结点的位置,然后根据重新确定的所有结点的位置,由根结点到叶子结点生成补充测试用例;将补充测试用例补充到测试用例集中。
可选地,本发明的实施例的排序模块602还用于:根据每个接口的参数数量对所有接口由大到小进行排序,并将排序后的接口中的参数设置于树形结构中每一层的各结点中。
可选地,本发明的实施例的生成模块603还用于:根据各结点所在的位置选择顺序的子结点,直至到达该结点的叶子结点,然后以根结点到该叶子结点的路径为测试用例。
从以上描述可以看出,因为采用先根据预设的参数范围阈值对接口参数进行预处理,然后将处理后的接口进行排序并设置到树形结构中,从而由根结点到叶子结点生成测试用例的技术手段,所以克服了现有技术中在一定的置信区间下设计较少的测试用例来满足绝大部分测试目标存在困难的技术问题,进而达到利用树形结构来生成较少的测试用例的技术效果,有利于利用生成的较少的测试用例来覆盖较多的测试范围;通过本发明的生成测试用例的方法,可以保证任意两层接口参数的各种组合被全面覆盖,相比现有技术中生成测试用例的方法而言,减少了测试用例的数量,提高了测试用例覆盖的范围。
图7示出了可以应用本发明实施例的生成测试用例的方法或生成测试用例的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的生成测试用例的方法一般由服务器705执行,相应地,生成测试用例的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块、排序模块以及生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量;根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中;根据树形结构的多个叶子结点,由根结点到叶子结点生成测试用例。
根据本发明实施例的技术方案,因为采用先根据预设的参数范围阈值对接口参数进行预处理,然后将处理后的接口进行排序并设置到树形结构中,从而由根结点到叶子结点生成测试用例的技术手段,所以克服了现有技术中在一定的置信区间下设计较少的测试用例来满足绝大部分测试目标存在困难的技术问题,进而达到利用树形结构来生成较少的测试用例的技术效果,有利于利用生成的较少的测试用例来覆盖较多的测试范围;通过本发明的生成测试用例的方法,可以保证任意两层接口参数的各种组合被全面覆盖,相比现有技术中生成测试用例的方法而言,减少了测试用例的数量,提高了测试用例覆盖的范围。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种生成测试用例的方法,其特征在于,包括:
根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量;
根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中;
根据所述树形结构的多个叶子结点,由根结点到所述叶子结点生成测试用例。
2.根据权利要求1所述的方法,其特征在于,在所述由根结点到所述叶子结点生成测试用例的步骤之后还包括:
以多个所述测试用例为测试用例集,验证所述测试用例集中各结点形成的路径在所述树形结构中是否全覆盖;
若验证通过,则以所述测试用例集为最终结果;
若验证不通过,则将在所述树形结构中遗漏的路径补充到所述测试用例集中。
3.根据权利要求2所述的方法,其特征在于,所述验证所述测试用例集中各结点形成的路径在所述树形结构中是否全覆盖的步骤包括:
基于所述测试用例集中各结点形成的路径,在所述树形结构的每两层上进行验证,验证所述测试用例集中各结点是否全覆盖;
所述将在所述树形结构中遗漏的路径补充到所述测试用例集中的步骤包括:
根据所述遗漏的路径所对应的各结点的位置,确定每个结点的子结点的位置以及每个结点的父结点的位置,然后根据重新确定的所有结点的位置,由根结点到叶子结点生成补充测试用例;
将所述补充测试用例补充到测试用例集中。
4.根据权利要求1所述的方法,其特征在于,所述根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中的步骤包括:
根据每个接口的参数数量对所有接口由大到小进行排序,并将排序后的接口中的参数设置于所述树形结构中每一层的各结点中。
5.根据权利要求1所述的方法,其特征在于,所述由根结点到所述叶子结点生成测试用例的步骤包括:
根据各结点所在的位置选择顺序的子结点,直至到达该结点的叶子结点,然后以根结点到该叶子结点的路径为测试用例。
6.一种生成测试用例的装置,其特征在于,包括:
确定模块,用于根据预设的参数范围阈值和获取的接口参数,确定测试的参数数量;
排序模块,用于根据每个接口的参数数量对所有接口进行排序,以将每个接口的参数设置于树形结构的各结点中;
生成模块,用于根据所述树形结构的多个叶子结点,由根结点到所述叶子结点生成测试用例。
7.根据权利要求6所述的装置,其特征在于,还包括验证补充模块,用于:
以多个所述测试用例为测试用例集,验证所述测试用例集中各结点形成的路径在所述树形结构中是否全覆盖;
若验证通过,则以所述测试用例集为最终结果;
若验证不通过,则将在所述树形结构中遗漏的路径补充到所述测试用例集中。
8.根据权利要求7所述的装置,其特征在于,还包括验证模块,用于:
基于所述测试用例集中各结点形成的路径,在所述树形结构的每两层上进行验证,验证所述测试用例集中各结点是否全覆盖;
所述验证补充模块还用于:
根据所述遗漏的路径所对应的各结点的位置,确定每个结点的子结点的位置以及每个结点的父结点的位置,然后根据重新确定的所有结点的位置,由根结点到叶子结点生成补充测试用例;
将所述补充测试用例补充到测试用例集中。
9.根据权利要求6所述的装置,其特征在于,所述排序模块还用于:
根据每个接口的参数数量对所有接口由大到小进行排序,并将排序后的接口中的参数设置于所述树形结构中每一层的各结点中。
10.根据权利要求6所述的装置,其特征在于,所述生成模块还用于:
根据各结点所在的位置选择顺序的子结点,直至到达该结点的叶子结点,然后以根结点到该叶子结点的路径为测试用例。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201711337272.0A 2017-12-14 2017-12-14 一种生成测试用例的方法和装置 Pending CN109960639A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711337272.0A CN109960639A (zh) 2017-12-14 2017-12-14 一种生成测试用例的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711337272.0A CN109960639A (zh) 2017-12-14 2017-12-14 一种生成测试用例的方法和装置

Publications (1)

Publication Number Publication Date
CN109960639A true CN109960639A (zh) 2019-07-02

Family

ID=67017809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711337272.0A Pending CN109960639A (zh) 2017-12-14 2017-12-14 一种生成测试用例的方法和装置

Country Status (1)

Country Link
CN (1) CN109960639A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908896A (zh) * 2019-10-29 2020-03-24 天津幸福生命科技有限公司 一种基于决策树的测试方法及装置
CN111338943A (zh) * 2020-02-21 2020-06-26 北京字节跳动网络技术有限公司 一种测试方法、装置、电子设备及可读存储介质
CN111444096A (zh) * 2020-03-25 2020-07-24 北京市信息技术研究所 一种接口测试用例生成方法及装置
CN115225557A (zh) * 2022-07-07 2022-10-21 上海东土致远智能科技发展有限公司 设备测试用例的生成方法及装置、设备测试方法和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461908A (zh) * 2014-12-31 2015-03-25 中国科学院软件研究所 一种基于软件组合测试的回归测试用例重用方法
CN105930268A (zh) * 2016-04-19 2016-09-07 努比亚技术有限公司 一种基于树型的黑盒测试用例生成方法及其系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461908A (zh) * 2014-12-31 2015-03-25 中国科学院软件研究所 一种基于软件组合测试的回归测试用例重用方法
CN105930268A (zh) * 2016-04-19 2016-09-07 努比亚技术有限公司 一种基于树型的黑盒测试用例生成方法及其系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙淑香等: "基于树型模型的黑盒测试用例自动生成", 《计算机技术与发展》 *
聂长海等: "基于接口参数的黑箱测试用例自动生成算法", 《计算机学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908896A (zh) * 2019-10-29 2020-03-24 天津幸福生命科技有限公司 一种基于决策树的测试方法及装置
CN111338943A (zh) * 2020-02-21 2020-06-26 北京字节跳动网络技术有限公司 一种测试方法、装置、电子设备及可读存储介质
CN111444096A (zh) * 2020-03-25 2020-07-24 北京市信息技术研究所 一种接口测试用例生成方法及装置
CN115225557A (zh) * 2022-07-07 2022-10-21 上海东土致远智能科技发展有限公司 设备测试用例的生成方法及装置、设备测试方法和设备

Similar Documents

Publication Publication Date Title
Harada et al. Parallel genetic algorithms: a useful survey
CN107832468B (zh) 需求识别方法和装置
CN109960639A (zh) 一种生成测试用例的方法和装置
CN109446099A (zh) 自动化测试用例生成方法、装置、介质及电子设备
CN110275826A (zh) 自动化测试方法、装置及计算机可读存储介质
CN109697641A (zh) 计算商品相似度的方法和装置
CN109255072A (zh) 信息召回方法及装置、计算机存储介质、电子设备
CN108510081A (zh) 机器学习方法和平台
CN110019080A (zh) 数据访问方法和装置
CN108898351A (zh) 配送方选择方法、系统、介质和计算设备
CN110221858A (zh) 模拟数据生成方法、装置、设备及计算机可读存储介质
CN104965918B (zh) 一种基于查询关键词的搜索方法和装置
CN109194714A (zh) 一种文案推送方法、装置、终端设备及存储介质
CN108958744A (zh) 大数据分布式集群的部署方法、装置、介质及电子设备
CN109976999A (zh) 测试用例覆盖率的度量方法和度量装置
CN110489087A (zh) 一种生成分形结构的方法、装置、介质和电子设备
CN110232487A (zh) 一种任务分派方法和装置
CN110019158A (zh) 一种监控数据质量的方法和装置
CN109903105A (zh) 一种完善目标商品属性的方法和装置
CN109814957A (zh) 一种用于ios系统的标签添加方法和装置
CN109784407A (zh) 确定表字段的类型的方法和装置
CN110309142A (zh) 规则管理的方法和装置
CN109960487A (zh) 一种抽取对象的方法和装置
CN109992494A (zh) 一种自动化测试执行方法和装置
CN109992496A (zh) 一种用于自动化测试的数据处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190702