回归范围确定方法、装置、设备及计算机可读存储介质与流程

文档序号:18164092发布日期:2019-07-13 09:29阅读:172来源:国知局
回归范围确定方法、装置、设备及计算机可读存储介质与流程

本公开实施例涉及计算机技术领域,尤其涉及回归范围确定方法、装置、设备及计算机可读存储介质。



背景技术:

回归测试是指修改了旧代码后,重新进行测试以确认修改是否引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。虽然回归测试是软件测试中的一个十分重要的过程,但是其成本是昂贵的。

相关技术中,确定回归测试的回归范围的方案都是采用人工确定的方式,存在准确性不高、耗时长等问题。因此,针对如何减少回归测试成本,提高回归测试效率的研究具有十分重要的意义。



技术实现要素:

有鉴于此,本公开第一方面提供了一种回归范围确定方法,包括:

部署旧代码到服务器并进行业务测试,并且记录与所述旧代码相关的第一信息;

部署新代码到所述服务器并进行业务测试,并且记录与所述新代码相关的第二信息;

对所述第一信息与所述第二信息进行比对;

基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围。

本公开第二方面提供了一种回归范围确定装置,包括:

第一部署模块,被配置为部署旧代码到服务器并进行业务测试,并且记录与所述旧代码相关的第一信息;

第二部署模块,被配置为部署新代码到所述服务器并进行业务测试,并且记录与所述新代码相关的第二信息;

比对模块,被配置为对所述第一信息与所述第二信息进行比对;

搜索模块,被配置为基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围。

本公开第三方面提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现以下步骤:

部署旧代码到服务器并进行业务测试,并且记录与所述旧代码相关的第一信息;

部署新代码到所述服务器并进行业务测试,并且记录与所述新代码相关的第二信息;

对所述第一信息与所述第二信息进行比对;

基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围。

本公开第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面所述的方法。

在本公开实施方式中,通过部署旧代码到服务器并进行业务测试,并且记录与所述旧代码相关的第一信息;部署新代码到所述服务器并进行业务测试,并且记录与所述新代码相关的第二信息;对所述第一信息与所述第二信息进行比对;基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围,可以在代码修改之前就收集关键数据,代码修改之后可以根据新的关键数据立即分析出影响点,快速、准确、自动地确定回归测试的回归范围,而且减轻了测试人员的负担。

本公开的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

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

图1示出根据本公开一实施方式的回归范围确定方法的流程图;

图2示出根据本公开一实施方式的回归范围确定方法中的步骤s104的一个示例的流程图;

图3示出根据本公开另一实施方式的回归范围确定装置的结构框图;

图4示出根据本公开一实施方式的电子设备的结构框图;

图5是适于用来实现根据本公开一实施方式的回归范围确定方法的计算机系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开示例性实施例中的附图,对本公开示例性实施例中的技术方案进行清楚、完整地描述。

在本公开的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

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

图1示出根据本公开一实施方式的回归范围确定方法的流程图。该方法可以包括步骤s101、s102、s103和s104。

在步骤s101中,部署旧代码到服务器并进行业务测试,并且记录与旧代码相关的第一信息。

在步骤s102中,部署新代码到服务器并进行业务测试,并且记录与新代码相关的第二信息。

在步骤s103中,对第一信息与第二信息进行比对。

在步骤s104中,基于第一信息与第二信息不一致的比对结果,搜索与第二信息相关的业务作为回归范围。

在本公开的一个实施例中,第一信息为用于对旧代码进行验证的验证信息,并且第二信息为用于对新代码进行验证的验证信息。即,旧代码的验证信息或新代码的验证信息是可以用于对代码本身进行验证的信息。因此,同样的代码的验证信息应该是相同的。在本公开的实施例中,如果旧代码的验证信息与新代码的验证信息不一致,则需要对新代码进行回归测试。在此情况下,可以根据新代码的验证信息搜索与新代码的验证信息相关的业务作为回归范围。不同于相关技术中人工确定回归范围的方式,本公开的实施方式可以根据新代码的与函数相关的第二信息来确定回归范围。

在本公开的一个实施例中,第一信息包括测试用例的唯一标识、测试用例的描述、与测试用例对应的业务的唯一名称、与旧代码对应的应用的唯一名称、与旧代码对应的应用的机器的ip地址、以及与旧代码相关的数据的收集时间。这些信息可以被用于生成旧代码的验证信息,或者直接构成旧代码的验证信息的一部分。这些信息也可以被包括在旧代码的第一代码行信息和第一关键点参数信息中。而且,这些信息可以被用于确定旧代码的回归范围。

在本公开的一个实施例中,第二信息包括测试用例的唯一标识、测试用例的描述、与测试用例对应的业务的唯一名称、与新代码对应的应用的唯一名称、与新代码对应的应用的机器的ip地址、以及与新代码相关的数据的收集时间。这些信息可以被用于生成新代码的验证信息,或者直接构成新代码的验证信息的一部分。这些信息也可以被包括在新代码的第二代码行信息和第二关键点参数信息中。而且,这些信息可以被用于确定新代码的回归范围。

