#Atstudy网校TB#复杂的分布式核心系统如何测试呢?,软件测试架构师必备知识

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


推荐阅读