身处职场,学习新业务在所难免,尤其是测试人员,具备良好的业务知识是我们做好质量保障的前提,不管是职场「新人」还是「老人」,快速熟悉业务的能力都是不可或缺的,这是我们安身立命的根本。
但,这样的能力并不是很显性,笔者有着十几年的测试经验,负责过 C 端、B 端和 G 端的业务,本文尝试梳理出一些快速熟悉新业务的方法,希望能够带给大家一些启发。
有两种学习模式
在学习新业务时,通常有两种模式:
- 授课式: 老师/师兄/师姐带着你学习,言传身教划重点,苦口婆心加考试;
- 自学式:自己看一堆的学习资料、测试沉淀、业务文档,有问题再找人问;
授课式是被别人带着走,自学式是按自己的方式走。从人性的角度来讲,显然有人教更好,也更快,直接告知重点,躲避深坑,有老师傅带着一路过关斩将,打怪升级。
可事实上,专家没那么多,也没那么闲。因此,大部分情况下,我们都处于第二种:自学式, 师傅领进门,修行在个人,按自己的方式学习,方法就尤为重要了。
要学会打怪升级
当个人修行时,学习跟打怪升级似有异曲同工之处。
不停重复打怪的过程,就是积累经验的过程。业务中的新怪层出不穷,都带有新的技能,那么,要想打败它,就得提升自己的技能。不同级别,你面临的怪是不同的,晋级之后,再遇新怪,我们总要问一下:这是个什么?我要怎么打败它?打败它之后,我会获得什么技能?
这很像保安师傅的哲学三问:你是谁?从哪儿来?到哪去?
如果是唐僧,他会这样回答:贫僧法号三藏,自东土大唐而来,要往西天取经去。
如果是我们的「新业务」,应该思考得更多一些:
你是谁?
- 新业务是什么?在公司那么多产品里面处于一个什么样的位置?前台?中台?后台?
- 它依赖谁?谁依赖它?它面向的用户是 B 端?C 端?还是 G 端?
- 它的产品形态是 APP?小程序?网站?H5?PC客户端?公众号?还是接口?
从哪儿来?
- 为什么会有这项新业务?它的定位是什么?
- 价值是什么?衍变路径是什么?
到哪里去?
- 新业务的目标是什么?
- 发展路径是什么?
- 阶段性目标是什么?
所以,学习新业务就像打怪升级,搞清楚这三个业务背景问题,会让你接下来进入业务细节更加胸有成竹。
熟悉业务三部曲
1、看懂业务:由表及里
① 看功能:从直观的角度来看,新业务展现的产品功能和业务规则是什么?
比如电商大促,各种优惠商品直接打折降价,再叠加平台的满减活动,再叠加 88 会员的折扣等等,你首先得理解这些产品功能和业务规则。
② 看结构:从业务的结构来看,新业务在公司的整个业务板块中处于哪一层,它依赖的上下游业务是什么?
③ 看细节:从产品的细节来看,每个操作步骤都会包含很多的系统交互。
比如上面提到的优惠业务,包括了:单品优惠、商家优惠、平台优惠。那么大促期间,这些其实是混合在使用的,每一种优惠都会有不同的应用场景;那么,每一种优惠它的操作入口, 它涉及到的交互系统有哪些, 他们通过什么接口进行交互等等,都是要去熟悉和学习的。
④ 从用户角度看:不同的用户对产品的功能会有不一样的诉求,也决定了我们在进行业务测试的时候,除了业务的准确性外, 测试重点也不同。
比如电商大促, 对于招商系统而言,它是 To B 的业务,主要的诉求在于:系统稳定、便于操作,用户量可能在百万级别, 用户的主要使用场景是通过 Web 端来操作;
对于交易系统而言,它是 To C 的业务, 主要的诉求在于:系统稳定、实时性要求高(各种优惠及时更新、库存更新等)、并发量高,用户量在千万及亿级别,用户的主要使用设备是通过手机 APP 端来操作;
当了解我们的用户人群后,在做基本的业务功能验证后,还需要验证非功能性的需求,比如高并发如何保证系统的可靠性, 比如大促期间的实时性(库存、优惠等),如何来保证准确性?不同的客户端,需要做哪些兼容性验证?
⑤ 从业务价值看:谈业务价值,其实就是谈我们这块业务存在的目的,它能带来什么价值,它的目标是什么?是补充公司的业务空白,扩大商业版图,还是为公司增加营收。
当一个产品的目的是为了快速占有市场, 那么,我们就需要快速迭代, 测试的侧重点,就会在效率上,如何在保证质量的基础上,快速发版, 可能会忽略一些并发性,或者是用户体验的功能;如果是一个稳定的业务,比如电商大促,这么几年走下来,它就是个稳定的业务,那如何提升用户的体验,保证实时性,就会成为我们的测试重点;
⑥ 从盈利模式看:在资本市场中,不盈利的产品很容易就被淘汰掉。
我们要熟悉的新业务的盈利模式是什么?是卖产品?卖服务?还是卖广告?于测试人员而言, 根据不同的盈利模式来进一步了解产品的价值,反向驱动我们去思考业务的测试重点,这是一件很有价值的事情;
2、看透业务:系统剖析
看懂业务之后,我们需要看透业务,通过解剖系统来加深对系统的理解。
在这个过程中, 我们需要了解到:
① 所负责业务的系统交互
系统如何和上下游系统交互,这种更直白的是,看一下时序图,清晰的了解各个系统之间是通过什么接口进行交互的,交互的出入参是什么?带着业务验证的目的来了解系统。
② 系统内部各个模块的划分,哪些是公共模块,哪些是业务实现层?
从上面俩张图都可以看出应用中各个模块所承担的功能,以及一些公共的服务及流程,我们所负责的业务流程是不是也是这么走的,一旦改动到公共模块或者公共服务的话,我们除了验证当前的业务流程外,还需要验证哪些关联流程;
③ 数据流向怎么走?数据如何变更?