从以上内容可知,第一信息与第二信息之间存在对应的关系。但是,可以理解,第一信息与第二信息之间可以不必完全对应,即,第一信息中的某些内容在第二信息中不存在对应的部分,或者第二信息中的某些内容在第一信息中不存在对应的部分。

在本公开的一个实施例中,旧代码的验证信息包括旧代码的类文件的变化记录信息,并且新代码的验证信息包括新代码的类文件的变化记录信息,其中,步骤s104,包括:基于旧代码的类文件的变化记录信息与新代码的类文件的变化记录信息不一致的比对结果,搜索经过新代码的类文件的业务作为回归范围。

在本公开的一个实施例中,类文件的变化记录信息表示记录有此类文件的变化的信息。当旧代码的类文件的变化记录信息与新代码的类文件的变化记录信息不一致时,搜索经过这个新代码的类文件的业务作为回归范围。

在本公开的一个实施例中,旧代码的类文件的变化记录信息包括旧代码的类文件的加密标识信息,并且新代码的类文件的变化记录信息包括新代码的类文件的加密标识信息。在本公开的一个实施例中,类文件是对源文件编译以后得到的文件,可以被机器识别。

在本公开的一个实施例中,旧代码的类文件的加密标识信息包括旧代码的类文件的md5信息,并且新代码的类文件的加密标识信息包括新代码的类文件的md5信息。md5消息摘要算法(md5message-digestalgorithm)是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。md5算法的典型应用是对一段文本信息产生信息摘要,以防止被篡改。对旧代码的类文件以及新代码的类文件做md5校验,可以确定二者是否为同一文件。

本领域技术人员可以理解,根据需要,可以以各种方式生成类文件的加密标识信息,而不限于md5信息。

在本公开的一个实施例中,第一信息包括旧代码的第一代码行信息和第一关键点参数信息,其中,第一代码行信息包含旧代码中的每一函数的唯一签名和函数参数类型,并且第一关键点参数信息包含旧代码中的全部参数的参数名和参数值;第二信息包括新代码的第二代码行信息和第二关键点参数信息,其中,第二代码行信息包含新代码中的每一函数的唯一签名和函数参数类型,并且第二关键点参数信息包含新代码中的全部参数的参数名和参数值。

在本公开的一个实施例中,步骤s104包括:基于第一信息与第二信息不一致的比对结果,搜索经过新代码中的每一函数和函数参数的业务作为回归范围。

在本公开的以上实施例中,代码的验证信息可以通过对代码本身进行特定计算而得到,而代码的代码行信息和关键点参数信息是通过对代码进行分析而得到的。无论是对旧代码的验证信息与新代码的验证信息进行比对,还是对旧代码的第一代码行信息和第一关键点参数信息与新代码的第二代码行信息和第二关键点参数信息进行比对,都是为了确定旧代码与新代码是否存在不同点,进而将经过不同点的业务作为回归范围。为了保证回归范围覆盖全部不同点,可以将与第二信息相关的全部业务作为回归范围。

在本公开的一个实施例中,可以搜索与第二信息相关的全部业务,回归测试的范围包括与这些业务相关的测试用例(例如,自动化用例)和与测试用例对应的业务。本领域技术人员可以理解,在某些情况下,与测试用例对应的业务的范围可能大于与第二信息相关的全部业务。这样,就可以比较全面的确定新代码的回归范围(或称为回归测试范围)。

在本公开的一个实施例中,回归范围包括与第二信息相关的需要执行的测试用例和与测试用例对应的业务。在本公开的一个实施例中,可以基于第一信息确定经过旧代码中的函数的全部业务以及与经过旧代码中的函数的全部业务相关的需要执行的测试用例和与测试用例对应的业务,即,旧代码的回归范围。在此基础上,可以确定在旧代码的回归范围基础上得到的新代码的回归范围。可以理解,新代码的回归范围可以大于旧代码的回归范围,这样可以进行更完善的回归测试。

在本公开实施方式中,通过部署旧代码到服务器并进行业务测试,并且记录与旧代码相关的第一信息;部署新代码到服务器并进行业务测试,并且记录与新代码相关的第二信息;对第一信息与第二信息进行比对;基于第一信息与第二信息不一致的比对结果,搜索与第二信息相关的业务作为回归范围,可以在代码修改之前就收集关键数据,代码修改之后可以根据新的关键数据立即分析出影响点,快速、准确、自动地确定回归测试的回归范围,而且减轻了测试人员的负担。

图2示出根据本公开一实施方式的回归范围确定方法中的步骤s104的一个示例的流程图。如图2所示,步骤s104包括步骤s201、步骤s202和步骤s203。

在步骤s201中,基于第一信息与第二信息不一致的比对结果,将第二信息存储到改动列表。

在步骤s202中,获取改动列表中的第二信息。

在步骤s203中,搜索与第二信息相关的业务作为回归范围。

