组件升级方法及装置与流程

文档序号:19043144发布日期:2019-11-05 23:21阅读:231来源:国知局
组件升级方法及装置与流程

本发明涉及计算机技术领域,特别涉及一种组件升级方法及装置。



背景技术:

在计算机技术领域,组件为用于实现某种功能的应用。为了满足用户使用需求,终端中安装有多种组件,例如,多媒体播放组件、网页浏览组件、通信组件、传感器组件等。在对这些组件进行管理时,经常会涉及到升级问题。

现有技术对组件进行升级时,主要采用如下方式:从待升级组件对应的用户中选取部分用户作为测试用户,将待升级组件升级包推送至每个测试用户;获取每个已升级测试用户的组件运行数据,并根据多个已升级测试用户的组件运行数据,判断待升级组件升级包是否能够稳定运行;如果待升级组件升级包不能稳定运行,则停止对待升级组件进行升级,如果待升级组件升级包能够稳定运行,则将待升级组件升级包推送至每个未升级用户。

然而,由于将待升级组件升级包一次性推送给每个测试用户,当确定待升级组件不能稳定运行时,每个测试用户可能已完成了对待升级组件的升级,导致用户升级体验效果不佳,因此,现有的组件升级方式不够合理。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种组件升级方法及装置。所述技术方案如下:

一方面,提供了一种组件升级方法,所述方法包括:

将待升级组件升级包发送至M个测试用户;

获取N个已升级测试用户的组件运行数据;

根据所述N个已升级测试用户的组件运行数据,判断所述待升级组件升级包是否能够稳定运行;

如果所述待升级组件升级包能够稳定运行,则逐步增加测试用户的数量,直至获取到S个已升级测试用户的组件运行数据;

当根据所述S个已升级测试用户的组件运行数据确定所述待升级组件升级包能够稳定运行时,将所述待升级组件升级包发送至每个未升级用户;

其中,S大于等于M,M大于等于N。

在本发明的另一个实施例中,所述方法还包括:

在所述待升级组件升级包的开发过程中,采用CI(Continuous Integration,持续集成)工具对所述待升级组件升级包的各个用例进行集成;

运行集成后的各个用例,得到多个运行结果;

如果所述多个运行结果均表明每个用例正常运行,则将所述集成后的各个用例确定为所述待升级组件升级包。

在本发明的另一个实施例中,所述根据所述N个已升级测试用户的组件运行数据,判断所述待升级组件升级包是否能够稳定运行,包括:

根据所述N个已升级测试用户的组件运行数据,计算所述待升级组件升级包的崩溃率和核心功能失败率;

将所述崩溃率与第一阈值进行比较,并将所述核心功能失败率与第二阈值进行比较;

如果所述崩溃率小于所述第一阈值,且所述核心功能失败率小于所述第二阈值,则确定所述待升级组件升级包能够稳定运行。

在本发明的另一个实施例中,所述方法还包括:

如果所述待升级组件升级包不能稳定运行,则停止对所述待升级组件进行升级。

在本发明的另一个实施例中,所述逐步增加测试用户的数量之前,还包括:

判断已升级测试用户的数量N是否等于S;

如果已升级测试用户的数量N小于S,则判断已升级测试用户的数量N是否等于M;

如果已升级测试用户的数量N等于M,则执行所述逐步增加测试用户的数量的步骤;

如果已升级测试用户的数量N小于M,则继续获取已升级测试用户的组件运行数据。

另一方面,提供了一种组件升级装置,所述装置包括:

第一发送模块,用于将待升级组件升级包发送至M个测试用户;

获取模块,用于获取N个已升级测试用户的组件运行数据;

第一判断模块,用于根据所述N个已升级测试用户的组件运行数据,判断所述待升级组件升级包是否能够稳定运行;

处理模块,用于当所述待升级组件升级包能够稳定运行时,逐步增加测试用户的数量,直至获取到S个已升级测试用户的组件运行数据;

第二发送模块,用于当根据所述S个已升级测试用户的组件运行数据确定所述待升级组件升级包能够稳定运行时,将所述待升级组件升级包发送至每个未升级用户;

其中,S大于等于M,M大于等于N。

在本发明的另一个实施例中,所述装置还包括:

集成模块,用于在所述待升级组件升级包的开发过程中,采用持续集成CI工具对所述待升级组件升级包的各个用例进行集成;

运行模块,用于运行集成后的各个用例,得到多个运行结果;

确定模块,用于当所述多个运行结果均表明每个用例正常运行时,将所述集成后的各个用例确定为所述待升级组件升级包。

