最近群里大家一直讨论测试左移和右移的话题,引发出关于测试人员从业的讨论。作为一个混迹IT圈17,8年,曾经做测试8年的IT女民工,发表一点感想。


测试左移

对于需求,代码,质量,效率,《代码大全》很早就从软件工程实践角度说明了一个bug产生的不同阶段,修复一个bug的成本从需求阶段,设计阶段,测试阶段有着天壤差别。不仅从成本上,从修复难度,引入新问题的可能性,沟通成本,团队状态也会有很大的影响。由于大部分bug都是在写代码的阶段就引入的,测试左移本质上可以尽早的发现,预防问题,使用必要的测试手段在软件开发周期的早些阶段发现问题。测试越是集中到后期,尤其是集成测试时进行功能测试,产品的复杂度就越高,出现问题后,越难以定位bug,修复时间花费越长。所以,bug越早被发现,越节约成本。这也是测试左移被普遍接受的原因。

测试左移的手段:

1. 在需求评审时不只是了解需求,更是要去评估需求的质量,分析需求的合理性以及完整性。

2. 代码扫描,代码质量检查,进行单元测试,测试驱动开发,这些都是在开发阶段就引入测试的手段。

3. 测试人员尽早介入测试,参加需求分析,评审。

4. 持续测试自动化测试。

从测试左移的实现手段来看,大家会发现,说了半天,都表明了一件事情,测试不仅要懂需求,还要懂代码,写代码。


测试右移

说完测试左移,再聊聊测试右移。测试右移指产品上线了之后进行一些测试活动,在生产环境做监控,监控线上性能和可用率,一旦线上发生任何问题,做到快速响应,代码回滚,避免给用户造成不好的体验。测试还需要跟进工单反馈,用户反馈收集处理,及时解决问题,完善产品功能体验等。可以做到测试右移是因为很多公司现在都做灰度发布,小范围内在生产环境中进行功能测试。

                                                       灰度发布

测试右移包括:

1.测试上线及时验证,有问题,开发快速回滚代码

2.上线后开发监控服务日志,日志报错,代码回滚

3.监控服务流量,出现流量报警快速定位问题

4.关键指标每日监控

5.生产数据监控

6.用户反馈问题及时跟进,针对缺陷,通知开发尽快解决,针对体验,通知产品打磨细节。

从测试右移来看,测试人员不仅需要懂得产品功能,还需要会使用监控工具,看懂监控指标,知道什么指标代表异常。另外还要跟踪缺陷,定位问题。


测试岗位的基本要求

解释完测试左移和右移,大家也许就明白了。Oh, My God,目前业界对于测试人员的要求是:能写代码,能用监控,能发现bug,还得定位问题。哪里有这样的测试人员,赶紧跳出来,我看看长什么样子?如果贵公司不小心获得了这样的测试人员,那么好好珍惜吧,有开发经验,可以写自动化测试工具,还能甘心做测试的同学,真的太少了,要知道测试80%以上都是重复性工作。

总体而言,测试岗位是一个技术岗位,能够左移右移的测试人员需要:

1. 代码写的好,最好是Java

2. 会用市面上常用的自动化测试工具,无论是Selenium, QTP, Cucumber, JMeter, LoadRunnder, 统统可以上手。

3. 对产品功能了如指掌。

4. 对测试理论,测试管理理念有深入的理解。

5. 细心,会沟通。

6. 最关键的问题是,热爱测试工作,愿意无穷尽的找bug。


测试人员的职业发展

因为可以达到以上要求的测试人员太难找了,所以大部分公司目前都会将测试左移交给开发,测试右移交给运维,线上功能测试交给业务部门。目前在持续交付的影响下,很多公司都建立了自动化部署流水线,这对于自动化测试的要求极高,所以越来越多的测试工作都交给开发来做,利用自动化测试工具开发自动化测试与部署流水线融合。能够写代码的测试人员不好招,还不如交给程序员。这种情况压挤了很多只会进行手工测试的测试人员的生存空间。

综上所述,测试人员的职业发展可以有以下几条路:

1. 对写代码感兴趣的,直接转开发,或者去做自动化测试。

2. 对写代码不感兴趣的,或者不擅长的,可以去转运维,但是也需要学习Linux,Python,和其他一些运维工具。

3. 1,2都是技术岗位。以上都不敢兴趣的,那就赶紧转型吧。喜欢研究业务功能的,可以转型做BA,或者直接转到业务部门去研究产品需求。喜欢做项目管理的,可以转型做PM。



结束语

 IT角色职责很多,不是只有技术路线一条路可以走到黑。测试可以转BA,PM,业务,实在不行多考几个证来做咨询。无论选择哪条路,借助刘润老师的一句话“每个人都是自己的CEO”,每个人都需要经营好自己的职业发展。想想你离开这家公司,还能剩下什么,让自己换个公司继续在职场中前行。