在本公开的一个实施例中,对于新代码,关注的要点在于代码中的变化,例如,函数以及函数参数信息的变化,这种变化反应在了新代码的第二信息中,第二信息是确定回归范围的基础。因此,当第一信息与第二信息不一致时,需要将与新代码相关的第二信息存储到改动列表。每当需要确定新代码的回归范围时,可以直接到改动列表中获取新代码的第二信息,并且,搜索与第二信息相关的业务作为回归范围。

因此,在需要确定新代码的回归范围时,在代码修改之后可以根据新的关键数据立即分析出影响点,快速、准确、自动地确定回归测试的回归范围,而且减轻了测试人员的负担。

图3示出根据本公开一实施方式的回归范围确定装置的结构框图。该装置可以包括第一部署模块301、第二部署模块302、比对模块303和搜索模块304。

第一部署模块301被配置为部署旧代码到服务器并进行业务测试,并且记录与旧代码相关的第一信息。

第二部署模块302被配置为部署新代码到服务器并进行业务测试,并且记录与新代码相关的第二信息。

比对模块303被配置为对第一信息与第二信息进行比对。

搜索模块304被配置为基于第一信息与第二信息不一致的比对结果,搜索与第二信息相关的业务作为回归范围。

以上描述了回归范围确定装置的内部功能和结构,在一个可能的设计中,该回归范围确定装置的结构可实现为回归范围确定设备,如图4中所示,该处理设备400可以包括处理器401以及存储器402。

所述存储器402用于存储支持回归范围确定装置执行上述任一实施例中回归范围确定方法的程序,所述处理器401被配置为用于执行所述存储器402中存储的程序。

所述存储器402用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器401执行以实现以下步骤:

部署旧代码到服务器并进行业务测试,并且记录与所述旧代码相关的第一信息;

部署新代码到所述服务器并进行业务测试,并且记录与所述新代码相关的第二信息;

对所述第一信息与所述第二信息进行比对;

基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围。

在本公开的一个实施例中,所述第一信息为所述旧代码的验证信息,并且所述第二信息为所述新代码的验证信息。

在本公开的一个实施例中,所述旧代码的验证信息包括所述旧代码的类文件的变化记录信息,并且所述新代码的验证信息包括所述新代码的类文件的变化记录信息,其中,所述基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围,包括:

基于所述旧代码的类文件的变化记录信息与所述新代码的类文件的变化记录信息不一致的比对结果,搜索经过所述新代码的类文件的业务作为回归范围。

在本公开的一个实施例中,所述第一信息包括所述旧代码的第一代码行信息和第一关键点参数信息,其中,所述第一代码行信息包含所述旧代码中的每一函数的唯一签名和函数参数类型,并且所述第一关键点参数信息包含所述旧代码中的全部参数的参数名和参数值;所述第二信息包括所述新代码的第二代码行信息和第二关键点参数信息,其中,所述第二代码行信息包含所述新代码中的每一函数的唯一签名和函数参数类型,并且所述第二关键点参数信息包含所述新代码中的全部参数的参数名和参数值。

在本公开的一个实施例中,所述基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围,包括:

基于所述第一信息与所述第二信息不一致的比对结果,搜索经过所述新代码中的每一函数和函数参数的业务作为回归范围。

在本公开的一个实施例中,所述回归范围包括与所述第二信息相关的需要执行的测试用例和与所述测试用例对应的业务。

在本公开的一个实施例中,所述第一信息包括测试用例的唯一标识、测试用例的描述、与测试用例对应的业务的唯一名称、与所述旧代码对应的应用的唯一名称、与所述旧代码对应的应用的机器的ip地址、以及与所述旧代码相关的数据的收集时间;所述第二信息包括测试用例的唯一标识、测试用例的描述、与测试用例对应的业务的唯一名称、与所述新代码对应的应用的唯一名称、与所述新代码对应的应用的机器的ip地址、以及与所述新代码相关的数据的收集时间。

在本公开的一个实施例中,所述基于所述第一信息与所述第二信息不一致的比对结果,搜索与所述第二信息相关的业务作为回归范围,包括:

基于所述第一信息与所述第二信息不一致的比对结果,将所述第二信息存储到改动列表;

获取所述改动列表中的第二信息;

搜索与所述第二信息相关的业务作为回归范围。

所述处理器401用于执行前述各方法步骤中的全部或部分步骤。

其中,所述回归范围确定设备的结构中还可以包括通信接口,用于回归范围确定设备与其他设备或通信网络通信。

本公开示例性实施例还提供了一种计算机存储介质,用于储存所述回归范围确定装置所用的计算机软件指令,其包含用于执行上述任一实施例中回归范围确定方法所涉及的程序。

图5是适于用来实现根据本公开一实施方式的回归范围确定方法的计算机系统的结构示意图。

如图5所示,计算机系统500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行上述图1所示的实施方式中的各种处理。在ram503中,还存储有系统500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本公开的实施方式,上文参考图1描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行图1的数据处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。

附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,并且/或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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