在本发明的另一个实施例中,所述第一判断模块,用于根据所述N个已升级测试用户的组件运行数据,计算所述待升级组件升级包的崩溃率和核心功能失败率;将所述崩溃率与第一阈值进行比较,并将所述核心功能失败率与第二阈值进行比较;当所述崩溃率小于所述第一阈值,且所述核心功能失败率小于所述第二阈值时,确定所述待升级组件升级包能够稳定运行。

在本发明的另一个实施例中,所述装置还包括:

停止模块,用于当所述待升级组件升级包不能稳定运行时,停止对所述待升级组件进行升级。

在本发明的另一个实施例中,所述装置还包括:

第二判断模块,用于判断已升级测试用户的数量N是否等于S;

第三判断模块,用于当已升级测试用户的数量N小于S时,判断已升级测试用户的数量N是否等于M;

所述处理模块,用于当已升级测试用户的数量N等于M时,逐步增加测试用户的数量;

所述获取模块,用于当已升级测试用户的数量N小于M时,继续获取已升级测试用户的组件运行数据。

本发明实施例提供的技术方案带来的有益效果是:

采用阶梯式升级方式对待升级组件进行升级,在每一次升级过程中,通过监测已升级测试用户的组件运行数据,自动判断继续升级还是停止升级,以达到实时监测升级风险的目的,因而升级方式更加合理。

附图说明

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

图1是本发明一个实施例提供的一种组件升级方法的流程图;

图2是本发明另一个实施例提供的一种组件升级方法的流程图;

图3是本发明另一个实施例提供的一种组件升级过程的示意图;

图4是本发明另一个实施例提供的一种组件升级过程的示意图;

图5是本发明另一个实施例提供的一种组件升级装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种组件升级方法,参见图1,本发明实施例提供的方法流程包括:

101、将待升级组件升级包发送至M个测试用户。

102、获取N个已升级测试用户的组件运行数据。

103、根据N个已升级测试用户的组件运行数据,判断待升级组件升级包是否能够稳定运行。

104、如果待升级组件升级包能够稳定运行,则逐步增加测试用户的数量,直至获取到S个已升级测试用户的组件运行数据。

105、当根据S个已升级测试用户的组件运行数据确定待升级组件升级包能够稳定运行时,将待升级组件升级包发送至每个未升级用户。

其中,S大于等于M,M大于等于N。

本发明实施例提供的方法,采用阶梯式升级方式对待升级组件进行升级,在每一次升级过程中,通过监测已升级测试用户的组件运行数据,自动判断继续升级还是停止升级,以达到实时监测升级风险的目的,因而升级方式更加合理。

在本发明的另一个实施例中,该方法还包括:

在待升级组件升级包的开发过程中,采用持续集成CI工具对待升级组件升级包的各个用例进行集成;

运行集成后的各个用例,得到多个运行结果;

如果多个运行结果均表明每个用例正常运行,则将集成后的各个用例确定为待升级组件升级包。

在本发明的另一个实施例中,根据N个已升级测试用户的组件运行数据,判断待升级组件升级包是否能够稳定运行,包括:

根据N个已升级测试用户的组件运行数据,计算待升级组件升级包的崩溃率和核心功能失败率;

将崩溃率与第一阈值进行比较,并将核心功能失败率与第二阈值进行比较;

如果崩溃率小于第一阈值,且核心功能失败率小于第二阈值,则确定待升级组件升级包能够稳定运行。

在本发明的另一个实施例中,该方法还包括:

如果待升级组件升级包不能稳定运行,则停止对待升级组件进行升级。

在本发明的另一个实施例中,逐步增加测试用户的数量之前,还包括:

判断已升级测试用户的数量N是否等于S;

如果已升级测试用户的数量N小于S,则判断已升级测试用户的数量N是否等于M;

如果已升级测试用户的数量N等于M,则执行逐步增加测试用户的数量的步骤;

如果已升级测试用户的数量N小于M,则继续获取已升级测试用户的组件运行数据。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

本发明实施例提供了一种组件升级方法,以服务器执行本发明为例,参见图2,本发明实施例提供的方法流程包括:

201、服务器获取待升级组件升级包。

传统的组件开发模式将待开发组件划分为多个模块,当所有模块的代码都开发完成之后,再集成在一起进行测试,然而,有些模块在开发初期就存在缺陷,在集成阶段需要开发人员花费大量的时间寻找缺陷的根源。为避免出现上述问题,本发明在待升级组件的开发过程中,借助CI工具对待开待组件的各个模块进行集成,在集成阶段发现问题后,对发现的问题及时进行处理,从而确保服务器获取到的待升级组件升级包能够稳定运行。

