查看原文
其他

实战丨银行业统计测试——理论与实践

金融电子化 金融电子化 2021-08-11

欢迎金融科技工作者积极投稿!

各抒己见!

投稿邮箱: 

newmedia@fcmag.com.cn

                                 ——金融电子化


文 / 中国农业银行研发中心  黄翔

本文将统计测试方法应用到银行核心系统的测试实践中,通过选用无知识分配法对转移概率进行初始化,并基于最大化失效经济损失的优化目标,自动生成模型转移概率,使得失效损失大的操作得到充分测试,从而在保证质量的前提上最大程度地减轻手工测试的工作量。


01

统计测试简介

金融需求已经融入到日常生活场景中,以场景为核心向用户提供金融服务,且积累了大量的用户行为数据。在场景金融的测试用例中,软件操作的组合往往是呈指数级增长的,对所有的操作路径进行详尽测试显然是不可能的,也非常浪费资源,所以必须利用统计学方法来对系统的运行情况做一个有效的推理。用抽样的方法,从所有可能的输入序列中选取一个很小的集合,且能最大程度地覆盖金融场景,进而用样本的运行情况估计总体的质量特征。


基于马尔可夫链使用模型的统计测试,运用统计学中“样本估计总体”的思想来指导软件测试,通过将统计测试方法应用到特定的金融场景,可以生成特定场景下基于用户行为数据的场景金融测试用例,从而在覆盖业务场景的基础上保证测试质量,提高测试效率。

 

02

马尔可夫链使用模型

在统计测试中,常见的使用模型为马尔可夫链使用模型。马尔可夫链是满足马尔可夫性质的离散事件随机过程。该过程中,在给定当前知识和信息的情况下,过去对于预测将来是无关的。马尔可夫链是广泛应用在排队论、熵编码技术、生物信息学上的一种统计学模型,而基于马尔可夫链的软件使用模型是由软件的状态和边组成。状态表示软件在使用过程中的内部环境。状态转换是指当软件在某一状态经输入激励,从该状态转换到另一个状态的过程。一个马尔可夫链使用模型可表示为M=(S,P,Q),其中S是状态集,P是转移概率矩阵,Q是系统的初始概率分布。


马尔可夫链模型的应用流程如下:首先是根据需求文档构建使用模型,其中的关键是转移概率的优化求解。常用的算法有最大熵生成法、模型复杂度生成法、失效经济损失数据法等。然后再根据构建的使用模型,自动生成测试用例。最后是对马尔可夫链使用模型的参数进行分析,从而对模型结构进行优化。

 

03

统计测试应用实践

一是构建马尔可夫链使用模型。马尔可夫链使用模型基于软件的需求文档,记录了软件的使用行为。在银行业的理财业务中,常见的现象是由于客户未能记住产品到期日,导致在理财产品到期后资金闲置,客户的理财收益不断流失。为了在理财产品到期时,能够给客户推荐合适的到期对接产品,可以依据产品的需求文档构建相应的马尔可夫链使用模型。依据无知识分配法的相关理论,除了确定性的操作之外,对于有多条出边的操作,一般平均分配各条边的转移概率,如图1所示,其中BoEing为中国农业银行新一代核心银行系统的英文简称。这里的A、B、C、D、E、F、G代表软件操作流程中的七种状态,一般称开始状态A为生状态,结束状态G为灭状态。a、b、c、d、e、f、g、h、i、j代表状态激励,下面的数字表示该边对应的初始转移概率。对于任意的马尔可夫链使用模型,有且仅有一条从灭状态到生状态的有向边,这是为了保证该马尔可夫链使用模型的各个状态都是可达的,进而保证存在唯一的平稳分布。

图1  基于银行核心系统的马尔可夫链使用模型

 

二是建立转移概率优化目标。使用模型构建完毕后,我们运用“失效经济损失数据法”对转移概率进行优化。该方法以最大化失效经济损失为最优化目标,自动生成模型转移概率,使得失效损失大的操作得到充分测试。采用失效经济损失数据法,最优化目标函数

对于这个目标函数,可以这样理解:在平稳分布Πi和损失矩阵lossi,j一定的情况下,最大化失效损失即是尽可能的提高失效损失大的重要操作的转移概率值pi,j,这会使得失效损失大的操作被较大可能测到,从而提高模型的可靠性。该方法需要满足两个约束条件:一是结构约束条件:待确定的转移概率满足(0,1)开区间之间以及同一起始状态的所有边的转移概率之和为1。二是使用约束条件:转移概率之间存在线性关系或是区间约束。


失效经济损失数据法包含两个步骤,第一步是求解一个满足转移概率约束条件的平稳分布。本文采用的是最大熵方法,因为当信息缺失时,最大熵估计就是最少偏差估计量。依据熵的定义,构建相应的目标函数和约束条件,通过优化软件求解得到马尔可夫链使用模型中各个状态的平稳分布

失效经济损失数据法的第二步是定义失效损失矩阵,并利用有约束线性规划算法求解。这里的损失矩阵依据历史数据估计得到,对于失效之后损失较大的操作,一般赋予较大的失效损失值。相应的约束条件依据先验判断得到。最后通过优化软件求解,可以得到优化之后的马尔可夫链使用模型转移概率矩阵P

矩阵中行(列)代表的状态从上到下(从左到右)分别为A(登录BoEing),B (产品到期对接),C(未到期理财产品1),D (未到期理财产品2),E(对接产品1),F( 对接产品2),G(提交)。


三是随机生成测试用例。依据优化之后的马尔可夫链使用模型,本文利用计算机生成(0,1)开区间之间的伪随机数数列(x, y),依据图2选取马尔可夫链使用模型的最优路径。

图2 最优路径选择流程


在测试执行过程中,伪随机数数列为(0.6, 0.2),依据以上判断规则,选取的最优路径为a→c→f→h,即为随机生成的流程级测试用例(表1)。当生成的随机数足够多时,基于马尔可夫链使用模型生成的测试用例可以最大程度地覆盖到软件失效损失较大的操作,从而保证测试的充分性。


表1 马尔可夫链使用模型测试用例


04

总结与展望

本文系统地阐述了统计测试的理论背景及应用实践,试图通过这种高效的统计测试方法对金融行业尤其是银行业核心系统的软件测试提供借鉴。统计测试方法可以将具有个N流程、M个输入的流程级测试案例的计算复杂度由MN减少到MN,从而在覆盖业务场景和保证测试质量的基础上最大程度地减轻手工测试的工作量,具有较好的应用前景和经济效益。






往期精选:

(点击查看精彩内容)


● 实战丨招商银行分布式交易平台建设

● 实战丨智能客服驱动信用卡服务价值裂变

● 实战丨数据中台的云原生应用实践

● 实战丨公司治理视角下的金融机构数据治理思路探讨

● 实战丨物联网背景下的智慧消防建设与实践






关于仿冒我刊收费的声明





我刊自创刊以来,从未向投稿人收取过任何费用。任何以刊发文章为名向投稿人收取费用的行为,均属于对投稿人的欺诈行为。


我刊官网地址为 www.fcmag.com.cn。

我刊投稿邮箱为 fcmag@fcmag.com.cn。


对于仿冒我刊网站、网页的违法行为,我社将追究其侵权责任,以维护我社和投稿人的合法权益。仿冒网站、网页举报电话:010-88232443




《金融电子化》新媒体部:主任 / 邝源  编辑 / 潘婧 傅甜甜

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存