业务功能模块正确性的确定方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务功能模块正确性的确定方法及装置。
背景技术
现有技术中,在确定升级后的业务功能模块的正确性时,一般是手动从该升级后的业务功能模块返回的各类型结果中选择部分类型结果,通过对该部分类型结果的正确性进行验证,来确定升级后的业务功能模块的正确性,然而由于该方法只选择了部分类型结果,这影响了升级后的业务功能模块正确性确定的全面性,此外,通过人工确定升级后的业务功能模块的正确性,会严重影响升级后的业务功能模块正确性确定的效率。
发明内容
本申请实施例提供了一种业务功能模块正确性的确定方法及装置,可以提高升级后的业务功能模块正确性确定的全面性和效率。
第一方面,提供了一种业务功能模块正确性的确定方法,该方法包括:
获取升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值,以及获取升级前的业务功能模块在不同业务场景下返回的所述各类型结果的第二结果值;
在相同业务场景下,根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值;
根据所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性。
第二方面,提供了一种业务功能模块正确性的确定装置,该装置包括:获取单元和确定单元;
所述获取单元,用于获取升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值,以及获取升级前的业务功能模块在不同业务场景下返回的所述各类型结果的第二结果值;
所述获取单元,还用于在相同业务场景下,根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值;
所述确定单元,用于根据所述获取单元获得的所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性。
本申请提供的业务功能模块正确性的确定方法及装置,获取升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值,以及获取升级前的业务功能模块在不同业务场景下返回的所述各类型结果的第二结果值;在相同业务场景下,根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值;根据所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性。由此可知,本申请中,可以通过自动地获取不同业务场景下的各类型结果的目标结果值,并根据各类型结果的目标结果值,对升级后的业务功能模块的正确性进行确定,从而可以提高升级后的业务功能模块正确性确定的全面性和效率。
附图说明
图1为本申请一种实施例提供的业务功能模块正确性的确定方法流程图;
图2为本申请另一种实施例提供的业务功能模块正确性的确定装置示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本申请实施例的限定。
本申请实施例提供的业务功能模块正确性的确定方法及装置,适用于自动地对升级后的业务功能模块的正确性进行确定的场景,尤其适用于在业务切流的情况下,对升级后的业务功能模块的正确性进行确定的场景。此处的业务功能模块用于对业务请求进行处理,并返回处理结果,其可以为支付系统、银行系统或者其它业务系统。此外,本申请中的业务功能模块具有一种或者多种业务场景,且在不同的业务场景下,业务功能模块可以返回不同的类型结果。
业务切流是指在业务功能模块升级的过程中,按照一定的切流比例或者分不同的业务对业务功能模块的请求数进行分流的过程。在一个例子中,业务请求数的切流可以通过在业务功能模块内设置开关实现。需要说明的是,要实现业务切流,则要求升级前的业务功能模块和升级后的业务功能模块同时存在,且均可对业务请求进行处理。
举例来说,假设任一业务功能模块在一分钟之内可以处理1000笔业务请求,那么在该任一业务功能模块升级的过程中,当按照1%的切流比例对业务请求数进行切流时,则升级后的业务功能模块处理的业务请求数可以为10笔,而升级前的业务功能模块处理的业务请求数可以为990笔。
图1为本申请一种实施例提供的业务功能模块正确性的确定方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如图1所示,所述方法具体包括:
步骤110,获取升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值,以及获取升级前的业务功能模块在不同业务场景下返回的所述各类型结果的第二结果值。
需要说明的是,本申请的业务功能模块可以包括一个或多个参数,根据该一个或多个参数不同的取值可以确定该业务功能模块不同的业务场景。举例来说,假设业务功能模块包括两个参数:A和B,其中,A的取值可以为:{a1,a2,a3},B的取值可以为:{b1,b2,b3,b4},则可以确定该业务功能模块的12种不同的业务场景:{a1b1,a1b2,a1b3,a1b4,a2b1,a2b2,a2b3,a2b4,a3b1,a3b2,a3b3,a3b4},假设该业务功能模块可以返回五种类型结果(如,结果C、结果D、结果E、结果F以及结果G),其中,在不同的业务场景下可以返回五种类型结果中的一个或者多个。在一个具体例子中,假设业务功能模块1分钟内可以处理1000笔的业务请求,且该1000笔业务请求分别对应12种业务场景中的6种业务场景,则该业务功能模块在6种业务场景下的返回结果可以如表1所示。
表1
参数A |
参数B |
结果C |
结果D |
结果E |
结果F |
结果G |
a<sub>1</sub> |
b<sub>1</sub> |
12 |
12 |
12 |
- |
- |
a<sub>1</sub> |
b<sub>2</sub> |
- |
- |
103 |
103 |
103 |
a<sub>2</sub> |
b<sub>1</sub> |
72 |
- |
38 |
25 |
- |
a<sub>3</sub> |
b<sub>4</sub> |
34 |
34 |
56 |
13 |
7 |
a<sub>2</sub> |
b<sub>3</sub> |
213 |
32 |
43 |
234 |
234 |
a<sub>3</sub> |
b<sub>3</sub> |
23 |
2 |
2 |
3 |
4 |
需要说明的是,上述表1的内容可以直接从业务功能模块对应的日志文件中获取。举例来说,在业务功能模块为支付系统时,则上述参数A和参数B分别可以为:“交易类型”和“业务类型”,参数A的取值:a1、a2以及a3分别可以为:“淘宝交易”、“美团”以及“线下支付”;参数B的取值:b1、b2、b3以及b4分别可以为:“当面交易”、“声波支付”、“扫码支付”以及“刷脸支付”,而通过上述两个参数的不同取值确定的12种业务场景则可以分别为支付系统的12种支付渠道;在淘宝交易的场景下,返回的结果C、结果D以及结果E分别可以为“用户余额”、“银行卡”以及“余额宝”等。
可以理解的,在业务切流的情况下,可以直接从升级后的业务功能模块对应的日志文件中获取其在不同业务场景下返回的各类型结果的第一结果值;也可以直接从升级前的业务功能模块对应的日志文件中获取其在不同业务场景下返回的各类型结果的第二结果值。
需要说明的是,步骤110中的第一结果值可以是在预设的时间内(如,1分钟或者1天),由升级后的业务功能模块在对切换至该模块的业务请求处理后返回的各类型结果的次数,其中,切换至该模块的业务请求数可以是根据预设的切流比例计算的,此处,预设的切流比例可以为:1%、5%、10%、20%或者50%。举例来说,假设a1b1场景下1分钟内的业务请求数为100笔,则当按照1%的切流比例对该业务请求数切流时,则切换至升级后的业务功能模块的第一业务请求数为1笔,而切换至升级前的业务功能模块的第二业务请求数为99笔,也即第一业务请求数与第二业务请求数的比例为1:99=1.01%;而由于第一结果值是由升级后的业务功能模块在对第一业务请求处理后返回的,第二结果值是由升级前的业务功能模块在对第二业务请求处理后返回的,则理论上可以认为,同一类型结果的第一结果值与第二结果值的比值也应该为1.01%。而本申请对业务功能模块正确性的确定方法也正是基于这个原理。
具体地,在前述例子中的6种业务场景下,当按照1%的切流比例对业务请求数切流的情况下,假设获取到的升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值如表2所示。
表2
参数A |
参数B |
结果C |
结果D |
结果E |
结果F |
结果G |
a<sub>1</sub> |
b<sub>1</sub> |
3 |
3 |
3 |
- |
- |
a<sub>1</sub> |
b<sub>2</sub> |
- |
- |
13 |
13 |
13 |
a<sub>2</sub> |
b<sub>1</sub> |
22 |
- |
23 |
25 |
- |
a<sub>3</sub> |
b<sub>4</sub> |
34 |
34 |
56 |
13 |
7 |
a<sub>2</sub> |
b<sub>3</sub> |
13 |
32 |
43 |
34 |
23 |
a<sub>3</sub> |
b<sub>3</sub> |
23 |
0 |
2 |
3 |
4 |
且假设获取到的升级前的业务功能模块在不同业务场景下返回的各类型结果的第二结果值如表3所示。
表3
参数A |
参数B |
结果C |
结果D |
结果E |
结果F |
结果G |
a<sub>1</sub> |
b<sub>1</sub> |
297 |
297 |
297 |
- |
- |
a<sub>1</sub> |
b<sub>2</sub> |
- |
- |
1313 |
1313 |
1313 |
a<sub>2</sub> |
b<sub>1</sub> |
2200 |
- |
2300 |
2500 |
- |
a<sub>3</sub> |
b<sub>4</sub> |
3366 |
3366 |
5544 |
1287 |
693 |
a<sub>2</sub> |
b<sub>3</sub> |
1287 |
3168 |
4257 |
3366 |
2277 |
a<sub>3</sub> |
b<sub>3</sub> |
2277 |
2 |
2 |
3 |
2 |
步骤120,在相同业务场景下,根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值。
其中,步骤120中根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值,具体为:
步骤A:对所述各类型结果的第一类型结果,根据所述第一类型结果的第一结果值和所述第一类型结果的第二结果值,获得所述第一类型结果的目标结果值。
此处,第一类型结果可以为各类型结果中的任一类型结果。举例来说,在表2的a1b1场景下,第一类型结果可以为结果C、结果D或者结果E。在一个例子中,可以根据公式1获得第一类型结果的目标结果值。
(公式1)
其中,P为第一类型结果的目标结果值,C1为所述第一类型结果的第一结果值,C2为所述第一类型结果的第二结果值。根据公式1可以看出,第一类型结果的目标结果值为第一类型结果的第一结果值与第一类型结果的第二结果值的比值。举例来说,当第一类型结果为结果C时,则结果C的目标结果值为:结果C的第一结果值/结果C的第二结果值,而从表2中可以读取到在a1b1业务场景下,结果C的第一结果值为3,从表3中可以读取到结果C的第二结果值为297,所以结果C的目标结果值为:3/297=0.0101。优选地,可以将该目标结果值表示为百分比,即可以表示为1.01%。
步骤B:参照上述第一类型结果的目标结果值的获得方法,获得各类型结果中除第一类型结果外的其它类型结果的目标结果值;直至获得所述各类型结果的目标结果值。
如前述例子中,在表2的a1b1场景下,在获得结果C的目标结果值之后,可以参照结果C的目标结果值的获得方法,获得结果D与结果E的目标结果值。同理,可以获得其它业务场景:a1b2,a1b3,a1b4,a2b1,a2b2,a2b3,a2b4,a3b1,a3b2,a3b3,a3b4下的各类型结果的目标结果值。具体地,不同业务场景下各类型结果的目标结果值表示为百分比之后可以如表4所示。
表4
参数A |
参数B |
结果C |
结果D |
结果E |
结果F |
结果G |
a<sub>1</sub> |
b<sub>1</sub> |
1.01% |
1.01% |
1.01% |
- |
- |
a<sub>1</sub> |
b<sub>2</sub> |
- |
- |
0.99% |
0.99% |
0.99% |
a<sub>2</sub> |
b<sub>1</sub> |
1% |
- |
1% |
1% |
- |
a<sub>3</sub> |
b<sub>4</sub> |
1.01% |
1.01% |
1.01% |
1.01% |
1.01% |
a<sub>2</sub> |
b<sub>3</sub> |
1.01% |
1.01% |
1.01% |
1.01% |
1.01% |
a<sub>3</sub> |
b<sub>3</sub> |
1.01% |
0% |
100% |
100% |
200% |
步骤130,根据所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性。
其中,根据所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性具体为:
步骤X:对所述各类型结果中任一类型结果,判断所述任一类型结果的目标结果值是否在预设的取值范围之内,其中,所述预设的取值范围是根据预设的切流比例确定的。
此处,如前述例子,假设预设的切流比例为1%,则在相同业务场景下,同类型结果的第一结果值与第二结果值的比例应该符合1:99=1.01%,而由于业务功能模块在处理业务请求的过程中可能会存在误差,因此,在一种具体实现方式中,可以将[1.01%-0.1%,1.01%+0.1%]作为预设的取值范围,其中,0.1%可以根据经验值设定。
具体地,可以对表4中的不同业务场景下的各类型结果的目标结果值进行判断,判断其是否在上述预设的范围之内。
步骤Y:若所述任一类型结果的目标结果值不在预设的取值范围内,则调整所述预设的取值范围。
如前述例子,在对表4中的不同业务场景下的各类型结果的目标结果值进行判断之后,可以得出a3b3场景下的结果D、结果E、结果F以及结果G不在预设的取值范围之内。
由于在某一时间段内,业务功能模块可能存在整体业务返回量很小的情况,如,1分钟内小于10次,那么在业务切流的情况下,就会导致业务功能模块返回的结果的目标结果值偏差太大的情况,这种情况并不能说明升级后的业务功能模块不正确的问题,也即在这种情况下不需要预警,因此,需要剔除这种情况,以提高升级后的业务功能模块正确性判断的准确性。具体地,通过调整预设的取值范围,来剔除这种情况。在一个例子中,可以通过如下步骤调整预设的取值范围:
步骤a:根据所述任一类型结果的第一结果值、所述任一类型结果的第二结果值以及所述预设的切流比例,计算目标值。
在一个例子中,可以根据公式2计算目标值:
Dest=(C1+C2)×Pd×100 (公式2)
其中,Dest为目标值,C1为所述任一类型结果的第一结果值,C2为所述任一类型结果的第二结果值,Pd为所述预设的切流比例。如前述例子,已经得出a3b3场景下的结果D、结果E、结果F以及结果G不在预设的取值范围之内,当将结果D作为任一类型结果时,则如前所述,Dest=(2+0)*1%*100=2。同理可以计算得到不在预设的取值范围之内的每一类型结果的目标值,即可以计算得到结果E、结果F以及结果G的目标值。
步骤b:根据所述目标值,从预设的存储单元中读取对应的调整比例。
在一个例子中,预设的存储单元可以为表5所示的内容。
表5
目标值 |
调整比例 |
1-5 |
+-100% |
5-10 |
+-10% |
10-100 |
+-0.5% |
100以上 |
+-0.1% |
需要说明的是,表5的内容是预先设定的,其中,调整比例可以根据经验值设定。具体地,如前述例子,可以根据结果D的目标值,读取到对应的调整比例为+-100%。同理,可以根据结果E、结果F以及结果G的目标值,读取对应的调整比例。
步骤c:根据所述调整比例,调整所述预设的取值范围。
如前述预设的取值范围为:[1.01%-0.1%,1.01%+0.1%],在一个例子中,调整后的预设的取值范围可以为:[1.01%-0.1%-100%,1.01%+0.1%+100%]。当然在实际应用中,也可以通过其它方法调整预设的取值范围,如,[1.01%-100%,1.01%+100%],本申请对此不作限定。同理可以根据结果E、结果F以及结果G的目标值对应的调整比例,调整预设的取值范围。
步骤Z:若所述任一类型结果的目标结果值不在调整后的预设的取值范围之内,则确定所述升级后的业务功能模块不正确。
如前所述,调整后的取值范围可以为:[1.01%-100%,1.01%+100%],而在a3b3场景下,原本不在预设的取值范围之内的结果D的目标结果值,即表示为百分比后为100%,其在调整后的取值范围之内,所以根据a3b3场景下的结果D不能确定升级后的业务功能模块不正确。同理,可以得出a3b3场景下的结果F和结果G仍然不在调整后的取值范围之内,所以根据结果F和结果G,可以确定升级后的业务功能模块不正确,也即需要对升级后的业务功能模块进行修改。具体地,可以根据表2和表3中示出的结果F和结果G,对升级后的业务功能模块存在的问题进行追踪,并进一步地进行修改。
可以理解的是,在对升级后的业务功能模块进行修改之后,可以进一步根据本申请的方法对修改过的业务功能模块正确性进行确定,直至根据任一类型结果,均不能确定升级后的业务功能模块不正确为止。
在业务切流的情况下,当根据任一类型结果,均不能确定升级后的业务功能模块不正确时,则可以增大升级后的业务功能模块的业务请求数,即调整切流比例,并在增大业务请求数之后,继续根据本申请的方法对业务功能模块正确性进行确定,直至将切流比例调整为100%。
表6是在不同的切流比例下,对使用本申请的业务功能模块正确性的确定方法与现有技术中人工对业务功能模块的正确性进行确定所耗费的时间对比。
表6
从表6中可以看出,无论是在哪种切流比例的情况下,本申请方法的效率远远高于现有技术中的方法。此外,本申请方法除了在效率上提升比较明显外,还有更安全可靠的优点,因为人工抽样部分业务请求进行测试,会遗漏错误的业务请求。
本申请提供的业务功能模块正确性的确定方法,获取升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值,以及获取升级前的业务功能模块在不同业务场景下返回的所述各类型结果的第二结果值;在相同业务场景下,根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值;根据所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性。由此,可以提高升级后的业务功能模块正确性确定的全面性和效率。
与上述业务功能模块正确性的确定方法对应地,本申请实施例还提供的一种业务功能模块正确性的确定装置,如图2所示,所述装置包括:获取单元201和确定单元202。
获取单元201,用于获取升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值,以及获取升级前的业务功能模块在不同业务场景下返回的所述各类型结果的第二结果值。
其中,所述业务功能模块包括一个或多个参数,所述业务场景是根据所述一个或者多个参数的取值确定的。
获取单元201,还用于在相同业务场景下,根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值。
获取单元201具体用于:
对所述各类型结果的第一类型结果,根据所述第一类型结果的第一结果值和所述第一类型结果的第二结果值,获得所述第一类型结果的目标结果值;
参照上述第一类型结果的目标结果值的获得方法,获得各类型结果中除第一类型结果外的其它类型结果的目标结果值;直至获得所述各类型结果的目标结果值。
其中,所述根据所述第一类型结果的第一结果值和所述第一类型结果的第二结果值,获得所述第一类型结果的目标结果值,具体为:
根据如下公式获得所述第一类型结果的目标结果值:
其中,P为第一类型结果的目标结果值,C1为所述第一类型结果的第一结果值,C2为所述第一类型结果的第二结果值。
确定单元202,用于根据获取单元201获得的所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性。
确定单元202具体用于:
对所述各类型结果中任一类型结果,判断所述任一类型结果的目标结果值是否在预设的取值范围之内,其中,所述预设的取值范围是根据预设的切流比例确定的;
若所述任一类型结果的目标结果值不在预设的取值范围内,则调整所述预设的取值范围;
若所述任一类型结果的目标结果值不在调整后的预设的取值范围之内,则确定所述升级后的业务功能模块不正确。
其中,所述调整所述预设的取值范围,具体为:
根据所述任一类型结果的第一结果值、所述任一类型结果的第二结果值以及所述预设的切流比例,计算目标值;
根据所述目标值,从预设的存储单元中读取对应的调整比例;
根据所述调整比例,调整所述预设的取值范围。
本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。
本申请提供的业务功能模块正确性的确定装置,获取单元201获取升级后的业务功能模块在不同业务场景下返回的各类型结果的第一结果值,以及获取升级前的业务功能模块在不同业务场景下返回的所述各类型结果的第二结果值;获取单元201在相同业务场景下,根据所述各类型结果的第一结果值和所述各类型结果的第二结果值,获得所述各类型结果的目标结果值;确定单元202根据所述各类型结果的目标结果值,确定所述升级后的业务功能模块的正确性。由此,可以提高升级后的业务功能模块正确性确定的全面性和效率。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的对象及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。