其中,CI为一种组件开发实践,可以让组件开发人员能够在持续开发的基础上收到反馈,并基于收到的反馈进行改进,从而不必等到开发结束后才寻找和修复缺陷,节省了组件开发时间。CI工具包括CruiseContro、Lhudson、jenkins等,本实施例不对CI工具作具体的限定。

基于CI工具,服务器在获取待升级组件升级包时,可采用如下步骤2011~2013:

2011、在待升级组件升级包的开发过程中,服务器采用CI工具对待升级组件升级包的各个用例进行集成。

为节省组件开发时间,同时减少服务器的处理压力,服务器可采用CI工具每隔预设时长对待升级组件升级包的各个用例进行集成,该预设时长可以1天、2天等,本实施例不对预设时长作具体的限定。

2012、运行集成后的各个用例,服务器得到多个运行结果。

2013、如果多个运行结果均表明每个用例正常运行,则服务器将集成后的各个用例确定为待升级组件升级包。

当任一运行结果表明相应用例不能正常运行,说明该用例存在缺陷,则将停止该部分待升级组件升级包的开发,并由相应的研发人员进行处理;当多个运行结果均表明每个用例能够正常运行,说明每个用例均不存在缺陷,此时继续对待升级组件升级包的开发过程,并在开发过程中每隔预设时长将开发的用例进行集成,直至完成待开发组组件升级包的开发,进而将待开发组组件升级包开发完成后得到的各个用例进行集成,得到待升级组件升级包。

进一步地,当获取到待升级组件升级包后,服务器可通过下述步骤自动执行对待升级组件的升级过程。

对于上述服务器获取待升级组件升级包的过程,下面将以图3为例进行说明。

参见图3,在待升级组件的开发过程中,服务器采用CI工具对已开发的各个用例进行集成,并运行集成后的各个用例,得到多个运行结果,进而对多个运行结果进行分析,如果任一运行结果表明相应用例不能正常运行,则停止该部分待升级组件的开发,并由相应的研发人员进行处理;如果多个运行结果均表明每个用例能够正常运行,则继续进行待升级组件的开发过程,直至待升级组件开发完成,将开发完成时集成的全部用例作为待升级组件升级包。

202、服务器将待升级组件升级包发送至M个测试用户。

为了及早获取用户对待升级组件升级包的意见反馈,完善待升级组件升级包,提高待升级组件升级包的质量,降低待升级组件升级包所影响的用户范围,本发明实施例提供的方法将采用灰度升级方式,根据待升级组件升级包对待升级组件进行升级。

其中,灰度升级是指在对组件进行升级时,先选取部分用户作为测试用户,并对测试用户的组件进行升级,如果升级后的组件能够稳定运行,则对全部用户的组件进行升级。基于灰度升级方式,本发明在待升级组件升级之前预先设定测试用户总数量S及第一轮升级的初始测试用户数量M。

其中,测试用户总数量S由待升级组件对应的用户数量及指定阈值确定,例如,如果待升级组件对应的用户数量为100万,指定阈值为10%,则可确定测试用户总数量S为10万;如果待升级组件对应的用户数量为200万,指定阈值为15%,则可确定测试用户总数量S为30万。第一轮升级的初始测试用户数量M小于测试用户总数量S,可以为1万、2万、3万等。

当确定出第一轮升级的测试用户数量M后,服务器从待升级组件对应的用户中,选取M个用户作为测试用户,并将待升级组件升级包发送至M个测试用户,由M个测试用户进行升级。关于服务器选取M个测试用户的方式,包括但不限于:预先设定选取规则,根据预先设定的选取规则,选取M个用户作为测试用户。其中,预先设定的选取规则包括指定地区、年龄在指定范围内等。

203、服务器获取N个已升级测试用户的组件运行数据。

在已升级组件的运行过程中,服务器获取已升级测试用户的组件运行数据,该已升级测试用户的数量为N个。其中,N为小于等于M的自然数。服务器在获取已升级测试用户的组件运行数据时,可每隔预设时长进行获取,也可以实时进行获取,本发明实施例对此不作具体限定。其中,预设时长可以为10分钟、20分钟、30分钟等等。

204、服务器根据N个已升级测试用户的组件运行数据,判断待升级组件升级包是否能够稳定运行,如果是,执行步骤205,如果否,执行步骤206。

为确保升级后的待升级组件能够稳定运行,在第一轮升级过程中,服务器还将根据N个已升级测试用户的组件运行数据,判断待升级组件升级包是否能够稳定运行。具体判断时可参见步骤2041~2043:

2041、服务器根据N个已升级测试用户的组件运行数据,计算待升级组件升级包的崩溃率和核心功能失败率。

其中,组件运行数据包括组件的运行时间、组件运行过程中出现的每种问题及出现每种问题的次数等。崩溃率为发生崩溃现象的已升级组件占获取到的全部已升级组件的比例。核心功能由待升级组件的功能确定,如果待升级组件为视频播放器,则核心功能可以为播放功能,如果待升级组件为浏览器,则核心功能为浏览功能。核心功能失败率为无法实现核心功能的已升级组件占获取到的全部已升级组件的比例。

服务器在根据N个已升级测试用户的组件运行数据,计算待升级组件升级包的崩溃率时,可从N个已升级测试用户的组件运行数据中,获取发生崩溃现象的已测试用户的数量,并计算发生崩溃现象的已测试用户的数量与N个已升级测试用户的比值,得到升级组件升级包的崩溃率。

服务器在根据N个已升级测试用户的组件运行数据,计算待升级组件升级包的核心功能失败率时,可从N个已升级测试用户的组件运行数据中,获取核心功能失败的已测试用户的数量,并计算核心功能失败的已测试用户的数量与N个已升级测试用户的比值,得到升级组件升级包的核心功能失败率。

2042、服务器将崩溃率与第一阈值进行比较,并将核心功能失败率与第二阈值进行比较。

其中,第一阈值可以为1%、2%、5%等,第二阈值可以为3%、4%等,本实施例不对第一阈值和第二阈值的大小作具体的限定。

2043、如果崩溃率小于第一阈值,且核心功能失败率小于第二阈值,则服务器确定待升级组件升级包能够稳定运行。

根据崩溃率与第一阈值的比较结果及核心功能失败率与第二阈值的比较结果,当崩溃率小于第一阈值,且核心功能失败率小于第二阈值时,服务器可确定待升级组件升级包能够稳定运行;当崩溃率小于第一阈值,核心功能失败率大于第二阈值,服务器可确定待升级组件升级包不能稳定运行;当崩溃率大于第一阈值,核心功能失败率大于第二阈值,服务器可确定待升级组件升级包不能稳定运行。

在本发明实施例中,当确定待升级组件升级包不能稳定运行时,服务器将执行步骤206,以停止对待升级组件进行升级,当确定待升级组件升级包能够稳定运行时,服务器将执行步骤205,以进一步对待升级组件进行升级。

205、服务器逐步增加测试用户的数量,直至获取到S个已升级测试用户的组件运行数据,当根据S个已升级测试用户的组件运行数据确定待升级组件升级包能够稳定运行时,将待升级组件升级包发送至每个未升级用户。

当确定待升级组件升级包能够稳定运行时,服务器还将判断已升级测试用户的数量N是否等于测试用户总数量S,如果已升级测试用户的数量N等于测试用户总数量S,则停止灰度发布,并将待升级组件升级包发送至每个未升级用户,由每个未升级用户进行升级;如果已升级测试用户的数量N小于测试用户总数量S,则服务器判断已升级测试用户的数量N是否等于第一轮设定的测试用户数量M,如果已升级测试用户的数量N小于第一轮设定的测试用户数量M,则继续获取已升级测试用户的组件运行数据;如果已升级测试用户的数量N等于第一轮设定的测试用户数量M,则按照预设步长n逐步增加测试用户的数量,并将待升级组件升级包发送至n个新增测试用户,由每个新增测试用户进行升级,在已升级组件的运行过程中,每隔预设时长获取第二轮已升级测试用户的组件运行数据,并根据第二轮已升级测试用户的组件运行数据,判断待升级组件升级包是否能够稳定运行,如果待升级组件升级包不能稳定运行,则执行步骤206,如果待升级组件升级包能够稳定运行,则继续执行步骤205,直至获取到S个已升级测试用户的组件运行数据,并根据S个已升级测试用户的组件运行数据,确定待升级组件升级包能够稳定运行。当根据S个已升级测试用户的组件运行数据确定待升级组件升级包能够稳定运行,服务器停止灰度发布,并将待升级组件升级包发送至每个未升级用户,由每个未升级用户进行升级。

206、服务器停止对待升级组件进行升级。

当确定待升级组件不能正常运行时,为了避免对更多用户造成影响,服务器将停止对待升级组件进行升级(也即是停止灰度发布),进而对待升级组件升级包的代码进行调试,以保证待升级组件升级包能够顺利运行。

