一种测试方法、装置及电子设备与流程

文档序号:16134387发布日期:2018-12-01 00:45阅读:126来源:国知局

本发明涉及测试技术领域,特别是涉及一种测试方法、装置及电子设备。

背景技术

软件测试是软件工程的重要环节,它直接关系到软件的质量、开发进度和项目成本。随着软件技术和编码技术的发展,软件设计和编码的效率得到提高的同时,软件测试的工作量和工作占比在整个软件开发的生命周期中也不断提高。

在软件测试中,回归测试通常占据较高的测试成本。在通常的回归测试中,旧代码修改完成后,需要重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试的执行需要依赖测试用例,目前的做法是由软件测试工程师手工从系统测试用例中挑选测试用例,进行回归测试。

然而,发明人通过研究发现,回归测试的实施过程中,人工挑选测试用例的方式很容易多选无关的测试用例,导致测试效率低下;或者,选择较少的测试用例,导致测试遗漏,测试精度差。因此,如何能够提供一种测试方法,提高测试效率和精度是本领域技术人员亟需解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种测试方法、装置及电子设备,用于解决现有技术中测试效率低和精度差的问题。

为实现上述目的及其他相关目的,根据本发明的第一方面,本发明实施例提供一种测试方法,该方法包括以下步骤:

根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求;

当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例;

根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数;

其中,选择出的所有目标测试用例用于测试。

可选地,所述根据测试用例需求矩阵,计算各个测试用例的需求数包括:

当所述测试用例需求矩阵的行对应测试用例,所述测试用例需求矩阵的列对应测试需求,且测试用例与测试需求强相关的矩阵元素为第一元素时,累加所述测试用例需求矩阵的每行的第一元素,作为相应测试用例的需求数。

可选地,根据所述目标测试用例,标记所述测试用例需求矩阵,包括:

在测试用例需求矩阵中,将目标测试用例的第一元素标记为第二元素,并将第二元素所对应列的所有矩阵元素标记为第二元素。

可选地,所述根据标记后的测试用例需求矩阵,更新各个测试用例的需求数,包括:

累加所述测试用例需求矩阵的每行的第一元素,更新相应测试用例的需求数。

可选地,该测试方法还包括:

当各个测试用例的需求数均小于或等于阈值时,确定测试集,以根据所述测试集测试;其中,所述测试集包括所有选择出的目标测试用例。

根据本发明的第二方面,本发明实施例还提供一种测试装置,该测试装置包括:

计算模块,根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求;

选择模块,当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例;

更新模块,根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数;

其中,选择出的所有目标测试用例用于测试。

可选地,所述计算模块还用于,

当所述测试用例需求矩阵的行对应测试用例,所述测试用例需求矩阵的列对应测试需求,且测试用例与测试需求强相关的矩阵元素为第一元素时,累加所述测试用例需求矩阵的每行的第一元素,作为相应测试用例的需求数。

可选地,所述更新模块还用于,

在测试用例需求矩阵中,将目标测试用例的第一元素标记为第二元素,并将第二元素所对应列的所有矩阵元素标记为第二元素。

可选地,该测试装置还包括集合模块用于,

当各个测试用例的需求数均小于或等于阈值时,确定测试集,以根据所述测试集测试;其中,所述测试集包括所有选择出的目标测试用例。

根据本发明的第三方面,本发明实施例还提供一种电子设备,所述电子设备包括至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:

根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求;

当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例;

根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数;

其中,选择出的所有目标测试用例用于测试。

如上所述,本发明实施例提供的一种测试方法、装置及电子设备,具有以下有益效果:根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求;当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例;根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数;其中,选择出的所有目标测试用例用于测试。通过测试需求矩阵,筛选出覆盖最多测试需求的测试用例,这样能够保证使用较少的测试用例覆盖最多测试需求进行测试,防止出现重复测试、以及漏测,有效提高了测试效率和精度。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

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

图1是本发明实施例提供的一种测试方法的流程示意图;

图2是本发明实施例提供的一种测试用例需求矩阵的示意图;

图3是本发明实施例提供的一种标记后测试用例需求矩阵的示意图;

图4是本发明实施例提供的另一种测试方法的流程示意图;

图5是本发明实施例提供的一种测试装置的结构示意图;

图6是本发明实施例提供的一种执行测试方法的电子设备的结构示意图。

具体实施方式

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

请参阅图1至图6。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

参见图1,是本发明实施例提供的一种测试方法的流程示意图,如图1所示,本发明实施例示出了筛选测试用例的过程:

步骤s101:根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求。

所述测试用例需求矩阵表征了测试用例与其所覆盖测试需求的对应关系。参见图2,是本发明实施例提供的一种测试用例需求矩阵的示意图,如图2所示,该测试用例需求矩阵可以为m×n的矩阵,其中m和n均为自然数。在上述测试用例需求矩阵中,矩阵中的行对应测试用例,矩阵包括m行、且分别对应测试用例1、测试用例2、直到测试用例m;矩阵中的列对应测试需求,矩阵包括n列、且分别对应需求1、需求2、直到需求n。

而且,在本发明实施例中,当测试用例能够用于满足测试需求时,可以在将矩阵中相应位置的元素设置为第一元素。在一示例性实施例中,所述第一元素可以为“1”;对于测试用例1,当该测试用例1能够满足需求2、需求n-2以及需求n-1时,可以将矩阵中第1行第2列的元素、第1行第n-2列的元素以及第1行第n-1列的元素均设置为第一元素“1”。另外,对于测试用例不能满足需求的矩阵元素可以设置为“0”,这样,对于m各测试用例均对应设置相应的列元素,可以得到如图2所示的测试用例需求矩阵。

当然需要说明的是,上述测试用例需求矩阵的形式仅是一示例性实施例,在具体实施时还可以为其他任意形式例如矩阵中的列对应测试用例,矩阵中的行对应测试需求,而且矩阵元素还可以为其他任意数值,在本发明实施例中不再赘述。

本发明以图2所示的测试用例需求矩阵为例,详细介绍本发明实施例提供的测试方法。

在上述测试用例需求矩阵中,行对应测试用例,所述测试用例需求矩阵的列对应测试需求,且测试用例与测试需求强相关的矩阵元素为第一元素时,累加所述测试用例需求矩阵的每行的第一元素,作为相应测试用例的需求数。在第一种实施情况下,对于测试用例1,由于测试用例1能够满足需求2、需求n-2以及需求n-1,且矩阵中相应位置的元素均为第一元素,则累加这3个第一元素,从而计算得到测试用例1的需求数=1+1+1=3,表征测试用例1能够覆盖需求1、需求n-2以及需求n-1总计3个需求。在第二种实施情况下,由于测试用例无法覆盖的需求在测试用例需求矩阵中均标记为“0”,因此,在计算过程中,可以累加测试用例所对应列元素从而得到相应测试用例的需求数,同样对于测试用例1,测试用例1的需求数=0+1+0+……+1+1+0=3。

步骤s102:当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例。

通过步骤s101的计算,测试用例1的需求数为3,测试用例2的需求数为4,测试用例3的需求数为0。为了选择出目标测试用例,在一示例性实施例中,该阈值可以预设为“0”;这样,由于测试用例1的需求数和测试用例2的需求数均大于该阈值,测试用例3的需求数等于该阈值,因此继续从测试用例1和测试用例2中选择需求数最大的测试用例作为目标测试用例;进一步,测试用例2的需求数为4、且最大,因此目标测试用例为测试用例2。

另外,当存在多个测试用例的需求数相同、且均是最大时,可以从所述多个测试用例中任意选择一个测试用例作为目标测试用例;或者,根据目标测试用例的使用次数,从所述多个测试用例中选择使用次数最多的测试用例作为目标测试用例。

步骤s103:根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数;其中,选择出的所有目标测试用例用于测试。

根据步骤s102确定的目标测试用例,该目标测试用例为测试用例2,则进一步标记该测试用例2所对应的列元素。

在一示例性实施例中,可以将目标测试用例的第一元素标记为第二元素,并将第二元素所对应列的所有矩阵元素标记为第二元素;在本发明实施例中,该第二元素可以为“-1”,当然在具体实施时,该第二元素可以为其他任意数值例如“0”、“-2”等,在本发明实施例中不再赘述。参见图3,是本发明实施例提供的一种标记后测试用例需求矩阵的示意图,如图3所示,由于目标测试用例为测试用例2,且测试用例2能够满足需求1、需求2、需求n-1以及需求n的测试,因此将测试用例2所对应的第一元素全部标记为第二元素“-1”;进一步,由于测试用例2已经能够覆盖需求1、需求2、需求n-1以及需求n,因此也无需额外的测试用例进行上述需求的测试,将需求1、需求2、需求n-1以及需求n所对应的所有列元素均标记为第二元素“-1”。

