• 0
  • 0
分享

测试左移与右移

大家熟悉的测试工作(也是传统的瀑布式),是接到项目后参与需求评审,然后根据需求文档写写用例和准备脚本,等开发提测之后正式开始测试、提bug、回归,测试通过后就结束了,项目交给运维上线,之后投入下一个项目继续重复这样的流程。

这样的流程看似没什么问题,但缺点是:

  • 测试过程是在一定时间间隔内发生的,测试人员必须等待产品完全构建才能找到错误和故障。不可否认,花费的时间超过了可以商定的时间,等待代码成为测试人员的瓶颈;

  • 测试同学非常被动:当需求质量、开发质量差的时候,你只能被动接受,结果就是你会进行漫长痛苦的测试过程以及因为质量差导致上线延期;

  • Bug的成本在后期是非常高的,需要花费很多精力和时间去修复。甚至严重的情况是产品都不能按时发布,导致很大的损失;

  • 很有可能一个线上问题裸奔了几个月,最后是业务方先发现才排查到是Bug导致,由于影响时间过长给公司造成的损失巨大,还被质疑为什么这么明显简单的问题上线之后没人发现。

测试左移以及测试右移,能够让测试拥有更多的主动权,有更充足的时间进行测试,同时不会像之前因为质量差风险高每次都延期上线,并且产品的线上质量也能有保证。

不管是测试左移还是测试右移,都是为产品质量服务。不要把提测认为是测试活动的开始,上线是测试活动的结束,更不要认为质量只是测试同学需要关注的。

一、测试左移

测试左移的思想,本质是越早的发现不合理的地方出问题的几率就越低。

测试左移的原则支持测试团队在软件开发周期早期和所有干系人合作。因此他们能清晰地理解需求以及设计测试用例去帮助软件“快速失败”,促使团队更早的修改所有的bug。

参与和理解会使测试人员获取产品完整的知识,彻底想清楚各种场景,根据软件行为设计实时的场景,这些都会帮助团队在编码完成之前识别出一些缺陷。

我看到对于测试左移很好的理解

真正的测试左移就包含2个方面:

1. 提高质量上限

2. 提高质量下限

提高质量上限,其实是通过一系列活动,来避免问题或者本身就让我们起步就变得很好的,一句话:良好的开始是成功的一半

提高质量下限,其实是通过一系列的活动,让我们的质量成果得以保证的

测试左移,其实就是通过一系列的活动,能提高质量的上限,缩短测试的周期,提高质量的下限,这样子,我们就可以在不断提高下限的过程中,始终将质量稳定在一个水平线上,而和团队一起追求更高的目标了。

从不重视代码质量的第一天开始,就埋下了问题修复,定位的成本和修复问题再次引入问题的成本。

当测试在周期的早期开始时,团队会更专注于质量,并且“让我们在第一时间获得正确的编码”前景。这有助于节省大量时间,并减少软件开发团队必须为特定代码执行的迭代次数。

测试左移,我们可以做什么

对于测试左移其实我们还有很多东西要做,就好像一开始说到的都是为产品质量服务,那么在研发流程中的任何角色、人员都要为质量服务。

有哪些活动可以提高质量上限(举例)

  1. 健康的项目流程(合理并且严格遵守的项目流程);

  2. 合理的需求分析(评估需求的质量,分析需求的合理性以及完整性);

  3. 出色的系统架构;

  4. 完整的系统设计(评估设计的质量,分析需求的合理性以及完整性);

  5. 充分利用静态代码扫描;

  6. 进行研发标准的定义;

  7. 更早的测试分析(先于开发完成需求的分析,做好各种评审的准备);

  8. 尽早的测试执行(提早参与测试执行,在集成前就发现一些问题)。

有哪些活动可以提高质量下限(举例)

  1. 健康的测试流程;

  2. 优秀的测试用例;

  3. 合理的测试计划;

  4. 合适的自动化;

  5. 适当的探索式测试;

  6. 开发自测(TDD、BDD,测试提供更好的用例、技术支持)。

  7. 团队质量意识的培养

对于测试左移,也需要一个重要的基础,工程习惯,SDLC成熟度,测试分层,持续集成,链路上延展发布的节奏,纵深上需要贴合业务的专精领域的深度探索,代码扫描(规范,问题,安全,异常等),CR, 代码提交行为分析,test double(mock , fake, stub,dummy), UT, 自动化,验收测试等。左移需要工程效率具备不亚于研发的代码能力。

因此对于测试左移,笔者认为可以围绕质量服务思想展开,参与人员则不仅仅局限于测试人员

测试左移实践问题

当然实践起来会存在一些问题,例如笔者团队实践起来,就出现了

  • 测试要求提供概要设计、接口文档!

  • 测试要求单元测试必须通过!

  • 测试干预需求设计!

很多人都认为是测试在要求完成一些没必要的事情,测试在干预我的工作。

其实问题的矛盾点在于前面说过的一句话:不管是测试左移还是测试右移,都是为产品质量服务。不要把提测认为是测试活动的开始,上线是测试活动的结束,更不要认为质量只是测试同学需要关注的。

对于测试左移的落实,最重要的就是全员质量服务意识的培养

二、测试右移

