金融行业测试总结
一、金融行业测试关键点(核心模块)
结合银行、支付、信贷、理财、证券等主流金融场景,提炼高频测试关键点,覆盖业务、技术、合规三大维度:
1.1 核心业务模块测试关键点
1.1.1 账户与权限模块
- 账户开立、销户、冻结、解冻、挂失、解挂的全流程校验
- 多角色权限隔离(管理员、操作员、普通用户、风控岗),越权操作拦截
- 身份核验(手机号、身份证、人脸、短信验证码)有效性、防绕过测试
- 账户状态联动(冻结账户禁止交易、挂失账户禁止提现)
1.1.2 交易与支付模块
- 充值、提现、转账、支付、退款的金额准确性,手续费、汇率、税费计算无误
- 交易超时、断网、重复提交、并发交易的幂等性校验(避免重复扣款)
- 交易状态同步(待支付、支付中、成功、失败、冲正),状态不错乱
- 跨行交易、第三方支付(微信/支付宝)、银联通道的联动一致性
1.1.3 账务与清算模块
- 总账、分户账、明细账核对,账证相符、账账相符、账实相符
- 日终批量清算、对账、轧账流程,清算失败自动重试/人工干预机制
- 利息计算(活期、定期、贷款)、罚息、复利核算精准
- 账务冲正、调账流程合规,操作留痕可审计
1.1.4 风控与反欺诈模块
- 大额交易、异地交易、高频交易、异常账户的拦截规则生效
- 黑名单、白名单、灰名单管控,欺诈行为精准识别
- 风控规则阈值可调,误拦/漏拦场景兜底处理
- 征信数据对接、信贷风控模型校验,授信额度管控
1.2 技术与非功能测试关键点
- 性能测试:并发交易数、响应时间、TPS/QPS、批量清算时长、服务器负载
- 安全测试:SQL注入、XSS跨站、越权访问、数据加密(传输/存储)、接口防刷、日志审计
- 兼容性测试:多浏览器、多APP版本、多操作系统、多网络环境(4G/5G/WiFi)适配
- 容灾测试:主备切换、故障恢复、数据备份与回滚,数据不丢失
- 易用性测试:金融术语通俗化、操作流程简化、异常提示清晰,降低用户操作风险
1.3 合规与风控测试关键点
- 客户身份识别(KYC)、反洗钱(AML)流程合规
- 个人金融信息脱敏、加密、存储合规,不超范围采集数据
- 交易日志、操作日志留存时长满足监管要求,可追溯可审计
- 金融广告、理财话术合规,无虚假宣传、误导性描述
二、核心系统架构
- 单体核心VS分布式微服务架构
- 多活部署:同城双活、异地多活、灾备集群
- 系统链路:渠道层(APP/网银/柜台)→接入层→业务层→核心层→数据层
- 关键子系统:核心账务、支付网关、风控引擎、清算对账、第三方对接
- 分布式链路调用、上下游数据一致性、集群容错、主备切换
- 流量削峰、异步解耦、超时重试、熔断降级
三、金融测试核心技术
-
1. 分布式事务(账务/交易核心)
- 核心诉求:要么全部成功,要么全部失败,杜绝资金短款/长款
- 主流方案:TCC、SAGA、2PC/XA、Seata、最终一致性
- 测试场景:事务超时、中间节点失败、网络中断、重复提交
- 校验点:数据一致性、无脏数据、可回滚、可冲正
-
2. 接口幂等性(防重复扣款)
- 核心定义:同一请求多次执行,结果唯一、无重复操作
- 实现方式:唯一流水号、分布式锁、防重表、状态机控制
- 测试场景:连续点击、断网重试、MQ重投、回调重复
- 校验点:仅单次扣款、仅生成1笔订单、状态不紊乱
-
3. 账务与清算技术
- 核心逻辑:复式记账、借贷平衡、账证/账账/账实相符
- 关键流程:日终批量、轧账、对账、清算、总分核对
- 特殊操作:冲正、红冲蓝补、调账、差错处理
- 测试重点:金额精准、计息/罚息/手续费无误、批量任务正常
-
4. 风控与反欺诈
- 规则引擎:Drools、自研规则、阈值管控
- 风控类型:大额交易、异地登录、高频操作、黑名单/灰名单管控
- 测试场景:规则触发、临界值、误拦/漏拦、人工复核流程
- 合规点:KYC实名认证、AML反洗钱、交易留痕
-
5. 数据安全与脱敏
- 数据分类:敏感数据(身份证/卡号/密码)、业务数据、日志数据
- 技术手段:传输加密(HTTPS)、存储加密、字段脱敏、签名验签
- 测试要求:禁止生产数据直连测试、脱敏彻底、日志无敏感信息
四、方案
1. 分布式事务一致性测试方案
- 测试前提:明确事务链路(下单→扣款→扣库存→通知)、事务模式(TCC/SAGA/2PC/Seata)、异常节点
- 核心测试场景:正常流程:全链路事务提交,上下游数据完全一致,无资金偏差
- 异常中断:中间服务宕机、网络闪断、数据库超时,触发事务回滚/补偿
- 超时重试:事务超时后自动重试,杜绝重复执行、数据重复
- 手动补偿:事务失败后人工介入兜底,数据可修复、可追溯
校验标准:资金总账平衡、无短款长款、无脏数据、操作留痕可审计
测试方法:接口断点调试、Mock异常、批量造数、全链路对账
2. 幂等性接口的设计与测试方法
- 核心设计思路:全局唯一流水号(订单号/交易号)、分布式锁、防重表、状态机流转、请求签名校验
- 标准测试场景:重复提交:同一请求连续发起N次,仅执行1次业务逻辑
- 网络重试:断网重连、接口超时重试,无重复扣款/重复入账
- MQ重投:消息队列重复投递,消费端仅处理一次
- 异步回调:第三方重复回调,状态不篡改、数据不翻倍
校验点:交易次数唯一、金额无叠加、状态唯一、返回结果一致
测试技巧:固定请求参数+重复发起、查看数据库唯一约束、日志核对执行次数
3. 日终清算失败的故障排查与修复
- 排查流程(按优先级):第一步:查看清算日志、批量任务状态,定位失败节点(脚本/接口/数据库)
- 第二步:核对前置数据(交易流水、账户余额、中间表数据)
- 第三步:判断失败类型(数据异常、依赖服务宕机、脚本bug、资源不足)
- 第四步:核查清算规则(计息、手续费、总分核对逻辑)
修复方案:临时修复:清理脏数据、重启批量任务、人工补跑清算脚本
兜底修复:冲正错误账务、红冲蓝补调账、同步对账数据
长效优化:增加清算重试机制、异常告警、预检查逻辑
测试关注点:清算失败自动重试、异常告警、手动干预流程、修复后对账一致
4. 高并发下的资金安全防控测试
- 核心防控目标:防超卖、防重复扣款、防超额提现、防数据错乱
- 测试场景:并发扣款:多线程同时操作同一账户,余额扣减准确、无负数
- 峰值流量:模拟发薪日/大促流量,校验TPS、响应时间、成功率
- 锁机制测试:分布式锁/数据库锁生效,无并发竞争导致数据异常
- 熔断限流:超出阈值触发限流,不雪崩、不丢交易
测试工具:JMeter高并发造数、Redis监控、数据库事务日志
校验重点:余额准确性、交易完整性、无脏读幻读、系统稳定不宕机
5. 生产数据脱敏与测试数据构造
- 脱敏核心原则:保留业务格式、抹去真实信息、合规不泄露、测试可用
- 脱敏场景与方法:身份证/手机号:中间字段打码(138****1234)、替换虚拟号段
- 银行卡号:保留前6后4,中间替换、生成虚拟卡号
- 密码/密钥:强制置空、加密存储、替换测试密钥
- 日志脱敏:屏蔽敏感字段、禁止打印明文信息
测试数据构造:规范造数:按业务规则生成模拟数据(账户、交易、余额)
覆盖场景:正常数据、边界值、异常值、合规/违规数据
数据隔离:测试库与生产库物理隔离,禁止直连生产
合规要求:符合《个人信息保护法》、金融数据安全规范,留存脱敏日志
6. 跨系统对账差异处理测试
-
对账核心场景:核心系统与支付系统、银行通道、第三方平台、清算系统对账
-
对账流程测试:数据采集:拉取上下游交易流水、订单号、金额、状态、时间戳
-
匹配规则:按唯一流水号对账,核对金额、状态、笔数一致性
-
差异识别:自动标记长款、短款、状态不符、漏单、多单
-
差异处理:自动重试、人工复核、调账、补单闭环
测试重点:对账覆盖率100%、差异告警及时、处理流程可追溯、调账后账实相符
异常场景:单边账、超时未回调、数据延迟、通道丢包
7. 灾备切换与故障恢复测试流程
- 测试前提:主备集群部署、备份策略完整、切换预案明确、权限管控
- 标准测试流程:前置检查:主节点状态、备节点就绪、数据同步进度、备份完整性
- 故障模拟:主服务器宕机、数据库断连、机房断网、中间件崩溃
- 切换执行:自动/手动切换至备节点,核查切换耗时、服务可用性
- 恢复验证:业务正常运行、交易可正常发起、历史数据无丢失
- 回切演练:主节点修复后,平稳回切,无业务中断
校验指标:切换成功率100%、数据零丢失、RPO/RTO达标、无业务中断
风险防控:切换前备份数据、全程监控、异常回滚、操作留痕
五、总结:金融测试核心抓资金安全、数据一致、合规留痕、高可用;
浙公网安备 33010602011771号