• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 截至发稿股价跌幅已超过2%,业内预测,富士康郑州工厂的疫情可能使该厂区11月产能减少达30%。供应链的阴影笼罩了苹果即将到来的假日季。在苹果iPhone全球最大的组装工厂富士康河南郑州工厂发生疫情后,苹果全球产品供应情况如何也引发关注,全球大约一半苹果iPhone从该工厂流出。10月31日美股开盘后,苹果股价跌幅迅速扩大,截至发稿股价跌幅已超过2%,业内预测,富士康郑州工厂的疫情可能使该厂区11月产能减少达30%。供应链的阴影笼罩了苹果即将到来的假日季。第一财经记者向苹果中国方面求证iPhone全球供应是否会受到富士康郑州工厂供应链影响,公司未予回应。不过投资人已经表达了担忧。摩根士丹利分析师...
            0 0 636
            分享
          • 接口测试包含单接口测试和多接口测试,通过组合多个接口实现一组功能的验证称为多接口测试,单接口重在单个接口多种请求组合的响应断言,多接口重在组合不同接口,实现流程的串联和验证。多接口测试涉及到接口之间参数的传递,比如AB两个接口协同完成一个功能,A接口的响应要作为B接口的输入,此处就需要用到Jmeter的关联功能。本文提供两个接口的串联示例,展示如何应用Jmeter实现多接口的参数传递。关联就是把应用中动态变化的数据获取到,将它保存为参数,提供给后面需要用到的地方进行使用,通过关联可以实现多接口之间的参数传递。Jmeter常用两种关联组件:正则表达式提取器JsonExtractor接口示例接口A...
            14 14 1405
            分享
          • 今年5月10日,庆祝中国共产主义青年团成立100周年大会胜利召开!聆听习近平主席的重要讲话,让我深受感动和鼓舞!纵观百年青年奋斗史,青年弄潮儿无不紧跟时代、紧跟党的召唤,把永久奋斗作为底色,把小我融入大我,把青春献给祖国和人民!纵观百年青年奋斗史,让我更加坚定不移紧跟党旗;更加坚定不移立足岗位,主动把党的要求融入到业务工作中系统实践;更加坚定不移立志永久奋斗为党贡献力量。学习实践青年百年奋斗史形成的经验,既要看到历史发展的长期必然性,也要看到短期现状的曲折复杂性,情况越复杂越要“不畏浮云遮望眼”。下一步行动计划,整体来说既要关注外因积极主动适应调整,也要关注内因自我成长,具体说来如下:一是要深...
            1 1 717
            分享
          •   背景  随着分布式数据库的日渐成熟,在金融行业逐渐推行分布式数据库的使用,如何验证分布式数据库的高可用性是应用方所关注的。  本文针对主流的TDSQL分布式数据库,在测试环境模拟真实业务持续压测,通过人为制造数据节点故障,观测业务具体表现和赤免监控指标得出RTO数值。  相关概念  RTO:恢复时间目标,主要指的是所能容忍的业务停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。  数据库恢复时间,指数据库停止对外服务到重新提供服务的时间。  Xmeter:一种性能测试发压工具,可以高效的模拟客户端发起高并发请求,同时统计测试结果。  分片:是把数据库横向扩展到...
            0 0 923
            分享
          •   性能测试框架搭建+接口测试+渗透测试+测试开发+测试面试指南,点击下方链接填写测试行业调查问卷,任选两个带回家。链接:http://vote.51testing.com/  Jenkins作为目前持续集成中使用较为广泛的工具,在实际生产过程中通过结合众多的插件,从而实现工程的持续构建、持续部署。  而传统构建的应用场景大多数运行在虚拟机或者独立的服务器上,在资源开销和管理维护较为复杂。相比于独立的服务器/虚拟机而言,容器不仅部署方便,且占用资源较少。  Docker作为目前作为业内最火的一个容器解决方案之一,通过将两者结合,从而实现服务的轻量化,并通过Docker管理Jenkins的资源。...
            1 1 1685
            分享
      • 51testing软件测试圈微信