根据标记后的测试用例需求矩阵,更新测试用例的需求数。在具体实施时,为了方便实施,可以更新除目标测试用例之外其他测试用例的需求数,或者,更新所有测试用例的需求数。在一示例性实施例中,通过累加所述测试用例需求矩阵的每行的第一元素,更新相应测试用例的需求数,这样根据图3,测试用例1的需求数为0+1=1,因此测试用例1的需求数更新为1,测试用例2的需求数更新为0,测试用例3的需求数更新为2。

进一步,可以再次循环执行步骤s101至步骤s102,得到新的目标测试用例,这样由于选择出的目标测试用例覆盖最多的测试需求,因此使用所述选择出的目标测试用例进行后续测试。

由上述实施例的描述可见,本发明实施例提供的一种测试方法,根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求;当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例;根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数;其中,选择出的所有目标测试用例用于测试。通过测试需求矩阵,筛选出覆盖最多测试需求的测试用例,这样能够保证使用较少的测试用例覆盖最多测试需求进行测试,防止出现重复测试、以及漏测,有效提高了测试效率和精度。

参见图4,是本发明实施例提供的另一种测试方法的流程示意图。如图4所示,本发明实施例示出了测试集的确定过程:

步骤s201:根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求。

步骤s202:当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例。

步骤s203:根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数。

步骤s204:当各个测试用例的需求数均小于或等于阈值时,确定测试集,以根据所述测试集测试;其中,所述测试集包括所有选择出的目标测试用例。

通过上述实施例,在标记完成测试用例需求矩阵以及更新各个测试用例的需求数后,进一步判断各个测试用例的需求数是否均小于或等于阈值,当各个测试用例的需求数均小于或等于阈值时,表征测试用例已经筛选完成,这样,可以将筛选出的所有目标测试用例组合为测试集,使用该测试集进行测试。

本发明实施例与上述实施例的相同之处,可参见上述实施例的描述,在此不再赘述。

通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。

与本发明提供的测试方法实施例相对应,本发明还提供了一种测试装置。

参见图5,是本发明实施例提供的一种测试装置的结构示意图,如图5所示,该测试装置包括:

计算模块11,根据测试用例需求矩阵,计算各个测试用例的需求数,所述测试用例需求矩阵用于描述测试用例所覆盖的测试需求;

选择模块12,当存在至少一个测试用例的需求数大于阈值时,选择需求数最大的测试用例作为目标测试用例;

更新模块13,根据目标测试用例,标记所述测试用例需求矩阵,并根据标记后的测试用例需求矩阵,更新各个测试用例的需求数;

其中,选择出的所有目标测试用例用于测试。

在一示例性实施例中,所述计算模块11还用于,当所述测试用例需求矩阵的行对应测试用例,所述测试用例需求矩阵的列对应测试需求,且测试用例与测试需求强相关的矩阵元素为第一元素时,累加所述测试用例需求矩阵的每行的第一元素,作为相应测试用例的需求数。

在一示例性实施例中,所述更新模块13还用于,在测试用例需求矩阵中,将目标测试用例的第一元素标记为第二元素,并将第二元素所对应列的所有矩阵元素标记为第二元素。

在一示例性实施例中,所述更新模块13还用于,累加所述测试用例需求矩阵的每行的第一元素,更新相应测试用例的需求数。

为了得到测试集,在本发明实施例中,该测试装置还可以包括集合模块,所述集合模块可以用于当各个测试用例的需求数均小于或等于阈值时,确定测试集,以根据所述测试集测试;其中,所述测试集包括所有选择出的目标测试用例。

本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的测试方法。

参见图6,是本发明实施例提供的一种执行测试方法的电子设备的结构示意图,如图6所示,该设备包括:

一个或多个处理器610以及存储器620,图6中以一个处理器610为例。

执行测试方法的设备还可以包括:输入装置630和输出装置640。

处理器610、存储器620、输入装置630和输出装置640可以通过总线或者其他方式连接,图6中以通过总线连接为例。

存储器620作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的测试方法对应的程序指令/模块(例如,附图5所示的计算模块11、选择模块12和更新模块13)。处理器610通过运行存储在存储器620中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的测试方法。

存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据测试装置的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至测试装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置630可接收输入的数字或字符信息,以及产生与测试装置的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器620中,当被所述一个或者多个处理器610执行时,执行上述任意方法实施例中的测试方法。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

本发明实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1