掌桥专利:专业的专利平台
掌桥专利
首页

测试方法、测试装置、电子设备及存储介质

文献发布时间:2023-06-19 12:02:28


测试方法、测试装置、电子设备及存储介质

技术领域

本申请涉及测试开发领域,尤其涉及一种测试方法、测试装置、电子设备及存储介质。

背景技术

目前,在移动应用项目的开发过程中,通常会包括有不同的分支版本,例如主线版本以及渠道版本,其中,渠道版本是依据不同厂商的需求在主线版本的基础上个性化定制的版本,渠道版本与主线版本在功能上大部分是相同的,但是也存在有部分差异。通常当需要在主线版本以及渠道版本上对同一功能进行修改、添加或删除时,由于主线版本与渠道版本分别适配于不同的厂商,因此,即使主线版本以及渠道版本变换的功能相同,二者在底层修改的代码也会存在差异,故对于变化后的主线版本以及渠道版本代码均需要进行测试。

现有技术中,在进行测试时,将主线版本的测试与渠道版本的测试区分开,分别对主线版本变化前后的差异代码进行测试,之后,再对渠道版本变化前后的差异代码进行测试。

然而,采用上述方法进行测试时,由于主线版本的差异代码与渠道版本的差异代码之间存在既有相同的部分又存在一定的差异,因此,在主线版本上测试过的代码在渠道版本上会再次测试,增加了测试时间。

发明内容

本申请提供一种测试方法、测试装置、电子设备及存储介质,用以解决现有技术中测试耗时较多的问题。

第一方面,本申请提供一种测试方法,所述方法包括:

根据主线版本的更新前和更新后的代码,获得所述主线版本的差异代码;

根据渠道版本的更新前和更新后的代码,获得所述渠道版本的差异代码;

获取所述主线版本的差异代码和所述渠道版本的差异代码之间的第一差异代码;

对所述第一差异代码进行测试,得到所述渠道版本的测试结果。

在一种可能的实现方式中,所述对所述第一差异代码进行测试,包括:

依据所述第一差异代码,分析获得所述第一差异代码所属函数;

查询所述渠道版本的测试关联库,获得所述第一差异代码所属函数对应的第一测试用例,其中,所述渠道版本的测试关联库包括所述渠道版本中各函数对应的测试用例;

执行所述第一测试用例,得到所述渠道版本的测试结果。

在一种可能的实现方式中,所述对所述第一差异代码进行测试,得到所述渠道版本的测试结果之后,还包括:

若所述渠道版本的测试结果为不通过,则对所述渠道版本的代码进行更新,并返回执行所述根据渠道版本的更新前和更新后的代码,获得所述渠道版本的差异代码的步骤。

在一种可能的实现方式中,所述根据主线版本的更新前和更新后的代码,获得所述主线版本的差异代码,包括:

更新所述主线版本的代码;

根据本次更新前后所述主线版本的代码,确定本次更新的差异代码;

对本次更新的差异代码进行测试,若所述主线版本的测试结果为通过,则将本次更新的差异代码作为所述主线版本的差异代码。

在一种可能的实现方式中,所述对本次更新的差异代码进行测试,包括:

依据本次更新的差异代码,分析获得所述本次更新的差异代码所属函数;

查询所述主线版本的测试关联库,获得所述本次更新的差异代码所属函数对应的第二测试用例,其中,所述主线版本的测试关联库包括所述主线版本中各函数对应的测试用例;

执行所述第二测试用例,得到所述主线版本的测试结果。

在一种可能的实现方式中,所述方法还包括:

若主线版本的测试结果为不通过,则返回执行所述更新所述主线版本的代码的步骤。

第二方面,本申请提供一种测试装置,所述装置包括:

第一获取单元,用于根据主线版本的更新前和更新后的代码,获得所述主线版本的差异代码;

第二获取单元,用于根据渠道版本的更新前和更新后的代码,获得所述渠道版本的差异代码;

第三获取单元,用于获取所述主线版本的差异代码和所述渠道版本的差异代码之间的第一差异代码;

