基于超级网银异地多活项目的多活类项目测试经验分享,了解金融行业软件测试实践

背景:在软件测试领域,金融行业软件测试无疑有着重要的位置,它吸纳了众多行业相关从业者,同时随着金融业务不断增加、模式也在不断变化,也对金融行业的软件测试人员在能力、测试技能的要求更高。

本文中,中国农业银行研发中心北研测试部线上支付测试组的高级专员张晴,分享了基于超级网银异地多活项目的多活类项目测试经验

网上支付跨行清算系统(以下简称为超级网银系统)是中国农业银行(以下简称农行)八大重要敏感系统之一,对客提供7*24的跨行转账服务,日均交易量大、账务风险高、系统敏感性强。近日,农行超级网银异地多活高可用建设项目已完成全部阶段的投产。至此,超级网银系统成为农行第一个完成异地多活高可用建设的业务运营系统,进一步提升了容灾和系统处理能力。

针对本次超级网银异地多活改造内容,测试团队根据已有测试资产,从应用层、数据层以及容灾场景进行测试点分析,形成了本次改造的功能测试、性能测试和切换场景测试策略,设计了7300余个测试场景,确保了项目4个投产窗口的顺利实施。现将本次超级网银异地多活项目经验进行分享,以供参考。

深入分析系统架构,确立异地多活类项目测试策略

超级网银系统作为农行跨行转账业务的主要通道之一,其主体功能包括跨行转账、签约、跨行查询、手机号支付、同人跨行借记等。超级网银系统的消费方包括前端渠道及分行系统,各消费方通过综合网关平台接入,通过人行前置机与行外进行连接,最终由核心系统处理,过程中会使用客户信息等基础服务。

1.应用层测试策略分析。应用层测试主要可分为公共参数、缓存同步、消费方改造三类测试。

公共参数方面,因异地多活切换过程中需要保障北京、上海本部、上海同城三地间应用公共参数的高度一致性,在完成公共参数修改后,需要进行数据库三写验证并分别访问三地数据库,确认访问数据的正确性。

缓存同步方面,部分限额参数由EXP同步给超级网银系统,需要在测试过程中重点验证北京、上海本部、上海同城三地间限额的一致性。

由于本次改造后对外提供服务的接口无任何变化,本次改造无需进行消费方测试。

2.数据层测试策略分析。数据层测试主要可分为数据同步、数据文件处理、数据迁移三类测试。

数据同步方面,因本次部分网络金融运管平台及批量交易改造涉及跨区访问,需对相关交易的统计结果正确性进行验证,同时要对单园区异常、多园区异常的组合场景进行测试。

数据文件处理方面,提前对进行多库操作的联机、批量交易进行数据预埋,对各分区单独有数据、混合有数据的场景进行回归验证,确保铺底数据的量级与生产一致,确保账务类批量的防重结果,确保各类交易时间以及交易完成后确认处理时间不会因多库访问而明显增加。

数据迁移方面,本次改造无需进行数据迁移。

3.容灾场景测试策略分析。本次异地多活改造是为了保证北京中心可用性,确保上海区域故障时交易可以大胆切换至北京中心,同时确保交易在异步交互过程中多笔报文的路由一致性。

根据上述特点,容灾测试主要分为两点:1.保障交易全部切换至北京区域运行时处理能力及资源可以满足相关需求;2.对切换过程中北京、上海中心异常的组合场景进行测试,确保无论正常切换还是切换过程中出现异常,均不会影响系统恢复处理能力。

保障测试结果可靠性

理论指导实践,根据以上应用层、数据层和容灾场景测试策略分析结果,考虑到本次异地多活改造测试时间只有2个月,且期间还需要承接其他测试内容,测试团队根据开发团队的开发计划,制定了早介入早测试的策略,同时为了加强测试结果的可靠性,采取了如下策略:

1.引入自动化测试工具提升测试效率。本次项目测试过程对异地多活改造联机与批量、报文路由、路由规则的正确性、路由调整后交易的正确性共进行了四轮回归测试。因超级网银系统已实现联机交易的100%覆盖,测试团队在每一轮测试完成后都进行自动化案例回归,累计执行自动化案例近3000条次,确保了联机交易结果的正确性,大大提升了回归测试的测试效率。

2.关联交易全链路回归。针对个别链路较长的交易,采用从发起到最终结束全链路回归的方式。以农行发起支付协议签约为例,其交易链路如下图所示:

图1 农行发起支付协议签约交互图

可以看到,完成一次跨行支付协议签约需要经过农行个人网银、超级网银系统、电子银行客户信息系统、人行、他行5方共14次交互才能完成签约,签约过程中涉及个人网银发起签约、超级网银签约回执、签约查证3只交易。在测试过程中从个人网银发起交易,对个人网银、超级网银、电子银行客户信息系统三个行内系统的数据存储和报文交互正确性一一进行验证,最后对农行与行外报文交互正确性进行确认,确保测试过程中全链路各系统处理无误。

3.将测试资产与混沌模拟结合,保障测试全面性。前期超级网银系统已完成往账重构、来账重构、同城双活及OCP迁移CCE等多次架构类改造,形成了系统内测试资产。本次测试过程中测试团队利用已有资产与项目组进行了多次讨论,梳理了切换过程中数据库、智能路由、前置机的多种异常场景,使用混沌工程工具对此类异常进行了全量模拟,保障了切换异常测试的全面性。

4.重视路由正确性验证和稳定性验证。超级网银系统作为实时系统,对平时及切换过程中交易成功率等稳定性指标有较高要求。日常运维过程中,智能路由需要承担源交易反查、灰名单匹配优化、核心规则动态切换、灰度流量动态调配等重点功能,是交易稳定性的一道重要防线。为保障路由测试的全面性,功能测试方面,测试团队从接口文档入手,对本次升级改造中7套路由规则、上述各重点功能进行了全量回归;性能测试方面,对真实场景进行了模拟,对路由规则切换过程中动账交易的损失、开关交易反查时的负载、疲劳等场景逐一进行了测试,确保交易成功率不因本次路由改造受影响。

工欲善其事,必先利其器。想要做好重要敏感系统的测试工作,需将复杂的改造内容剥茧抽丝,详细分析。以上是基于超级网银系统异地多活测试过程中的探索实践进行的总结,望能抛砖引玉,启发后续进行异地多活建设的系统,形成测试策略动态优化的闭环,为农行各个系统实现高可用切换、高可用容灾的目标继续努力。

后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

整套资料获取

猜你喜欢

转载自blog.csdn.net/wx17343624830/article/details/131245988