掌桥专利:专业的专利平台
掌桥专利
首页

一种测试用例生成方法及其相关设备

文献发布时间:2023-06-19 09:54:18


一种测试用例生成方法及其相关设备

技术领域

本申请涉及数据处理技术领域,尤其涉及一种测试用例生成方法及其相关设备。

背景技术

测试用例(Test Case)用于描述针对待测试软件产品的测试任务,而且该测试用例可以包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。也就是,测试用例是为了检查待测试软件产品是否满足预设软件需求而编制的文档。

然而,如何自动生成测试用例是一个亟待解决的技术问题。

发明内容

为了解决现有技术中存在的以上技术问题,本申请提供一种测试用例生成方法及其相关设备,能够自动生成测试用例。

为了实现上述目的,本申请实施例提供的技术方案如下:

本申请实施例提供一种测试用例生成方法,所述方法包括:

接收测试用例生成请求;其中,所述测试用例生成请求用于请求生成目标源文件对应的测试用例;

根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型;

在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数;

根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例。

可选的,所述根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型,包括:

对所述目标源文件进行解析,得到待处理函数体;

根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型。

可选的,所述根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型,包括:

根据所述待处理函数体的输入参数和所述输入参数的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型;

和/或,

根据所述待处理函数体的返回值和所述返回值的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型。

可选的,所述根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数,包括:

对所述待处理接口参数对应的函数体进行解析,得到所述待处理接口参数对应的取值语句和/或赋值语句;

根据所述待处理接口参数对应的取值语句和/或赋值语句,得到所述待处理接口参数的实际使用参数。

可选的,所述方法还包括:

在确定所述待处理接口参数的参数类型不是集合类型时,将所述待处理接口参数确定为所述待处理接口参数的实际使用参数。

本申请实施例还提供了一种测试用例生成装置,所述装置包括:

接收单元,用于接收测试用例生成请求;其中,所述测试用例生成请求用于请求生成目标源文件对应的测试用例;

第一获取单元,用于根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型;

第二获取单元,用于在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数;

生成单元,用于根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例。

可选的,所述第一获取单元,包括:

第一获取子单元,用于对所述目标源文件进行解析,得到待处理函数体;

第二获取子单元,用于根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型。

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

第三获取单元,用于在确定所述待处理接口参数的参数类型不是集合类型时,将所述待处理接口参数确定为所述待处理接口参数的实际使用参数。

本申请实施例一种设备,所述设备包括处理器以及存储器:

所述存储器用于存储计算机程序;

所述处理器用于根据所述计算机程序执行本申请实施例提供的测试用例生成方法方法的任一实施方式。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行本申请实施例提供的测试用例生成方法方法的任一实施方式。

与现有技术相比,本申请实施例至少具有以下优点:

本申请实施例提供的测试用例生成方法中,在接收到用于请求生成目标源文件对应的测试用例的测试用例生成请求之后,先根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型,再在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数,并根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例,如此实现了自动生成测试用例。

附图说明

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

图1为本申请实施例提供的一种测试用例生成方法的流程图;

图2为本申请实施例提供的待处理接口参数对应的函数体示意图;

图3为本申请实施例提供的利用上文相关技术生成的目标源文件对应的测试用例;

图4为本申请实施例提供的利用本申请实施例提供的测试用例生成方法生成的目标源文件对应的测试用例;

图5为本申请实施例提供的一种测试用例生成装置的示意图;

图6为本申请实施例提供的一种设备结构示意图。

具体实施方式

发明人在对测试用例的研究中发现,在相关技术中,可以直接根据目标源文件中各个函数体的输入参数以及返回值,生成该目标源文件对应的测试用例。然而,若输入参数(或者返回值)属于集合类型参数,则基于该输入参数直接生成的测试用例只记录有该集合类型的输入参数(或者返回值),没有记录该输入参数(或者返回值)在目标源文件中的实际输入参数和实际输出参数,使得目标源文件对应的测试用例不完整,从而使得测试人员需要依据目标源文件对该测试用例进行人工补全,如此导致测试用例的生成效率较低。

为了解决背景技术部分的技术问题以及上述相关技术的缺陷,本申请实施例提供了一种测试用例生成方法,该方法包括:接收测试用例生成请求;其中,所述测试用例生成请求用于请求生成目标源文件对应的测试用例;根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型;在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数;根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例。