测试单元,用于对所述第一差异代码进行测试,得到所述渠道版本的测试结果。

在一种可能的实现方式中,所述测试单元,包括:

分析模块,用于依据所述第一差异代码,分析获得所述第一差异代码所属函数;

获取模块,用于查询所述渠道版本的测试关联库,获得所述第一差异代码所属函数对应的第一测试用例,其中,所述渠道版本的测试关联库包括所述渠道版本中各函数对应的测试用例;

第一测试模块,用于执行所述第一测试用例,得到所述渠道版本的测试结果。

在一种可能的实现方式中,所述装置,还包括:

第一返回执行单元,用于在测试单元对所述第一差异代码进行测试,得到所述渠道版本的测试结果之后,若所述渠道版本的测试结果为不通过,则对所述渠道版本的代码进行更新,并返回执行所述根据渠道版本的更新前和更新后的代码,获得所述渠道版本的差异代码的步骤。

在一种可能的实现方式中,所述第一获取单元,包括:

更新模块,用于更新所述主线版本的代码;

确定模块,用于根据本次更新前后所述主线版本的代码,确定本次更新的差异代码;

第二测试模块,用于对本次更新的差异代码进行测试,若所述主线版本的测试结果为通过,则将本次更新的差异代码作为所述主线版本的差异代码。

在一种可能的实现方式中,第二测试模块具体用于:

依据本次更新的差异代码,分析获得所述本次更新的差异代码所属函数;

查询所述主线版本的测试关联库,获得所述本次更新的差异代码所属函数对应的第二测试用例,其中,所述主线版本的测试关联库包括所述主线版本中各函数对应的测试用例;

执行所述第二测试用例,得到所述主线版本的测试结果。

在一种可能的实现方式中,所述装置还包括:

第二返回执行模块,用于若主线版本的测试结果为不通过,则返回执行所述更新所述主线版本的代码的步骤。

第三方面,本申请提供一种电子设备,包括:存储器,处理器;

存储器;用于存储所述处理器可执行指令的存储器;

其中,所述处理器,用于根据所述可执行指令执行如第一方面任一项所述的方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法。

第五方面,本申请一种计算机程序产品,所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如第一方面中任一项所述的方法。

本申请提供的测试方法、测试装置、电子设备及存储介质,通过根据主线版本的更新前和更新后的代码,获得主线版本的差异代码;根据渠道版本的更新前和更新后的代码,获得渠道版本的差异代码;获取主线版本的差异代码和渠道版本的差异代码之间的第一差异代码;对第一差异代码进行测试,得到渠道版本的测试结果。通过,上述方法,在对渠道版本的代码进行测试时,仅需要对主线版本的差异代码以及渠道版本的差异代码之间的第一差异代码进行测试,避免了主线版本代码与渠道版本代码之间的重复性测试,减少了测试所用时间。

附图说明

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

图1为本申请提供的一种应用场景示意图;

图2为本申请实施例提供的第一种测试方法的流程示意图;

图3为本申请实施例提供的第二种测试方法的流程示意图;

图4为本申请实施例提供的第三种测试方法的流程示意图;

图5为本申请实施例提供的第四种测试方法的流程示意图;

图6为本申请实施例提供的第五种测试方法的流程示意图;

图7为本申请实施例提供一种测试装置的结构示意图;

图8为本申请实施例提供的又一种测试装置的结构示意图;

图9为本申请实施例中提供的一种电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

目前,在移动应用项目的开发过程中,通常会包括有不同的分支版本,例如主线版本以及渠道版本,其中,渠道版本是依据不同厂商的需求在主线版本的基础上个性化定制的版本,渠道版本与主线版本在功能上大部分是相同的,但是也存在有部分差异。例如,在对手机APP(应用程序,Application)进行开发时,APP的开发公司为了对APP进行大范围的推广,通常会选在大量的推广渠道(如,各手机的应用市场、应用宝等)进行版本发布和更新,同时为了满足各手机厂商的个性化需求,(例如,使得APP更加贴合手机厂商的操作习惯、操作界面、界面风格等)开发者会在该手机应用程序的主线版本的基础上对主线版本的代码进行修改,使得手机应用程序可以是适配于不同的手机厂商。如图1为本申请提供的一种应用场景示意图。图中包括有开发者,以及厂商1、厂商2、厂商3。开发者在移动应用项目的主线版本的基础上,对3个厂商分别提供各自对应的渠道版本移动应用项目代码,即渠道版本1、渠道版本2、渠道版本3。

