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

投产的软件的验证方法、装置以及计算机设备

文献发布时间:2024-04-18 19:59:31


投产的软件的验证方法、装置以及计算机设备

技术领域

本申请涉及大数据领域、金融科技领域或其他相关领域,尤其涉及一种投产的软件的验证方法、装置以及计算机设备。

背景技术

随着云计算和分布式技术的发展,银行内使用的各个软件中部署的节点日益增多,软件的迭代更新速度越来越快。由于银行的软件使用范围越来越广,使用频率也越来越高,为了避免软件在投产之后出现异常,引发较为严重的生产故障,需要对软件的投产过程进行验证,以保证软件的稳定运行。

相关技术中,为了保证软件的投产质量,可以在软件的投产期间,通过人工操作,来逐个验证软件的各个节点是否出现故障,并在验证结果表示软件未出现故障的情况下,将软件正式投入生产环境进行运行。

但是这种投产验证方式,不仅耗费了较多的人力成本和时间成本,而且在软件部署节点规模较为庞大的情况下,容易出现失误,进而影响了软件在投产期间进行验证的高效性和准确度。

发明内容

本申请提供一种投产的软件的验证方法、装置以及计算机设备,用以解决投产期间的软件验证效率低、准确度差的技术问题。

第一方面,本申请提供一种投产的软件的验证方法,包括:

响应于目标软件的验证指令,获取所述目标软件基于第一交易量进行运行所得到的第一待验证数据,并获取所述目标软件基于第二交易量进行运行所得到的第二待验证数据;其中,所述第一待验证数据为在投产之前的时间内运行所述目标软件所得到的执行数据,所述第二待验证数据为在投产期间的时间内运行所述目标软件所得到的执行数据,所述第一交易量与所述第二交易量不同;

对所述第一待验证数据和所述第二待验证数据进行验证处理,得到第一检测结果;其中,所述第一检测结果表征目标软件是否异常;

若确定所述第一检测结果表征目标软件不异常,则确定目标软件的投产验证通过。

一个示例中,所述第一待验证数据包括第一业务指标数据和第一系统指标数据;其中,所述第一业务指标数据为目标软件基于第一交易量进行运行时所得到的交易处理的结果数据,所述第一系统指标数据为目标软件基于第一交易量进行运行时所得到的硬件执行环境的结果数据;

所述第二待验证数据包括第二业务指标数据和第二系统指标数据;其中,所述第二业务指标数据为目标软件基于第二交易量进行运行时所得到的交易处理的结果数据,所述第二系统指标数据为目标软件基于第二交易量进行运行时所得到的硬件执行环境的结果数据。

一个示例中,所述获取所述目标软件基于第二交易量进行运行所得到的第二待验证数据,包括:

按照预设采集频率,从所述目标软件对应的日志数据中,获取初始业务指标数据,并从系统监控平台中获取初始系统指标数据;

分别对所述初始业务指标数据和所述初始系统指标数据进行数据处理,得到所述预设采集频率下的每一采集时间下的第二业务指标数据和第二系统指标数据。

一个示例中,对所述第一待验证数据和所述第二待验证数据进行验证处理,得到第一检测结果,包括:

对所述第一待验证数据下归属于第一预设时间段的数据,进行波形计算处理,得到第一数据波形,并对所述第二待验证数据下归属于所述第一预设时间段的数据,进行波形计算处理,得到第二数据波形;

对所述第一数据波形和所述第二数据波形,进行波形相似度计算处理,得到第一初始结果;其中,所述第一初始结果表征第一数据波形与所第二数据波形是否相似;

确定所述第一待验证数据下归属于所述第一预设时间段的数据,得到第一待处理数据,并确定所述第二待验证数据下归属于所述第一预设时间段的数据,得到第二待处理数据;

对所述第一待处理数据和所述第二待处理数据,进行数据对比处理,得到第二初始结果;其中,所述第二初始结果表征第一待处理数据与第二待处理数据是否相似;

根据所述第一初始结果和所述第二初始结果,得到所述第一检测结果。

一个示例中,所述根据所述第一初始结果和所述第二初始结果,得到所述第一检测结果,包括:

若所述第一初始结果表征第一数据波形与第二数据波形不相似,且所述第二初始结果表征第一待处理数据与第一待处理数据不相似,则确定所述第一检测结果表征目标软件异常;

若所述第一初始结果表征第一数据波形与第二数据波形相似,和/或,所述第二初始结果表征第一待处理数据与第一待处理数据相似,则确定所述第一检测结果表征目标软件不异常。

一个示例中,所述获取所述目标软件基于第一交易量进行运行所得到的第一待验证数据,包括:

从数据库中获取第二预设时间段内的相同时段下的执行数据,以得到所述第一待验证数据;其中,所述数据库中包括位于在投产之前的每一第二预设时间段内运行目标软件所得到的执行数据。

一个示例中,所述方法还包括:

若确定所述第一检测结果表征目标软件异常,则生成告警信息;其中,所述告警信息表征目标软件异常;

将第三预设时间段内所得到的各告警信息进行汇总处理,得到汇总后的告警信息,并将所述汇总后的告警信息发给用户的终端。

一个示例中,在确定目标软件的投产验证通过之后,所述方法还包括:

获取目标软件在投产之后的时间内运行所得到的第三待验证数据;