可见,因测试用例是根据集合类型下待处理接口参数的实际使用参数生成的,使得测试用例记录有集合类型下待处理接口参数的实际使用参数(如,输入参数和/或返回值),从而使得目标源文件对应的测试用例是完整的,如此减少了人工补全测试用例的过程,从而提高了测试用例的生成效率。

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

参见图1,该图为本申请实施例提供的一种测试用例生成方法的流程图。

本申请实施例提供的测试用例生成方法,包括S1-S6:

S1:接收测试用例生成请求。

其中,测试用例生成请求用于请求生成目标源文件对应的测试用例。另外,本申请实施例不限定测试用例生成请求的触发方式,例如,可以通过点击测试用例生成按钮进行触发。

目标源文件是需要进行测试的源文件。另外,本申请实施例不限定目标源文件,例如,目标源文件可以为C

目标源文件对应的测试用例用于对目标源文件所描述的软件产品进行测试。

S2:根据目标源文件,获取待处理接口参数和待处理接口参数的参数类型。

其中,待处理接口参数是指目标源文件中各个函数体的接口参数(也就是,输入参数和/或返回值)。需要说明的是,对于目标源文件来说,一个目标源文件可以包括至少一个函数体,而且每个函数体可以包括至少一个输入参数和/或至少一个返回值。

参数类型用于描述待处理接口参数的类型。例如,参数类型可以为字典类型、数组类型、字符串类型、数值类型等。

另外,本申请实施例不限定S2的实施方式,为了便于理解S2,下面结合示例进行说明。

作为示例,S2具体可以包括S21-S22:

S21:对所述目标源文件进行解析,得到待处理函数体。

需要说明的是,本申请实施例不限定待处理函数体的获取过程。另外,本申请实施例也不限定待处理函数体的个数,例如,若目标源文件中包括N个函数体,则S21具体可以为:对目标源文件进行解析得到N个函数体。其中,N为正整数。

S22:根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型。

需要说明的是,本申请实施例不限定S22的实施方式,为了便于理解,下面结合S22的一种可能的实施方式进行说明。

在一种可能的实施方式中,S22具体可以包括:根据所述待处理函数体的输入参数和所述输入参数的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型;和/或,根据所述待处理函数体的返回值和所述返回值的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型。

可见,在获取到待处理函数体之后,若该待处理函数体中存在至少一个输入参数,则可以根据该待处理函数体中的至少一个输入参数及其参数类型(如图2所示),确定待处理接口参数和该待处理接口参数的参数类型;若该待处理函数体中存在至少一个返回值,则可以根据该待处理函数体中的至少一个返回值及其参数类型,确定待处理接口参数和该待处理接口参数的参数类型;若该待处理函数体中存在至少一个输入参数和至少一个返回值,则可以根据该待处理函数体中的至少一个返回值及其参数类型和至少一个输入参数及其参数类型,确定待处理接口参数和该待处理接口参数的参数类型。

基于上述S21至S22的相关内容可知,在接收到测试用例生成请求之后,可以先解析目标源文件得到至少一个待处理函数体,再根据该至少一个待处理函数体的接口参数(如,输入参数和/或返回值)及其参数类型,得到待处理接口参数和所述待处理接口参数的参数类型。例如,若目标源文件包括N个待处理函数体,则可以先解析目标源文件得到第1个待处理函数体和第N个待处理函数体,再根据第1个待处理函数体的接口参数及其参数类型至第N个待处理函数体的接口参数及其参数类型,得到待处理接口参数及其参数类型(例如,将第1个待处理函数体中各个接口参数及其参数类型至第N个待处理函数体中各个接口参数及其参数类型,均确定为待处理接口参数及其参数类型)。

S3:判断待处理接口参数的参数类型是否为集合类型,若是,则执行S4和S6;若否,则执行S5和S6。

其中,集合类型是指以集合方式表示的参数类型。另外,本申请实施例不限定集合类型,例如,字典类型、数组类型均是集合类型。

本申请实施例中,在获取到一个待处理接口参数及其参数类型之后,可以判断该待处理接口参数的参数类型是否为集合类型,若是集合类型,则确定待处理接口参数只是一个集合类型的参数,导致该待处理接口参数自身无法清楚地描述出该待处理接口参数在目标源文件如何使用,故为了提高测试用例的完整性,可以通过执行S4来获取到该待处理接口参数在目标源文件中的实际用途;若不是集合类型,则确定待处理接口参数自身能够清楚地描述出该待处理接口参数在目标源文件如何使用的,故可以直接根据该待处理接口参数,确定测试用例。

S4:根据待处理接口参数对应的函数体,得到待处理接口参数的实际使用参数。