然而,当需要在主线版本以及渠道版本上对同一功能进行修改、添加或删除时,由于主线版本与渠道版本分别适配于不同的厂商,因此,即使主线版本以及渠道版本变换的功能相同,二者在底层修改的代码也会存在差异,故需要对变化后的主线版本以及渠道版本代码均需要进行测试。

现有技术中,在进行测试时,将主线版本的测试与渠道版本的测试区分开,分别对主线版本变化前后的差异代码进行测试,之后,再对渠道版本变化前后的差异代码进行测试。

然而,采用上述方法进行测试时,由于主线版本的差异代码与渠道版本的差异代码之间存在既有相同的部分又存在一定的差异,因此,在主线版本上测试过的代码在渠道版本上会再次测试,增加了测试时间。

本申请提供的测试方法、测试装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图2为本申请实施例提供的第一种测试方法的流程示意图。如图2所示,该方法包括:

S101、根据主线版本的更新前和更新后的代码,获得主线版本的差异代码。

示例性地,在测试人员对主线版本的测试完成之后,当需要对渠道版本的代码进行测试时,首先可以获取主线版本在更新前后的代码,得到主线版本更新前后的差异代码。可选的,在获取主线版本的代码时,可以采用常用的代码管理工具git,通过git工具中的git pull指令,获取更新后的主线版本的测试代码,并依据管理工具中的git dif指令,确定主线版本的差异代码。

S102、根据渠道版本的更新前和更新后的代码,获得渠道版本的差异代码。

示例性地,在获取到主线版本的差异代码之后,继续获取渠道版本更新前和更新后的代码,以获取渠道版本的差异代码。可选的,在获取渠道版本的代码时,可以采用常用的代码管理工具git,通过git工具中的git pull指令,获取更新后的渠道版本的测试代码,并依据管理工具中的git dif指令,确定渠道版本的差异代码。

S103、获取主线版本的差异代码和渠道版本的差异代码之间的第一差异代码。

示例性地,依据获取主线版本的差异代码以及渠道版本的差异代码,得到二者之间地第一差异代码。举例来说,主线版本更新前和更新后的代码分别用Z1、Z2表示,主线版本的差异代码为Z;渠道版本更新前和更新后的代码分别用Q1、Q2表示,渠道版本的差异代码为Q;继续获取差异代码Z与差异代码Q之间的差异代码,即继续获取第一差异代码。

S104、对第一差异代码进行测试,得到渠道版本的测试结果。

示例性地,在获取到第一差异代码之后,对第一差异代码进行测试,从而得到渠道版的测试结果。具体的,在对第一差异代码进行测试时,可以依据第一差异代码选取第一差异代码对应的渠道版本的测试用例,进而执行第一差异代码对应的测试用例,已得到渠道版本的测试结果。

本申请中,在对渠道版本进行测试时,会在渠道版本的差异代码中去除与主线版本的差异代码中的相同的代码部分,以得到第一差异代码。进而,仅需要对第一差异代码进行测试,减少的测试的工作量,降低测试所需时间。

一种可能的实施方式中,在对第一差异代码进行测试时(即,在执行步骤S104时),可以采用如图3所示的方法。图3为本申请实施例提供的第二种测试方法的流程示意图。如图3所示,该方法包括:

S1041、依据第一差异代码,分析获得第一差异代码所属函数;

S1042、查询渠道版本的测试关联库,获得第一差异代码所属函数对应的第一测试用例,其中,渠道版本的测试关联库包括渠道版本中各函数对应的测试用例;

S1043、执行第一测试用例,得到渠道版本的测试结果。

