什么是测试左移和测试右移
需求阶段-设计-开发-测试-运维
左移是向软件开发周期中的早期移动,测试左移则是将测试向开发阶段,甚至是需求阶段移动。
测试左移的目的其实是想在软件开发周期中更早的阶段开展测试活动,比如说我们想在开发阶段就进行测试。
测试左移不是等待软件全部可以集成后才进行测试,而是以更小的单元并且更快的频率进行测试。(如敏捷开发模式)
右移是向软件开发过程的后期移动,比如说在系统部署时和上线后。
测试右移就是应用在部署、线上监控的一系列实践活动。随着DevOps的开发模式兴起后,
测试右移的理念也越来越被很多团队引入、发展和壮大。
在DevOps中,研发和运维是紧密的进行配合,研发人员的角色从之前只完成程序的部署伸展到了运维端,要承担系统线上运行的更多责任。
需要说明的是测试右移绝不仅仅是指研发人员对线上系统的监控,
测试右移要进行的活动不但包括研发人员对于线上程序的监控、功能切换、使用线上流量来进行测试等,
还包括将持续测试的理念发展到更广阔的空间中,
比如基于前端的埋点、全网范围内App端的监控、灰度测试等。
实践的一些方法:
测试左移
静态代码扫描
微服务
单元测试
测试驱动开发
测试右移
App监控
前端监控
程序日志监控
http状态监控
拨测监控
A/B测试
灰度发布
测试右移如何看待上线后的应用,测试右移会产生一个从线上用户对系统的真正使用到开发过程的持续反馈循环。
现在各大互联网公司中的发布效率是极快的,可能很多开发人员经历过从之前的每月或者每周发布一次到现在的每天、每小时发布,或者任何时间都会发布。
正是线上用户和开发人员这种快速、持续反馈的循环才能支撑着这一切。
在线上系统进行测试意味着我们要做到对用户影响到最低,我们要全盘考虑线上用户对系统的使用情况,以及一些数据安全、用户隐私相关的因素。
现在有些公司会将线上流量复制到线下,使用线上充分的用户行为对系统进行充分的测试。
通过在用户和研发人员创建反馈系统,可以收集用户的反馈,从而我们能够修复和改进我们的系统使用户满意度更高。
借助自动化监控系统,我们可以第一时间获取系统的运行状态,我们对于系统的故障恢复能力更有信心。
持续测试就是通过测试左移、测试右移实践在整个开发周期的每个阶段都进行测试。
所以,我们说测试左移和测试右移其实就是在通过各种手段在开发过程的各个阶段里进行测试的实践,每个团队会有每个团队不同的方法。
因此,测试左移和测试右移,是一种理念,是一种文化。