其中,待处理接口参数的实际使用参数是指待处理接口参数在使用过程中所涉及的参数。

需要说明的是,本申请实施例不限定S4的实施方式,可以采用任一种能够获取待处理接口参数的实际使用参数的方法就行实施。为了便于理解,下面结合S4的一种可能的实施方式进行说明。

在一种可能的实施方式中,S4具体可以包括S41-S42:

S41:对所述待处理接口参数对应的函数体进行解析,得到所述待处理接口参数对应的取值语句和/或赋值语句。

其中,待处理接口参数对应的函数体是指在目标源文件中以待处理接口参数作为接口参数(如,输入参数或返回值)的函数体。

待处理接口参数对应的取值语句是指将待处理接口参数作为取值对象的语句(如图2中dict对应的取值语句)。

待处理接口参数对应的赋值语句是指将待处理接口参数作为赋值对象的语句(如图2中dict对应的赋值语句)。

需要说明的是,本申请实施例不限定S41的实施方式,可以采用任一种能够对函数体进行解析的方法进行实施。

S42:根据所述待处理接口参数对应的取值语句和/或赋值语句,得到所述待处理接口参数的实际使用参数。

本申请实施例中,在获取到待处理接口参数对应的取值语句和/或赋值语句之后,可以直接根据所述待处理接口参数对应的取值语句和/或赋值语句,得到所述待处理接口参数的实际使用参数,以使待处理接口参数的实际使用参数能够清楚地描述出该待处理接口参数在目标源文件中是如何使用的。

S5:将所述待处理接口参数确定为所述待处理接口参数的实际使用参数。

S6:根据待处理接口参数的实际使用参数,生成目标源文件对应的测试用例。

本申请实施例中,在获取到各个待处理接口参数的实际使用参数之后,可以根据各个待处理接口参数的实际使用参数,生成目标源文件对应的测试用例。例如,若目标源文件包括M个待处理接口参数,则可以根据第1个待处理接口参数的实际使用参数至第N个待处理接口参数的实际使用参数,生成目标源文件对应的测试用例,以使该测试用例能够准确地记录有各个待处理接口参数在目标源文件中的实际用途。

基于上述S1至S6的相关内容可知,在本申请实施例提供的测试用例生成方法中,在接收到用于请求生成目标源文件对应的测试用例的测试用例生成请求之后,先根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型,再在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数,并根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例,如此实现了自动生成测试用例。

可见,因测试用例是根据集合类型下待处理接口参数的实际使用参数生成的,使得测试用例记录有集合类型下待处理接口参数的实际使用参数(如,输入参数和/或返回值),从而使得目标源文件对应的测试用例是完整的,如此减少了人工补全测试用例的过程,从而提高了测试用例的生成效率。

需要说明的是,本申请实施例提供的测试用例生成方法达到的技术效果,可以利用图2至图4进行说明。其中,图2为本申请实施例提供的待处理接口参数对应的函数体示意图;图3为本申请实施例提供的利用上文相关技术生成的目标源文件对应的测试用例;图4为本申请实施例提供的利用本申请实施例提供的测试用例生成方法生成的目标源文件对应的测试用例。可见,如图3所示,在利用上文相关技术生成的目标源文件对应的测试用例中,只是识别出了图3中的函数体包括字典类型的输入参数dict,但是没有返回值,导致测试用例编写人员无法了解字典类型里有什么参数,从而导致若测试用例编写人员不查看源码则无法补全测试用例。如图4所示,在利用本申请实施例提供的测试用例生成方法生成的目标源文件对应的测试用例中,清楚的记录了字典类型的输入参数dict对应的实际使用参数,无需由测试用例编写人员进行测试用例补全,如此有利于提高测试用例的生成效率。

基于上述方法实施例提供的测试用例生成方法方法,本申请实施例还提供了一种测试用例生成方法装置,下面结合附图进行解释和说明。

装置实施例

装置实施例提供的测试用例生成方法装置的技术详情,请参照上述方法实施例。

参见图5,该图为本申请实施例提供的一种测试用例生成装置的示意图。

本申请实施例提供的测试用例生成装置500,包括:

接收单元501,用于接收测试用例生成请求;其中,所述测试用例生成请求用于请求生成目标源文件对应的测试用例;

第一获取单元502,用于根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型;

第二获取单元503,用于在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数;

生成单元504,用于根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例。

在一种可能的实施方式中,所述第一获取单元502,包括:

第一获取子单元,用于对所述目标源文件进行解析,得到待处理函数体;

第二获取子单元,用于根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型。

在一种可能的实施方式中,所述第二获取子单元,具体用于:

根据所述待处理函数体的输入参数和所述输入参数的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型;

和/或,

根据所述待处理函数体的返回值和所述返回值的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型。

在一种可能的实施方式中,所述第二获取单元503,具体用于:

对所述待处理接口参数对应的函数体进行解析,得到所述待处理接口参数对应的取值语句和/或赋值语句;

根据所述待处理接口参数对应的取值语句和/或赋值语句,得到所述待处理接口参数的实际使用参数。

在一种可能的实施方式中,所述装置500还包括:

第三获取单元,用于在确定所述待处理接口参数的参数类型不是集合类型时,将所述待处理接口参数确定为所述待处理接口参数的实际使用参数。

以上为本申请实施例提供的测试用例生成装置500,对于测试用例生成装置500来说,在接收到用于请求生成目标源文件对应的测试用例的测试用例生成请求之后,先根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型,再在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数,并根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例,如此实现了自动生成测试用例。

基于上述方法实施例提供的测试用例生成方法方法,本申请实施例还提供了一种设备,下面结合附图进行解释和说明。

设备实施例

设备实施例提供的设备技术详情,请参照上述方法实施例。

参见图6,该图为本申请实施例提供的一种设备结构示意图。

本申请实施例提供的设备600,包括:处理器601以及存储器602;

所述存储器602用于存储计算机程序;

所述处理器601用于根据所述计算机程序执行上述方法实施例提供的测试用例生成方法方法的任一实施方式。也就是说,处理器601用于执行以下步骤:

接收测试用例生成请求;其中,所述测试用例生成请求用于请求生成目标源文件对应的测试用例;

根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型;

在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数;

根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例。

可选的,所述根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型,包括:

对所述目标源文件进行解析,得到待处理函数体;

根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型。

可选的,所述根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型,包括:

根据所述待处理函数体的输入参数和所述输入参数的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型;

和/或,

根据所述待处理函数体的返回值和所述返回值的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型。

可选的,所述根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数,包括:

对所述待处理接口参数对应的函数体进行解析,得到所述待处理接口参数对应的取值语句和/或赋值语句;

根据所述待处理接口参数对应的取值语句和/或赋值语句,得到所述待处理接口参数的实际使用参数。

可选的,所述方法还包括:

在确定所述待处理接口参数的参数类型不是集合类型时,将所述待处理接口参数确定为所述待处理接口参数的实际使用参数。

以上为本申请实施例提供的设备600的相关内容。

基于上述方法实施例提供的测试用例生成方法方法,本申请实施例还提供了一种计算机可读存储介质。

介质实施例

介质实施例提供的计算机可读存储介质的技术详情,请参照方法实施例。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方法实施例提供的测试用例生成方法方法的任一实施方式。也就是说,该计算机程序用于执行以下步骤:

接收测试用例生成请求;其中,所述测试用例生成请求用于请求生成目标源文件对应的测试用例;

根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型;

在确定所述待处理接口参数的参数类型为集合类型时,根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数;

根据所述待处理接口参数的实际使用参数,生成所述目标源文件对应的测试用例。

可选的,所述根据所述目标源文件,获取待处理接口参数和所述待处理接口参数的参数类型,包括:

对所述目标源文件进行解析,得到待处理函数体;

根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型。

可选的,所述根据所述待处理函数体,得到待处理接口参数和所述待处理接口参数的参数类型,包括:

根据所述待处理函数体的输入参数和所述输入参数的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型;

和/或,

根据所述待处理函数体的返回值和所述返回值的参数类型,确定待处理接口参数和所述待处理接口参数的参数类型。

可选的,所述根据所述待处理接口参数对应的函数体,得到所述待处理接口参数的实际使用参数,包括:

对所述待处理接口参数对应的函数体进行解析,得到所述待处理接口参数对应的取值语句和/或赋值语句;

根据所述待处理接口参数对应的取值语句和/或赋值语句,得到所述待处理接口参数的实际使用参数。

可选的,所述方法还包括:

在确定所述待处理接口参数的参数类型不是集合类型时,将所述待处理接口参数确定为所述待处理接口参数的实际使用参数。

以上为本申请实施例提供的计算机可读存储介质的相关内容。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

相关技术
  • 一种测试用例生成方法及其相关设备
  • 一种测试用例生成方法及其设备、存储介质、电子设备
技术分类

06120112340283