示例性地,在对第一差异代码执行测试时,首先可以确定第一差异代码所属函数。之后,在渠道版本的测试关联库中,依据渠道版本中函数与测试用例之间地关系,查找第一差异代码所属函数所对应地第一测试用例。

可选的,渠道版本的测试关联库在每次确定出渠道版本的差异代码之后,都会通过对差异代码进行分析,从而确定是否需要在测试关联库中修改/增加测试用例,或者修改/增加函数与测试用例之间的关系。

可选的,渠道版本的测试关联库中,可以仅仅存放函数与测试用例之间的映射关系,将测试用例存储至另一数据库中,也可以在测试用例关联库中,直接存储测试用例以及测试用例和函数的映射关系。其中,函数与测试用例之间的映射关系可以为一对一,也可以为一对多。

进而,在得到第一测试用例之后,通过执行第一测试用例,得到渠道版本的结果。

本申请中,在第一差异代码进行测试时,可以依据第一差异代码所属函数,以及渠道版本的测试关联库,得到第一测试用例,进而仅对第一测试用例进行测试,提高了测试效率。

图4为本申请实施例提供的第三种测试方法的流程示意图。如图4所示,该方法包括:

S101、根据主线版本的更新前和更新后的代码,获得主线版本的差异代码;

S102、根据渠道版本的更新前和更新后的代码,获得渠道版本的差异代码;

S103、获取主线版本的差异代码和渠道版本的差异代码之间的第一差异代码;

S104、对第一差异代码进行测试,得到渠道版本的测试结果。

示例性地,步骤S101-S104与图2中的步骤S101-S104原理相同,不再赘述。

S105、若渠道版本的测试结果为不通过,则对渠道版本的代码进行更新,并返回执行根据渠道版本的更新前和更新后的代码,获得渠道版本的差异代码的步骤。

示例性地,在得到渠道版本的测试结果之后,若渠道版本的测试结果为不通过,则需要继续更新渠道版本的代码,继续执行步骤S102-S104,不断循环上述过程,测试结果通过。

图5为本申请实施例提供的第四种测试方法的流程示意图。如图5所示,该方法包括:

S201、更新主线版本的代码;

S202、根据本次更新前后主线版本的代码,确定本次更新的差异代码;

S203、对本次更新的差异代码进行测试,若主线版本的测试结果为通过,则将本次更新的差异代码作为主线版本的差异代码。

示例性地,在获取主线版本地差异代码时,首先需要更新主线版本的代码,该步骤可以由开发人员进行代码的更新。之后,测试人员获取本次更新后的代码,与更新前的主线代码进行比较,确定出本次更新的差异代码。之后,在主线版本测试中,对本次更新的差异代码进行测试,当主线版本的测试结果为通过时,则将本次更新的差异代码作为主线版本的差异代码。

一个示例中,若主线版本的测试结果为不通过,则返回执行更新主线版本的代码的步骤,即执行步骤S201。

S204、根据渠道版本的更新前和更新后的代码,获得渠道版本的差异代码;

S205、获取主线版本的差异代码和渠道版本的差异代码之间的第一差异代码;

S206、对第一差异代码进行测试,得到渠道版本的测试结果。

示例性地,步骤S204-S206的原理可以参见图2中的步骤S102-S104,此处不再赘述。

本实施例中,在对渠道版本进行测试时,首先需要对主线版本的代码进行测试。即在对主线版本的代码进行测试时,可以对主线版本更新前后的差异代码进行测试,若测试结果为不通过,则重复执行步骤S201-S203。在主线版本的代码全部测试通过之后,将本次更新后的差异代码作为主线版本的差异代码,并继续对渠道版本进行测试。

一种可能的实施方式中,在对本次更新的差异代码进行测试时(即,在执行步骤S203时),可以采用如图6所示的方法。图6为本申请实施例提供的第五种测试方法的流程示意图。该方法包括:

S2031、依据本次更新的差异代码,分析获得本次更新的差异代码所属函数;

S2032、查询主线版本的测试关联库,获得本次更新的差异代码所属函数对应的第二测试用例,其中,主线版本的测试关联库包括主线版本中各函数对应的测试用例;

S2033、执行第二测试用例,得到主线版本的测试结果。

