文章目录
开篇:一个互联网测试的面试经历
小李做了两年电商App测试,觉得点来点去没意思,想转行去银行做测试。
面试时,面试官问了一个问题:“有个转账功能,你怎么测?”
小李立即回复:“先测正常转账能不能成功,再测输入框的边界值——金额最大能输多少、特殊字符会不会报错、网络不好时有没有提示……这些我们以前都这么测的。”
面试官又问:“转账金额超过限额怎么办?收款账户被冻结怎么办?节假日转账到账时间怎么算?”
小李愣了一下:“这些……需求里写了就测,没写我就不知道了。”
问题出在哪?不是小李不会测试,而是他的测试思维还停留在互联网模式。
这一课,我们就来探讨这个问题:从“互联网测试思维”到“银行测试思维”的切换。同时,我们还要建立一个重要的认知——银行系统到底长什么样。
银行测试和互联网测试,到底有什么不同:
上面例子中,小李的困惑,本质上反映了一个核心认知错位:他把“功能可用”当成了测试的全部,而银行测试的起点是“资金安全”。
互联网产品的测试逻辑是 “自下而上” 的:先保证功能能用,再考虑体验好不好,最后才是安全不可靠。安全通常排在最末位,因为互联网更看重“快”和“体验”。
银行产品的测试逻辑恰好相反:“自上而下” ,资金安全是第一位的,其次是数据准确,再其次是合规,最后才是用户体验好不好。
| 维度 | 互联网测试底层逻辑 | 银行测试底层逻辑 |
|---|---|---|
| 第一优先级 | 功能可用 | 资金安全 |
| 第二优先级 | 用户体验好 | 数据准确 |
| 第三优先级 | 性能快 | 合规达标 |
| 第四优先级 | 安全可靠 | 用户体验好 |
互联网测试保的是“用户心情”,银行测试保的是“账实相符”:前者关乎口碑和体验优先,后者关乎身家性命。具体来说,银行测试和互联网测试 有6大维度的差异化:
| 对比维度 | 互联网测试 | 银行测试 | 具体场景对比 |
|---|---|---|---|
| 测试依据 | 需求文档+原型图 | 需求文档+业务制度+法律法规 | 互联网:UI稿画了按钮红色就测红色;;银行:不仅要看需求,还要符合反欺诈、客户身份识别、当地监管的合规要求 |
| 核心目标 | 用户体验+功能可用 | 资金安全+数据准确+合规 | 互联网App卡顿3秒用户可能忍;;银行一笔钱算错1分钱就是事故,必须平账 |
| 数据关注 | 数据展示是否正确 | 数据流转是否一致 | 互联网:页面显示100元就行;;银行:前端页面100元→后台数据库100元→会计科目100元→报表100元,全链路一致 |
| 异常场景 | 网络异常、超时、崩溃报 | 环境异常、资金不足、限额拦截、账户冻结、反洗钱触发等 | 互联网测“断网时提示网络错误”,超时报错,让用户重试;;银行测“资金被拦截时的资金去向”:事务回滚,扣钱成功但显示超时,银行系统必须自动冲正(把钱退回去),绝不能出现“钱扣了状态未知” |
| 测试环境 | 一套测试环境基本够用 | 多套环境(SIT/UAT/演练/生产) | 互联网:开发自测+测试环境+预发+生产;;银行:开发环境→功能测试环境→验收环境→演练环境→生产环境,每套独立 |
| 并发逻辑 | 秒杀时库存超卖几个没关系,补货就行 | 账户余额绝不能为负。 | 互联网:体验优先;;银行:安全/账务优先,账户余额绝不能为负,测试必须验证:同一账户并发取款,数据库锁机制能否精准拦住 |
| 缺陷等级 | 崩溃>功能异常>UI问题 | 资金类>账务类>流程类>体验类 | 互联网闪退是P0;;银行页面错了个字可以等下个版本,但余额多了一分钱要连夜修复 |
核心差异-银行测试的底层逻辑是“零信任”:
互联网测试是“让用户觉得好用”,而银行测试是“把所有人都当成潜在的坏人或犯错者”。
1)互联网测试:体验优先(面子)
互联网产品(如某音、某宝)的核心竞争力是用户留存时长和转化率。
测试目标:确保用户用得爽、流畅不卡顿、界面好看舒适。
容错机制:允许Bug存在,只要不影响主流程。
底线:服务挂了、配置错误可以“502”和"404",只要快速恢复,用户刷新一下就行了。
2)银行测试:安全优先(里子)
银行系统(如核心账务)的本质是会计工具。“安全”不仅仅是防黑客,更核心的是“账务安全”和“监管合规”。
银行系统的对客交易接口(如手机银行转账、支付),通常不允许直接透传HTTP 5xx如502 或4xx 如404给前端客户。
为什么会产生这种本质差异?
最核心的原因是“最终一致性” vs “强一致性”:
互联网(最终一致性):你下单买了一件物品,只要最终订单状态对了,中间缓存同步慢了十几秒没关系。
银行(强一致性):账务系统必须实时强一致。A账户减100元的那一刻,B账户必须同时加100元,中间绝不允许出现“资金悬空”的真空期(即:钱既不在A账户也不在B账户)。
所以,银行测试人员拿到需求时,提出的疑问一般不会是“界面好不好看”,而是比如:
这笔资金转账中断了,怎么补(冲正/补偿机制)?
对账不平怎么办(差错处理)?
允不允许这样做(合规检查)?
思维切换:三个须要改掉的“互联网测试习惯”:
习惯一:“需求没写我就不测”
互联网测试中,需求文档基本覆盖了所有功能点,测试照着需求写用例就行了。但在银行,需求文档有时写了“正常情况”,一些“异常情况”藏在业务制度、风控规则、监管文件里。
举个例子:需求上写实现某个风控规则,但风控前可能还会涉及到客户限额、冻结解冻、周末处理机制等的校验。又比如“单笔转账n万”,可能涉及了反洗钱的大额交易校验等。
银行测试的实际情况是:需求有时候写的是“下限”,还需要考虑“互斥性”“关联性”和“上限”等。
习惯二:“测完功能就完事了”:
互联网测试中,功能测完、界面正常、流程走通,基本就算完成了。但在银行,功能测完只是第一步,还要验证:
这笔交易产生的会计分录对不对?
这笔交易有没有被记录到正确的报表里?
这笔交易触发的利息/手续费/汇率计算是否精确?
银行测试的实际情况是:功能测完不代表账务测完,账务才是核心。
习惯三:“Bug能修就行,不影响上线”:
互联网讲究“快速迭代”,小Bug可以带着上线,下个版本再修。但在银行,任何涉及资金的Bug,不管多小,都必须修完才能上线。
为什么呢?因为一个看似“很小”的资金Bug,一旦被恶意利用,可能造成巨大损失。比如“余额显示多了一分钱”这种Bug,在互联网可能优先级很低,但在银行,黑客可以利用这个漏洞反复套利。
银行测试的实际情况是:资金类Bug没有“可容忍”一说,必须“修改”,开启紧急BUG修复任务。
银行系统到底长什么样:
银行系统虽然多,但如果你从“职能”的角度去理解,它们可以归为三大类:
第一层:渠道系统,这是客户直接接触的入口或者是银行的门面,比如手机银行、网上银行、微信银行、电话银行、柜面系统、ATM。
第二层:核心业务系统 ,这是银行的大脑、处理每一笔交易的核心逻辑。
第三层:外围支撑系统,这是银行的后勤,管理客户、账务报表风险等。
一笔100元的转账,可能会经过了多个甚至十几个系统。
银行测试分析必须知道系统架构——你不知道交易经过哪些系统,就无法验证所有环节是否正确。了解链路,可以快速理解新需求的影响面、精准找到对应系统联系人、设计“跨系统”验证点、有效定位问题卡点。

467

被折叠的 条评论
为什么被折叠?



