CN113515440A - 测试用例分配方法、装置、计算机设备及存储介质 - Google Patents
测试用例分配方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113515440A CN113515440A CN202011529683.1A CN202011529683A CN113515440A CN 113515440 A CN113515440 A CN 113515440A CN 202011529683 A CN202011529683 A CN 202011529683A CN 113515440 A CN113515440 A CN 113515440A
- Authority
- CN
- China
- Prior art keywords
- test case
- test
- debugging
- target
- interface
- 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
Links
Images
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
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为大于或者等于2的整数;
基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得N 个测试用例子集。
在一种可能的实现方式中,所述子集分配模块,包括:
用例集合获取单元,用于获取所述各个调试账号的已分配测试用例集合;
第一相似度获取单元,用于获取所述各个调试账号的已分配测试用例集合与所述至少两个测试用例子集之间的第一相似度;所述第一相似度用于指示两个集合中的测试用例的接口序列之间的相似度;
第二用例子集分配单元,用于基于所述各个调试账号的已分配测试用例集合与所述至少两个测试用例子集之间的集合序列相似度,将所述至少两个测试用例子集分别分配给各个调试账号。
在一种可能的实现方式中,所述已分配测试用例集合中包含对应的调试账号在指定时间段内处理完成的测试用例,以及,对应的调试账号被分配且未处理完成的测试用例中的至少一种。
在一种可能的实现方式中,所述子集分配模块,还用于:
响应于对目标调试账号被分配的测试用例的重分配请求,获取各个重分配测试用例;所述重分配测试用例是所述目标调试账号被分配且未处理完成的测试用例;所述目标调试账号是所述各个调试账号中的任意一个;
获取所述各个重分配测试用例,分别与各个其它调试账号的已分配测试用例集合之间的第二相似度;所述第二相似度用于指示对应的重分配测试用例的接口序列,与对应的已分配测试用例集合中的测试用例的接口序列之间的相似度;所述各个其它调试账号是所述各个调试账号中,除了所述目标调试账号之前的账号;
基于所述各个重分配测试用例分别与各个其它调试账号的已分配测试用例集合之间的第二相似度,将所述各个重分配测试用例分配给所述各个其它调试账号。
另一方面,提供了一种计算机设备,计算机设备包含处理器和存储器,所述存储器中存储由至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述测试用例分配方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述测试用例分配方法。
又一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行测试用例分配方法。
本申请提供的技术方案可以包括以下有益效果:
获取测试用例集,并根据测试用例集中的各个测试用例的接口序列对各个测试用例进行聚类,将该各个测试用例进行根据测试步骤对应的应用程序接口进行分类,分类后的测试用例分配给服务器对应的调试账号。通过上述方式,通过测试用例中的测试步骤对应的应用程序接口,对测试用例进行分类,即分类后的测试用例对应的应用程序接口较为相近,将相近的应用程序接口的测试用例进行分类为一个测试用例子集,并将该测试用例子集分配给调试人员后,调试人员根据该测试用例子集构建测试脚本时,使用的应用程序接口之间较为相近,测试人员可以复用相似度高的应用程序接口构建测试脚本,提高了测试脚本的构建效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种测试用例的分配系统的结构示意图;
图2是根据一示例性实施例示出的一种测试用例的分配方法的流程示意图;
图3是根据一示例性实施例提供的一种测试用例的分配方法的方法流程图;
图4示出了本申请实施例涉及的一种测试用例展示形式示意图;
图5示出了本申请实施例涉及的一种系统总体架构图;
图6示出了本申请实施例涉及的用例步骤的数组与步骤对应示意图;
图7示出了本申请实施例涉及的一种聚类树示意图;
图8示出了本申请实施例涉及的单链接与全链接距离计算方法示意图;
图9示出了本申请实施例涉及的一种展示用例分组情况示意图;
图10是根据本申请一示例性实施例示出的测试用例的分配方法的流程示意图;
图11是根据本申请一示例性实施例示出的一种测试用例的分配装置的方框图;
图12是根据本申请一个示例性实施例示出的计算机设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了便于理解,下面对本申请涉及的几个名词进行解释。
1)基于模型的测试(MBT,Model Based Testing)
基于模型的测试属于软件测试领域的一种测试方法。通常MBT的方法是需要搭配工具使用的,这样在模型画好的同时,可以自动生成对应的测试用例以及自动化脚本。MBT的测试设计理念,是基于需求的功能流程,然后进行建模,基于这个模型,才称得上是测试需求。也就是说做MBT测试设计的前提是对需求和业务有深刻的认识。
2)编辑距离(Edit Distance)
编辑距离是针对二个字符串(例如英文字)的差异程度的量化量测,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串。编辑距离可以用在自然语言处理中,例如拼写检查可以根据一个拼错的字和其他正确的字的编辑距离,判断哪一个(或哪几个)是比较可能的字。常用的编辑距离为莱文斯坦距离,又称Levenshtein距离,是编辑距离的一种。指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
3)聚类(Clustering)
将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。
4)层次聚类(Hierarchical Clustering)
层次聚类是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。创建聚类树有自下而上合并和自上而下分裂两种方法。层次聚类的合并算法通过计算两类数据点间的相似性,对所有数据点中最为相似的两个数据点进行组合,并反复迭代这一过程。简单的说层次聚类的合并算法是通过计算每一个类别的数据点与所有数据点之间的距离来确定它们之间的相似性,距离越小,相似度越高。并将距离最近的两个数据点或类别进行组合,生成聚类树。
图1是根据一示例性实施例示出的一种测试用例的分配系统的结构示意图。该系统包括:后台服务器120以及用户终端140。
后台服务器120是一台服务器,或者包括若干台服务器,或者是一个虚拟化平台,或者是一个云计算服务中心等,本申请不做限制。其中,后台服务器 120中还包含数据存储模块,其中数据存储模块可以用于存储各个测试用例对应的数据信息。
用户终端140可以是具有界面显示功能的终端设备,比如,用户终端可以是手机、平板电脑、膝上型便携计算机和台式计算机等等。用户终端140的数量不做限定。
其中,用户终端140中可以安装有客户端,该客户端可以是办公类客户端、即时通信客户端、浏览器客户端等。本申请实施例不限定客户端的软件类型。
可选的,用户可以根据客户端,向服务器发送测试用例对应的数据信息。
用户终端140与后台服务器120之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,该系统还可以包括管理设备(图1未示出),该管理设备与后台服务器120之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network, LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network, WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer, SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
请参考图2,其是根据一示例性实施例示出的一种测试用例的分配方法的流程示意图。该方法可以由计算机设备执行,该计算机设备可以是用户终端,其中,该用户终端可以是上述图1所示的实施例中的用户终端140。如图2所示,该测试用例的分配方法的流程可以包括如下步骤:
步骤21,获取测试用例集;该测试用例集包含至少两个测试用例。
其中,测试用例是对指定软件产品执行测试任务的描述。
在一种可能的实现方式中,该测试用例包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本。
步骤22,获取该测试用例集中的各个测试用例的接口序列;该接口序列用于指示对应的测试用例中的各个测试步骤依次调用的应用程序接口。
在一种可能的实现方式中,该各个测试用例的接口序列中包含应用程序接口的标识。
即该接口序列是由各个应用程序接口对应的标识依序排列成的序列,该接口序列通过该各个应用程序接口对应的标识,指示对应的测试用例中的各个测试步骤依次调用应用程序接口。
步骤23,基于该各个测试用例的接口序列,对该各个测试用例进行聚类,获得至少两个测试用例子集。
其中,该至少两个测试用例子集中包含至少一个测试用例。
步骤24,将该至少两个测试用例子集分别分配给各个调试账号,以便该调试账号对应的调试人员基于被分配的测试用例子集中的测试用例,构建对应的测试脚本。
当后台服务器根据各个测试用例获得至少两个测试用例子集时,可以根据该测试用例集对应的各个调试账号,选择将该至少两个测试用例子集分配给该各个调试账号,该调试账号对应的用户可以基于该被分配的测试用例子集中的测试用例,构建与该测试用例对应的测试脚本。
综上所述,在本申请实施例所示的方案中,获取测试用例集,并根据测试用例集中的各个测试用例的接口序列对各个测试用例进行聚类,将该各个测试用例进行根据测试步骤对应的应用程序接口进行分类,分类后的测试用例分配给服务器对应的调试账号。通过上述方式,通过测试用例中的测试步骤对应的应用程序接口,对测试用例进行分类,即分类后的测试用例对应的应用程序接口较为相近,将相近的应用程序接口的测试用例进行分类为一个测试用例子集,并将该测试用例子集分配给调试人员后,调试人员根据该测试用例子集构建测试脚本时,使用的应用程序接口之间较为相近,测试人员可以复用相似度高的应用程序接口构建测试脚本,提高了测试脚本的构建效率。
请参考图3,其是根据一示例性实施例提供的一种测试用例的分配方法的方法流程图。该方法可以由计算机设备执行,该计算机设备可以是后台服务器,其中,该后台服务器可以是上述图1所示的实施例中的服务器140。如图3所示,该测试用例的分配方法可以包括如下步骤:
步骤301,获取测试用例集。
其中,该测试用例集中包含至少两个测试用例。
在一种可能的实现方式中,该测试用例集中的至少两个测试用例,是开发人员通过终端发送至后台服务器并存储至后台服务器中的。
在另一种可能的实现方式中,该测试用例集中的至少两个测试用例,是通过测试用例自动生成工具生成的。
其中,该测试用例自动生成工具可以是通过输入的系统用例,根据系统用例对应的系统测试步骤生成对应的用例步骤(即测试步骤),根据系统用例的系统用例规则生成该测试用例的前置条件。
请参考图4,其示出了本申请实施例涉及的一种测试用例展示形式示意图。如图4所示,以表格的形式展示用例,每一行为一条用例,每一列的表头分别为用例类型401、自动化402、用例名403、前置条件404、用例步骤405以及预期结果406。图4示出的是一种某一游戏类应用程序软件中的用户账号的游戏点数兑换功能对应的三种测试用例,如测试用例410与测试用例420示,其用例类型为“正常功能”,即说明该测试用例410与测试用例420测试的内容是软件中功能是否正常;如测试用例430所示,其用例类型为“参数检查”,即说明该测试用例430测试的内容是是检查该软件中的参数是否正常;如测试用例410,其自动化类型为“适合”,说明其适合自动化测试;如测试用例410,其用例名为“兑换,校验需要展示兑换提醒,展示兑换提醒界面,用户选择继续兑换”,其中,该用例名中“【系统】”属于无效字眼,该用例名中将该词语舍去。如测试用例410,其测试用例的前置条件为“1、用户已登录,2、存在状态为“待兑换”的交易订单”,即此时该测试用例对应的脚本的测试前提必须是用户此时已经登录且存在状态为“待兑换”的交易订单,只有当该测试前提满足时,才能执行该测试用例对应的测试。如测试用例410,其用例步骤为“1、用户请求兑换,2、用户选择继续兑换”,此时调试员可以根据两个用例步骤通过脚本函数选择调用对应的API(ApplicationProgramming Interface,应用程序接口),以实现上述用例步骤。如测试用例410,其预期结果为“1.1校验请求合法性、是否需要密码验证、风险拦截和风险提示、1.2校验需要展示交易提醒、1.3展示交易提醒界面。”该测试用例410可以根据脚本函数调用对应的API执行上述用例步骤后产生的结果与预期结果进行对比,以确定该测试的结果并生成测试文档。
即通过图4所示的测试用例,调试员可以清晰的获取该测试用例指示的测试目的,测试步骤、测试结果等与该测试用例对应的数据信息,并根据该数据信息构建脚本函数,以完成该测试用例对应的测试。
步骤302,获取目标测试用例中的各个测试步骤的描述文本。
在一种可能的实现方式中,该目标测试用例中的各个测试步骤的描述文本是规范化的描述文本,在测试用例生成的时候,该描述文本使用的语言具有规范性的要求,以便描述文本对应的测试步骤对应。
在一种可能的实现方式中,该描述文本是中文文本;或者该描述文本是基于中文文本通过机器翻译得到的英文文本。
步骤303,基于该目标测试用例中的各个测试步骤的描述文本,查询该目标测试用例中的各个测试步骤分别调用的应用程序接口的标识。
在一种可能的实现方式中,服务器中保存有各个测试步骤的描述文本与该各个测试步骤分别调用的应用程序接口的对应关系,基于该目标测试用例的各个测试步骤的描述文本可以在服务器中查询到该各个测试步骤分别调用的应用程序接口,并根据该应用程序接口获取对应的应用程序接口的标识。
在一种可能的实现方式中,对目标测试步骤的描述文本进行特征信息提取,获得该目标测试步骤的特征信息;该目标测试步骤是该目标测试用例中的各个测试步骤中的任意一个;查询与该目标测试步骤的特征信息对应存储的,该目标测试步骤调用的应用程序接口的标识。
服务器通过对目标测试步骤的描述文本进行特征信息提取,提取到的该目标测试步骤的特征信息,是该目标测试步骤的描述文本对应的文本特征信息,且该服务器中对应该文本特征信息存储有该测试步骤调用的应用程序接口的标识。即服务器中可以同时存有目标测试步骤的描述文本、目标测试步骤的特征信息、目标测试步骤对应的应用程序接口、以及目标测试步骤对应的应用程序接口的标识。
在一种可能的实现方式中,基于特征提取模型,对目标测试步骤的描述文本进行特征信息提取,获得该目标测试步骤的特征信息;该特征提取模型是基于样本测试步骤训练出的深度学习模型。
在一种可能的实现方式中,该深度学习模型可以是用于提取文本特征的 BERT(Bidirectional Encoder Representation from Transformers,基于预训练的编码传输模型)模型。
在一种可能的实现方式中,该目标测试步骤的特征信息包括该目标测试步骤的哈希值;或者,该目标测试步骤的特征信息包括该目标测试步骤的关键词序列。
当该目标测试步骤的特征信息包括该目标测试步骤的哈希值时,该目标测试步骤的特征信息可以是通过哈希值提取工具对该目标测试步骤的文本信息进行哈希值提取得到的。
当该目标测试步骤的特征信息中包括目标测试步骤的关键词序列时,该目标测试步骤的特征信息可以是通过关键词提取模型,对该目标测试步骤的描述文本进行关键词提取得到的。
在一种可能的实现方式中,该关键词提取模型是基于样本目标测试步骤以及与该样本目标测试步骤对应的标注关键词训练得到的机器学习模型。
在一种可能的实现方式中,响应于该目标测试步骤的描述文本中的第一关键词不属于指定关键词集合,从该指定关键词集合中获取第二关键词;该第二关键词是该第一关键词的同义词;将该目标测试步骤的描述文本中的该第一关键词,替换为该第二关键词。
该测试用例中使用的文本通常是规范性的文本,即当通过关键词提取模型对该测试用例中的目标测试步骤的描述文本进行关键词提取时,提取出的关键词可以直接与预设的指定关键词集合进行匹配,其中该指定关键词集合中的各个关键词均为规范化的关键词。
当该测试用例中使用的文本不是规范性的文本时,例如某个开发人员输入服务器的测试用例不是规范的测试用例时,此时该测试用例中的目标测试步骤中,识别出的关键词可能不是该预设的指定关键词集合中的关键词,即不属于该指定关键词集合;此时可以从该指定关键词集合中获取与该识别出的第一关键词是同义词的第二关键词,将该第二关键词替换该描述文本中的第一关键词,此时该目标测试步骤中的描述文本对应的语义未改变,并且服务器可以根据该关键词查询到与该目标测试步骤对应的应用程序接口的标识。
在一种可能的实现方式中,可以提取该第一关键词的语义特征,以及该指定关键词集合中各个关键词的语义特征,基于该第一关键词的语义特征以及该指定关键词集合中各个关键词的语义特征,确定该指定关键词集合中与该第一关键词为同义词的第二关键词。
步骤304,将该目标测试用例中的各个测试步骤分别调用的应用程序接口的标识,按照对应的测试步骤的顺序进行排列,获得该目标测试用例的接口序列。
该目标测试用例的接口序列中包含该目标测试用例中各个测试步骤对应的应用程序接口的标识,且该应用程序接口的标识是按照该应用程序接口被调用的顺序(即测试步骤的顺序)进行排列的。
在一种可能的实现方式中,当该测试步骤是服务器中已经运行过的测试步骤时,服务器中存有执行该测试步骤时调用的应用程序接口,以及该应用程序接口的标识。
在另一种可能的实现方式中,当该测试步骤是服务器中未运行过的测试步骤时,该服务器中未存有该测试步骤时调用的应用程序接口,也不存在该应用程序接口的标识,此时服务器针对该未运行过的测试步骤,生成新的应用程序接口的标识。
当服务器接收到调试人员对于该测试步骤调用应用程序接口的指令时,根据该调试人员调用的应用程序接口,将该新生成的应用接口的标识更新为该调试人员调用的应用程序接口的标识。
步骤305,基于该各个测试用例的接口序列,对该各个测试用例进行聚类,获得至少两个测试用例子集。
在一种可能的实现方式中,获取该各个测试用例的接口序列之间的相似度;基于该各个测试用例的接口序列之间的相似度,对该各个测试用例进行层次聚类,获得该至少两个测试用例子集。
在一种可能的实现方式中,该层次聚类为先计算各个测试用例中的接口序列之间的相似度,将各个测试用例中,接口序列的相似度最大的测试用例合并为一个测试用例子集;然后再计算剩余测试用例之间的接口序列之间的相似度,以及剩余测试用例与该测试用例子集的接口序列之间的相似度,将相似度最大的测试用例或测试用例子集进行合并;迭代上述过程,直至达到指定条件后停止。
在一种可能的实现方式中,获取该各个测试用例的接口序列之间的编辑距离,作为该接口序列之间的相似度;或者,获取该各个测试用例的接口序列之间的差异接口的数量,作为该接口序列之间的相似度。
其中,该各个测试用例的接口序列之间的编辑距离,考虑了各个测试用例的接口序列之间的顺序,例如,当存在两个测试用例的接口序列中的接口完全相同,但存在两个接口的顺序相反,此时该两个测试用例的接口序列之间的编辑距离为2;而各个测试用例的接口序列之间的差异接口的数量作为接口序列之间的相似度时,不考虑接口序列的接口顺序,当存在两个测试用例的接口序列中的接口完全相同,但存在两个接口的顺序相反时,此时该两个测试用例的接口序列之间的差异接口为0。
在一种可能的实现方式中,获取该各个调试账号的账号数量N,N为大于或者等于2的整数;基于该各个测试用例的接口序列,对该各个测试用例进行聚类,获得N个测试用例子集。
服务器对该测试用例进行聚类最后得到的测试用例子集数可以根据该服务器对应的调试账号的数量进行确定,即服务器最后分类得到的测试用例子集数,恰好为调试账号对应的数量时,每个调试账号都可以分到一个测试用例子集数,保证了通过该方式分配的该测试用例的处理效率较高。
例如,当该测试用例子集数大于该调试账号数量时,则存在一定数量的测试用例暂无人进行处理;当测试用例子集数小于该调试账号数时,则存在一定数量的调试账号数量无法处理测试用例,工作效率较低。
步骤306,将该至少两个测试用例子集分别分配给各个调试账号,以便该调试账号对应的调试人员基于被分配的测试用例子集中的测试用例,构建对应的测试脚本。
在一种可能的实现方式中,获取该各个调试账号的已分配测试用例集合;获取该各个调试账号的已分配测试用例集合与该至少两个测试用例子集之间的第一相似度;该第一相似度用于指示两个集合中的测试用例的接口序列之间的相似度;基于该各个调试账号的已分配测试用例集合与该至少两个测试用例子集之间的集合序列相似度,将该至少两个测试用例子集分别分配给各个调试账号。
其中该测试用例子集的分配可以根据该各个调试账号的已分配测试用例集合进行确定,即根据该测试用例子集中各个测试用例与已分配测试用例集合中的各个测试用例进行接口序列的相似度比较,确定各个测试用例子集与该各个已分配测试用例集合的对应关系,再将各个测试用例子集分配给与该测试用例子集的第一相似度最高的已分配测试用例集合的调试账号。
此时,该调试账号已分配的测试用例与将分配的测试用例子集中的测试用例相似度较高,该调试账号对应的调试人员的操作效率较高。
在一种可能的实现方式中,该已分配测试用例集合中包含对应的调试账号在指定时间段内处理完成的测试用例,以及,对应的调试账号被分配且未处理完成的测试用例中的至少一种。
其中,该已分配测试用例集合中包含对应的调试账号在指定时间段内处理完成的测试用例,即为该调试账号完成的历史信息;该对应的调试账号被分配且未处理完成的测试用例为该用户账号待完成的测试用例;无论该调试账号是否已经完成该已分配测试用例集合中的测试用例,根据该已分配测试用例集合分配的测试用例子集被用户处理时,用户都可以调用在处理该测试用例子集对应的测试用例之前已经用过的API算法,提高了对测试用例的处理效率。
在一种可能的实现方式中,响应于对目标调试账号被分配的测试用例的重分配请求,获取各个重分配测试用例;该重分配测试用例是该目标调试账号被分配且未处理完成的测试用例;该目标调试账号是该各个调试账号中的任意一个;获取该各个重分配测试用例,分别与各个其它调试账号的已分配测试用例集合之间的第二相似度;该第二相似度用于指示对应的重分配测试用例的接口序列,与对应的已分配测试用例集合中的测试用例的接口序列之间的相似度;该各个其它调试账号是该各个调试账号中,除了该目标调试账号之前的账号;基于该各个重分配测试用例分别与各个其它调试账号的已分配测试用例集合之间的第二相似度,将该各个重分配测试用例分配给该各个其它调试账号。
当目标调试账号无法处理被分配的测试用例时,开发人员可以向服务器发送对目标调试账号被分配的测试用例的重分配请求,对该目标调试账号被分配且未处理完成的测试用例进行重分配。
服务器获取该未处理完成的测试用例后,对于未处理完成的测试用例中的任意一个,分别获取与各个其它调试账号的已分配测试用例集合之间的第二相似度,并根据该第二相似度,确定该未处理完成的测试用例的分配集合。
在一种可能的实现方式中,响应于未处理完成的测试用例分配至第一已分配测试用例集合的数量大于第一阈值,禁止向该第一已分配测试用例集合再分配该未处理完成的测试用例;其中,该第一已分配测试用例集合是各个已分配测试用例集合中的任意一个。
为了保证该未处理完成的任务的平均分配,因此可以对各个已分配测试用例集合设置第一阈值,当对某一已分配测试用例集合分配的该未处理完成的测试用例大于阈值时,不向该已分配测试用例集合再分配未处理完成的测试用例。
在一种可能的实现方式中,基于该未处理完成的测试用例数量,以及该已分配测试用例集合的数量,获取该第一阈值。
即该第一阈值时可以根据待分配的任务,以及该已分配测试用例集合的数量,确定第一阈值,其中,该已分配测试用例集合的数量即为调试账号的数量。其中,该调试账号是此时服务器中有效的调试账号,即该调试账号可以正常处理测试用例。
本申请实施例涉及到的系统主要分为三大部分:测试用例自动生成系统、脚本调试工单派发系统、测试脚本管理系统。所有系统均为后台服务,部署在服务器上,具体参数如表一和表二:
表一部署环境硬件参数
硬件参数 | 值 |
服务器机型 | 联想SS430 |
内存 | 8G*2 |
CPU | E3-1230v2*1 |
硬盘 | 1T*1 |
如表一所示的部署环境的硬件参数仅为示例性的,本申请实施例涉及到的系统还可以部署在其他硬件设备相同或更优的服务器上。
表二部署环境软件参数
表二示出了本申请实施例部署环境对应的软件参数。
请参考图5,其示出了本申请实施例涉及的一种系统总体架构图。如图5所示,在后台服务器中,首先通过测试用例自动生成系统501,通过后台服务器中的系统用例,生成对应的测试用例,并将该测试用例发送至该脚本调试工单管理系统502。
在脚本调试工单管理系统502中,在获取测试用例时,先对相似的测试用例做分组,然后再分配脚本调试工单给调试员,以便调试员测试脚本后将代码入库至测试脚本代码生成系统503。
即在分配脚本调试工单时,策略上将相似的脚本尽量分给同一个调试员,既可以降低实现操作API冲突的概率,即减小同时多个调试员调用同一个API 导致API冲突的概率,也可以提升连续调试脚本的效率。再通过给每个操作API 关联上ID标识,量化脚本相似性。对待调试脚本做聚类计算,相似的分成一组。根据调试员数量,调整聚类分组数,在此基础上做分组合并,平衡调试员分得的脚本数(工作量)。
脚本的实现是依次调用多个操作API,若给每个操作API关联上ID标识,则脚本实现可映射到一个操作API ID数组,如下所示:
[1230,1231,1163,1033,1027,979,993,985,999,1017]
[1230,1231,1163,1033,1027,962,1007,985,999,1017]
上述两个API ID数组即为测试管理中各个测试步骤分别调用的应用程序接口的标识。
请参考图6,其示出了本申请实施例涉及的用例步骤的数组与步骤对应示意图。如图6所示,该用例步骤的数组包括该操作API对应的标识601,该操作步骤602与该操作API对应的标识是一一对应的,不同的操作步骤602需要调用的操作API对应的标识601不同,因此其对应的API对应的标识也不同。
若以操作API序列相似性作为脚本相似性的衡量指标:
两个调试员分得的脚本操作API序列相似性越小,则实现操作API冲突概率越小;当两个调试员分到的脚本操作API的序列相似度越小,则说明该两个调试员对应的脚本操作的API的标识相似度越小,即该脚本操作需要调用的API 也更不同,因此该两个调试员的脚本操作,同时调用一个API造成API冲突的概率也越小。
同一调试员分得的脚本操作API序列相似性越大,则脚本涉及的操作API 复用率越高,业务场景越相似,调试工作量越少。
演绎效果和我们的目标是一致的。因此脚本的相似性计算问题,可转换成任意两个ID序列的相似性计算问题。在本申请实施例的一种可能的实现方式中,应用程序接口的ID没有值含义,只是标识;且该脚本操作对应的序列长度不定,该脚本操作对应的序列长度可以根据该脚本操作对应的测试步骤需要调用的 API数量确定;且每个API的标识只用于表示API与其他API的区别,因此该 ID取值范围不定。
当需要对目标测试用例的接口序列进行相似度计算时,可以采用 Levenshtein距离,Levenshtein(编辑距离)距离指两个字串之间,由一个转成另一个所需的最少编辑操作次数,其中允许的编辑操作包括以下三种:
a)将一个字符替换成另一个字符;
b)插入一个字符;
c)删除一个字符;
例如,从字符串“kitten”修改为字符串“sitting”只需3次单字符编辑操作,如下:
sitten(k->s)
sittin(e->i)
sitting(_->g)
因此“kitten”和“sitting”的Levenshtein距离为3。
Levenshtein距离一般用于计算两个字符串之间的相似度,这里应用在计算 ID序列的相似度,需要将ID类比成单个字符。
例如:
将[1230,1231,1163,1033,1027,979,993,985,999,1017]修改为
[1230,1231,1163,1033,1027,962,985,999,1017]时;
[1230,1231,1163,1033,1027,962,993,985,999,1017]进行了将979修改为962的步骤,得到[1230,1231,1163,1033,1027,962,985,999,1017],而后再进行了删除993的步骤,因此上述两个序列的编辑距离为2。
本申请实施例对各个测试用例进行聚类计算时,可以采用层次聚类算法。该层次聚类算法流程如下:
首先每一个样本点视为一个簇,即将各个测试用例中的每一个测试用例作为一个层次聚类算法终端的簇看待,即每一个测试用例都分别作为一类。
再计算各个簇之间的距离,例如可以通过上述编辑距离获取该各个簇之间的距离,再将距离最近的两个簇聚合成一个新簇;
重复以上过程直至聚合成的簇数量和目标分组数一致。
请参考图7,其示出了本申请实施例涉及的一种聚类树示意图。如图7所示,图7中701至705分别为单个元素X1、X2、X3、X4、X5,当对该五个元素进行层次聚类算法时,首先获取该五个元素中每个元素与其他元素之间的相似度,将该五个元素中最相似度最高的两个元素合并为一个簇,假设为X4与X5;再将X1、X2、X3以及X4和X5的簇中,相似度最高的两个元素,或者是相似度最高的元素和簇,合并为一个新的簇,假设为X2与X3;此时该五个元素形成了三个簇,即包含X1的簇、包含X2和X3的簇、包含X4与X5的簇、再计算三个簇之间的相似度,并根据相似度的大小,将包含X1的簇以及包含X2与X3 的簇合并为包含X1、X2与X3的簇;最后一次聚类将包含X1、X2与X3的簇直接与包含X4与X5的簇进行合并。
聚类簇之间距离的计算方法有:
单链接(Single-link):使用两个聚类簇中最近的样本距离;
全链接(complete-link):使用两个聚类簇中最远的样本距离;
均链接(average-link):使用两个簇中所有对象的平均距离。
请参考图8,其示出了本申请实施例涉及的单链接与全链接距离计算方法示意图。如图8所示801示出了两个聚类簇中最近的样本距离,即单链接样本距离;802示出了两个聚类簇中最远的样本距离,即全链接样本距离。
在本申请实施例中,在通过层次聚类算法实现测试用例的聚类时,对象距离算法可以采用Levenshtein距离算法,簇距离算法可以采用average-link,使聚出来的各簇尽量均匀,聚类分组(簇)的数量可以根据调试员的数量动态进行调整。
请参考图9,其示出了本申请实施例涉及的一种展示用例分组情况示意图。如图9所示,同样以表格形式展示用例分组情况。每一行为一条用例,表头分别为:剧本ID、剧本名字、操作API ID、操作步骤,可看到执行步骤相似的测试用例已经被聚集在了同一组中。
本申请实施例中通过如下代码实现了一种游戏类应用程序中付款兑换游戏内的兑换点数的API接口:
def test_1Receipts_217684(self):
@CaseID:40369645d2f1d26a15437263cbf7d215f0
@前置条件:3.1.【系统】验证用户反馈的结果为确认兑换,且需要请求用户选择兑换方式[步骤id:14g]---[“待兑换点数是否为0:否”,“兑换方式是否可用规则的结果是否是所有兑换条件未满足:是”]
4.1.【系统】验证用户反馈的结果为增加兑换点数,且用户每日兑换点数已达上限[步骤id:14g2]---[“当前用户的账号信息中已兑换的点数数量是否>=100000:是”]
@测试功能点:兑换,【系统】验证用户反馈的结果为确认,【系统】进入13-【系统】请求用户确认兑换信息
#用例初始化,数据获取及前置操作
self.init(“70713”)
#直连兑换点数的系统请求获取兑换点数对应的付款凭证
self.system_request_for_receipt_of_receipts_from_direct_merchant()
#直连兑换点数的系统请求收款
self.system_requests_from_direct_business()
#【系统】请求用户确认兑换操作对应的付款信息_【系统】验证用户反馈的结果为确认付款以兑换点数,且需要请求用户选择兑换点数对应的兑换方式 self.confirm_payment_information_and_request_game_users_to_choose_change_me thod()
#【系统】请求用户选择兑换方式_【系统】验证用户反馈的结果为确定兑换方式并进行兑换,且用户的账号信息中已兑换的点数数量达到限制
self.choose_to_choose_a_change_method_and_the_number_of_game_users_to_ tie_the_point_has_reached_the_limit()
#【系统】请求用户确认失败信息_【系统】验证用户反馈的结果为确认
self.confirmation_failure_information_confirmation()
#用例结束,账号还原及后置操作
self.exit()
本申请实施例中还通过如下代码实现了一种上述游戏类应用程序的API接口的操作API函数代码:
@log_time_opapi
def confim_payment_information_and_request_wechat_users_to_choose_paym ent_method(self):
“【系统】请求用户确认兑换信息_【系统】验证用户反馈的结果为确认付款,且需要请求用户选择兑换方式”
#等待相应的页面出现#
aui.WalletPayUI(self.serial).wait_exists()
#校验页面的ocr数据信息#
self.check_ocr_content(“confirm_payment_information_and_request_game_use rs_to_choose_change_method”)
#该步骤所对应的具体操作#
aui.WalletPayUI(self.serial).wallet_pay_pay.click()#点击立即支付
if aui.WalletPayUI(self.serial).change_way.exists(seconds=1.000):#当所有兑换方式均不可用时,不用点击兑换方式
aui.WalletPayUI(self.serial).change_way.click()#点击兑换方式
本方案实现了将一个包含大量测试用例的集合,自动分割成由相似的测试用例组成的多个集合,对相似测试用例进行分组后,再派给调试员开发,降低了调试员理解多个测试用例的成本,减少了开发工作量,产生大量测试用例需要实现为测试脚本的场景下,能将测试用例按相似度进行分组,派给有限的调试员进行开发,减少工作量。还提高了分组的准确度,基于算法,利用计算机能力做了大量相似度的精确计算;提高了分组结果的稳定性,不需要再依赖某个人的经验,分组的算法都固化到了系统中;节约了人工进行分组的成本投入。
综上所述,本申请实施例所示方案中,获取测试用例集,并根据测试用例集中的各个测试用例的接口序列对各个测试用例进行聚类,将该各个测试用例进行根据用例步骤对应的应用程序接口进行分类,分类后的测试用例分配给服务器对应的调试账号。通过上述方式,通过测试用例中的用例步骤对应的应用程序接口,对测试用例进行分类,即分类后的测试用例对应的应用程序接口较为相近,将相近的应用程序接口的测试用例进行分类为一个测试用例子集,并将该测试用例子集分配给调试人员后,调试人员根据该测试用例子集构建测试脚本时,使用的应用程序接口之间较为相近,测试人员可以复用相似度高的应用程序接口构建测试脚本,提高了测试脚本的构建效率。
图10是根据一示例性实施例示出的测试用例的分配方法的流程示意图。该测试用例的分配方法由服务器1000执行,该服务器1000可以是图1所示实施例中的服务器120。如图10所示,测试用例集1001中包含多个测试用例,服务器获取该测试用例集1001中的各个测试用例对应的接口序列1002,并根据该各个测试用例对应的接口序列获取各个测试用例对应的接口序列之间的相似度 1003。
该测试用例集1001中的多个测试用例根据该相似度1003进行聚类,获得该多个测试用例对应的测试用例子集1004,其中每个测试用例子集1004中都包含至少一个测试用例,且该测试用例子集1004是根据接口序列之间的相似度 1003进行聚合的,因此该测试用例子集1004中的各个测试用例中对应的API 接口之间的相似度较高。
图11是根据本申请一示例性实施例示出的一种测试用例的分配装置的方框图。该测试用例的分配装置可以应用于计算机设备中,该计算机设备可以是终端,也可以是终端和服务器,其中,上述终端可以是图1所示的终端。如图11所示,该测试用例的分配装置包括:
用例集获取模块1101,用于获取测试用例集;所述测试用例集包含至少两个测试用例;
序列获取模块1102,用于获取所述测试用例集中的各个测试用例的接口序列;所述接口序列用于指示对应的测试用例中的各个用例步骤依次调用的应用程序接口;
聚类模块1103,用于基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得至少两个测试用例子集;
子集分配模块1104,用于将所述至少两个测试用例子集分别分配给各个调试账号,以便所述调试账号对应的调试人员基于被分配的测试用例子集中的测试用例,构建对应的测试脚本。
在一种可能的实现方式中,所述序列获取模块1102,包括:
描述文本获取单元,用于获取目标测试用例中的各个测试步骤的描述文本;所述目标测试用例是所述至少两个测试用例中的任意一个;
标识查询单元,用于基于所述目标测试用例中的各个测试步骤的描述文本,查询所述目标测试用例中的各个测试步骤分别调用的应用程序接口的标识;
标识排列单元,用于将所述目标测试用例中的各个测试步骤分别调用的应用程序接口的标识,按照对应的测试步骤的顺序进行排列,获得所述目标测试用例的接口序列。
在一种可能的实现方式中,所述标识查询单元,用于,
对目标测试步骤的描述文本进行特征信息提取,获得所述目标测试步骤的特征信息;所述目标测试步骤是所述目标测试用例中的各个测试步骤中的任意一个;
查询与所述目标测试步骤的特征信息对应存储的,所述目标测试步骤调用的应用程序接口的标识。
在一种可能的实现方式中,所述目标测试步骤的特征信息包括所述目标测试步骤的哈希值;
或者,
所述目标测试步骤的特征信息包括所述目标测试步骤的关键词序列。
在一种可能的实现方式中,所述标识查询单元,还用于,
基于特征提取模型,对所述目标测试步骤的描述文本进行特征信息提取,获得所述目标测试步骤的特征信息;所述特征提取模型是基于样本测试步骤训练出的深度学习模型。
在一种可能的实现方式中,所述标识查询单元,还用于,
响应于所述目标测试步骤的描述文本中的第一关键词不属于指定关键词集合,从所述指定关键词集合中获取第二关键词;所述第二关键词是所述第一关键词的同义词;
将所述目标测试步骤的描述文本中的所述第一关键词,替换为所述第二关键词。
在一种可能的实现方式中,所述聚类模块1103,包括:
相似度获取单元,用于获取所述各个测试用例的接口序列之间的相似度;
用例子集获取单元,用于基于所述各个测试用例的接口序列之间的相似度,对所述各个测试用例进行层次聚类,获得所述至少两个测试用例子集。
在一种可能的实现方式中,所述相似度获取单元,用于,
获取所述各个测试用例的接口序列之间的编辑距离,作为所述接口序列之间的相似度;
或者,
获取所述各个测试用例的接口序列之间的差异接口的数量,作为所述接口序列之间的相似度。
在一种可能的实现方式中,所述聚类模块1103,用于,
获取所述各个调试账号的账号数量N,N为大于或者等于2的整数;
基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得N 个测试用例子集。
在一种可能的实现方式中,所述子集分配模块1104,包括:
用例集合获取单元,用于获取所述各个调试账号的已分配测试用例集合;
第一相似度获取单元,用于获取所述各个调试账号的已分配测试用例集合与所述至少两个测试用例子集之间的第一相似度;所述第一相似度用于指示两个集合中的测试用例的接口序列之间的相似度;
第二用例子集分配单元,用于基于所述各个调试账号的已分配测试用例集合与所述至少两个测试用例子集之间的集合序列相似度,将所述至少两个测试用例子集分别分配给各个调试账号。
在一种可能的实现方式中,所述已分配测试用例集合中包含对应的调试账号在指定时间段内处理完成的测试用例,以及,对应的调试账号被分配且未处理完成的测试用例中的至少一种。
在一种可能的实现方式中,所述子集分配模块1104,还用于:
响应于对目标调试账号被分配的测试用例的重分配请求,获取各个重分配测试用例;所述重分配测试用例是所述目标调试账号被分配且未处理完成的测试用例;所述目标调试账号是所述各个调试账号中的任意一个;
获取所述各个重分配测试用例,分别与各个其它调试账号的已分配测试用例集合之间的第二相似度;所述第二相似度用于指示对应的重分配测试用例的接口序列,与对应的已分配测试用例集合中的测试用例的接口序列之间的相似度;所述各个其它调试账号是所述各个调试账号中,除了所述目标调试账号之前的账号;
基于所述各个重分配测试用例分别与各个其它调试账号的已分配测试用例集合之间的第二相似度,将所述各个重分配测试用例分配给所述各个其它调试账号。
综上所述,本申请实施例所示方案中,获取测试用例集,并根据测试用例集中的各个测试用例的接口序列对各个测试用例进行聚类,将该各个测试用例进行根据用例步骤对应的应用程序接口进行分类,分类后的测试用例分配给服务器对应的调试账号。通过上述方式,通过测试用例中的用例步骤对应的应用程序接口,对测试用例进行分类,即分类后的测试用例对应的应用程序接口较为相近,将相近的应用程序接口的测试用例进行分类为一个测试用例子集,并将该测试用例子集分配给调试人员后,调试人员根据该测试用例子集构建测试脚本时,使用的应用程序接口之间较为相近,测试人员可以复用相似度高的应用程序接口构建测试脚本,提高了测试脚本的构建效率。
图12是根据本申请一个示例性实施例示出的计算机设备1200的结构框图。该计算机设备1200可以是图1所示系统中的用户终端或者服务器。
通常,计算机设备1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、 FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA (Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器。在一些实施例中,处理器1201 可以在集成有GPU(Graphics Processing Unit,图像处理器),处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本申请上述方法实施例中的全部或者部分步骤。
在一些实施例中,计算机设备实现为用户终端时,该计算机设备1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202 和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。可选的,外围设备包括:射频电路1204、显示屏1205、图像采集组件1206、音频电路1207、定位组件1208 和电源1209中的至少一种。
外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它计算机设备进行通信。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(UserInterface,用户界面)。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。
图像采集组件1206用于采集图像或视频。在一些实施例中,图像采集组件 1206还可以包括闪光灯。
音频电路1207可以包括麦克风和扬声器。在一些实施例中,音频电路1207 还可以包括耳机插孔。
定位组件1208用于定位计算机设备1200的当前地理位置,以实现导航或 LBS(Location Based Service,基于位置的服务)。
电源1209用于为计算机设备1200中的各个组件进行供电。
在一些实施例中,计算机设备1200还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。
本领域技术人员可以理解,图12中示出的结构并不构成对计算机设备1200 的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本申请各个实施例所示的方法。例如,所述非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例所示的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种测试用例的分配方法,其特征在于,所述方法包括:
获取测试用例集;所述测试用例集包含至少两个测试用例;
获取所述测试用例集中的各个测试用例的接口序列;所述接口序列用于指示对应的测试用例中的各个测试步骤依次调用的应用程序接口;
基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得至少两个测试用例子集;
将所述至少两个测试用例子集分别分配给各个调试账号,以便所述调试账号对应的调试人员基于被分配的测试用例子集中的测试用例,构建对应的测试脚本。
2.根据权利要求1所述的方法,其特征在于,所述获取所述测试用例集中的各个测试用例的接口序列,包括:
获取目标测试用例中的各个测试步骤的描述文本;所述目标测试用例是所述至少两个测试用例中的任意一个;
基于所述目标测试用例中的各个测试步骤的描述文本,查询所述目标测试用例中的各个测试步骤分别调用的应用程序接口的标识;
将所述目标测试用例中的各个测试步骤分别调用的应用程序接口的标识,按照对应的测试步骤的顺序进行排列,获得所述目标测试用例的接口序列。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标测试用例中的各个测试步骤的描述文本,查询所述目标测试用例中的各个测试步骤分别调用的应用程序接口的标识,包括:
对目标测试步骤的描述文本进行特征信息提取,获得所述目标测试步骤的特征信息;所述目标测试步骤是所述目标测试用例中的各个测试步骤中的任意一个;
查询与所述目标测试步骤的特征信息对应存储的,所述目标测试步骤调用的应用程序接口的标识。
4.根据权利要求3所述的方法,其特征在于,
所述目标测试步骤的特征信息包括所述目标测试步骤的哈希值;
或者,
所述目标测试步骤的特征信息包括所述目标测试步骤的关键词序列。
5.根据权利要求3所述的方法,其特征在于,所述对目标测试步骤的描述文本进行特征信息提取,获得所述目标测试步骤的特征信息,包括:
基于特征提取模型,对所述目标测试步骤的描述文本进行特征信息提取,获得所述目标测试步骤的特征信息;所述特征提取模型是基于样本测试步骤训练出的深度学习模型。
6.根据权利要求3所述的方法,其特征在于,所述对目标测试步骤的描述文本进行特征信息提取,获得所述目标测试步骤的特征信息之前,还包括:
响应于所述目标测试步骤的描述文本中的第一关键词不属于指定关键词集合,从所述指定关键词集合中获取第二关键词;所述第二关键词是所述第一关键词的同义词;
将所述目标测试步骤的描述文本中的所述第一关键词,替换为所述第二关键词。
7.根据权利要求1所述的方法,其特征在于,所述基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得至少两个测试用例子集,包括:
获取所述各个测试用例的接口序列之间的相似度;
基于所述各个测试用例的接口序列之间的相似度,对所述各个测试用例进行层次聚类,获得所述至少两个测试用例子集。
8.根据权利要求7所述的方法,其特征在于,所述获取所述各个测试用例的接口序列之间的相似度,包括:
获取所述各个测试用例的接口序列之间的编辑距离,作为所述接口序列之间的相似度;
或者,
获取所述各个测试用例的接口序列之间的差异接口的数量,作为所述接口序列之间的相似度。
9.根据权利要求1所述的方法,其特征在于,所述基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得至少两个测试用例子集,包括:
获取所述各个调试账号的账号数量N,N为大于或者等于2的整数;
基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得N个测试用例子集。
10.根据权利要求1所述的方法,其特征在于,所述将所述至少两个测试用例子集分别分配给各个调试账号,包括:
获取所述各个调试账号的已分配测试用例集合;
获取所述各个调试账号的已分配测试用例集合与所述至少两个测试用例子集之间的第一相似度;所述第一相似度用于指示两个集合中的测试用例的接口序列之间的相似度;
基于所述各个调试账号的已分配测试用例集合与所述至少两个测试用例子集之间的集合序列相似度,将所述至少两个测试用例子集分别分配给各个调试账号。
11.根据权利要求10所述的方法,其特征在于,所述已分配测试用例集合中包含对应的调试账号在指定时间段内处理完成的测试用例,以及,对应的调试账号被分配且未处理完成的测试用例中的至少一种。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
响应于对目标调试账号被分配的测试用例的重分配请求,获取各个重分配测试用例;所述重分配测试用例是所述目标调试账号被分配且未处理完成的测试用例;所述目标调试账号是所述各个调试账号中的任意一个;
获取所述各个重分配测试用例,分别与各个其它调试账号的已分配测试用例集合之间的第二相似度;所述第二相似度用于指示对应的重分配测试用例的接口序列,与对应的已分配测试用例集合中的测试用例的接口序列之间的相似度;所述各个其它调试账号是所述各个调试账号中,除了所述目标调试账号之前的账号;
基于所述各个重分配测试用例分别与各个其它调试账号的已分配测试用例集合之间的第二相似度,将所述各个重分配测试用例分配给所述各个其它调试账号。
13.一种测试用例的分配装置,其特征在于,所述装置包括:
用例集获取模块,用于获取测试用例集;所述测试用例集包含至少两个测试用例;
序列获取模块,用于获取所述测试用例集中的各个测试用例的接口序列;所述接口序列用于指示对应的测试用例中的各个测试步骤依次调用的应用程序接口;
聚类模块,用于基于所述各个测试用例的接口序列,对所述各个测试用例进行聚类,获得至少两个测试用例子集;
子集分配模块,用于将所述至少两个测试用例子集分别分配给各个调试账号,以便所述调试账号对应的调试人员基于被分配的测试用例子集中的测试用例,构建对应的测试脚本。
14.一种计算机设备,其特征在于,计算机设备包含处理器和存储器,所述存储器中存储由至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至12任一所述的测试用例的分配方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至12任一所述的测试用例的分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011529683.1A CN113515440A (zh) | 2020-12-22 | 2020-12-22 | 测试用例分配方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011529683.1A CN113515440A (zh) | 2020-12-22 | 2020-12-22 | 测试用例分配方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113515440A true CN113515440A (zh) | 2021-10-19 |
Family
ID=78060954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011529683.1A Pending CN113515440A (zh) | 2020-12-22 | 2020-12-22 | 测试用例分配方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515440A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672522A (zh) * | 2021-10-25 | 2021-11-19 | 腾讯科技(深圳)有限公司 | 测试资源压缩方法以及相关设备 |
CN116594914A (zh) * | 2023-07-17 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 测试数据的生成方法、装置、设备及存储介质 |
-
2020
- 2020-12-22 CN CN202011529683.1A patent/CN113515440A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672522A (zh) * | 2021-10-25 | 2021-11-19 | 腾讯科技(深圳)有限公司 | 测试资源压缩方法以及相关设备 |
CN113672522B (zh) * | 2021-10-25 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 测试资源压缩方法以及相关设备 |
CN116594914A (zh) * | 2023-07-17 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 测试数据的生成方法、装置、设备及存储介质 |
CN116594914B (zh) * | 2023-07-17 | 2023-12-26 | 腾讯科技(深圳)有限公司 | 测试数据的生成方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US20180342241A1 (en) | Method and Apparatus of Recognizing Field of Semantic Parsing Information, Device and Readable Medium | |
CN108829581B (zh) | 应用程序测试方法、装置、计算机设备及存储介质 | |
CN110728455B (zh) | 业务处理方法、业务处理装置、存储介质与电子设备 | |
CN107862425B (zh) | 风控数据采集方法、设备、系统及可读存储介质 | |
WO2023029508A1 (zh) | 基于用户画像的页面生成方法、装置、设备及介质 | |
CN108090351A (zh) | 用于处理请求消息的方法和装置 | |
CN113515440A (zh) | 测试用例分配方法、装置、计算机设备及存储介质 | |
CN111581271A (zh) | 接口参数确定方法、装置、计算机设备和存储介质 | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN113051362A (zh) | 数据的查询方法、装置和服务器 | |
CN113946590A (zh) | 积分数据更新方法、装置、设备及存储介质 | |
CN113888299A (zh) | 风控决策方法、装置、计算机设备和存储介质 | |
US9898467B1 (en) | System for data normalization | |
CN111507400A (zh) | 应用分类方法、装置、电子设备以及存储介质 | |
CN114722794A (zh) | 数据提取方法和数据提取装置 | |
CN112989763B (zh) | 数据获取方法、装置、计算机设备及存储介质 | |
CN114328681A (zh) | 一种数据转换方法、装置、电子设备及存储介质 | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN116450723A (zh) | 数据提取方法、装置、计算机设备及存储介质 | |
CN116483888A (zh) | 程序评估方法及装置、电子设备和计算机可读存储介质 | |
CN112732547A (zh) | 业务测试方法、装置、存储介质及电子设备 | |
CN115168848A (zh) | 基于大数据分析拦截的拦截反馈处理方法 | |
CN112765022B (zh) | 一种基于数据流的Webshell静态检测方法及电子设备 | |
CN116680160A (zh) | 一种测试用例生成方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40056109 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |