CN116932403A - 测试用例的生成方法 - Google Patents
测试用例的生成方法 Download PDFInfo
- Publication number
- CN116932403A CN116932403A CN202310925324.5A CN202310925324A CN116932403A CN 116932403 A CN116932403 A CN 116932403A CN 202310925324 A CN202310925324 A CN 202310925324A CN 116932403 A CN116932403 A CN 116932403A
- Authority
- CN
- China
- Prior art keywords
- interface
- target
- combination
- parameter
- test
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 203
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 230000006378 damage Effects 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 31
- 239000011800 void material Substances 0.000 description 8
- 238000010276 construction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010998 test method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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
技术领域
本申请涉及测试技术领域,尤其是一种测试用例的生成方法。
背景技术
为提高测试效率,目前存在一些自动生成测试用例的技术用于提高测试过程中测试用例的生成效率,如利用机器学习和自然语言技术,测试平台在不同的迭代和构建中进行学习,自动生成测试用例而且无需人员参与。测试平台可以模拟不同的用户行为,例如购物,搜索产品,点击产品页面,添加到购物车等,从而生成自动测试用例,这种方式比较适合应用程序以及网站等应用场景,但不太适合后端程序测试;
针对后端程序测试过程,存在基于符号执行的测试方法,将可执行程序转化为符号,遍历符号的执行路径,最后生成不同路径下的测试用例,如开源工具KLEE。然而,基于符号执行的测试方法较为复杂,应用场景受限,仅适用于少数场景。
发明内容
本申请人针对上述问题及技术需求,提出了一种测试用例的生成方法,本申请的技术方案如下:
一方面,提供一种测试用例的生成方法,包括如下步骤:
在接收到对待测试接口集的测试命令的情况下,对所述待测试接口集中包含的同类接口进行组合,得到至少一个接口组合,所述待测试接口集中包含不同类型的待测试的接口;
基于至少一个所述接口组合中目标接口组合的目标接口类型,构造所述目标接口组合测试过程中所使用的实参,所述实参的参数类型与所述目标接口类型相对应;
将所述实参传入调用的所述目标接口组合的代码段中,得到目标接口代码段;
将所述目标接口代码段填充至测试模板,得到所述目标接口组合的测试用例,所述测试模板中包含接口计算的通用流程模板。
其中,进一步的方案为:
所述基于至少一个所述接口组合中目标接口组合的目标接口类型,构造所述目标接口组合测试过程中所使用的实参,包含:
基于所述目标接口组合的目标接口类型,确定所述目标接口组合所使用参数的参数类型以及参数范围;
基于所述参数类型以及所述参数范围,构造所述目标接口组合测试过程中所使用的实参。
所述基于所述目标接口组合的目标接口类型,确定所述目标接口组合所使用参数的参数类型以及参数范围,包括:
在接口列表中查询所述目标接口类型对应的所述参数类型以及所述参数范围,所述接口列表中包含不同接口类型对应的参数类型与参数范围;
所述基于所述参数类型以及所述参数范围,构造所述接口组合测试过程中所使用的实参,包括:
在对象列表中查询所述参数类型对应的参数创建方法,所述对象列表中包含不同对象对应的创建以及销毁方法;
在所述参数范围内选择目标参数,以及基于所述参数创建方法以及所述目标参数构造需传入的所述实参。
所述在所述参数范围内选择目标参数,包括:
获取所述参数范围对应的待选参数列表,所述待选参数列表中参数属于所述参数范围,且所述待选参数列表为预先设定的所述参数范围对应的参数列表;
在所述待选参数列表中选择目标参数列表,以及在所述目标参数列表中选择所述目标参数。
所述在接收到对待测试接口集的测试命令之前,所述方法还包括:
基于编程模型的编程流程,创建测试模板,其中,不同编程流程对应不同的测试模板;
基于所述编程模型初始化接口列表以及对象列表,所述接口列表至少包含与所述编程模型对应的接口,所述对象列表中至少包含各个与所述编程模型对应接口所使用的对象。
所述将所述目标接口代码段填充至测试模板,得到所述目标接口组合的测试用例,包括:
确定所述目标接口组合所属的目标接口列表;
基于所述目标接口列表,确定对应的所述测试模板;
将所述目标接口代码段填充至所述测试模板,得到所述目标接口组合的测试用例。
所述在接收到对待测试接口集的测试命令的情况下,对所述待测试接口集中包含的同类接口进行组合,得到至少一个接口组合,包括:
在接收到对所述待测试接口集的测试命令的情况下,获取所述待测试接口集中各个接口的接口类型;
将属于目标接口类型的目标测试接口进行组合,得到所述目标接口类型对应的至少一个接口组合,所述目标接口类型对应的至少一个接口组合包含所述目标接口组合。
所述将属于目标接口类型的目标测试接口进行组合,得到所述目标接口类型对应的至少一个接口组合,包括:
将属于所述目标接口类型的目标测试接口进行全排列,得到所述目标接口类型对应的至少一个接口组合。
所述将所述目标接口代码段填充至测试模板,得到所述目标接口组合的测试用例之后,所述方法还包括:
查询待测试的未测接口组合;
在存在所述未测接口组合的情况下,基于所述未测接口组合的接口类型,构建所述未测接口组合测试过程中所使用的实参。
所述在存在所述未测接口组合的情况下,基于所述未测接口组合的接口类型,构建所述未测接口组合测试过程中所使用的实参,包括:
在存在所述未测接口组合的情况下,确定所述未测接口组合的接口类型,所述未测接口组合是未生成测试用例的接口组合;
在所述未测接口组合的接口类型与已测接口组合的接口类型不同的情况下,基于所述未测接口组合的接口类型,构建所述未测接口组合的实参,所述已测接口组合是已生成测试用例的接口组合;
所述方法还包括:
在所述未测接口组合的接口类型与所述已测接口组合的接口类型相同的情况下,将所述已测接口类型使用的实参确定为所述未测接口组合的实参。
本申请的有益技术效果是:
本申请实施例中,针对待测试的接口,可根据其功能类型进行组合,得到待测试的至少一个接口组合,之后,根据接口组合中接口类型自动构造实参形成接口代码段,再自动填充至预设好的测试模板中,实现测试用例的自动生成,减少不必要的流程,可提高测试效率,且方法简单,可适用于多数测试场景;且可对接口进行组合测试,基于测试模板可快速生成不同接口组合对应的多种测试用例,支持不同的测试场景,可进一步提高用于多种测试场景进行测试的测试效率。
附图说明
图1是本申请一个示例性实施例提供的测试用例的生成方法的流程图;
图2是本申请另一个示例性实施例提供的测试用例的生成方法的流程图;
图3是本申请另一个示例性实施例提供的测试用例的生成方法的流程图。
具体实施方式
下面结合附图对本申请的具体实施方式做进一步说明。
请参考图1,其示出了本申请一个示例性实施例提供的测试用例的生成方法的流程图,该方法以计算机设备执行为例进行说明。该方法包括如下步骤:
步骤101,在接收到对待测试接口集的测试命令的情况下,对待测试接口集中包含的同类接口进行组合,得到至少一个接口组合。
其中,接口(Application Programming Interface,API)是一些预先定义的函数,可基于接口实现对一组例程的访问,从而实现对应的功能或服务。
待测试接口集中包含至少不同类型的待测试的接口。示意性的,待接口测试集中包含计算类接口以及操作类接口等,其中,计算类接口还可划分为不同类的计算接口,比如,计算类接口的类型包含三角函数类接口、指数函数类接口以及对数函数类接口等。
在一种可能的实施方式中,在计算机设备接收到用户指定的测试接口的情况下,确定接收到对待测试接口集的测试命令,可开始对待测试接口集中各个接口的测试。其中,用户可通过上传文档的方式指定需测试的接口,上传文档中包含需测试的接口。示意性的,可创建txt形式的文档,用于指定需测试的接口。
通常情况下,待测试接口集中包含至少两个待测试的接口。本申请实施例中,对于同一功能类型的接口(即同类接口)可以进行组合,得到接口组合,从而对接口组合进行测试。其中,不同的接口组合可对应不同的功能类型,即根据接口的功能对待测试接口集中所包含的接口进行分类,将同一类型的接口进行组合,即可得到分别对应不同功能类型的接口组合。示意性的,接口组合A中包含三个属于功能类型A的接口,接口组合B中包含三个属于功能类型B的接口,接口组合A与接口组合B中的接口分别对应不同的功能类型。
或者,不同的接口组合可对应相同的功能类型,但包含接口的数量不同。即对应属于同一功能类型的接口,可通过不同的方式得到多种组合。示意性的,接口组合C中包含2个属于功能类型A的接口,其与接口组合A中包含的接口数量不同,同样属于不同的接口组合。
本申请实施例中,通过对待测试接口集中的同类接口进行组合,得到多种接口组合,以生成多种测试用例,提高测试效率。
步骤102,基于至少一个接口组合中目标接口组合的目标接口类型,构造目标接口组合测试过程中所使用的实参。
其中,实参的参数类型与接口类型相对应。不同类的接口所使用的参数类型不同,示意性的,当接口为计算类接口中的三角函数类接口时,所使用的参数类型为实数。
不同类型的接口在测试过程中需使用不同类型的参数,包含输入参数、输出参数以及返回值等。对于各个接口组合,需根据其中所包含的接口类型,确定所需使用的参数类型,再基于参数类型构建测试过程中需使用的实参,即测试过程中使用的实际参数。
目标接口组合是上述组合得到的接口组合中任意一个接口组合。针对目标接口组合,即可根据目标接口组合对应的目标接口类型,构造得到目标接口组合所需使用的实参,用于测试过程。
步骤103,将实参传入调用的目标接口组合的代码段中,得到目标接口代码段。
在得到目标接口组合后,即可调用目标接口组合中的各个接口对应的代码段,以组合得到目标接口组合的代码段。之后,将构造得到的实参传入目标接口组合的代码段中,即可得到目标接口组合对应的目标接口代码段。
其中,将构造得到的实参传入目标接口组合的代码段中方法可使用本领域技术人员常用的传入参数方法,本实施例在此不再赘述。
其中,目标接口代码段即包含了目标接口组合中各接口的计算过程。
步骤104,将目标接口代码段填充至测试模板,得到目标接口组合的测试用例,测试模板中包含接口计算的通用流程模板。
测试模板是针对编程模型的通用模板,测试模板的代码段中包含编程模型在编程过程中通用流程。示意性的,异构编程模型一般编程过程为选定计算设备,对设备初始化,之后,将主机的数据拷贝至加速卡,再利用加速卡进行计算,计算结果再拷贝回主机,且释放相关资源。则对于异构编程模型,在针对不同接口的接口计算过程中包含选定计算设备、初始化设备、数据拷贝、内核计算、数据写回以及资源释放等相同的过程,因此,测试模板中可包含选定计算设备、初始化设备、数据拷贝、内核计算、数据写回以及资源释放的流程,后续直接填充不同接口的计算过程即可。
测试模板中包含有接口计算过程对应的填充位置。在一种可能的实施方式中,将目标接口代码段填充至测试模板中接口计算过程对应的填充位置中,生成目标接口组合的测试用例。其中,将目标接口代码段填充至测试模板时,可直接将目标接口代码段复制至测试模板对应的填充位置中,或者,还可采用其他本领域技术人员常用的技术手段进行填充,本实施例对此不做限定。
即对于每一个接口组合,可根据接口类型构建对应的实参,以形成接口代码段,再将接口代码段填充至测试模板中,生成接口组合对应的测试用例,实现测试用例的自动生成过程。
本申请实施例中,针对待测试的接口,可根据其功能类型进行组合,得到待测试的至少一个接口组合,之后,根据接口组合中接口类型自动构造实参形成接口代码段,再自动填充至预设好的测试模板中,实现测试用例的自动生成,减少不必要的流程,可提高测试效率,且方法简单,可适用于多数测试场景;且可对接口进行组合测试,基于测试模板可快速生成不同接口组合对应的多种测试用例,支持不同的测试场景,可进一步提高用于多种测试场景进行测试的测试效率。
本申请实施例中,是将接口组合对应的代码段填充至测试模板中,生成测试用例。在此过程中,首先需创建测试模板,再创建接口列表以及对象列表,以结合三者实现测试用例的自动生成过程。请参考图2,其示出了本申请另一个示例性实施例提供的测试用例的生成方法的流程图,该方法以计算机设备执行为例进行说明。该方法包括如下步骤:
步骤201,基于编程模型的编程流程,创建测试模板,其中,不同编程流程对应不同的测试模板。
其中,不同的编程模型对应不同的编程流程,针对不同的编程流程,需分别创建对应的测试模板,以便填充。
示意性的,一个异构编程模型对应的测试模板如下所示:
可见,测试模板中包含设置设备、初始化设备、数据拷贝、函数计算、数据写回以及释放资源的过程。其中,“做计算”的位置即可填充对应的接口代码段,以生成完整的测试用例。
步骤202,基于编程模型初始化接口列表以及对象列表,接口列表至少包含与编程模型对应的接口。
其中,对象列表中至少包含各个与编程模型对应接口所使用的对象。
对于不同编程模型对应有不同的接口,可根据编程模型初始化接口列表。在一种可能的实施方式中,接口列表中包含基于编程模型创建的所有接口。在创建接口列表的过程中,需注明各个接口对应的输入参数、输出参数以及返回值类型,且还注明有接口使用参数的参数范围。且针对同一类型的接口,可统一注明该接口类型对应的参数类型以及参数范围,以便后续查找。
且不同的接口类型使用不同的对象(包含参数),在创建得到接口列表后,可针对接口列表中所包含的接口,创建针对对象的对象列表,对象列表中包含各种接口类型所需使用的对象,且针对各个对象,注明有对象创建方法以及销毁方法。
步骤203,在接收到对待测试接口集的测试命令的情况下,获取待测试接口集中各个接口的接口类型。
在一种可能的实施方式中,当接收到待测试接口集的测试命令之后,可自动根据待测试接口集中各个接口类型进行分类,得到不同类型的待测试接口。
对于不同的接口类型,可预先设置不同的类型标记,且根据各个接口的接口类型对接口设置对应的类型标记。当接收到对待测试接口集的测试命令时,可获取待测试接口集中各个接口的类型标记,以确定各个接口的接口类型。
步骤204,将属于目标接口类型的目标测试接口进行组合,得到目标接口类型对应的至少一个接口组合,目标接口类型对应的至少一个接口组合包含目标接口组合。
其中,待测试的接口类型中包含多种不同的接口类型,在组合过程中,对于相同接口类型的接口进行组合,得到目标接口类型对应的至少一个接口组合,即对具有相同类型标记的接口进行组合,得到至少一个接口组合。即属于目标接口类型的接口可组合得到两个及以上的接口组合。
目标接口类型为待测试接口集中各个接口对应的接口类型中的其中一种,即对于任一接口类型即可对其所对应的接口进行排列组合,从而得到各个接口类型对应的接口组合。
在组合过程中,可以不同的方式进行组合。在一种可能的实施方式中,在对属于目标接口类型的目标测试接口进行测试的过程中,可将属于目标接口类型的目标测试接口进行全排列,得到目标接口类型对应的至少一个接口组合。
可选的,在全排列的过程中,可排列得到不重复的接口组合,或者,也可排列得到重复的接口组合,可根据实际要求设定。
示意性的,当目标接口类型为三角函数类型,对应的目标测试接口包含正弦函数、余弦函数以及正切函数。对于三个接口函数进行全排列,一共3!(3×2×1)种排列方式,可得到六种组合方式,即六种接口组合,六种接口组合不重复;或者,对于三个接口函数进行全排列,得到33种排列方式,即得到27种接口组合,其中包含重复的接口组合。
步骤205,基于目标接口组合中接口的目标接口类型,确定目标接口组合所使用参数的参数类型以及参数范围。
不同的接口使用不同类型的参数,且对应不同的参数范围。示意性的,正弦函数的参数类型为实数,参数范围(自变量范围)为全体实数。
因此,在构造接口组合对应的实参过程中,首先需确定接口组合所需使用参数的参数类型以及参数范围,再基于参数类型与参数范围构建实参。
本实施例中,在接口列表中查询目标接口类型对应的参数类型以及参数范围,接口列表中包含不同接口类型对应的参数类型与参数范围。其中,目标接口类型对应的参数类型与参数范围所指示的参数适用于属于目标接口类型的所有接口。
即接口列表中包含各种接口类型所使用参数的参数类型以及参数范围,包含输入参数,输出参数以及返回值等。示意性的,接口列表中一接口所包含的信息如下所示:
void*memcpy(void*dst,const void*src,size_t size)
其中,已注明输入参数为const void*src,size_t size,输出参数为void*dst。
通过预先设定的接口列表,在组合得到接口组合后,可直接在接口列表中查询得到接口组合中接口类型对应的参数类型与参数范围,用于后续构造实参过程中。
步骤206,基于参数类型以及参数范围,构造目标接口组合测试过程中所使用的实参。
每个参数都是一个对象,当确定接口组合对应的参数类型以及参数范围后,为创建适应于接口组合的实参,还需根据参数类型对应的创建方式进行创建,该方式可包含步骤206a-206b:
步骤206a,在对象列表中查询参数类型对应的参数创建方法,对象列表中包含不同对象对应的创建以及销毁方法。
本实施例中,预先创建有对象列表,对象列表中包含不同类型的对象对应的创建与销毁方法,即其中包含不同参数类型对应的参数创建与销毁方法。因此,在一种可能的实施方式中,在确定目标接口类型对应的参数类型之后,可在对象列表中查询参数类型对应的参数创建方法。示意性的,结合上述接口示例,其中输入参数为const void*src,为传入输入参数const void*src,可在对象列表中查询const void*的对象如何创建,根据指示的创建方法进行创建。
步骤206b,在参数范围内选择目标参数,以及基于参数创建方法与目标参数构造需传入的实参。
在参数范围内选择目标参数时,在一种可能的实施方式中,可选择边界点,再从参数范围内基于平均间隔进行选取,或者,随机进行选取,得到目标参数。示意性的,当接口为正弦函数,参数范围为全体实数时,选择目标参数可包含负无穷与正无穷两个边界点,再选取-π/2,0,π/2,一共选取5个值作为目标参数。
在另一种可能的实施方式中,对于不同的参数范围,可预先设定多种参数列表,从而基于参数列表选择目标参数,用于测试过程中。在参数范围内选择目标参数可包含如下步骤:
步骤一,获取参数范围对应的待选参数列表,待选参数列表中参数属于参数范围,且待选参数列表为预先设定的参数范围对应的参数列表。
在确定参数范围后,获取参数范围对应的待选参数列表,待选参数列表包含至少一种列表。且待选参数列表中的参数属于参数范围。
示意性的,当接口组合A对应的参数范围为(0,+∞)时,包含的一种待选参数列表为{0,1,2,5,10,11}。当接口组合B对应的参数范围为(-∞,0)时,包含的一种待选参数列表为{0,-1,-2,-5,-10,-11}。
步骤二,在待选参数列表中选择目标参数列表,以及在目标参数列表中选择目标参数。
当待选参数列表仅包含一种列表时,则可直接将待选参数列表确定为目标参数列表,即直接在待选参数列表中选择目标参数。可选的,可在其中随机选取目标数量的参数作为目标参数。
而当待选参数列表包含多种列表时,首先可在待选参数列表中随机选取一目标参数列表,再从目标参数列表中选择目标参数。
示意性的,结合上述示例,对于接口组合A可在待选参数列表{0,1,2,5,10,11}中选择目标参数,如选择2,5,10作为目标参数。对于接口组合B可在待选参数列表{0,-1,-2,-5,-10,-11}中选择目标参数,如选择-1,-5以及-11作为目标参数。
选取目标参数后,需将其传入接口组合的代码段中。可根据上述在对象列表中查询到的参数创建方法,创建参数并将选择的目标参数填充至创建的参数中,从而构造得到需传入的实参,以传入目标接口组合的代码段中。
通过预先设置参数列表的方式,可构建合理化的实参,用于测试过程中。
步骤207,将实参传入调用的所述目标接口组合的代码段中,得到目标接口代码段。
步骤208,将目标接口代码段填充至测试模板,得到目标接口组合的测试用例。
在将目标接口代码段填充至测试模板的过程中,可先确定目标接口代码段对应的测试模板,再进行填充。该过程可包含如下步骤:
步骤208a,确定目标接口组合所属的目标接口列表。
首先,可在各个接口列表中查询目标接口组合,确定目标接口组合所在的目标接口列表。
步骤208b,基于目标接口列表,确定对应的测试模板。
由于不同的测试模板分别对应不同编程模型的编程流程。且接口列表也基于编程模型创建,因此,确定目标接口列表后,即可确定的测试模板,用于填充目标接口组合的目标接口代码段。
步骤208c,将目标接口代码段填充至测试模板,得到目标接口组合的测试用例。
在一种可能的实施方式中,可将接口代码段填充至测试模板中,得到接口组合的测试用例。在一种可能的情况下,目标接口列表可能对应多个测试模板,即可以应用于多个测试流程中,该种情况下,可将接口代码段输入各个对应的测试模板中,以得到接口组合的测试用例。
本实施例中,基于预先设定的测试模板、以及设置的接口列表与对象列表,结合三者实现测试用例的自动化生成。使用接口列表,可实现对不同接口以及接口组合的测试,且由于使用了接口列表,限制了测试范围,可避免路径爆炸的情况出现。且基于对象列表,可采用不同参数进行测试,满足接口测试的参数需求,支持多种测试场景。
由于在接口组合的过程中,可能得到多个接口组合,因此,针对每一组接口组合均需构建得到测试过程中所需使用的实参,可针对各个接口组合依次构建实参、填充实参形成接口代码段以及将代码段填充至测试模板中形成测试用例。在将接口代码段填充至测试模板,得到接口组合的测试用例之后,方法还包括:
步骤一,查询待测试的未测接口组合。
在上述过程中,得到目标接口组合对应的测试实例后,待测试接口集可能还组合得到其他的接口组合,尚未测试。因此,在得到目标接口组合对应的测试实例后,继续查询是否存在未测接口组合,其中,未测接口组合是指尚未生成测试用例的接口组合。
步骤二,在存在未测接口组合的情况下,基于未测接口组合的接口类型,构建未测接口组合测试过程中所使用的实参。
若存在尚未生成测试用例的未测接口组合的情况下,则可基于未测接口组合的接口类型,继续构建未测接口组合测试过程所使用的实参,之后,基于实参形成对应的接口代码段,再填充至对应的测试模板中,生成未测接口组合的测试实例,之后,在继续检测其他未测的接口组合,循环此过程,直至生成全部接口组合对应的测试示例为止。
在一种可能的实施方式中,当存在未测接口组合时,可直接基于上述过程构建对应的实参。
而在另一种可能的实施方式中,不同的接口组合可能对应不同的功能类型,也可能对应相同的功能类型,而相同的功能类型可使用相同的实参,因此,针对不同的接口组合可采用不同的实参确定过程,即构建未测接口组合测试过程中所使用的实参的过程包含如下步骤:
步骤1,在存在未测接口组合的情况下,确定未测接口组合的接口类型。
在一种可能的实施方式中,在组合得到待测试接口集对应的至少一个接口组合后,可生成组合列表,将组合得到的各个接口组合存储在组合列表中,在生成目标接口组合对应的测试用例后,可对组合列表中的目标接口组合进行标记,之后,可基于标记查询是否存在未测接口组合。
当存在未标记的接口组合时,可确定该未测接口组合的接口类型。
步骤2,在未测接口组合的接口类型与已测接口组合的接口类型不同的情况下,基于未测接口组合的接口类型,构建未测接口组合的实参。
当得到未测接口组合对应的接口类型之后,可将其于已测接口组合的接口类型进行对比,在与已测接口组合的接口类型均不同的情况下,表示未构造同接口类型对应的实参,需重新构造实参。
而在未测接口组合的接口类型与已测接口组合的接口类型相同的情况下,将已测接口组合使用的实参确定为未测接口组合的实参。
而未测接口组合的接口类型可能与已测接口组合的接口类型相同,可采用相同的实参,无需再重复参数创建过程,从而可将接口类型相同的已测接口组合所使用的实参确定为未测接口组合的实参,有助于提高测试用例的生成效率。
即本实施例中,针对相同功能类型的接口组合,可共用实参,从而减少实参创建过程,有助于提高测试效率。
结合上述过程,在一种可能的实施方式中,测试用例的自动生成过程包含如下步骤:
步骤301,接收文本以及从文本中获取待测试接口集。
可选的,可接收用户上传的txt文本,其中包含用户指示的待测试接口,计算机设备可对文本进行分析,得到待测试接口集。
步骤302,基于待测试接口集,构造得到至少一个接口组合。
根据待测试接口集中各个接口的功能类型,构造得到多个接口组合。其中,每个接口组合中接口对应相同的功能类型。
步骤303,从接口列表中查询得到接口组合对应的参数类型以及参数范围,以及从对象列表中查询得到参数类型对应的参数创建方法,以构造接口组合依赖的实参。
在生成一个接口组合的测试用例过程中,可首先在接口列表中查询到对应的参数类型以及参数范围,之后,在参数范围中选择得到目标参数,再利用从对象列表中查询到的参数创建方法,创建目标参数对应的实参。
步骤304,在接口组合对应的代码段中填充实参,形成接口组合的接口代码段。
创建得到实参后,即可在由接口组合中各个接口对应的代码段组合的代码段中填充实参,以得到接口代码段。
步骤305,将接口代码段填入测试模板,得到接口组合的测试用例。
步骤306,查询是否存在未测接口组合,若是,则执行步骤303,若否,则结束流程。
在生成一个接口组合的测试用例后,继续查询是否存在未测接口组合,即未生成测试用例的接口组合,若存在,则继续构造未测接口组合的实参,且填充测试模板生成测试用例,直至最后一个接口组合的测试用例生成完成为止。
其中,步骤301至306的实施方式具体可参照上述实施例,本实施例仅简要说明。
以上所述的仅是本申请的优选实施方式,本申请不限于以上实施例。可以理解,本领域技术人员在不脱离本申请的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本申请的保护范围之内。
Claims (10)
1.一种测试用例的生成方法,其特征在于,所述方法包括:
在接收到对待测试接口集的测试命令的情况下,对所述待测试接口集中包含的同类接口进行组合,得到至少一个接口组合,所述待测试接口集中包含不同类型的待测试的接口;
基于至少一个所述接口组合中目标接口组合的目标接口类型,构造所述目标接口组合测试过程中所使用的实参,所述实参的参数类型与所述目标接口类型相对应;
将所述实参传入调用的所述目标接口组合的代码段中,得到目标接口代码段;
将所述目标接口代码段填充至测试模板,得到所述目标接口组合的测试用例,所述测试模板中包含接口计算的通用流程模板。
2.根据权利要求1所述的方法,其特征在于,所述基于至少一个所述接口组合中目标接口组合的目标接口类型,构造所述目标接口组合测试过程中所使用的实参,包含:
基于所述目标接口组合的目标接口类型,确定所述目标接口组合所使用参数的参数类型以及参数范围;
基于所述参数类型以及所述参数范围,构造所述目标接口组合测试过程中所使用的实参。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标接口组合的目标接口类型,确定所述目标接口组合所使用参数的参数类型以及参数范围,包括:
在接口列表中查询所述目标接口类型对应的所述参数类型以及所述参数范围,所述接口列表中包含不同接口类型对应的参数类型与参数范围;
所述基于所述参数类型以及所述参数范围,构造所述接口组合测试过程中所使用的实参,包括:
在对象列表中查询所述参数类型对应的参数创建方法,所述对象列表中包含不同对象对应的创建以及销毁方法;
在所述参数范围内选择目标参数,以及基于所述参数创建方法以及所述目标参数构造需传入的所述实参。
4.根据权利要求3所述的方法,其特征在于,所述在所述参数范围内选择目标参数,包括:
获取所述参数范围对应的待选参数列表,所述待选参数列表中参数属于所述参数范围,且所述待选参数列表为预先设定的所述参数范围对应的参数列表;
在所述待选参数列表中选择目标参数列表,以及在所述目标参数列表中选择所述目标参数。
5.根据权利要求3所述的方法,其特征在于,所述在接收到对待测试接口集的测试命令之前,所述方法还包括:
基于编程模型的编程流程,创建测试模板,其中,不同编程流程对应不同的测试模板;
基于所述编程模型初始化接口列表以及对象列表,所述接口列表至少包含与所述编程模型对应的接口,所述对象列表中至少包含各个与所述编程模型对应接口所使用的对象。
6.根据权利要求5所述的方法,其特征在于,所述将所述目标接口代码段填充至测试模板,得到所述目标接口组合的测试用例,包括:
确定所述目标接口组合所属的目标接口列表;
基于所述目标接口列表,确定对应的所述测试模板;
将所述目标接口代码段填充至所述测试模板,得到所述目标接口组合的测试用例。
7.根据权利要求1至6任一所述的方法,其特征在于,所述在接收到对待测试接口集的测试命令的情况下,对所述待测试接口集中包含的同类接口进行组合,得到至少一个接口组合,包括:
在接收到对所述待测试接口集的测试命令的情况下,获取所述待测试接口集中各个接口的接口类型;
将属于目标接口类型的目标测试接口进行组合,得到所述目标接口类型对应的至少一个接口组合,所述目标接口类型对应的至少一个接口组合包含所述目标接口组合。
8.根据权利要求7所述的方法,其特征在于,所述将属于目标接口类型的目标测试接口进行组合,得到所述目标接口类型对应的至少一个接口组合,包括:
将属于所述目标接口类型的目标测试接口进行全排列,得到所述目标接口类型对应的至少一个接口组合。
9.根据权利要求1至6任一所述的方法,其特征在于,所述将所述目标接口代码段填充至测试模板,得到所述目标接口组合的测试用例之后,所述方法还包括:
查询待测试的未测接口组合;
在存在所述未测接口组合的情况下,基于所述未测接口组合的接口类型,构建所述未测接口组合测试过程中所使用的实参。
10.根据权利要求9所述的方法,其特征在于,所述在存在所述未测接口组合的情况下,基于所述未测接口组合的接口类型,构建所述未测接口组合测试过程中所使用的实参,包括:
在存在所述未测接口组合的情况下,确定所述未测接口组合的接口类型,所述未测接口组合是未生成测试用例的接口组合;
在所述未测接口组合的接口类型与已测接口组合的接口类型不同的情况下,基于所述未测接口组合的接口类型,构建所述未测接口组合的实参,所述已测接口组合是已生成测试用例的接口组合;
所述方法还包括:
在所述未测接口组合的接口类型与所述已测接口组合的接口类型相同的情况下,将所述已测接口类型使用的实参确定为所述未测接口组合的实参。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310925324.5A CN116932403B (zh) | 2023-07-25 | 2023-07-25 | 测试用例的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310925324.5A CN116932403B (zh) | 2023-07-25 | 2023-07-25 | 测试用例的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116932403A true CN116932403A (zh) | 2023-10-24 |
CN116932403B CN116932403B (zh) | 2024-06-11 |
Family
ID=88378747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310925324.5A Active CN116932403B (zh) | 2023-07-25 | 2023-07-25 | 测试用例的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932403B (zh) |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359546A (en) * | 1992-06-30 | 1994-10-25 | Sun Microsystems, Inc. | Automatic generation of test drivers |
US7373632B1 (en) * | 2003-12-01 | 2008-05-13 | Sun Microsystems, Inc. | System and method for dynamic generation of proxies for isomorphic interfaces |
CN103268285A (zh) * | 2013-05-31 | 2013-08-28 | 百度在线网络技术(北京)有限公司 | 针对api接口的健壮性测试用例自动生成方法和装置 |
US20140365830A1 (en) * | 2013-06-11 | 2014-12-11 | Wipro Limited | System and method for test data generation and optimization for data driven testing |
GB201603189D0 (en) * | 2015-11-18 | 2016-04-06 | Inst Information Industry | System, method and non-transitory computer readable medium for software testing |
CN106776311A (zh) * | 2016-12-09 | 2017-05-31 | 华北计算技术研究所 | 一种软件接口测试用例的自动生成方法 |
JP2017220008A (ja) * | 2016-06-07 | 2017-12-14 | 株式会社日立製作所 | テスト支援装置、および、テスト支援方法 |
CN111352782A (zh) * | 2020-02-28 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 一种接口测试方法、装置、计算机设备及存储介质 |
CN111459495A (zh) * | 2020-03-30 | 2020-07-28 | 招商局金融科技有限公司 | 单元测试代码文件生成方法、电子装置及存储介质 |
US20200359265A1 (en) * | 2020-07-23 | 2020-11-12 | Intel Corporation | Methods and apparatus for coordination of network traffic between wireless network devices and computing platforms |
CN112486828A (zh) * | 2020-12-01 | 2021-03-12 | 广州品唯软件有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN113094252A (zh) * | 2019-12-23 | 2021-07-09 | 腾讯科技(深圳)有限公司 | 测试用例生成方法、装置、计算机设备及存储介质 |
CN113282513A (zh) * | 2021-06-28 | 2021-08-20 | 平安消费金融有限公司 | 接口测试案例的生成方法、装置、计算机设备及存储介质 |
CN113434395A (zh) * | 2021-06-22 | 2021-09-24 | 中国平安人寿保险股份有限公司 | 测试用例的自动化生成方法、装置、设备及介质 |
CN115373677A (zh) * | 2021-05-21 | 2022-11-22 | 京东科技控股股份有限公司 | 单元测试用例目标代码生成方法、装置、电子设备及计算机可读介质 |
CN115454878A (zh) * | 2022-10-18 | 2022-12-09 | 中国农业银行股份有限公司 | 一种应用于微服务的接口调用测试方法及相关装置 |
CN115827476A (zh) * | 2022-12-19 | 2023-03-21 | 南威软件股份有限公司 | 一种接口在线可视化调试方法、装置、电子设备及介质 |
CN115904989A (zh) * | 2022-12-05 | 2023-04-04 | 中信银行股份有限公司 | 一种接口测试方法、装置、设备及可读存储介质 |
CN116069577A (zh) * | 2023-01-31 | 2023-05-05 | 浪潮通用软件有限公司 | 一种rpc服务的接口测试方法、设备及介质 |
US20230141619A1 (en) * | 2021-11-09 | 2023-05-11 | Kabushiki Kaisha Toshiba | Generation device, method of generation, and computer program product |
CN116361155A (zh) * | 2023-03-01 | 2023-06-30 | 青岛海尔科技有限公司 | 软件开发包的测试方法、装置和存储介质及电子装置 |
WO2023125821A1 (zh) * | 2021-12-31 | 2023-07-06 | 华为技术有限公司 | 一种芯片的测试用例生成方法、装置及存储介质 |
-
2023
- 2023-07-25 CN CN202310925324.5A patent/CN116932403B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359546A (en) * | 1992-06-30 | 1994-10-25 | Sun Microsystems, Inc. | Automatic generation of test drivers |
US7373632B1 (en) * | 2003-12-01 | 2008-05-13 | Sun Microsystems, Inc. | System and method for dynamic generation of proxies for isomorphic interfaces |
CN103268285A (zh) * | 2013-05-31 | 2013-08-28 | 百度在线网络技术(北京)有限公司 | 针对api接口的健壮性测试用例自动生成方法和装置 |
US20140365830A1 (en) * | 2013-06-11 | 2014-12-11 | Wipro Limited | System and method for test data generation and optimization for data driven testing |
GB201603189D0 (en) * | 2015-11-18 | 2016-04-06 | Inst Information Industry | System, method and non-transitory computer readable medium for software testing |
JP2017220008A (ja) * | 2016-06-07 | 2017-12-14 | 株式会社日立製作所 | テスト支援装置、および、テスト支援方法 |
CN106776311A (zh) * | 2016-12-09 | 2017-05-31 | 华北计算技术研究所 | 一种软件接口测试用例的自动生成方法 |
CN113094252A (zh) * | 2019-12-23 | 2021-07-09 | 腾讯科技(深圳)有限公司 | 测试用例生成方法、装置、计算机设备及存储介质 |
CN111352782A (zh) * | 2020-02-28 | 2020-06-30 | 北京字节跳动网络技术有限公司 | 一种接口测试方法、装置、计算机设备及存储介质 |
CN111459495A (zh) * | 2020-03-30 | 2020-07-28 | 招商局金融科技有限公司 | 单元测试代码文件生成方法、电子装置及存储介质 |
US20200359265A1 (en) * | 2020-07-23 | 2020-11-12 | Intel Corporation | Methods and apparatus for coordination of network traffic between wireless network devices and computing platforms |
CN112486828A (zh) * | 2020-12-01 | 2021-03-12 | 广州品唯软件有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN115373677A (zh) * | 2021-05-21 | 2022-11-22 | 京东科技控股股份有限公司 | 单元测试用例目标代码生成方法、装置、电子设备及计算机可读介质 |
CN113434395A (zh) * | 2021-06-22 | 2021-09-24 | 中国平安人寿保险股份有限公司 | 测试用例的自动化生成方法、装置、设备及介质 |
CN113282513A (zh) * | 2021-06-28 | 2021-08-20 | 平安消费金融有限公司 | 接口测试案例的生成方法、装置、计算机设备及存储介质 |
US20230141619A1 (en) * | 2021-11-09 | 2023-05-11 | Kabushiki Kaisha Toshiba | Generation device, method of generation, and computer program product |
WO2023125821A1 (zh) * | 2021-12-31 | 2023-07-06 | 华为技术有限公司 | 一种芯片的测试用例生成方法、装置及存储介质 |
CN115454878A (zh) * | 2022-10-18 | 2022-12-09 | 中国农业银行股份有限公司 | 一种应用于微服务的接口调用测试方法及相关装置 |
CN115904989A (zh) * | 2022-12-05 | 2023-04-04 | 中信银行股份有限公司 | 一种接口测试方法、装置、设备及可读存储介质 |
CN115827476A (zh) * | 2022-12-19 | 2023-03-21 | 南威软件股份有限公司 | 一种接口在线可视化调试方法、装置、电子设备及介质 |
CN116069577A (zh) * | 2023-01-31 | 2023-05-05 | 浪潮通用软件有限公司 | 一种rpc服务的接口测试方法、设备及介质 |
CN116361155A (zh) * | 2023-03-01 | 2023-06-30 | 青岛海尔科技有限公司 | 软件开发包的测试方法、装置和存储介质及电子装置 |
Non-Patent Citations (1)
Title |
---|
郑东霞等: "《软件测试技术》", 31 January 2012, 东软电子出版社, pages: 172 - 177 * |
Also Published As
Publication number | Publication date |
---|---|
CN116932403B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109063829B (zh) | 神经网络构建方法、装置、计算机设备和存储介质 | |
CN109934227A (zh) | 图像文字识别系统和方法 | |
CN110728328B (zh) | 分类模型的训练方法和装置 | |
US20200125695A1 (en) | Detecting hotspots in physical design layout patterns utilizing hotspot detection model with data augmentation | |
CN111026433A (zh) | 基于代码变更历史的软件代码质量问题自动修复方法、系统及介质 | |
CN111143228B (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN110941934B (zh) | 一种fpga原型验证开发板分割仿真系统、方法、介质及终端 | |
CN109614325B (zh) | 一种确定控件属性的方法及装置、电子设备和存储介质 | |
CN111291462B (zh) | 生成电厂的管道和仪表图p&id的装置和方法 | |
CN108154191A (zh) | 文档图像的识别方法和系统 | |
US11409928B2 (en) | Configurable digital twin | |
CN105989001A (zh) | 图像搜索方法及装置、图像搜索系统 | |
CN111459796A (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN113051011A (zh) | 一种结合rpa和ai的图像信息提取方法及装置 | |
CN116956838A (zh) | 工程量清单的项目确定方法及确定装置 | |
CN114692383B (zh) | 全范围模拟机仿真对象的建模方法、装置及计算机设备 | |
CN116932403B (zh) | 测试用例的生成方法 | |
CN103885341A (zh) | 基于汽车性能模拟器的性能分析系统和方法 | |
RU2656981C1 (ru) | Способ автоматизированного конфигурирования имитационных моделей беспилотных летательных аппаратов и устройство для его реализации | |
CN113657453B (zh) | 基于生成对抗网络和深度学习的有害网站的检测方法 | |
CN116956837A (zh) | 工程量清单的项目确定方法及确定装置 | |
US20230161325A1 (en) | Manufacturing or controlling a technical system using an optimized parameter set | |
CN110597874B (zh) | 数据分析模型的创建方法、装置、计算机设备和存储介质 | |
CN113806236B (zh) | 一种移动测试领域云真机一机多控的方法及系统 | |
KR102527900B1 (ko) | 스케치 이미지에 대한 자동 채색 모델 관리 방법 및 그 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |