测试左移
对于需求,代码,质量,效率,《代码大全》很早就从软件工程实践角度说明了一个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”,每个人都需要经营好自己的职业发展。想想你离开这家公司,还能剩下什么,让自己换个公司继续在职场中前行。
最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础