左移是往测试之前的开发阶段移,右移是往发布之后移。也就是产品上线了之后也可以进行一些测试活动。当然在生产环境直接做测试是不推荐的,但是我们可以在生产环境做监控,监控线上性能和可用率,一旦线上发生任何问题,尽快反应,提前反应,给用户良好的体验。技术同学要比业务方先发现问题,如果业务方已经发现业务量明显下降,说明问题已经很严重了。

测试右移其实还可以理解为如果线上发生任何问题,我们有没有能力第一时间发现问题并解决问题,并保证线上数据的一致性或尽可能少的影响线上用户,以及并且实时获取用户反馈。

测试右移,我们可以做什么

对于测试右移,线上监控可以是突破点,举例:

  • 闭环的线上问题反馈-检查-解决-更新流程;

  • 更便捷的日志查看、回传服务;

  • 丰富有效的log,便于问题的快速定位;

  • 丰富的监控指标(例如业务异常点指标);

  • 成本监控(例如短信发送等);

  • 关键指标每日监控(服务器指标);

  • 生产数据监控(警报)(通过sql语句实现生产数据监控,例如是否有多个订单号一样的订单出现等)。

因此对于测试右移,我认为可以围绕问题反馈、发现、定位、监控展开,参与人员则不仅仅局限于运维人员

测试右移,实践问题

当然一样的,实践起来也是存在问题,除了技术问题之外,还有例如:

  • 线上监控搭建后无人使用

  • 线上问题反馈机制,业务人员不配合等等

  • 监控指标不合理,反而被认为增加服务器负载

测试右移的落实,除了质量服务的培养,更加重要的反而可能是:完善的反馈、发现、定位,在监控架构完善后,怎么更好的与项目流程结合,不要让其成为累赘


作者:小冯先生

原文链接:https://blog.csdn.net/baidu_36943075/article/details/100370527

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   1. 概述  随着网络的飞速发展,各种网络应用不断成熟,各种开发技术层出不穷,上网已经成为人们日常生活中的一个重要组成部分。在享受互联网带来的各种方便之处的同时,安全问题也变得越来越重要。黑客、病毒、木马等不断攻击着各种网站,如何保证网站的安全成为一个非常热门的话题。  根据IT研究与顾问咨询公司Gartner统计数据显示,75%的黑客攻击发生在应用层。而由NIST的统计显示92%的漏洞属于应用层而非网络层。因此,应用软件的自身的安全问题是我们信息安全领域最为关心的问题,也是我们面临的一个新的领域,需要我们所有的在应用软件开发和管理的各个层面的成员共同的努力来完成。越来越多的安全产品厂商也...
            0 0 480
            分享
          • 前言小伙伴们,好久不见呀,今天呢笔者想和大家聊聊postman参数化,在接口测试中,部分参数每次发送请求是唯一的数值,这时可以采用把测试数据参数化处理的方式实现,postman参数化的形式主要有三种。1、内置变量实现内建变量为postman自带的系统变量,但是不能进行精确化的对比Variable NameDescriptionExamples{{$guid}}添加一个V4风格的GUID“611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4”{{$timestamp}}添加当前的时间戳,精确到秒1562757107 , 1562757108 , 1562757109{{$ra...
            0 0 4235
            分享
          •       前言:想知道jmeter压测的原理是什么,得先知道性能测试的核心三原则:基于协议,多线程,场景模拟!      基于协议:基于应用层和传输层的各种协议。比如http,udp,ftp,tcp等      多线程:通过进程下启动线程的方式来模拟并发用户实现负载      场景模拟:通过模拟用户使用的真实场景,来提高性能测试的准确性      jmeter压测的核心原理就是:基于各种协议,通过多线程的...
            0 0 2241
            分享
          • 1.请做一下自我介绍吧面试题要点:考察你的语言表达能力,以及获取你的基本信息和大致情况。分析:包含内容有名字+工作经历+做过的项目。一定要提前准备好,保证表达的流畅。控制在1分钟左右。注意:不要说离职原因,不要说转行,不要给自己挖坑。--外企项目,英文自我介绍-内容也差不多。参考示例:我叫xxx,16年从xx学校xxx专业毕业,毕业至今从事测试工作,到现在有3年了。3年中我待过2家公司,第一家是一个x,主要业务是做xx的。我最近的一家公司吧,主要是做互联网金融业务的,它有web端和APP端的项目,我这两个项目都有参与测试。我负责的主要测试内容包括在web和APP端前端页面还没有完成之前,完成产...
            0 0 1098
            分享
          •   一、思路  在决定自学之前,一定要问自己几个问题,把这几个问题思考明白了,自学的道路会顺利很多,因为见过了太多的“从自学到放弃”。  1、自己是否真的想好了进入这个行业?是否真的经过了深思熟虑,还是仅仅因为羡慕这个行业的薪资水平,一时冲动? 这个问题想明白了,就不至于后期 遇到困难的时候出现想放弃的情况,自己选择的路,跪着也要走完!  2、自学的时间是否有严格的计划安排?是否能够固定抽出时间来去学习,这个时间段不受其他事情干扰? 如果这个问题解决不了,那么就是三天打鱼两天晒网,学着前面的,忘着后面的,终究是不成体系。  3、学习的过程中,需要结合实际项目去实操,这个项目去哪里获取?身边是否...
            0 0 847
            分享
      • 51testing软件测试圈微信