CN112559364A - 一种测试用例生成方法、装置、计算机设备和存储介质 - Google Patents

一种测试用例生成方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112559364A
CN112559364A CN202011537948.2A CN202011537948A CN112559364A CN 112559364 A CN112559364 A CN 112559364A CN 202011537948 A CN202011537948 A CN 202011537948A CN 112559364 A CN112559364 A CN 112559364A
Authority
CN
China
Prior art keywords
test case
parameter
interface
interface parameters
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.)
Pending
Application number
CN202011537948.2A
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.)
Shanghai Pinshun Information Technology Co ltd
Original Assignee
Shanghai Pinshun 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 Shanghai Pinshun Information Technology Co ltd filed Critical Shanghai Pinshun Information Technology Co ltd
Priority to CN202011537948.2A priority Critical patent/CN112559364A/zh
Publication of CN112559364A publication Critical patent/CN112559364A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/3676Test management for coverage analysis

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

一种测试用例生成方法、装置、计算机设备和存储介质
技术领域
本申请涉及软件测试技术领域,特别是涉及一种测试用例生成方法、装置、计算机设备和存储介质。
背景技术
随着软件测试技术的发展,在测试过程中为衡量某个特殊目标,通常针对该特殊目标编写测试用例进行自动化测试。
目前,自动化测试需要大量的人力进行用例输入输出数据的编写,这不仅要求测试人员具有较强的编码能力,而且测试用例的生成效率也较低;另外,由于人工编写的数据存在与线上流量的一定的偏差,因此也会影响到测试用例的准确性。
发明内容
为了解决上述背景技术中提到的至少一个问题,本发明提供一种测试用例生成方法、装置、计算机设备和存储介质。
第一方面,提供了一种测试用例生成方法,所述方法包括:
获取目标服务的接口参数信息,所述接口参数信息包括解析所述目标服务的实际流量数据而得到的多个接口参数各自的参数实际值;
根据各个所述接口参数的参数实际值以及所述目标服务的特征信息对所有所述接口参数进行机器学习,得到各个所述接口参数的参数取值规则;
根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
进一步地,所述根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例步骤之前,所述方法还包括:
针对每一个所述接口参数,判断所述接口参数是否预设有参数取值规则,若有,则将所述接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,以供用户选择;
接收所述用户端针对所述接口参数的参数取值规则的选择信息,并将所述选择信息指示的参数取值规则确定为所述接口参数的参数取值规则。
进一步地,所述根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例,包括:
根据各个所述接口参数的参数取值规则,并结合等价类划分或/和边界值法对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
进一步地,所述方法还包括:
通过测试用例执行引擎执行多个所述测试用例,获得各个所述测试用例对应的代码覆盖数据;
根据各个所述测试用例对应的代码覆盖数据,对所有所述测试用例进行筛选。
进一步地,所述根据各个所述测试用例对应的代码覆盖数据,对所有所述测试用例进行筛选,包括:
获取各个所述测试用例对应的代码覆盖数据之间的相似度,并根据各个所述相似度,对各个所述测试用例进行分类,得到多个测试用例子集;
根据每个所述测试用例子集包含的测试用例对应的代码覆盖数据,对每个所述测试用例子集进行筛选。
进一步地,所述获取各个所述测试用例对应的代码覆盖数据之间的相似度,包括:
根据各个所述测试用例对应的代码覆盖数据,对各个所述测试用例与各个所述测试用例覆盖到的程序代码段进行绑定;
针对所有所述测试用例中的每一个目标测试用例,计算所述目标测试用例绑定的程序代码段与所有所述测试用例中的其他测试用例绑定的程序代码段之间的相同程度,并根据计算结果,获取各个所述测试用例对应的代码覆盖数据之间的相似度;
所述根据各个所述相似度,对各个所述测试用例进行分类,得到多个测试用例子集,包括:
根据各个所述相似度和预设相似条件,确定出彼此互为相似的代码覆盖数据;
对所述彼此互为相似的代码覆盖数据各自对应的测试用例进行分类到同一个测试用例子集中。
进一步地,所述代码覆盖数据包括代码覆盖率,所述根据每个所述测试用例子集包含的测试用例对应的代码覆盖数据,对每个所述测试用例子集进行筛选,包括:
针对每一个所述测试用例子集,对所述测试用例子集中的每个测试用例按照代码覆盖率从高至低的顺序进行排序,得到排序结果;以及
筛选出所述排序结果中排在前N位的测试用例,以作为最优测试用例,其中,N大于等于1。
第二方面,提供了一种测试用例生成装置,所述装置包括:
参数获取模块,用于获取目标服务的接口参数信息,所述接口参数信息包括解析所述目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
机器学习模块,用于根据各个所述接口参数的参数实际值以及所述目标服务的特征信息对所有所述接口参数进行机器学习,得到各个所述接口参数的参数取值规则;
用例生成模块,用于根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
进一步地,所述装置还包括参数规则处理模块,所述参数规则处理模块具体用于:
针对每一个所述接口参数,判断所述接口参数是否预设有参数取值规则,若有,则将所述接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,以供用户选择;
接收所述用户端针对所述接口参数的参数取值规则的选择信息,并将所述选择信息指示的参数取值规则确定为所述接口参数的参数取值规则。
进一步地,所述用例生成模块具体用于:
根据各个所述接口参数的参数取值规则,并结合等价类划分或/和边界值法对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
进一步地,所述装置还包括用例筛选模块,所述用例筛选模块包括:
用例执行单元,用于通过测试用例执行引擎执行多个所述测试用例,获得各个所述测试用例对应的代码覆盖数据;
用例筛选单元,用于根据各个所述测试用例对应的代码覆盖数据,对所有所述测试用例进行筛选。
进一步地,所述用例筛选单元包括:
获取子单元,获取各个所述测试用例对应的代码覆盖数据之间的相似度;
分类子单元,用于根据各个所述相似度,对各个所述测试用例进行分类,得到多个测试用例子集;
筛选子单元,用于根据每个所述测试用例子集包含的测试用例对应的代码覆盖数据,对每个所述测试用例子集进行筛选。
进一步地,所述获取子单元具体用于:
根据各个所述测试用例对应的代码覆盖数据,对各个所述测试用例与各个所述测试用例覆盖到的程序代码段进行绑定;
针对所有所述测试用例中的每一个目标测试用例,计算所述目标测试用例绑定的程序代码段与所有所述测试用例中的其他测试用例绑定的程序代码段之间的相同程度,并根据计算结果,获取各个所述测试用例对应的代码覆盖数据之间的相似度;
所述分类子单元具体用于:
根据各个所述相似度和预设相似条件,确定出彼此互为相似的代码覆盖数据;
对所述彼此互为相似的代码覆盖数据各自对应的测试用例进行分类到同一个测试用例子集中。
进一步地,所述代码覆盖数据包括代码覆盖率,所述筛选子单元具体用于:
针对每一个所述测试用例子集,对所述测试用例子集中的每个测试用例按照代码覆盖率从高至低的顺序进行排序,得到排序结果;以及
筛选出所述排序结果中排在前N位的测试用例,以作为最优测试用例,其中,N大于等于1。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下操作步骤:
获取目标服务的接口参数信息,所述接口参数信息包括解析所述目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
根据各个所述接口参数的参数实际值以及所述目标服务的特征信息对所有所述接口参数进行机器学习,得到各个所述接口参数的参数取值规则;
根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下操作步骤:
获取目标服务的接口参数信息,所述接口参数信息包括解析所述目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
根据各个所述接口参数的参数实际值以及所述目标服务的特征信息对所有所述接口参数进行机器学习,得到各个所述接口参数的参数取值规则;
根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
本发明提供的测试用例生成方法、装置、计算机设备和存储介质,由于目标服务的接口参数信息中包括解析目标服务的实际流量数据而得到的多个接口参数各自的参数实际值,这样根据各个接口参数的参数实际值以及目标服务的特征信息对所有接口参数进行机器学习,得到各个接口参数的参数取值规则,以及根据各个接口参数的参数取值规则,对各个接口参数进行赋值,生成目标服务的多个测试用例,能够使得测试用例更加接近生产环境中的实际流量,从而能够有效地提高了测试用例的准确性。此外,采用该方法还可以快速、高效地生成目标服务的测试用例,提高测试用例的生成效率,从而减轻测试人员编写自动化测试用例的工作量。
附图说明
图1为一个实施例中测试用例生成方法的流程示意图;
图2为另一个实施例中测试用例生成方法的流程示意图;
图3为图2所示方法中步骤207的流程示意图;
图4为一个实施例中测试用例生成装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
此外,在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如前述背景技术所述,目前的自动化测试需要大量的人力进行用例输入输出数据的编写,这不仅要求测试人员具有较强的编码能力,而且测试用例的生成效率也较低;另外,由于人工编写的数据存在与线上流量的一定的偏差,因此也会影响到测试用例的准确性。为此,本申请提供一种测试用例生成方法,该方法可以快速、高效地生成目标服务的测试用例,提高测试用例的生成效率,并能够保证测试用例的准确性。
实施例一
本发明实施例提供了一种测试用例生成方法,该方法可以应用于计算机设备,计算机设备可以用独立的服务器或者是多个服务器组成的服务器集群来实现,如图1所示,该方法可以包括以下步骤:
101,获取目标服务的接口参数信息,接口参数信息包括解析目标服务的实际流量数据而得到的所有接口参数各自的参数实际值。
其中,目标服务可以是任何类型的服务,目标服务通常有一个或多个接口,目标服务的实际流量数据包括目标服务的各个接口的实际流量数据,实际流量数据包括请求报文和响应报文。
具体地,可以预先录制目标服务在生产环境中的实际流量数据存储至数据库中,当服务器接收到测试用例生成指令时,根据测试用例生成指令确定被选定的目标服务,从数据库中拉取该目标服务的实际流量数据,对实际流量数据进行脱敏处理后,然后根据目标服务的各个接口对应的接口出入参结构对实际流量数据进行解析,得到接口名称、接口参数字段名以及接口参数对应的字段属性等信息,此外还可以解析得到接口参数的其他信息,例如接口统一资源定位符、接口方法类型、接口入参类型以及接口出参类型等。
其中,接口参数的字段类型包括入参字段以及出参字段,各个参数字段具有对应的参数字段名以及参数字段名对应的字段属性信息、字段类型。服务器的数据库中预先存储有各个参数字段对应的预设的参数取值规则,参数取值规则包括参数取值范围和/或正则表达式,参数取值范围,如安全值、上边界值、下边界值、空值null、非本字段类型的参数值等。
102,根据各个接口参数的参数实际值以及目标服务的特征信息对所有接口参数进行机器学习,得到各个接口参数的参数取值规则。
其中,目标服务的特征信息包括服务名称、域名以及目标服务的业务功能点等信息。
具体地,对接口参数的参数字段名、参数字段名对应的参数实际值以及目标服务的服务名称、域名以及目标服务的业务功能点等进行机器学习,分析出各个接口参数的参数取值规则,即找出参数取值规则的规律。
其中,机器学习可以采用例如聚类算法、神经网络、贝叶斯、回归分析等算法对各个接口参数进行分析参数取值规则,生成参数取值规则的规律结果(例如聚类或者分类结果等)。
应理解,本发明实施例对具体的机器学习过程不加以限定。
103,根据各个接口参数的参数取值规则,对各个接口参数进行赋值,生成目标服务的多个测试用例。
其中,步骤103的实现过程可以包括:
根据各个接口参数的参数取值规则,并结合等价类划分或/和边界值法对各个接口参数进行赋值,生成目标服务的多个测试用例。
其中,等价类划分法将测试数据分为有效等价类数据和无效等价类数据,有效等价类数据为符合限定规则的合理、有意义的数据集合,无效等价类数据为不合理、无意义的数据集合;边界值分析法通过选取指定数据域的上点、内点和离点来测试输入或输出的边界。
此外,还可以考虑其它测试用例设计方法,例如场景法、正交表等方法。本实施例对具体的测试用例生成过程不作限定。
本发明提供的测试用例生成方法,由于目标服务的接口参数信息中包括解析目标服务的实际流量数据而得到的多个接口参数各自的参数实际值,这样根据各个接口参数的参数实际值以及目标服务的特征信息对所有接口参数进行机器学习,得到各个接口参数的参数取值规则,以及根据各个接口参数的参数取值规则,对各个接口参数进行赋值,生成目标服务的多个测试用例,能够使得测试用例更加接近生产环境中的实际流量,从而能够有效地提高了测试用例的准确性。此外,采用该方法还可以快速、高效地生成目标服务的测试用例,提高测试用例的生成效率,从而减轻测试人员编写自动化测试用例的工作量。
实施例二
本发明实施例提供了一种测试用例生成方法,该方法可以应用于服务器,该服务器可以采用独立的服务器或服务器集群来实现,如图2所示,该方法可以包括以下步骤:
201,获取目标服务的接口参数信息,接口参数信息包括解析目标服务的实际流量数据而得到的多个接口参数各自的参数实际值。
具体地,步骤201的实现过程可以参照步骤101,此次不再赘述。
202,根据接口参数信息以及目标服务的特征信息对所有接口参数进行机器学习,得到各个接口参数的参数取值规则。
具体地,步骤202的实现过程可以参照步骤102,此次不再赘述。
203,针对每一个接口参数,判断接口参数是否预设有参数取值规则,若有,则将接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,以供用户选择。
其中,服务器的数据库中预先存储有各个接口参数的参数字段对应的预设的参数取值规则。其中,可以向用户端提供可视化配置界面以接收用户通过可视化配置界面对接口参数进行配置的参数取值规则,并将对接口参数字段与对应的配置的参数取值规则按键值对形式存储到数据库中。
具体地,将接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,以供用户选择,进一步可以包括:
对接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则进行相似度计算,确定相似度结果超过预设相似度阈值的目标接口参数,将目标接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端。
其中,预设相似度阈值可以根据实际需要进行预先设定。相似度计算方法可以参照现有技术,例如采用欧式距离、汉明距离、余弦距离等。
204,接收用户端针对接口参数的参数取值规则的选择信息,并将选择信息指示的参数取值规则确定为接口参数的参数取值规则。
其中,步骤203至步骤204为可选步骤。
本实施例,通过相似度结果超过预设相似度阈值的目标接口参数预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,并接收到的选择信息指示的参数取值规则确定为接口参数的参数取值规则,如此可以减少用户对参数取值规则进行选择操作的工作量,进一步提高后续测试用例的生成效率。
本实施例中,通过将接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,以供用户选择,以及接收用户端针对接口参数的参数取值规则的选择信息,并将选择信息指示的参数取值规则确定为接口参数的参数取值规则,可以使得接口参数的参数取值规则更加准确,从而提高后续测试用例生成的准确性。
205,根据各个接口参数的参数取值规则,对各个接口参数进行赋值,生成目标服务的多个测试用例。
具体地,步骤205的实现过程可以参照步骤103,此次不再赘述。
206,通过测试用例执行引擎执行多个测试用例,获得各个测试用例对应的代码覆盖数据。
其中,目标服务对应的服务程序代码保存保存在预设服务代码中,服务程序代码包括多个程序代码段,不同程序代码段具有不同的程序功能。
具体地,通过测试用例执行引擎在测试环境中执行多个测试用例,获取目标服务的服务代码的覆盖率报告,从覆盖率报告中抽取代码覆盖数据,代码覆盖数据包括:测试覆盖到代码信息、未测试覆盖到代码信息以及代码覆盖率,代码信息具体可以是代码特征,包括但不限于:业务线、服务名、类名、方法名和代码行号等,代码覆盖率是根据测试覆盖到代码信息和未测试覆盖到代码信息计算得到的。这里,测试环境是指模拟出的接近真实生产环境的环境,例如,可以是staging测试环境。
207,根据各个测试用例对应的代码覆盖数据,对所有测试用例进行筛选。
具体地,根据各个测试用例对应的代码覆盖数据,确定各个测试用例对应的代码覆盖率,筛选出代码覆盖率超过预设阈值的测试用例。
本发明实施例中,可以根据各个测试用例对应的代码覆盖数据,对所有测试用例进行筛选,能够降低软件的测试用例的数量,同时也能够有效避免测试工作重复、冗余的问题,进而提高测试效率。
在一个优选实施方式中,如图3所示,上述步骤207中根据各个测试用例对应的代码覆盖数据,对所有测试用例进行筛选,该实现过程包括:
2071,获取各个测试用例对应的代码覆盖数据之间的相似度,并根据各个相似度,对各个测试用例进行分类,得到多个测试用例子集。
具体地,步骤2071中获取各个测试用例对应的代码覆盖数据之间的相似度,该过程可以包括步骤a至步骤b,其中:
步骤a,根据各个测试用例对应的代码覆盖数据,对各个测试用例与各个测试用例覆盖到的程序代码段进行绑定。
其中,可以根据各个测试用例对应的代码覆盖数据中的测试覆盖到代码信息,确定各个测试用例覆盖到的程序代码段,建立各个测试用例与各个测试用例覆盖到的程序代码段之间的绑定关系。建立“测试用例-代码段”的绑定关系中,用于指示每个测试用例覆盖到哪些代码行,即每个测试用例均绑定与其覆盖到的代码段。
可以理解的是,一个测试用例可以绑定一个或多个程序代码段。一个程序代码段包含至少一个代码行。
步骤b,针对所有测试用例中的每一个目标测试用例,计算目标测试用例绑定的程序代码段与所有测试用例中的其他测试用例绑定的程序代码段之间的相同程度,并根据计算结果,获取各个测试用例对应的代码覆盖数据之间的相似度。
可以理解的是,目标测试用例可以是从所有测试用例中随机选取的测试用例,其他测试用例是所有测试用例中除目标测试用例之外的测试用例。
其中,本实施例对具体的相似度获取过程不作限定。
可以理解的是,当两个测试用例各自绑定的程序代码段之间的相同程度越高时时,这两个测试用例对应的代码覆盖数据越相似度。这两个测试用例各自绑定的程序代码段的数量可以是一个,也可以是多个。
其中,步骤2071中根据各个相似度,对各个测试用例进行分类,得到多个测试用例子集,该过程可以包括:
根据各个相似度和预设相似条件,确定出彼此互为相似的代码覆盖数据,对彼此互为相似的代码覆盖数据各自对应的测试用例进行分类到同一个测试用例子集中。
具体地,判断代码覆盖数据之间的相似度是否满足预设相似条件,若满足,则确定代码覆盖数据之间彼此互为相似。
其中,预设相似条件可以设定为:当任意两个代码覆盖数据之间的相似度超过预设阈值时,则两个代码覆盖数据是相似的代码覆盖数据,可以理解的是,预设阈值可以根据实际情况进行设定,例如设定为80%。
2072,根据每个测试用例子集包含的测试用例对应的代码覆盖数据,对每个测试用例子集进行筛选。
其中,代码覆盖数据包括代码覆盖率。
具体地,针对每一个测试用例子集,对测试用例子集中的每个测试用例按照代码覆盖率从高至低的顺序进行排序,得到排序结果;以及
筛选出排序结果中排在前N位的测试用例,以作为最优测试用例,其中,N大于等于1。
本实施例中,各个测试用例对应的代码覆盖数据之间的相似度,并根据各个相似度,对各个测试用例进行分类,得到多个测试用例子集,以及根据每个测试用例子集包含的测试用例对应的代码覆盖数据,对每个测试用例子集进行筛选,不但筛选出的测试用例针对性强,能够有效降低软件的测试用例的数量,避免大量冗余测试用例的执行,而且使得筛选出的测试用例更全面,这样即便是有较少的测试用例测试覆盖到的程序代码段也可以被测试到,提高测试有效性以及全面性。
实施例三
本发明实施例提供了一种测试用例生成装置,如图4所示,该装置可以包括:
参数获取模块42,用于获取目标服务的接口参数信息,接口参数信息包括解析目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
机器学习模块44,用于根据各个接口参数的参数实际值以及目标服务的特征信息对所有接口参数进行机器学习,得到各个接口参数的参数取值规则;
用例生成模块46,用于根据各个接口参数的参数取值规则,对各个接口参数进行赋值,生成目标服务的多个测试用例。
在一个优选实施方式中,装置还包括参数规则处理模块,参数规则处理模块具体用于:
针对每一个接口参数,判断接口参数是否预设有参数取值规则,若有,则将接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,以供用户选择;
接收用户端针对接口参数的参数取值规则的选择信息,并将选择信息指示的参数取值规则确定为接口参数的参数取值规则。
在一个优选实施方式中,用例生成模块46具体用于:
根据各个接口参数的参数取值规则,并结合等价类划分或/和边界值法对各个接口参数进行赋值,生成目标服务的多个测试用例。
在一个优选实施方式中,装置还包括用例筛选模块48,用例筛选模块48包括:
用例执行单元,用于通过测试用例执行引擎执行多个测试用例,获得各个测试用例对应的代码覆盖数据;
用例筛选单元,用于根据各个测试用例对应的代码覆盖数据,对所有测试用例进行筛选。
在一个优选实施方式中,用例筛选单元包括:
获取子单元,获取各个测试用例对应的代码覆盖数据之间的相似度;
分类子单元,用于根据各个相似度,对各个测试用例进行分类,得到多个测试用例子集;
筛选子单元,用于根据每个测试用例子集包含的测试用例对应的代码覆盖数据,对每个测试用例子集进行筛选。
在一个优选实施方式中,获取子单元具体用于:
根据各个测试用例对应的代码覆盖数据,对各个测试用例与各个测试用例覆盖到的程序代码段进行绑定;
针对所有测试用例中的每一个目标测试用例,计算目标测试用例绑定的程序代码段与所有测试用例中的其他测试用例绑定的程序代码段之间的相同程度,并根据计算结果,获取各个测试用例对应的代码覆盖数据之间的相似度;
分类子单元具体用于:
根据各个相似度和预设相似条件,确定出彼此互为相似的代码覆盖数据;
对彼此互为相似的代码覆盖数据各自对应的测试用例进行分类到同一个测试用例子集中。
在一个优选实施方式中,代码覆盖数据包括代码覆盖率,筛选子单元具体用于:
针对每一个测试用例子集,对测试用例子集中的每个测试用例按照代码覆盖率从高至低的顺序进行排序,得到排序结果;以及
筛选出排序结果中排在前N位的测试用例,以作为最优测试用例,其中,N大于等于1。
关于测试用例生成装置的具体限定可以参见上文中对于测试用例生成方法的限定,在此不再赘述。上述测试用例生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该服务器包括通过系统总线连接的处理器、存储器、网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与其他设备通过网络连接通信。该计算机程序被处理器执行时以实现一种测试用例生成方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取目标服务的接口参数信息,接口参数信息包括解析目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
根据各个接口参数的参数实际值以及目标服务的特征信息对所有接口参数进行机器学习,得到各个接口参数的参数取值规则;
根据各个接口参数的参数取值规则,对各个接口参数进行赋值,生成目标服务的多个测试用例。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取目标服务的接口参数信息,接口参数信息包括解析目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
根据各个接口参数的参数实际值以及目标服务的特征信息对所有接口参数进行机器学习,得到各个接口参数的参数取值规则;
根据各个接口参数的参数取值规则,对各个接口参数进行赋值,生成目标服务的多个测试用例。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种测试用例生成方法,其特征在于,所述方法包括:
获取目标服务的接口参数信息,所述接口参数信息包括解析所述目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
根据各个所述接口参数的参数实际值以及所述目标服务的特征信息对所有所述接口参数进行机器学习,得到各个所述接口参数的参数取值规则;
根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
2.根据权利要求1所述的方法,其特征在于,所述根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例步骤之前,所述方法还包括:
针对每一个所述接口参数,判断所述接口参数是否预设有参数取值规则,若有,则将所述接口参数的预设的参数取值规则以及通过机器学习得到的参数取值规则推送至用户端,以供用户选择;
接收所述用户端针对所述接口参数的参数取值规则的选择信息,并将所述选择信息指示的参数取值规则确定为所述接口参数的参数取值规则。
3.根据权利要求1所述的方法,其特征在于,所述根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例,包括:
根据各个所述接口参数的参数取值规则,并结合等价类划分或/和边界值法对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
通过测试用例执行引擎执行多个所述测试用例,获得各个所述测试用例对应的代码覆盖数据;
根据各个所述测试用例对应的代码覆盖数据,对所有所述测试用例进行筛选。
5.根据权利要求4所述的方法,其特征在于,所述根据各个所述测试用例对应的代码覆盖数据,对所有所述测试用例进行筛选,包括:
获取各个所述测试用例对应的代码覆盖数据之间的相似度,并根据各个所述相似度,对各个所述测试用例进行分类,得到多个测试用例子集;
根据每个所述测试用例子集包含的测试用例对应的代码覆盖数据,对每个所述测试用例子集进行筛选。
6.根据权利要求5所述的方法,其特征在于,所述获取各个所述测试用例对应的代码覆盖数据之间的相似度,包括:
根据各个所述测试用例对应的代码覆盖数据,对各个所述测试用例与各个所述测试用例覆盖到的程序代码段进行绑定;
针对所有所述测试用例中的每一个目标测试用例,计算所述目标测试用例绑定的程序代码段与所有所述测试用例中的其他测试用例绑定的程序代码段之间的相同程度,并根据计算结果,获取各个所述测试用例对应的代码覆盖数据之间的相似度;
所述根据各个所述相似度,对各个所述测试用例进行分类,得到多个测试用例子集,包括:
根据各个所述相似度和预设相似条件,确定出彼此互为相似的代码覆盖数据;
对所述彼此互为相似的代码覆盖数据各自对应的测试用例进行分类到同一个测试用例子集中。
7.根据权利要求5或6所述的方法,其特征在于,所述代码覆盖数据包括代码覆盖率,所述根据每个所述测试用例子集包含的测试用例对应的代码覆盖数据,对每个所述测试用例子集进行筛选,包括:
针对每一个所述测试用例子集,对所述测试用例子集中的每个测试用例按照代码覆盖率从高至低的顺序进行排序,得到排序结果;以及
筛选出所述排序结果中排在前N位的测试用例,以作为最优测试用例,其中,N大于等于1。
8.一种测试用例生成装置,其特征在于,所述装置包括:
参数获取模块,用于获取目标服务的接口参数信息,所述接口参数信息包括解析所述目标服务的实际流量数据而得到的所有接口参数各自的参数实际值;
机器学习模块,用于根据各个所述接口参数的参数实际值以及所述目标服务的特征信息对所有所述接口参数进行机器学习,得到各个所述接口参数的参数取值规则;
用例生成模块,用于根据各个所述接口参数的参数取值规则,对各个所述接口参数进行赋值,生成所述目标服务的多个测试用例。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202011537948.2A 2020-12-23 2020-12-23 一种测试用例生成方法、装置、计算机设备和存储介质 Pending CN112559364A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011537948.2A CN112559364A (zh) 2020-12-23 2020-12-23 一种测试用例生成方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011537948.2A CN112559364A (zh) 2020-12-23 2020-12-23 一种测试用例生成方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN112559364A true CN112559364A (zh) 2021-03-26

Family

ID=75030956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011537948.2A Pending CN112559364A (zh) 2020-12-23 2020-12-23 一种测试用例生成方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112559364A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113176997A (zh) * 2021-04-30 2021-07-27 深圳市共进电子股份有限公司 测试用例加载方法、装置、计算机设备和可读存储介质
CN113342664A (zh) * 2021-06-16 2021-09-03 北京奇艺世纪科技有限公司 拨测方法、装置、存储介质及计算机设备
CN113535565A (zh) * 2021-07-19 2021-10-22 工银科技有限公司 一种接口用例生成方法、装置、设备、介质和程序产品
CN115145812A (zh) * 2022-06-28 2022-10-04 北京百度网讯科技有限公司 测试用例生成方法、装置、电子设备和存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113176997A (zh) * 2021-04-30 2021-07-27 深圳市共进电子股份有限公司 测试用例加载方法、装置、计算机设备和可读存储介质
CN113176997B (zh) * 2021-04-30 2024-05-03 深圳市共进电子股份有限公司 测试用例加载方法、装置、计算机设备和可读存储介质
CN113342664A (zh) * 2021-06-16 2021-09-03 北京奇艺世纪科技有限公司 拨测方法、装置、存储介质及计算机设备
CN113342664B (zh) * 2021-06-16 2023-09-01 北京奇艺世纪科技有限公司 拨测方法、装置、存储介质及计算机设备
CN113535565A (zh) * 2021-07-19 2021-10-22 工银科技有限公司 一种接口用例生成方法、装置、设备、介质和程序产品
CN115145812A (zh) * 2022-06-28 2022-10-04 北京百度网讯科技有限公司 测试用例生成方法、装置、电子设备和存储介质
CN115145812B (zh) * 2022-06-28 2023-08-01 北京百度网讯科技有限公司 测试用例生成方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN112559365A (zh) 一种测试用例筛选方法、装置、计算机设备和存储介质
CN112559364A (zh) 一种测试用例生成方法、装置、计算机设备和存储介质
CN110730107B (zh) 测试数据生成方法、装置、计算机设备和存储介质
CN108334781B (zh) 病毒检测方法、装置、计算机可读存储介质和计算机设备
CN108427613B (zh) 异常接口定位方法、装置、计算机设备和存储介质
CN110377454B (zh) 数据校验方法、装置、计算机设备和存储介质
CN111143163B (zh) 数据监控方法、装置、计算机设备和存储介质
CN109766261B (zh) 覆盖测试方法、装置、计算机设备和存储介质
CN109344862B (zh) 正样本的获取方法、装置、计算机设备和存储介质
US11809406B2 (en) Event records in a log file
CN113282513B (zh) 接口测试案例的生成方法、装置、计算机设备及存储介质
CN111290950B (zh) 程序测试中测试点获取方法、装置、存储介质和设备
CN110941555A (zh) 测试用例推荐方法、装置、计算机设备和存储介质
CN112733146B (zh) 基于机器学习的渗透测试方法、装置、设备及存储介质
CN112363937B (zh) 差异覆盖率测试方法、装置、计算机设备和存储介质
CN113656404A (zh) 数据校验方法、装置、计算机设备及存储介质
CN112363920A (zh) 测试用例的修复方法、装置、计算机设备和存储介质
CN111026647A (zh) 代码覆盖率的获取方法、装置、计算机设备和存储介质
CN111984527A (zh) 软件的性能测试方法、装置、设备和介质
CN112988606B (zh) 测试用例生成方法、装置、设备及存储介质
CN114064497A (zh) 应用程序测试方法、装置、计算机设备及存储介质
CN111459796B (zh) 自动化测试方法、装置、计算机设备和存储介质
CN113505059A (zh) 页面监控方法、装置、计算机设备及存储介质
CN117391306A (zh) 国土空间规划成果审查方法、装置、设备以及存储介质
CN112346981A (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