一、分享内容
通过项目积累梳理出一套行之有效的系统分析策略,以过户发票业务为案例的业务分享。
二、老系统通用问题
1、产品、测试、开发对系统没有全貌的了解,业务认知存在部分缺失
- 发现问题滞后
- 缺失的校验
三、系统分析策略
1、主流程
目标:获取系统的全局认识
做法:
1、系统功能定位,对外交互,对内流转
2、系统交互时序图梳理实现方式
3、分析粒度变小,系统原型层面认识页面元件交互
2、逆向流程
相对于正向流程而言相反方向的可能性。人们往往习惯性正向思维,正向流程业务逻辑易于理解。逆向流程则可能会复杂,因为正向流程的每个环节都有可能发生逆向流程。
1、过户申请,申请作废发票
发票待开票、待审核、开票失败、已开票的任何一个环节都可以申请作废
2、预约工单赴约、爽约
3、交易订单下单、退换货
4、支付网关的支付、退款
3、异常流
关注点:系统可能存在的异常错误,导致阻断用户使用产品的流程
场景:
1、开票失败,系统允许重新申请。模拟本系统数据错误的透传,或者下游系统的失败回调。
2、解抵押系统创建预约工单,工单系统存在创建失败的异常流。
做法:
1.2 事前:需求、测试用例评审时尽可能穷举流程,是否覆盖异常流
1.2 事中:保障系统数据不受异常影响,系统能够推进异常流程
1.3 事后:预警与监控,提早发现,及时介入,降低故障影响面
4、老流程
兼容历史流程,关注本次新增对线上历史流程的影响。
做法:
1、列举修改的公共方法
跨省通办业务走新的开票方式,非跨省通办走老的开票方式。但查票面配置是一个公共的方法,涉及到调用查询配置的历史流程都要回归。
2、划分与隔离新老流程
上线后,线上业务功能会根据上线时间划分出两种流程。解抵押系统新增客户预约的卡片新流程,限制历史在途解抵押订单用户预约。
3、兼容历史数据
监听用户中心消息变更业务系统手机号的需求,线上历史手机号有误的订单,线上单独批量订正解决。
5、实体关系
分析数据库实体间的对应关系,常见的对应关系有:一对一、一对多、多对多
1、一个过户单只能申请一笔有效过户发票
2、一个发票申请单对应多张发票
6、业务入口
每个业务类型可能映射不同的业务入口,分析不同的业务入口业务逻辑的差异
1、账单线下还款不同的业务线,试算、还款逻辑差异大,需要回归测试
2、过户发票系统入口则都是过户,流程无差异,则不需要回归其他业务入口
四、测试策略
1、测试owner意识
拆分功能模块,制定测试计划;主动串联上下游联测;测试过程跟进、关键信息同步;
2、寻求开发的帮助,代码审查
创建开票根据不同的配置,需要开出不同类型的发票16种,开发测试一起review所有发票类型的分支判断
3、丰富测试数据
同一笔测试订单走单顺利,更换不同的数据可能会走到不同逻辑流程,实际上为模拟交叉测试,探索流量回放
4、用户行为
解抵押的用户需要预约,把自己想象成终端用户操作预约,就容易发现用户可能遇到的问题
5、质疑精神
团队首次接触老系统都是新手,团队之间都需要提出质疑,并基于case论证