对所述第三待验证数据进行异常检测处理,得到第二检测结果;其中,所述第二检测结果表征目标软件在投产之后是否异常,所述第二检测结果中包括第三待验证数据中的异常数据;

若确定所述第二检测结果表征目标软件在投产之后异常,则将所述第二检测结果中的异常数据,发送给用户的终端。

第二方面,本申请提供一种投产的软件的验证装置,包括:

获取单元,用于响应于目标软件的验证指令,获取所述目标软件基于第一交易量进行运行所得到的第一待验证数据,并获取所述目标软件基于第二交易量进行运行所得到的第二待验证数据;其中,所述第一待验证数据为在投产之前的时间内运行所述目标软件所得到的执行数据,所述第二待验证数据为在投产期间的时间内运行所述目标软件所得到的执行数据,所述第一交易量与所述第二交易量不同;

验证单元,用于对所述第一待验证数据和所述第二待验证数据进行验证处理,得到第一检测结果;其中,所述第一检测结果表征目标软件是否异常;

确定单元,用于若确定所述第一检测结果表征目标软件不异常,则确定目标软件的投产验证通过。

一个示例中,所述第一待验证数据包括第一业务指标数据和第一系统指标数据;其中,所述第一业务指标数据为目标软件基于第一交易量进行运行时所得到的交易处理的结果数据,所述第一系统指标数据为目标软件基于第一交易量进行运行时所得到的硬件执行环境的结果数据;

所述第二待验证数据包括第二业务指标数据和第二系统指标数据;其中,所述第二业务指标数据为目标软件基于第二交易量进行运行时所得到的交易处理的结果数据,所述第二系统指标数据为目标软件基于第二交易量进行运行时所得到的硬件执行环境的结果数据。

一个示例中,获取单元,用于:

按照预设采集频率,从所述目标软件对应的日志数据中,获取初始业务指标数据,并从系统监控平台中获取初始系统指标数据;

分别对所述初始业务指标数据和所述初始系统指标数据进行数据处理,得到所述预设采集频率下的每一采集时间下的第二业务指标数据和第二系统指标数据。

一个示例中,验证单元,用于:

对所述第一待验证数据下归属于第一预设时间段的数据,进行波形计算处理,得到第一数据波形,并对所述第二待验证数据下归属于所述第一预设时间段的数据,进行波形计算处理,得到第二数据波形;

对所述第一数据波形和所述第二数据波形,进行波形相似度计算处理,得到第一初始结果;其中,所述第一初始结果表征第一数据波形与所第二数据波形是否相似;

确定所述第一待验证数据下归属于所述第一预设时间段的数据,得到第一待处理数据,并确定所述第二待验证数据下归属于所述第一预设时间段的数据,得到第二待处理数据;

对所述第一待处理数据和所述第二待处理数据,进行数据对比处理,得到第二初始结果;其中,所述第二初始结果表征第一待处理数据与第二待处理数据是否相似;

根据所述第一初始结果和所述第二初始结果,得到所述第一检测结果。

一个示例中,验证单元,还用于:

若所述第一初始结果表征第一数据波形与第二数据波形不相似,且所述第二初始结果表征第一待处理数据与第一待处理数据不相似,则确定所述第一检测结果表征目标软件异常;

若所述第一初始结果表征第一数据波形与第二数据波形相似,和/或,所述第二初始结果表征第一待处理数据与第一待处理数据相似,则确定所述第一检测结果表征目标软件不异常。

一个示例中,获取单元,用于:

从数据库中获取第二预设时间段内的相同时段下的执行数据,以得到所述第一待验证数据;其中,所述数据库中包括位于在投产之前的每一第二预设时间段内运行目标软件所得到的执行数据。

一个示例中,该装置还包括:

告警单元,用于若确定所述第一检测结果表征目标软件异常,则生成告警信息;其中,所述告警信息表征目标软件异常;

将第三预设时间段内所得到的各告警信息进行汇总处理,得到汇总后的告警信息,并将所述汇总后的告警信息发给用户的终端。

一个示例中,该装置还包括:

异常检测单元,用于在确定目标软件的投产验证通过之后,获取目标软件在投产之后的时间内运行所得到的第三待验证数据;

对所述第三待验证数据进行异常检测处理,得到第二检测结果;其中,所述第二检测结果表征目标软件在投产之后是否异常,所述第二检测结果中包括第三待验证数据中的异常数据;

若确定所述第二检测结果表征目标软件在投产之后异常,则将所述第二检测结果中的异常数据,发送给用户的终端。

第三方面,本申请提供一种计算机设备,包括:处理器,以及与所述处理器通信连接的存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面所述的方法。

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

第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括:计算机执行指令,所述计算机执行指令存储在可读存储介质中,计算机设备的至少一个处理器可以从所述可读存储介质读取所述计算机执行指令,所述至少一个处理器执行所述计算机执行指令,使得计算机设备执行第一方面所述的方法。