示例性地,在对本次更新的差异代码执行测试时,首先可以确定本次更新的差异代码所属函数。之后,在主线版本的测试关联库中,依据主线版本中函数与测试用例之间地关系,查找本次更新的差异代码所属函数所对应地第二测试用例。进而,在得到本次更新的测试用例之后,通过执行第二测试用例,得到主线版本的结果。

可选的,主线版本的测试关联库在每次确定出主线版本的差异代码之后,都会通过对差异代码进行分析,从而确定是否需要在主线测试关联库中修改/增加测试用例,或者修改/增加函数与测试用例之间的关系。

可选的,主线版本的测试关联库中,可以仅仅存放函数与测试用例之间的映射关系,将测试用例存储至另一数据库中,也可以在测试用例关联库中,直接存储测试用例以及测试用例和函数的映射关系。其中,函数与测试用例之间的映射关系可以为一对一,也可以为一对多。

本申请中,在本次更新的差异代码进行测试时,可以依据本次更新的差异代码所属函数,以及主线版本的测试关联库,得到第二测试用例,进而实现对主线版本的测试。

图7为本申请实施例提供一种测试装置的结构示意图,如图7所示,该装置包括:

第一获取单元81,用于根据主线版本的更新前和更新后的代码,获得主线版本的差异代码。

第二获取单元82,用于根据渠道版本的更新前和更新后的代码,获得渠道版本的差异代码;

第三获取单元83,用于获取主线版本的差异代码和渠道版本的差异代码之间的第一差异代码;

测试单元84,用于对第一差异代码进行测试,得到渠道版本的测试结果。

本实施例提供的装置,用于实现上述方法提供的技术方案,其实现原理和技术效果类似,不再赘述。

图8为本申请实施例提供的又一种测试装置的结构示意图,如图8所示,在图7所示的装置结构的基础上,该装置包括

在一种可能的实现方式中,测试单元84,包括:

分析模块841,用于依据第一差异代码,分析获得第一差异代码所属函数;

获取模块842,用于查询渠道版本的测试关联库,获得第一差异代码所属函数对应的第一测试用例,其中,渠道版本的测试关联库包括渠道版本中各函数对应的测试用例;

第一测试模块843,用于执行第一测试用例,得到渠道版本的测试结果。

在一种可能的实现方式中,该装置,还包括:

第一返回执行单元85,用于在测试单元84对第一差异代码进行测试,得到渠道版本的测试结果之后,若渠道版本的测试结果为不通过,则对渠道版本的代码进行更新,并返回执行根据渠道版本的更新前和更新后的代码,获得渠道版本的差异代码的步骤。

在一种可能的实现方式中,第一获取单元81,包括:

更新模块811,用于更新主线版本的代码;

确定模块812,用于根据本次更新前后主线版本的代码,确定本次更新的差异代码;

第二测试模块813,用于对本次更新的差异代码进行测试,若主线版本的测试结果为通过,则将本次更新的差异代码作为主线版本的差异代码。

在一种可能的实现方式中,第二测试模块813具体用于:

依据本次更新的差异代码,分析获得本次更新的差异代码所属函数;

查询主线版本的测试关联库,获得本次更新的差异代码所属函数对应的第二测试用例,其中,主线版本的测试关联库包括主线版本中各函数对应的测试用例;

执行第二测试用例,得到主线版本的测试结果。

在一种可能的实现方式中,装置还包括:

第二返回执行模块814,用于若主线版本的测试结果为不通过,则返回执行更新主线版本的代码的步骤。

本实施例提供的装置,用于实现上述方法提供的技术方案,其实现原理和技术效果类似,不再赘述。

图9为本申请实施例中提供的一种电子设备的结构示意图,如图8所示,该电子设备包括:

处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器294中的逻辑指令,以执行上述实施例的方法。

此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。

存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。

本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项的方法。

本申请一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如第一方面中任一项的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

相关技术
  • 电子设备的测试方法、装置、存储介质及电子设备
  • 电子设备振动测试方法、装置、电子设备及存储介质
技术分类

06120113148701