应用程序的测试方法、系统及装置与流程

文档序号:17762211发布日期:2019-05-24 21:47阅读:164来源:国知局
应用程序的测试方法、系统及装置与流程
本发明涉及计算机的
技术领域
,特别涉及一种应用程序的测试方法、系统及装置。
背景技术
:在应用程序(application,简称app)上线之前,需要对app进行测试。目前,采用如下的方式完成对应的自动化测试:使用基于google的开源自动化测试工具selenium对接口或者模块进行测试,在测试步骤执行完后返回测试结果,并将测试结果以报告的形式进行记录。上述测试方法,存在如下缺点:(1)会因为所测试应用模块的不同,进入不同的测试场景,从而导致测试流程很长;(2)微服务系统的app增加多了以后,所需的测试用例成几何数增涨,在测试用例的筛选和维护方面较为耗时;(3)一次执行只能覆盖一种使用场景,不同的使用场景需要多个测试流程来得到相应的测试结果,测试流程较多;(4)每次测试都需要完整执行测试流程中的每一个环节。因而,应用程序的现有测试方法,对每个使用场景的测试都需完整执行一次较为费时的测试流程,且不同的应用场景还需要不同的测试流程,存在测试效率较低的技术问题。技术实现要素:鉴于上述问题,本发明的目的在于提供一种应用程序的测试方法、系统及装置,以缓解传统测试方法测试效率较低的技术问题。第一方面,本发明实施例提供了一种应用程序测试方法,包括:获取多个数据组,其中,每个所述数据组包括一个测试用例和所述测试用例的测试数据,所述测试数据是所述测试用例在历史测试过程中得到的数据;根据所述多个数据组中的多个所述测试数据,从所述多个数据组中的多个所述测试用例中选取目标用例,并通过所述目标用例对所述应用程序进行当前测试;将所述当前测试的执行结果进行保存,以供所述多个数据组中的多个所述测试用例基于所述执行结果进行再次测试。结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,获取多个数据组,包括:从预设表格中,查找所述测试用例的记录单元,其中,所述预设表格是配置为保存多个测试用例相应测试数据的表格;查找所述记录单元中各表格单元的表头参数;依据所述表头参数提取各个所述测试用例的测试数据,以得到多个所述数据组。结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述表头参数包括用例标识和以下至少一种参数:系统标识、模块标识、验证测试的验证步骤、测试的预期结果、所有者、测试的权重信息、测试的执行时间、测试的执行结果。结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述执行结果的参数值包括结束标记,其中,所述结束标记用以标识对应记录单元中的测试用例已完成测试任务。结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,获取多个数据组,包括:将所述测试数据以文件的方式加入到测试队列中,且所述测试数据在所述文件中以表格的形式被保存,其中,一个所述文件对应一个所述测试数据。结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述表格中记录的测试用例的信息包括:用例编号、系统标识、模块标识、测试的权重信息、测试的执行时间、测试的结果信息。结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,获取多个数据组,包括:在所述历史测试过程中,设置多个数据埋点;通过所述数据埋点采集所述历史测试过程所用当前用例的测试原始数据,其中,所述当前用例为所述测试用例中的任一个用例;判断所述测试原始数据中是否有埋点信息;在所述测试原始数据中没有埋点信息的情况下,获取所述测试原始数据,以将所述测试原始数据确定为所述数据组。结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,根据所述测试数据,从多个所述测试用例中选取目标用例,并通过所述目标用例对应用程序进行当前测试,包括:从所述测试数据中提取初始权重信息和初始结果信息,并循环执行迭代步骤,直到完成所述当前测试,其中,所述迭代步骤包括:第一确定步骤,包括:基于所述初始权重信息确定所述目标用例;测试步骤,包括:通过所述目标用例对所述应用程序进行测试,得到当前执行结果,并根据所述当前执行结果和所述测试数据确定当前权重信息;第二确定步骤,包括:将所述当前权重信息确定为所述初始权重信息。结合第一方面的第七种可能的实施方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述测试步骤和用例编号、测试账号均一一对应。结合第一方面的第八种可能的实施方式,本发明实施例提供了第一方面的第九种可能的实施方式,其中,所述测试方法还包括初始步骤,其中,所述初始步骤包括:在所述测试步骤执行之前,随机生成初始账号,直到所述初始账号满足有效条件,其中,所述有效条件为所述初始账号在已执行的所述迭代步骤中未出现;将满足所述有效条件的所述初始账号确定为所述测试账号,以用所述测试账号保存所述测试步骤的测试结果。结合第一方面,本发明实施例提供了第一方面的第十种可能的实施方式,其中,根据所述测试数据,从多个所述测试用例中选取目标用例,并通过所述目标用例对应用程序进行当前测试,包括:确定所述应用程序测试所使用的当前数据;从所述测试数据中,提取所述当前数据的同类型数据;计算所述当前数据和所述同类型数据的差值;利用所述差值,通过sigmoid函数对所述测试用例的权重信息进行修正,得到修正后的权重信息;基于所述修正后的权重信息,选取目标用例,并通过所述目标用例对应用程序进行当前测试。结合第一方面,本发明实施例提供了第一方面的第十一种可能的实施方式,其中,将所述当前测试的执行结果进行保存,包括:将所述当前测试的模块标识,用例编号,用例名称,测试的预期结果、实际结果和运行结果,用例的历史权重和运行权重,以及运行时间通过记录单元的格式进行保存。第二方面,本发明实施例提供了一种应用程序的测试系统,包括:获取模块,用于获取多个数据组,其中,每个所述数据组包括一个测试用例和所述测试用例的测试数据,所述测试数据是所述测试用例在历史测试过程中得到的数据;测试模块,用于根据所述多个数据组中的多个所述测试数据,从所述多个数据组中的多个所述测试用例中选取目标用例,并通过所述目标用例对所述应用程序进行当前测试;保存模块,用于将所述当前测试的执行结果进行保存,以供所述多个数据组中的多个所述测试用例基于所述执行结果进行再次测试。结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述获取模块用于:从预设表格中,查找所述测试用例的记录单元,其中,所述预设表格是配置为保存多个测试用例相应测试数据的表格;查找所述记录单元中各表格单元的表头参数;依据所述表头参数提取各个所述测试用例的测试数据,以得到多个所述数据组。结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述表头参数包括用例标识和以下至少一种参数:系统标识、模块标识、验证测试的验证步骤、测试的预期结果、所有者、测试的权重信息、测试的执行时间、测试的执行结果。结合第二方面的第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述执行结果的参数值包括结束标记,其中,所述结束标记用以标识对应记录单元中的测试用例已完成测试任务。结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述获取模块用于:将所述测试数据以文件的方式加入到测试队列中,且所述测试数据在所述文件中以表格的形式被保存,其中,一个所述文件对应一个所述测试数据。结合第二方面的第四种可能的实施方式,本发明实施例提供了第二方面的第五种可能的实施方式,其中,所述表格中记录的测试用例的信息包括:用例编号、系统标识、模块标识、测试的权重信息、测试的执行时间、测试的结果信息。结合第二方面,本发明实施例提供了第二方面的第六种可能的实施方式,其中,所述获取模块用于:在所述历史测试过程中,设置多个数据埋点;通过所述数据埋点采集所述历史测试过程所用当前用例的测试原始数据,其中,所述当前用例为所述测试用例中的任一个用例;判断所述测试原始数据中是否有埋点信息;在所述测试原始数据中没有埋点信息的情况下,获取所述测试原始数据,以将所述测试原始数据确定为所述数据组。结合第二方面,本发明实施例提供了第二方面的第七种可能的实施方式,其中,所述测试模块用于:从所述测试数据中提取初始权重信息和初始结果信息,并循环执行迭代步骤,直到完成所述当前测试,其中,所述迭代步骤包括:第一确定步骤,包括:基于所述初始权重信息确定所述目标用例;测试步骤,包括:通过所述目标用例对所述应用程序进行测试,得到当前执行结果,并根据所述当前执行结果和所述测试数据确定当前权重信息;第二确定步骤,包括:将所述当前权重信息确定为所述初始权重信息。结合第二方面的第七种可能的实施方式,本发明实施例提供了第二方面的第八种可能的实施方式,其中,所述测试步骤和用例编号、测试账号均一一对应。结合第二方面的第八种可能的实施方式,本发明实施例提供了第二方面的第九种可能的实施方式,其中,所述测试模块还用于:在所述测试步骤执行之前,随机生成初始账号,直到所述初始账号满足有效条件,其中,所述有效条件为所述初始账号在已执行的所述迭代步骤中未出现;将满足所述有效条件的所述初始账号确定为所述测试账号,以用所述测试账号保存所述测试步骤的测试结果。结合第二方面,本发明实施例提供了第二方面的第十种可能的实施方式,其中,所述测试模块用于:确定所述应用程序测试所使用的当前数据;从所述测试数据中,提取所述当前数据的同类型数据;计算所述当前数据和所述同类型数据的差值;利用所述差值,通过sigmoid函数对所述测试用例的权重信息进行修正,得到修正后的权重信息;基于所述修正后的权重信息,选取目标用例,并通过所述目标用例对应用程序进行当前测试。结合第二方面,本发明实施例提供了第二方面的第十一种可能的实施方式,其中,所述保存模块用于:将所述当前测试的模块标识,用例编号,用例名称,测试的预期结果、实际结果和运行结果,用例的历史权重和运行权重,以及运行时间通过记录单元的格式进行保存。第三方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被执行时实现如第一方面的应用程序的测试方法。第四方面,本发明实施例提供了一种应用程序的测试装置,包括:存储器,用于存储计算机指令;处理器,耦合到存储器,处理器被配置为基于存储器存储的计算机指令执行实现如第一方面的应用程序的测试方法。本发明实施例带来了以下有益效果:本发明实施例提供的应用程序的测试方法,包括:获取多个数据组,其中,每个数据组包括一个测试用例和测试用例的测试数据,测试数据是测试用例在历史测试过程中得到的数据;根据多个数据组中的多个测试数据,从多个数据组中的多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试;将当前测试的执行结果进行保存,以供多个数据组中的多个测试用例基于执行结果进行再次测试。本发明实施例提供的应用程序的测试方法,将当前测试的执行结果进行保存,而在当前测试的执行过程中用到的测试数据是测试用例在历史测试过程中得到的数据,从而有效利用了历史测试过程中得到的数据,当前测试无需完全重复历史测试过程中的诸多步骤,即,当前测试并不需要完整执行测试流程中的每一个环节,从而缩减了测试环节,缓解了传统测试方法测试效率较低的技术问题。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:图1为本发明实施例一提供的一种应用程序的测试方法流程图;图2为可执行测试用例的选择流程图;图3所示为本发明实施例一提供的一种迭代步骤的方法流程图;图4所示为本发明实施例一提供的一种初始步骤的方法流程图;图5所示为本发明实施例二提供的一种应用程序的测试系统的结构框图;图6所示为本发明实施例四提供的一种应用程序的测试装置的结构框图。图标:100-获取模块;200-测试模块;300-保存模块;601-存储器;602-处理器;603-输入输出设备。具体实施方式以下将参照附图更详细地描述本发明的各种实施例。在各个附图中,相同的元件采用相同或类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。实施例一本发明实施例提供的一种应用程序的测试方法,如图1所示,包括:步骤s102,获取多个数据组,其中,每个数据组包括一个测试用例和测试用例的测试数据,测试数据是测试用例在历史测试过程中得到的数据;步骤s104,根据多个数据组中的多个测试数据,从多个数据组中的多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试;步骤s106,将当前测试的执行结果进行保存,以供多个数据组中的多个测试用例基于执行结果进行再次测试。本发明实施例提供的应用程序的测试方法,将当前测试的执行结果进行保存,而在当前测试的执行过程中用到的测试数据是测试用例在历史测试过程中得到的数据,从而有效利用了历史测试过程中得到的数据,当前测试无需完全重复历史测试过程中的诸多步骤,即,当前测试并不需要完整执行测试流程中的每一个环节,从而缩减了测试环节,缓解了传统测试方法测试效率较低的技术问题。下面从不同角度对步骤s102,获取多个数据组,进行介绍:(一)从多个数据组存储方的角度本发明实施例的一个可选实施方式中,步骤s102,获取多个数据组,包括:从预设表格中,查找测试用例的记录单元,其中,预设表格是配置为保存多个测试用例相应测试数据的表格;查找记录单元中各表格单元的表头参数;依据表头参数提取各个测试用例的测试数据,以得到多个数据组。需要说明的是,记录单元可以是表格中的行,也可以是表格中的列,这里不作具体限定。以记录单元为表格中的行为例,表头参数可以设置在表格的首行,那么一行表格用于记录一条测试用例,一列表格用于记录一类测试数据。本发明实施例中,存储方以表格方式保存测试数据,且预设表格设有表头参数,有利于对大量测试用例的测试数据进行保存和管理,从这样的预设表格中获取多个数据组,获取更加便利且快捷。针对微服务系统app增加导致的测试用例的增涨,本发明实施例有效地为测试用例的筛选和维护节省了时间,提高了应用程序的测试效率。本发明实施例的另一个可选实施方式中,表头参数包括用例标识和以下至少一种参数:系统标识、模块标识、验证测试的验证步骤、测试的预期结果、所有者、测试的权重信息、测试的执行时间、测试的执行结果。具体地,用例标识可以采用编号。在用例标识采用编号的情况下,包括表头参数的表格可以采用如下的形式:编号系统标识模块标识用例名验证步骤预期结果所有者权重信息执行时间执行结果该形式下的预设表格例如有如下所示的存储情况:本发明实施例中,预设表格对测试用例的测试信息进行了较全面的记录,便于应用程序测试中提取到所需的测试数据。目前公司往往存在多个系统,各个系统中又存在多个微服务应用程序(application,简称app),各个微服务app又会存在多个待测试模块,从而和测试模块相应的测试用例也比较多。本发明实施例的另一个可选实施方式中,执行结果的参数值包括结束标记,其中,结束标记用以标识对应记录单元中的测试用例已完成测试任务。本发明实施例中,执行结果的参数值包括结束标记,有利于将已完成测试任务的测试用例标记出来,利于测试用例的精准管理。(二)从多个数据组获取方的角度本发明实施例的另一个可选实施方式中,步骤s102,获取多个数据组,包括:将测试数据以文件的方式加入到测试队列中,且测试数据在文件中以表格的形式被保存,其中,一个文件对应一个测试数据。需要说明的是,一个文件对应一个测试数据,而测试数据和测试用例一一对应,即,文件和测试用例一一对应。本发明实施例中,文件和测试用例一一对应,且测试数据在文件中以表格的形式被保存,即,获取方将测试数据以文件和表格相结合的方式加入到测试队列,测试队列向当前测试过程输出的数据条理且混效率低,有利于提升当前测试的测试效率,提高当前测试的质量。本发明实施例的另一个可选实施方式中,表格中记录的测试用例的信息包括:用例编号、系统标识、模块标识、测试的权重信息、测试的执行时间、测试的结果信息。具体地,图2所示为可执行测试用例的选择流程图,可执行测试用例的选择主要基于各个测试用例的权重信息(如图2中所标记的w1,w2,......,wn)。如图2所示,可执行测试用例的选择过程,是基于所有测试用例(图2所示的编号1到编号n的测试用例)开始层层进行的,选择可执行测试用例的过程中需要用到大量的计算过程来得出权重信息。计算过程中会不断使用用例编号、系统标识、模块标识、测试的权重信息、测试的执行时间、测试的结果信息。本发明实施例中,测试数据在文件中以表格的形式被保存,表格中记录的测试用例的信息包括了用例编号、系统标识、模块标识、测试的权重信息、测试的执行时间、测试的结果信息,方便选择可执行测试用例的计算使用。(三)从多个数据组初始获取过程的角度本发明实施例的另一个可选实施方式中,步骤s102,获取多个数据组,包括:在历史测试过程中,设置多个数据埋点;通过数据埋点采集历史测试过程所用当前用例的测试原始数据,其中,当前用例为测试用例中的任一个用例;判断测试原始数据中是否有埋点信息;在测试原始数据中没有埋点信息的情况下,获取测试原始数据,以将测试原始数据确定为数据组。需要说明的是,在测试原始数据中有埋点信息的情况下,是不获取测试原始数据的。具体地,在多个数据组的初始获取过程中,为了加快对多个数据组的获取,减少对测试数据记录报表记录效率和条理性的影响,必须要增加数据埋点。而数据埋点增加多了,容易产生报表脏数据。本发明实施例通过判断测试原始数据中是否有埋点信息,有利于使得获取到的多个数据组中不包括报表脏数据。本发明实施例的另一个可选实施方式中,步骤s104,根据测试数据,从多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试,包括:从测试数据中提取初始权重信息和初始结果信息,并循环执行迭代步骤,直到完成当前测试。需要说明的是,第一次迭代步骤的执行通常全量执行测试用例,因而,各个测试用例在第一次执行时的权重信息(即,初始权重信息)通常为一个表示测试用例被无条件执行的权重。例如,假设权重大于0.8的情况下表示测试用例被无条件执行,则各个测试用例的初始权重信息为一个大于0.8小于1的权重。其中,如图3所示,迭代步骤包括:步骤s301,第一确定步骤,包括:基于初始权重信息确定目标用例。具体地,可以是初始权重大于预设权重的测试用例,皆为目标用例。步骤s302,测试步骤,包括:通过目标用例对应用程序进行测试,得到当前执行结果,并根据当前执行结果和测试数据确定当前权重信息。具体地,根据当前执行结果确定当前权重信息,可以按照以下步骤执行:判断当前执行结果为正确还是失败;在当前执行结果为正确的情况下,从测试数据中提取系统标识、模块标识和用例编号,并根据当前执行结果、系统标识、模块标识和用例编号计算得到更新权重信息。然后,将更新权重信息和初始权重信息进行比较,其中,若更新权重信息大于初始权重信息,则将更新权重信息丢弃,将初始权重信息确认为当前权重信息;若更新权重信息小于初始权重信息,则将更新权重信息确认为当前权重信息。在当前执行结果为失败的情况下,将当前执行结果为失败的测试用例的初始权重进行自动增加,得到当前权重信息,以确保最后将所有当前执行结果为失败的测试用例筛选出来,使得下一次迭代优先使用筛选出来的这些测试用例进行测试。步骤s303,第二确定步骤,包括:将当前权重信息确定为初始权重信息。具体地,即,使用当前权重信息更新了初始权重信息,使得初始权重信息的数值为当前权重信息的数值。本发明实施例,通过迭代步骤实现了对应用程序全自动化的无人测试,有利于提升测试的效率。本发明实施例的另一个可选实施方式中,测试步骤和用例编号、测试账号均一一对应。需要说明的是,测试步骤和用例编号、测试账号均一一对应,即,一个测试步骤中只用到一个用例编号和一个测试账号,来实现通过一个目标用例对应用程序进行测试的目的。本发明实施例中,测试步骤和用例编号、测试账号均一一对应,有利于减少测试垃圾数据的产生。本发明实施例的另一个可选实施方式中,应用程序的测试方法还包括初始步骤,如图4所示,初始步骤包括:步骤s401,在测试步骤执行之前,随机生成初始账号,直到初始账号满足有效条件,其中,有效条件为初始账号在已执行的迭代步骤中未出现。具体地,在测试步骤执行之前,随机生成初始账号,然后判断初始账号是否满足有效条件,其中,在初始账号不满足有效条件的情况下,再次随机生成初始账号;而在初始账号满足有效条件的情况下,不再随机生成初始账号。步骤s402,将满足有效条件的初始账号确定为测试账号,以用测试账号保存测试步骤的测试结果。本发明实施例中,通过步骤s401对初始账号是否满足有效条件进行验证性判断,使得测试账号在当前测试的所有迭代过程中只出现一次,保证了当前测试测试结果的正确与测试环境的干净。目前,用户需求在不断改变,同一个应用程序会随着用户需求的改变而替换部分模块,即,应用程序更新换代的需求带来了应用程序部分模块的改变。本发明实施例的另一个可选实施方式中,步骤s104,根据测试数据,从多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试,包括:确定应用程序测试所使用的当前数据;从测试数据中,提取当前数据的同类型数据;计算当前数据和同类型数据的差值;利用差值,通过sigmoid函数对测试用例的权重信息进行修正,得到修正后的权重信息;基于修正后的权重信息,选取目标用例,并通过目标用例对应用程序进行当前测试。具体地,在差值为零时,则修正值为零;在差值不为零时,修正值不为零。例如,当前测试中,应用程序的一模块测试所使用的当前数据包括:系统标识a、模块信息b、测试用例的权重c、用例编号d、运行时间信息e,则从测试数据中提取该模块被替换前模块的系统标识a’、模块信息b’、测试用例的权重c’、用例编号d’、运行时间信息e’。然后,利用(a-a’)、(b-b’)、(c-c’)、(d-d’)、(e-e’),通过sigmoid函数(生物学中常见的s型函数,也称为s型生长曲线)对测试用例的权重信息进行修正,得到修正后的权重信息。本发明实施例中,在应用程序替换了部分模块后,只需根据上述差值即可得到修正后的权重信息,无需完全重新执行权重信息的计算步骤,有效避免了大量计算流程,缩减了计算时间,提高了应用程序的测试效率。本发明实施例的另一个可选实施方式中,步骤s106,将当前测试的执行结果进行保存,包括:将当前测试的模块标识,用例编号,用例名称,测试的预期结果、实际结果和运行结果,用例的历史权重和运行权重,以及运行时间通过记录单元的格式进行保存。具体地,可以采用如下所示表头的表格进行当前测试执行结果的保存:模块标识用例编号用例名称预期结果实际结果运行结果历史权重运行权重运行时间由于应用程序会用于不同的使用场景,也会因需求对应用程序内不同的模块进行测试,本发明实施例中,将当前测试执行结果中的各种信息进行保存,便于研发人员根据当前应用程序的应用场景和测试场景,通过阅读保存的执行结果进行针对性分析,无需因应用场景或测试场景的不同而进行多次测试,有利于提高应用程序的测试效率。实施例二本发明实施例提供的一种应用程序的测试系统,如图5所示,包括:获取模块100,用于获取多个数据组,其中,每个数据组包括一个测试用例和测试用例的测试数据,测试数据是测试用例在历史测试过程中得到的数据;测试模块200,用于根据多个数据组中的多个测试数据,从多个数据组中的多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试;保存模块300,用于将当前测试的执行结果进行保存,以供多个数据组中的多个测试用例基于执行结果进行再次测试。在本发明实施例中,获取模块100获取多个数据组;测试模块200根据测试数据,从多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试;保存模块300将当前测试的执行结果进行保存,以供测试用例基于执行结果进行再次测试。本发明实施例提供的应用程序的测试系统,将当前测试的执行结果进行保存,而在当前测试的执行过程中用到的测试数据是测试用例在历史测试过程中得到的数据,从而有效利用了历史测试过程中得到的数据,当前测试无需完全重复历史测试过程中的诸多步骤,即,当前测试并不需要完整执行测试流程中的每一个环节,从而缩减了测试环节,缓解了传统测试方法测试效率较低的技术问题。本发明实施例的一个可选实施方式中,获取模块用于:从预设表格中,查找测试用例的记录单元,其中,预设表格是配置为保存多个测试用例相应测试数据的表格;查找记录单元中各表格单元的表头参数;依据表头参数提取各个测试用例的测试数据,以得到多个数据组。本发明实施例的另一个可选实施方式中,表头参数包括用例标识和以下至少一种参数:系统标识、模块标识、验证测试的验证步骤、测试的预期结果、所有者、测试的权重信息、测试的执行时间、测试的执行结果。本发明实施例的另一个可选实施方式中,执行结果的参数值包括结束标记,其中,结束标记用以标识对应记录单元中的测试用例已完成测试任务。本发明实施例的另一个可选实施方式中,获取模块用于:将测试数据以文件的方式加入到测试队列中,且测试数据在文件中以表格的形式被保存,其中,一个文件对应一个测试数据。本发明实施例的另一个可选实施方式中,表格中记录的测试用例的信息包括:用例编号、系统标识、模块标识、测试的权重信息、测试的执行时间、测试的结果信息。本发明实施例的另一个可选实施方式中,获取模块用于:在历史测试过程中,设置多个数据埋点;通过数据埋点采集历史测试过程所用当前用例的测试原始数据,其中,当前用例为测试用例中的任一个用例;判断测试原始数据中是否有埋点信息;在测试原始数据中没有埋点信息的情况下,获取测试原始数据,以将测试原始数据确定为数据组。本发明实施例的另一个可选实施方式中,测试模块用于:从测试数据中提取初始权重信息和初始结果信息,并循环执行迭代步骤,直到完成当前测试,其中,迭代步骤包括:第一确定步骤,包括:基于初始权重信息确定目标用例;测试步骤,包括:通过目标用例对应用程序进行测试,得到当前执行结果,并根据所述当前执行结果和所述测试数据确定当前权重信息;第二确定步骤,包括:将当前权重信息确定为初始权重信息。本发明实施例的另一个可选实施方式中,测试步骤和用例编号、测试账号均一一对应。本发明实施例的另一个可选实施方式中,测试模块还用于:在测试步骤执行之前,随机生成初始账号,直到初始账号满足有效条件,其中,有效条件为初始账号在已执行的迭代步骤中未出现;将满足有效条件的初始账号确定为测试账号,以用测试账号保存测试步骤的测试结果。本发明实施例的另一个可选实施方式中,测试模块用于:确定应用程序测试所使用的当前数据;从测试数据中,提取当前数据的同类型数据;计算当前数据和同类型数据的差值;利用差值,通过sigmoid函数对测试用例的权重信息进行修正,得到修正后的权重信息;基于修正后的权重信息,选取目标用例,并通过目标用例对应用程序进行当前测试。本发明实施例的另一个可选实施方式中,保存模块用于:将当前测试的模块标识,用例编号,用例名称,测试的预期结果、实际结果和运行结果,用例的历史权重和运行权重,以及运行时间通过记录单元的格式进行保存。实施例三本发明实施例提供的一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被执行时实现实施例一的应用程序的测试方法。具体地,可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。在本发明实施例提供的计算机指令被执行时实现实施例一的应用程序的测试方法,具体地,获取多个数据组,其中,每个数据组包括一个测试用例和测试用例的测试数据,测试数据是测试用例在历史测试过程中得到的数据;根据多个数据组中的多个测试数据,从多个数据组中的多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试;将当前测试的执行结果进行保存,以供多个数据组中的多个测试用例基于执行结果进行再次测试。该测试方法中,将当前测试的执行结果进行保存,而在当前测试的执行过程中用到的测试数据是测试用例在历史测试过程中得到的数据,从而有效利用了历史测试过程中得到的数据,当前测试无需完全重复历史测试过程中的诸多步骤,即,当前测试并不需要完整执行测试流程中的每一个环节,从而缩减了测试环节,缓解了传统测试方法测试效率较低的技术问题。实施例四本发明实施例提供的一种应用程序的测试装置,如图6所示,包括:存储器601,用于存储计算机指令;处理器602,耦合到存储器601,处理器602被配置为基于存储器601存储的计算机指令执行实现实施例一的应用程序的测试方法。具体地,存储器601、处理器602可以通过总线和输入输出设备603连接,存储器601内存储有执行系统功能所需的各种计算机指令和数据,处理器602从存储器601中读取各种计算机指令以执行各种适当的动作和处理。输入输出设备603包括键盘、鼠标等的输入部分;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。存储器601还存储有以下的计算机指令以完成实施例一的应用程序的测试方法所规定操作:获取多个数据组,其中,每个数据组包括一个测试用例和测试用例的测试数据,测试数据是测试用例在历史测试过程中得到的数据;根据多个数据组中的多个测试数据,从多个数据组中的多个测试用例中选取目标用例,并通过目标用例对应用程序进行当前测试;将当前测试的执行结果进行保存,以供多个数据组中的多个测试用例基于执行结果进行再次测试。在本发明实施例提供的应用程序的测试装置,在执行实施例一的应用程序的测试方法中,将当前测试的执行结果进行保存,而在当前测试的执行过程中用到的测试数据是测试用例在历史测试过程中得到的数据,从而有效利用了历史测试过程中得到的数据,当前测试无需完全重复历史测试过程中的诸多步骤,即,当前测试并不需要完整执行测试流程中的每一个环节,从而缩减了测试环节,缓解了传统测试方法测试效率较低的技术问题。。附图中的流程图、框图示出了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用java、c/c++/c#、sql等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。根据本发明的系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过internet连接的多个pc机、pc服务器、刀片机、超级计算机等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1