本申请提供的投产的软件的验证方法、装置以及计算机设备,可以响应于目标软件的验证指令,来获取该目标软件基于第一交易量得到的第一待验证数据,和基于第二交易量得到的第二待验证数据。之后,可以对第一待验证数据和第二待验证数据进行验证处理,得到用于表征目标软件是否异常的第一检测结果,并在确定第一检测结果表征目标软件不异常的情况下,确定目标软件投产验证通过。这种实施方式,可以复用软件在投产之前的执行数据,来对投产期间的执行数据进行验证,首次挖掘了投产期间的执行数据的数据价值,拓宽了投产期间目标软件的故障发现面,从而可以进一步保证目标软件在投产之后的稳定运行。同时,通过对第一待验证数据和第二待验证数据进行验证处理,使投产期间软件的验证方式更加自动化、统一化,进而减少了人工运维的工作量,提高了目标软件的验证效率。

附图说明

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

图1为本申请实施例提供的一种投产的软件的验证方法的流程示意图;

图2为本申请实施例提供的另一种投产的软件的验证方法的流程示意图;

图3为本申请实施例提供的一种软件验证系统的示意图;

图4为本申请实施例提供的一种软件验证的流程示意图;

图5为本申请实施例提供的一种投产的软件的验证装置的结构示意图;

图6为本申请实施例提供的另一种投产的软件的验证装置的结构示意图;

图7为本申请实施例提供的一种计算机设备的结构示意图。

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

具体实施方式

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

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

需要说明的是,本申请实施例提供的投产的软件的验证方法、装置以及计算机设备,可用于大数据领域,也可用于金融技术领域,也可用于计算机技术领域,也可用于除上述领域之外的任意需要进行软件检测的技术领域,这里对本申请实施例提供的投产的软件的验证方法、装置以及计算机设备的应用领域不作限定。

目前,在对软件进行投产验证时,主要是通过工作人员,来自定义软件的具体应用场景,并通过判断软件在该具体应用场景下的处理结果是否满足期望要求。例如,可以通过判断数据库中的某条语句的返回结果是否符合预期结果(此时,该预期结果为工作人员指定的结果)、判断请求接口服务状态是否正常等,从而确定软件的投产验证结果。这种方式耗费了较多的人力成本和时间成本,且出错率较高,影响了软件的投产验证的准确度。

除此之外,发明人还发现,相关技术中,在软件投产之前,可以对软件的指标数据进行监控。具体来讲,可以针对指标数据,预先设置监控阈值,并在确定出软件运行时所产生的指标数据超过或者低于该预先设置的监控阈值的情况下,则发出告警,此时,表示该软件存在异常。但是,由于在投产验证期间,运行软件产生的指标数据,与投产之前运行软件所产生的指标数据相比,会发生较大的变化,因此,工作人员通常会关闭针对监测到的指标数据所产生的告警,导致投产期间的指标数据被忽略,进而影响了对投产期间的软件异常的感知程度。

本申请提供的投产的软件的验证方法,旨在解决现有技术的如上技术问题。

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

图1为本申请实施例提供的一种投产的软件的验证方法的流程示意图。如图1所示,该方法包括:

S101、响应于目标软件的验证指令,获取目标软件基于第一交易量进行运行所得到的第一待验证数据,并获取目标软件基于第二交易量进行运行所得到的第二待验证数据。

其中,第一待验证数据为在投产之前的时间内运行目标软件所得到的执行数据,第二待验证数据为在投产期间的时间内运行目标软件所得到的执行数据,第一交易量与第二交易量不同。