需要说明的是,上述以在组件升级过程中,先进行数量判断再进行能否稳定运行的判断为例,实际上还可以先对获取到已升级测试用户的组件运行数据进行能够稳定运行的判断,后进行数量的判断,只要确保已升级组件在数量上及运行过程中能够稳定运行即可。

对于上述采用灰度升级方式对待升级组件的升级过程,下面以图4为例进行说明。

参见图4,当获取到待升级组件升级包时,服务器设定第一轮的测试用户数量M,并将待升级组件升级包发送至M个测试用户,由每个测试用户进行升级。在已升级组件的运行过程中,服务器每隔10分钟获取已升级测试用户的组件运行数据,并根据已升级测试用户的组件运行数据,判断待升级组件是否能够稳定运行,如果待升级组件升级包不能稳定运行,则停止对待升级组件升级包进行升级(也即是停止灰度发布);如果待升级组件升级包能够稳定运行,则判断已升级测试用户的数量是否等于总测试用户数量,如果已升级测试用户的数量等于总测试用户数量,则停止灰度发布,并将待升级组件升级包发送至每个未升级用户,由每个未升级用户进行升级;如果已升级测试用户的数量小于总测试用户数量,判断已升级测试用户的数量是否等于本轮的测试用户数量,如果已升级测试用户的数量小于本轮的测试用户数量,则继续获取已升级测试用户的组件运行数据,如果已升级测试用户的数量等于本轮的测试用户数量,则按照预设步长n逐步增加测试用户的数量,直至获取到S个已升级测试用户的组件运行数据,且根据S个已升级测试用户的组件运行数据确定待升级组件升级包能够稳定运行。当根据S个已升级测试用户的组件运行数据确定待升级组件升级包能够稳定运行时,服务器停止灰度发布,并将待升级组件升级包发送至每个未升级用户,由每个未升级用户进行升级。

本发明实施例提供的方法,采用阶梯式升级方式对待升级组件进行升级,在每一次升级过程中,通过监测已升级测试用户的组件运行数据,自动判断继续升级还是停止升级,以达到实时监测升级风险的目的,因而升级方式更加合理。

参见图5,本发明实施例提供了一种组件升级装置,该装置包括:

第一发送模块501,用于将待升级组件升级包发送至M个测试用户;

获取模块502,用于获取N个已升级测试用户的组件运行数据;

第一判断模块503,用于根据N个已升级测试用户的组件运行数据,判断待升级组件升级包是否能够稳定运行;

处理模块504,用于当待升级组件升级包能够稳定运行时,逐步增加测试用户的数量,直至获取到S个已升级测试用户的组件运行数据;

第二发送模块505,用于当根据S个已升级测试用户的组件运行数据确定待升级组件升级包能够稳定运行时,将待升级组件升级包发送至每个未升级用户;

其中,S大于等于M,M大于等于N。

在本发明的另一个实施例中,该装置还包括:

集成模块,用于在待升级组件升级包的开发过程中,采用持续集成CI工具对待升级组件升级包的各个用例进行集成;

运行模块,用于运行集成后的各个用例,得到多个运行结果;

确定模块,用于当多个运行结果均表明每个用例正常运行时,将集成后的各个用例确定为待升级组件升级包。

在本发明的另一个实施例中,第一判断模块,用于根据N个已升级测试用户的组件运行数据,计算待升级组件升级包的崩溃率和核心功能失败率;将崩溃率与第一阈值进行比较,并将核心功能失败率与第二阈值进行比较;当崩溃率小于第一阈值,且核心功能失败率小于第二阈值时,确定待升级组件升级包能够稳定运行。

在本发明的另一个实施例中,该装置还包括:

停止模块,用于当待升级组件升级包不能稳定运行时,停止对待升级组件进行升级。

在本发明的另一个实施例中,该装置还包括:

第二判断模块,用于判断已升级测试用户的数量N是否等于S;

第三判断模块,用于当已升级测试用户的数量N小于S时,判断已升级测试用户的数量N是否等于M;

处理模块,用于当已升级测试用户的数量N等于M时,逐步增加测试用户的数量;

获取模块,用于当已升级测试用户的数量N小于M时,继续获取已升级测试用户的组件运行数据。

综上所述,本发明实施例提供的装置,采用阶梯式升级方式对待升级组件进行升级,在每一次升级过程中,通过监测已升级测试用户的组件运行数据,自动判断继续升级还是停止升级,以达到实时监测升级风险的目的,因而升级方式更加合理。

需要说明的是:上述实施例提供的组件升级装置在对组件进行升级时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将组件升级装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的组件升级装置与组件升级方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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