分布式核心系统测试方法探索与实践

发表于:2020-3-03 10:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:邵硕    来源:51Testing软件测试网原创

  基于主机的集中式架构核心系统面临着成本高昂、处理能力接近极限、技术封闭与弹性伸缩不足等方面的挑战。分布式核心系统,以构建主机+开放融合式架构为目标,搭建开放平台分布式核心系统应用平台,对原有的关联系统实现透明,对外提供统一的服务。分布式核心系统在扩展性、低成本、降低运行风险等方面具有明显优势。那么,分布式核心系统如何测试呢?小伙伴们,赶紧一起来看下吧!
  一、联机交易测试
  新架构下,开放平台继承主机(应用模块A)功能,搭建开放平台应用体系(开放系统A),服务于开放平台其它应用;与主机应用无关的功能从主机剥离,下移到开放平台,减少主机消耗。其总体架构如图1所示。
  图1 分布式核心系统总体架构
  根据原主机应用模块A被开放系统和主机其它应用调用的情况,分布式核心系统联机交易分为以下五种交易类型(见表1)。
  表1 分布式核心系统联机交易类型
  对应表1的五种联机交易类型,采用差异化联机交易测试方法,各类交易涉及的测试项如表2所示:
  表2 分布式核心系统联机交易测试方法
  1、完全下移:测试交易处理结果与开放系统A Oracle记录是否一致。
  2、同步下移:测试交易处理结果是否同步更新至开放系统A Oracle库和主机DB2。
  3、暂时同步:测试方法分别对应完全下移交易或同步下移交易。
  4、数据同步:通过未改造老主机交易更新主机数据,测试数据同步交易查询结果是否与开放系统A Oracle库记录一致,Oracle库是否与主机DB2记录一致。
  5、未下移:回归测试,验证原主机交易是否成功,DB2数据是否正确。
  二、批量交易测试
  分布式核心系统批量交易测试主要采用类白盒(根据测试需求和应用设计情况,通过技术手段,直接操作后台数据库等进行数据准备和测试结果验证)测试方法,在开放系统A Oracle库准备相应测试数据后通过批量客户端调起批量节点,检查节点执行状态并根据交易规则核对数据验证结果。测试过程包括先进行单节点测试,着重于节点的功能检查,再执行整个作业计划,关注节点顺序配置及节点间数据交互的正确性。
  三、补偿机制专项测试
  分布式核心系统,需要确保主机和开放系统的数据一致性,对外提供统一的服务。系统通过联机补偿和批量补偿两种机制来实现。
  3.1联机补偿测试
  对于同步下移交易,在开放端处理成功后,由于主机交易未启用、网络延迟等原因,导致协同主机失败,类网关协同表记E状态,交易报错。该场景下,测试利用交易的幂等特性,完全不做修改或修改请求数据非主键信息再次提交,实现协同处理成功。
  图2 联机补偿测试流程
  3.2批量补偿测试
  对于同步下移交易,在开放处理成功但由于网络等原因主机应答无返回的情况下,类网关协同表记U状态,需日终进行批量补偿,使用开放库最新数据更新主机数据,实现主机与开放数据最终一致性。
  批量补偿测试过程:筛选出前一个会计日期类网关协同表U状态的记录,按照交易发生的顺序逐条读取协同信息,根据记录的操作类型、表名和WHERE语句,在协同操作的开放表中查询最新的数据,并根据协同操作类型的不同以及协同处理的开放表相应数据记录是否存在,根据表3测试方法验证生成主机补偿文件是否正确、主机依照生成的文件执行补偿是否成功。
  表3 分布式核心系统批量补偿专项测试方法
  四、应急切换专项测试
  4.1 数据同步应急切换测试
  正常情况,查询交易经类网关上开放系统A处理,开放系统A的数据由主机库通过数据同步机制秒级同步至开放库。当数据同步机制出现故障时,主机数据无法同步至开放系统A对应的表中,系统支持数据同步交易直接访问主机DB2表完成查询处理。
  图3 数据同步应急切换测试流程
  非应急状态下,直接在数据同步交易所查询的开放系统A表中修改数据,构造主机和开放数据库数据不一致的情况,测试数据同步交易查询结果是否和开放系统A表中数据一致。
  应急状态下,在主机DB2表中修改数据,测试数据同步交易查询结果是否和主机表中数据一致,与开放系统A表中数据不同,确认应急方案是否生效。
  4.2 交易路由应急切换测试
  图4 交易路由应急切换测试流程
  当开放系统交易处理失败时,由类网关将交易路由切换至原主机交易处理,实现系统的稳定性。交易路由应急方案适用于下移前后接口未发生变化的交易。
  非应急状态下,类网关交易表路由字段为开放系统地址配置,按照四种改造交易类型测试交易是否处理成功。
  应急切换后,类网关交易表路由字段切换为主机地址配置,测试原主机交易是否处理成功。校验是否只变动主机DB2表,开放数据库表未更新。
  总结
  主机+开放融合式架构的分布式核心系统,较原主机核心系统,应用架构、交易处理链路及数据交互更加复杂,测试难度更大。上述分布式核心系统的联机、批量、补偿和应急测试方法已经在测试项目中实践应用,项目已顺利投产,希望能够对大家提供一些思路和帮助。当然,测试人员还要与开发人员充分进行系统设计和测试方案的讨论评审,根据不同的分布式核心系统的系统设计来制定相应的测试方案,确保测试更加完整和充分。

     版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号