这里需要说明的是,投产期间是基于投产时间与自定义检测时间段构成的,例如,投产期间可以为,从目标软件进入投产之后开始,直至投产时间结束后10分钟(,所构成的时间段,此时,自定义检测时间段为10分钟,或者,该自定义检测时间段也可以为20分钟等,这里不作限定。其中,投产时间为用户自定义的时间,例如,该投产时间可以为6小时,也可以为8小时等。

一个示例中,交易可以理解为目标软件执行对应的业务进行的业务处理。例如,在基于目标软件进行转账业务时,那么,一笔转账就可以对应一笔交易,此时,第一交易量(或者,第二交易量)可以理解为进行转账的交易数量。

一个示例中,第一交易量可以理解为目标软件在测试阶段的交易量,此时,第一待验证数据可以理解为在目标软件的测试阶段,运行目标软件所得到的执行数据。

另一个示例中,在目标软件进行了一次或者多次投产的情况下,那么,第一待验证数据也可以理解为目标软件在上一次投产期间,运行目标软件所得到的执行数据。

一个示例中,本申请实施例可以复用目标软件在投产之前所生成的指标数据(也即,第一待验证数据),对在目标软件在投产期间所生成的指标数据(也即,第二待验证数据)进行验证,从而可以在目标软件的投产期间对目标软件进行验证,以保证投产之后的目标软件的稳定运行,提高了目标软件的质量。

在本申请实施例中,第一交易量和第二交易量不相同,因此,基于第一交易量和第二交易量运行目标软件后,分别得到的第一待验证数据和第二待验证数据也不相同。

一个示例中,运行目标软件所得到的执行数据可以为以下至少之一:单位时间内的交易量、交易平均耗时、交易成功率、CPU(Central Processing Unit,中央处理器)使用率、内存使用率等。

S102、对第一待验证数据和第二待验证数据进行验证处理,得到第一检测结果。

其中,第一检测结果表征目标软件是否异常。

一个示例中,由于第一待验证数据为目标软件投产之前得到的执行数据,且该执行数据已经通过软件测试,为正常的执行数据(也即,不异常的执行数据),此时,可以通过将投产期间,目标软件所得到的执行数据与该第一待验证数据进行对比,并根据对比结果验证投产期间,目标软件生成的执行数据是否异常,来判断目标软件是否异常。

此时,第一检测结果可以理解为第一待验证数据和第二待验证数据的对比结果,例如,该第一检测结果可以为第一待验证数据和第二待验证数据的相似度。

一个示例中,在对比第一待验证数据和第二待验证数据之后,根据得到的第一检测结果,确定出第一待验证数据和第二待验证数据相似的情况下,则表示第二待验证数据与第一待验证数据相比,数据变动较小,从而可以确定出目标软件不异常。

若在对比第一待验证数据和第二待验证数据之后,根据得到的第一检测结果,确定出第一待验证数据和第二待验证数据不相似的情况下,则表示第二待验证数据与第一待验证数据相比,数据变动较大,此时,可以确定目标软件异常。

S103、若确定第一检测结果表征目标软件不异常,则确定目标软件的投产验证通过。

一个示例中,在确定出第一检测结果表征目标软件不异常的情况下,则确定目标软件的投产验证通过,此时,就可以将目标软件进行投产。

通过上述描述可知,本申请实施例,可以响应于目标软件的验证指令,来获取该目标软件基于第一交易量得到的第一待验证数据,和基于第二交易量得到的第二待验证数据。之后,可以对第一待验证数据和第二待验证数据进行验证处理,得到用于表征目标软件是否异常的第一检测结果,并在确定第一检测结果表征目标软件不异常的情况下,确定目标软件投产验证通过。

这种实施方式,可以复用软件在投产之前的执行数据,来对投产期间的执行数据进行验证,首次挖掘了投产期间的执行数据的数据价值,拓宽了投产期间目标软件的故障发现面,从而可以进一步保证目标软件在投产之后的稳定运行。同时,通过对第一待验证数据和第二待验证数据进行验证处理,使投产期间软件的验证方式更加自动化、统一化,进而减少了人工运维的工作量,提高了目标软件的验证效率。

图2为本申请实施例提供的另一种投产的软件的验证方法的流程示意图。如图2所示,该方法包括:

S201、响应于目标软件的验证指令,获取目标软件基于第一交易量进行运行所得到的第一待验证数据,并获取目标软件基于第二交易量进行运行所得到的第二待验证数据。

其中,第一待验证数据为在投产之前的时间内运行目标软件所得到的执行数据,第二待验证数据为在投产期间的时间内运行目标软件所得到的执行数据,第一交易量与第二交易量不同。

一个示例中,第一待验证数据可以包括第一业务指标数据和第一系统指标数据。

其中,第一业务指标数据为目标软件基于第一交易量进行运行时所得到的交易处理的结果数据,例如,该第一业务指标数据可以为至少以下数据:单位时间内的交易量、交易平均耗时、交易成功率等。

第一系统指标数据为目标软件基于第一交易量进行运行时所得到的硬件执行环境的结果数据,例如,该第一系统指标数据可以为至少以下数据:CPU使用率、内存使用率等。

这里对第一业务指标数据和第一系统指标数据的不作具体限定,也即,第一业务指标数据和第一系统指标数据可以根据实际需要进行扩展或者删除,这里不作具体限定,以满足实际需要为准。

一个示例中,第二待验证数据包括第二业务指标数据和第二系统指标数据。

其中,第二业务指标数据为目标软件基于第二交易量进行运行时所得到的交易处理的结果数据,例如,该第二业务指标数据可以为至少以下数据:单位时间内的交易量、交易平均耗时、交易成功率等。

第二系统指标数据为目标软件基于第二交易量进行运行时所得到的硬件执行环境的结果数据,例如,该第二系统指标数据可以为至少以下数据:CPU使用率、内存使用率等。

这里需要说明的是,第一待验证数据和第二待验证数据可以理解为目标软件在不同的阶段所获取的相同的数据,此时,第一待验证数据和第二待验证数据包含相同的数据,且包含的数据的获取方式也相同。

下面以获取第二待验证数据为例,详细说明获取目标软件的执行数据的方式。

一个示例中,可以按照预设采集频率,从目标软件对应的日志数据中,获取初始业务指标数据,并对初始业务指标数据进行数据处理,得到预设采集频率下的每一采集时间下的第二业务指标数据。

其中,初始业务指标数据与每笔交易的交易日志(也即,日志数据)相对应。

举例来说,在第二业务指标数据为单位时间内的交易量的情况下,则可以按照预设采集频率,获取单位时间内,写入目标软件对应的交易日志条数。其中,预设采集频率与单位时间相对应,例如,预设采集频率为1分钟/次,那么,对应的单位时间也为1分钟。其中,每笔交易对应一条交易日志。

这里需要说明的是,预设采集频率为1分钟/次,也可以为1秒/次,也可以为1小时/次,这里对预设采集频率不作具体限定,以满足实际需要为准。

在第二业务指标数据为交易平均耗时的情况下,则可以按照预设采集频率,获取的单位时间内,各条交易日志对应的耗时总和,再对该耗时总和求平均值,得到交易平均耗时。

在第二业务指标数据为交易成功率的情况下,则可以按照预设采集频率,获取单位时间内,所有成功交易的交易日志条数,并通过计算该成功交易的交易日志条数,与该单位时间内所有的交易日志条数的比值,得到交易成功率。

一个示例中,可以按照预设采集频率,从系统监控平台中获取初始系统指标数据,并对初始系统指标数据进行数据处理,得到预设采集频率下的每一采集时间下的第二系统指标数据。

其中,初始系统指标数据与每笔交易所占用的系统数据相关联。

举例来说,在第二系统指标数据为CPU使用率的情况下,则可以按照预设采集频率,从监控目标软件交易的平台中,获取该预设采集频率下的,每一采集时间对应的CPU使用率,其中,该CPU使用率可以理解为:CPU执行非系统空闲进程的时间与CPU总执行时间之间的比值。

在第二系统指标数据为内存使用率的情况下,则可以按照预设采集频率,从监控目标软件交易的平台中,获取该预设采集频率下的,每一采集时间对应的内存使用率,其中,该内存使用率可以理解为:目标软件对应的应用进程使用内存与总内存之间的比值。

一个示例中,可以根据上述所描述的过程来确定第一待验证数据和第二待验证数据。此时,可以在检测到对目标软件测验证指令之后,获取上述第一待验证数据和第二待验证数据,并基于该第一待验证数据和第二待验证数据对目标软件进行验证处理,得到用于表征目标软件是否异常的第一检测结果。

一个示例中,获取的第一待验证数据可以为:从数据库中获取的第二预设时间段内的相同时段下的执行数据。

其中,数据库中包括位于在投产之前的每一第二预设时间段内运行目标软件所得到的执行数据。

一个示例中,第二预设时间段可以用于指示获取第一待验证数据的时间,例如,该第二预设时间段可以为一周,也可以为一个月,也可以为一次投产等。此时,可以从投产前一周,或者,投产前一个月,或者,上一次投产的时间段内,获取第一待验证数据。

此时,从投产前一周、投产前一个月,或者上一次投产时间内获取相同时段的执行数据,得到第一待验证数据。

一个示例中,在第二预设时间段的数量可以为一个也可以为多个。例如,在第二预设时间段的数量为多个的情况下,且,第二预设时间段为:一周、一个月以及一次投产的情况下,则从数据库中获取的第二预设时间段内的相同时段下的执行数据可以为:一周之前相同时段下的执行数据、一个月之前相同时间段下的执行数据以及上一次投产时的相同时段下的执行数据。

上述实施方式中,可以获取多组第一待验证数据,从而可以根据不同时期的相同时段下的执行数据对第二待验证数据进行验证处理,可以提高验证的鲁棒性和准确性,进而提高软件的验证方法的性能。

一个示例中,在获取第一待验证数据之后,可以将各第一待验证数据与第二待验证数据进行验证处理,具体参见下述S202~S206所描述的步骤。

S202、对第一待验证数据下归属于第一预设时间段的数据,进行波形计算处理,得到第一数据波形,并对第二待验证数据下归属于第一预设时间段的数据,进行波形计算处理,得到第二数据波形。

一个示例中,第一预设时间段可以与目标软件在投产期间,获取第二待验证数据的时间相对应,例如,该第一预设时间段可以为获取第二待验证数据时对应的采集时间,以及该对应的采集时间之前2小时(或者,也可以为1个小时,也可以为3个小时等,这里对该第一预设时间段的时长不作具体限定),所构成的时间段为该第一预设时间段。

例如,在某一第二待验证数据的采集时间为上午12点的情况下,那么,第一预设时间段就可以为上午10点至12点。

此时,可以对第一待验证数据下,归属于第一预设时间段的数据,进行波形计算处理(比如,将第一预设时间段内的各采集时间下的第一待验证数据进行曲线连接处理),得到第一数据波形。

同理,可以对第二待验证数据下归属于第一预设时间段的数据,进行波形计算处理(比如,将第一预设时间段内的各采集时间下的第二待验证数据进行曲线连接处理),得到第二数据波形。

S203、对第一数据波形和第二数据波形,进行波形相似度计算处理,得到第一初始结果。

其中,第一初始结果表征第一数据波形与所第二数据波形是否相似。

一个示例中,对第一数据波形和第二数据波形进行波形相似度计算时,可以采用轨迹相似度方法进行计算,例如,该轨迹相似度方法包括但不限于以下任意一种方法:动态时间规整算法(Dynamic Time Warping,DTW)、最长公共子序列(Longest Common SubSequence,LCSS)、弗雷歇距离(Frechet)等。

一个示例中,在对第一数据波形和第二数据波形进行波形相似度计算后,可以得到相似度数值,此时,可以将该相似度数值确定为第一初始结果。

一个示例中,在获取多个第二预设时间段内的第一待验证数据的情况下,可以得到多个第一数据波形,此时,可以将各第一数据波形分别与第二数据波形进行对比,得到多个相似度数值,此时,可以对该多个相似度数值进行求平均处理,得到第一初始结果。

一个示例中,第一初始结果可以表征第一数据波形与第二数据波形是否相似,例如,在第一初始结果对应的相似度数值大于或者等于预设的第一阈值的情况下,则可以确定第一数据波形和第二数据波形相似;在第一初始结果对应的相似度数值小于预设的第一阈值的情况下,则可以确定第一数据波形和第二数据波形不相似。其中,预设的第一阈值可以为0.7,也可以为0.8等,这里对该预设的第一阈值不作限定,以满足实际需要为准。

S204、确定第一待验证数据下归属于第一预设时间段的数据,得到第一待处理数据,并确定第二待验证数据下归属于第一预设时间段的数据,得到第二待处理数据。

一个示例中,第一待处理数据可以理解为对第一预设时间段内的第一待验证数据进行统计分析之后,得到的数据,例如,第一待处理数据可以包括但不限于:第一预设时间段内的第一待验证数据的平均值、第一预设时间段内的第一待验证数据的中位数等。

同理,第二待处理数据可以理解为对第对第一预设时间段内的第二待验证数据进行统计分析之后,得到的数据。

S205、对第一待处理数据和第二待处理数据,进行数据对比处理,得到第二初始结果。

其中,第二初始结果表征第一待处理数据与第二待处理数据是否相似。

一个示例中,在对第一待处理数据和第二待处理数据进行数据对比处理时,可以计算第二待处理数据相较于第一待处理数据的增幅数据,得到第二初始结果。其中,增幅数据可以理解为第二待处理数据和第一待处理数据的差值,与第一待处理数据之间的比值。

一个示例中,增幅数据可以为正数,也可以为负数,此时,可以根据该增幅数据的绝对值,确定第一待处理数据与第二待处理数据是否相似。

一个示例中,在第二初始结果对应的增幅数据的绝对值小于或者等于预设的第二阈值的情况下,则可以确定第一待处理数据和第二待处理数据相似;在第二初始结果对应的增幅数据的绝对值大于预设的第二阈值的情况下,则可以确定第一待处理数据和第二待处理数据不相似。其中,预设的第二阈值可以为0.2,也可以为0.15等,这里对该预设的第二阈值不作限定,以满足实际需要为准。

S206、根据第一初始结果和第二初始结果,得到第一检测结果。

上述实施方式中,可以通过对归属于第一预设时间段内的第一待验证数据以及归属于第一预设时间段内的第二待验证数据,进行波形对比以及数据对比,来得到第一检测结果,从而可以从多个方面对第一待验证数据和第二待验证数据进行对比,提高了第一待验证数据和第二待验证数据的利用率,提高了对目标软件进行验证的验证灵活性和多样性。

S207、若第一初始结果表征第一数据波形与第二数据波形不相似,且第二初始结果表征第一待处理数据与第一待处理数据不相似,则确定第一检测结果表征目标软件异常。

S208、若第一初始结果表征第一数据波形与第二数据波形相似,和/或,第二初始结果表征第一待处理数据与第一待处理数据相似,则确定第一检测结果表征目标软件不异常。

上述实施方式中,只有在第一初始结果表征第一数据波形与第二数据波形不相似,并且,第二初始结果表征第一待处理数据与第二待处理数据不相似的情况下,才确定第一检测结果表征目标软件异常,从而可以保留一定的容错空间,降低误检率,进一步提升了软件验证的有效性。

S209、若确定第一检测结果表征目标软件异常,则生成告警信息。

其中,告警信息表征目标软件异常。

S210、将第三预设时间段内所得到的各告警信息进行汇总处理,得到汇总后的告警信息,并将汇总后的告警信息发给用户的终端。

一个示例中,第三时间段可以理解为发送告警信息的时间间隔,例如,第三预设时间段可以为10分钟,也可以为半小时等,这里对第三预设时间段不作具体限定。

一个示例中,在将汇总后的告警信息发给用户的终端之前,可以先对汇总后的告警信息进行排序,并将排序后的全部告警信息发给用户的终端。

一个示例中,假设,第一初始结果表征第一数据波形与第二数据波形不相似,或者,第二初始结果表征第一待处理数据与第一待处理数据不相似,那么,可以生成异常提醒信息。此时,还可以将第三预设时间段内的异常提醒信息发送至用户的终端,以便于用户通过查看该异常提醒信息,来确定软件是否异常。

这种实施方式,可以在目标软件异常的情况下,发出告警信息,以使用户可以根据告警信息及时对软件进行调整,避免软件在投产之后出现故障。

S211、若确定第一检测结果表征目标软件不异常,则确定目标软件的投产验证通过。

S212、在确定目标软件的投产验证通过之后,获取目标软件在投产之后的时间内运行所得到的第三待验证数据。

一个示例中,投产之后的时间可以理解为投产期间结束之后的时间,例如,投产之后可以理解为投产时间结束十分钟之后的时间。

一个示例中,第三待验证数据可以理解为在投产之后的时间内运行目标软件所得到的执行数据。

S213、对第三待验证数据进行异常检测处理,得到第二检测结果。

其中,第二检测结果表征目标软件在投产之后是否异常,第二检测结果中包括第三待验证数据中的异常数据。

一个示例中,在对第三待验证数据进行异常检测处理时,可以获取位于当前需要进行异常检测处理的第三待验证数据之前的执行结果(例如,当前需要进行异常检测处理的第三待验证数据对应的采集时间之前7天的执行数据),来作为历史验证数据,输入至异常检测模型中,对当前需要进行异常检测处理的第三待验证数据进行异常检测处理。

其中,异常检测模型可以包括但不限于以下任意一种算法模型:3-sigma、指数加权移动平均法(Exponentially Weighted Moving-Average,EWMA)、核密度估计算法(Kernel Density Estimation,KDE)、基于密度的聚类算法(Density-Based SpatialClustering of Applications withNode,DBSCAN)等。

一个示例中,该异常检测模型也可以用于目标软件投产之前的,对目标软件进行测试的过程中,这里不再详细描述。

S214、若确定第二检测结果表征目标软件在投产之后异常,则将第二检测结果中的异常数据,发送给用户的终端。

一个示例中,可以将第三预设时间段内所得到的异常数据进行汇总处理,得到汇总后的异常数据,并将汇总后的异常数据发给用户的终端。

此时,在第三验证数据包含多种类型的指标数据的情况下,则可以针对每一类型的指标数据下的异常数据,分别进行汇总,并发送。

这种实施方法可以保证对投产之后的目标软件进行一段时间的持续监控,以进一步保证目标软件的稳定运行,提高目标软件的质量,进而减少运维量。

图3为本申请实施例提供的一种软件验证系统的示意图。如图3所示,该软件验证系统300中可以包括:指标数据采集模块301、指标数据存储模块302、异常检测模块303、指标数据对比模块304以及告警收敛模块305。

其中,指标数据采集模块301,用于按照预设采集频率,从软件的日志数据中,获取业务指标数据,例如,获取交易成功率、交易平均耗时以及交易量,并从系统监控平台中获取系统指标数据,例如,CPU使用率和内存使用率。

指标数据存储模块302,用于将指标数据采集模块301采集到的业务指标数据和系统指标数据(也即,第一待验证数据和第二待验证数据,也可以统称为指标数据),写入时序数据库中进行存储。此时,存储的指标数据至少包含两个字段,即指标数据类型和指标数据,此时,存储的每个指标数据均带有时间点标签。

异常检测模块303,用于在投产开始之前,对运行软件时产生的执行数据进行异常检测,或者,在投产之后,对运行软件时产生的执行数据(也即,第三待验证数据)进行异常检测;

以及,用于在检测到异常数据之后,将异常数据发送至告警收敛模块305中。

数据对比模块304,用于在投产开始之后,对第一待验证数据以及第二待验证数据进行验证处理。此时,可以按照上述S202至S205所描述的步骤对第一待验证数据和第二待验证数据进行验证处理,得到第一初始结果和第二初始结果,这里不再详细赘述;

以及,用于将第一初始结果和第二初始结果发送至告警收敛模块305中。

告警收敛模块305,用于在确定出第一初始结果表征第一数据波形与第二数据波形不相似,且第二初始结果表征第一待处理数据与第一待处理数据不相似的情况下,确定软件异常,此时,可以生成告警信息,并将第三预设时间段内所得到的各告警信息进行汇总处理,得到汇总后的告警信息,并将汇总后的告警信息发给用户的终端;

以及,用于在确定出第一初始结果表征第一数据波形与第二数据波形不相似,或者,确定出第二初始结果表征第一待处理数据与第一待处理数据不相似的情况下,可以生成异常提醒信息,并将第三预设时间段内所得到的各异常提醒信息进行汇总处理,得到汇总后的异常提醒信息,并将汇总后的异常提醒信息发给用户的终端;

以及,用于将第三预设时间段内所得到的各异常数据进行汇总处理,得到汇总后的异常数据,并将汇总后的异常数据发给用户的终端。

一个示例中,图4为本申请实施例提供的一种软件验证的流程示意图,如图4所示,可以通过指标数据采集模块,实时的按照预设采集频率,采集软件在运行时所得到的执行数据,并通过指标数据存储模块将采集得到的指标数据进行存储。接着,可以根据软件的验证时间段,采用不同的验证方法,对软件进行验证处理。

例如,在确定出软件的验证时间段为投产期间的情况下,则可以通过指标数据对比模块,对软件进行验证处理,得到第一检测结果。

在确定出软件的验证时间段为非投产期间(例如,投产之后,或者投产之前)的情况下,则可以通过异常检测模块,对软件进行验证处理,得到第二检测结果。

此时,可以将第一检测结果和第二检测结果(第一检测结果和第二检测结果可以统称为验证处理结果),发送至告警收敛模块,从而可以通过告警收敛模块,对验证处理结果进行处理,并将表征软件异常的验证处理结果发送给用户的终端,以使用户基于验证处理结果,对软件进行排查处理。

图5为本申请实施例提供的一种投产的软件的验证装置的结构示意图,如图5所示,该投产的软件的验证装置500包括:

获取单元501,用于响应于目标软件的验证指令,获取目标软件基于第一交易量进行运行所得到的第一待验证数据,并获取目标软件基于第二交易量进行运行所得到的第二待验证数据;其中,第一待验证数据为在投产之前的时间内运行目标软件所得到的执行数据,第二待验证数据为在投产期间的时间内运行目标软件所得到的执行数据,第一交易量与第二交易量不同。

验证单元502,用于对第一待验证数据和第二待验证数据进行验证处理,得到第一检测结果;其中,第一检测结果表征目标软件是否异常。

确定单元503,用于若确定第一检测结果表征目标软件不异常,则确定目标软件的投产验证通过。

图6为本申请实施例提供的另一种投产的软件的验证装置的结构示意图,如图6所示,该投产的软件的验证装置600包括:

获取单元601,用于响应于目标软件的验证指令,获取目标软件基于第一交易量进行运行所得到的第一待验证数据,并获取目标软件基于第二交易量进行运行所得到的第二待验证数据;其中,第一待验证数据为在投产之前的时间内运行目标软件所得到的执行数据,第二待验证数据为在投产期间的时间内运行目标软件所得到的执行数据,第一交易量与第二交易量不同。

验证单元602,用于对第一待验证数据和第二待验证数据进行验证处理,得到第一检测结果;其中,第一检测结果表征目标软件是否异常。

确定单元603,用于若确定第一检测结果表征目标软件不异常,则确定目标软件的投产验证通过。

一个示例中,第一待验证数据包括第一业务指标数据和第一系统指标数据;其中,第一业务指标数据为目标软件基于第一交易量进行运行时所得到的交易处理的结果数据,第一系统指标数据为目标软件基于第一交易量进行运行时所得到的硬件执行环境的结果数据;

第二待验证数据包括第二业务指标数据和第二系统指标数据;其中,第二业务指标数据为目标软件基于第二交易量进行运行时所得到的交易处理的结果数据,第二系统指标数据为目标软件基于第二交易量进行运行时所得到的硬件执行环境的结果数据。

一个示例中,获取单元601,用于:

按照预设采集频率,从目标软件对应的日志数据中,获取初始业务指标数据,并从系统监控平台中获取初始系统指标数据;

分别对初始业务指标数据和初始系统指标数据进行数据处理,得到预设采集频率下的每一采集时间下的第二业务指标数据和第二系统指标数据。

一个示例中,验证单元602,用于:

对第一待验证数据下归属于第一预设时间段的数据,进行波形计算处理,得到第一数据波形,并对第二待验证数据下归属于第一预设时间段的数据,进行波形计算处理,得到第二数据波形;

对第一数据波形和第二数据波形,进行波形相似度计算处理,得到第一初始结果;其中,第一初始结果表征第一数据波形与所第二数据波形是否相似;

确定第一待验证数据下归属于第一预设时间段的数据,得到第一待处理数据,并确定第二待验证数据下归属于第一预设时间段的数据,得到第二待处理数据;

对第一待处理数据和第二待处理数据,进行数据对比处理,得到第二初始结果;其中,第二初始结果表征第一待处理数据与第二待处理数据是否相似;

根据第一初始结果和第二初始结果,得到第一检测结果。

一个示例中,验证单元602,还用于:

若第一初始结果表征第一数据波形与第二数据波形不相似,且第二初始结果表征第一待处理数据与第一待处理数据不相似,则确定第一检测结果表征目标软件异常;

若第一初始结果表征第一数据波形与第二数据波形相似,和/或,第二初始结果表征第一待处理数据与第一待处理数据相似,则确定第一检测结果表征目标软件不异常。

一个示例中,获取单元601,用于:

从数据库中获取第二预设时间段内的相同时段下的执行数据,以得到第一待验证数据;其中,数据库中包括位于在投产之前的每一第二预设时间段内运行目标软件所得到的执行数据。

一个示例中,该装置还包括:

告警单元604,用于若确定第一检测结果表征目标软件异常,则生成告警信息;其中,告警信息表征目标软件异常;

将第三预设时间段内所得到的各告警信息进行汇总处理,得到汇总后的告警信息,并将汇总后的告警信息发给用户的终端。

一个示例中,该装置还包括:

异常检测单元605,用于在确定目标软件的投产验证通过之后,获取目标软件在投产之后的时间内运行所得到的第三待验证数据;

对第三待验证数据进行异常检测处理,得到第二检测结果;其中,第二检测结果表征目标软件在投产之后是否异常,第二检测结果中包括第三待验证数据中的异常数据;

若确定第二检测结果表征目标软件在投产之后异常,则将第二检测结果中的异常数据,发送给用户的终端。

图7为本申请实施例提供的一种计算机设备的结构示意图,如图7所示,计算机设备700包括:存储器701,处理器702。

存储器701;用于存储处理器702可执行指令的存储器。

其中,处理器702被配置为执行如上述实施例提供的方法。

计算机设备还包括接收器703和发送器704。接收器703用于接收外部设备发送的指令和数据,发送器704用于向外部设备发送指令和数据。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机执行指令,该计算机执行指令被处理器运行时执行上述方法实施例中的投产的软件的验证方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本申请实施例还提供一种计算机程序产品,该计算机程序产品承载有计算机执行指令,计算机执行指令包括的指令可用于执行上述方法实施例中的投产的软件的验证方法的步骤,具体可参见上述方法实施例,在此不再赘述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。

进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。

另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(ResistiveRandom Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。

集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围

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

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

相关技术
  • 一种具有多层结构的梯度HDPE电磁屏蔽薄膜的可控制备方法
  • 一种搅拌摩擦焊接制备梯度材料的方法及制备的梯度材料
  • 一种抗菌功能骨组织修复材料及其制备方法
  • 一种细胞外基质修饰的多层软组织修复材料及其制备方法和用途
  • 一种可控梯度降解、促组织修复的肌骨系统修复体及其制备方法
  • 一种抗凝促心肌组织修复的可降解封堵器及其制备方法
技术分类

06120116524408