? 阿里研究员:测试稳定性三板斧,我怎么用?_CQITer_重庆IT人之家 yabo10.com亚博体育,亚博娱乐在线网站,亚博国际娱乐7171 ?

阿里研究员:测试稳定性三板斧,我怎么用?

如何治理测试稳定性问题?很多人会说:环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的,而不是方法论和理论体系层面的。今天,阿里研究员郑子颖来说说测试稳定性的三板斧。据说,阿里同学们都非常认同这三板斧,看完文章感觉很多做的事情有了理论基础。

阿里研究员:测试稳定性三板斧,我怎么用?

1. 测试稳定性问题

理想情况下,我们希望每一个失败的测试用例[1]都是由真正的缺陷引起的。实际情况中,用例失败的原因大多是一些其他的原因:

某个服务的版本部署的不对

测试执行机的硬盘满了,因为上次运行时写的log没清掉

数据库里有脏数据

测试用例写得有问题

测试运行时有人手工执行了一次定时任务,把流水捞走了

消息串了

...

每次排查都是一堆这种问题,时间久了,开发和测试同学也就疲了。有些同学对失败的用例草草看一眼,就说这是一个“环境问题”,不再排查下去了。如此一来,很多真正的缺陷就被漏过了。

2. 测试稳定性三板斧

如何治理测试稳定性问题?很多人会说:环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的,而不是方法论和理论体系层面的。

在方法论和理论体系层面,我们对安全生产有三板斧:可灰度、可监控、可回滚。类似的,对于测试稳定性,我也有三板斧:

高频(Frequency)

隔离(Isolation)

用完即抛(Disposable)

三板斧之一:高频

"If yabo10.com亚博体育 hurts, do yabo10.com亚博体育 more often"是我说的最多的一句话之一。这句话从Martin Fowler那儿来的,有兴趣的可以读一下他的那篇“Frequency Reduces Difficulty”的原文。

高频跑测试的好处是:

缩短验证的delay

变主动验证为“消极等待”

识别intermittent的问题

暴露各层面的不稳定因素

倒逼人肉环节的自动化

提供更多的数据供分析

...

高频不单单是治理测试稳定性的不二法门,也是治理其他工程问题的game changer:

持续打包:以前只是在部署测试环境前才打包,经常因为打包的问题导致部署花了很多时间,还影响了后面的测试进度。针对这个问题,我们做了持续打包,每个小时都会对master的HEAD打包,一旦遇到问题(例如:依赖的mvn包缺失、配置缺失、等等),马上修复。

天天上生产:现在每周发一次生产环境,每次都费事费力。我提出能不能天天上生产。发布还是按照原来的节奏来,每周发一次新代码,一周里的其余日子,就算没有新代码也要走一遍生产发布。空转。不为别的,就是为了要用高频来暴露问题、倒逼人肉环节的自动化、倒逼各种环节的优化。

分支合并很痛苦,那就频繁合并,一天一次,一天多次。做到极致就变成了主干开发,一直在rebase、一直在提交。

蚂蚁的SRE团队也是用的是高频的思路。为了加强容灾能力建设、提高容灾演练的成功率,SRE团队的一个主打思想就是要高频演练,用高频演练来充分暴露问题、倒逼能力建设。

高频也不是那么容易做到的。

高频需要基建保障。首先,高频需要资源。高频执行还会给基建的各个方面造成前所未有的压力。高频还需要能力水平达到一定的基准。就拿SRE的高频演练来说吧。如果每次演练还有很多问题,那是不可能搞高频的。能高频做演练的前提是我们的隔离机制、恢复能力已经到一定的水平了。对于测试运行来说,高频跑测试要收到效果,需要把隔离和用完即抛做好。

对于高频跑测试,一个很常见的疑虑是:原来一天只跑一次,失败的用例我已经没有时间一一排查了,现在高频跑了,我岂不是更没时间了?我的回答是:实际上,并不会这样,因为开始高频跑了以后,很快问题就会收敛的,所以总的需要排查的量可能是差不多的或者反而小了的。

三板斧之二:隔离

相比起三板斧里的其他两个(高频、用完即抛),隔离的重要性应该是比较被广为接受的。隔离的好处包括:

避免测试运行彼此影响,减少噪音。

提高效率,执行某些破坏性测试的时候不再需要相互协调

隔离无非是两种:硬隔离、软隔离。至于到底是走硬隔离路线,还是走软隔离路线,要根据技术栈、架构、业务形态来具体分析。不过两条道路都是能通往终局:

相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 微软AI面试题有多难?这里有一份样卷

      究竟什么样的AI人才能被微软这样的巨头聘用呢?今天,文摘君就淘来了几道微软AI 面试题,同时给出了最基本的解答......

    06-25????来源:澎湃新闻网

    分享
  • 腾讯吐个槽“讲产品故事拿大奖”活动:

      每一个产品故事都值得被聆听, 每一位奋斗者的历程都值得被肯定! 今天,「吐个槽」X「腾讯课堂产品学院」发起讲产品故......

    09-02????来源:未知

    分享
  • 全球最聪明的大脑怎么看AI?他们预测了

      2017年AI领域取得了诸多成果。2018年AI又将何去何从?以下是来自世界顶级研究人员和行业领军人物对2018年AI领域发展作......

    02-20????来源:虎嗅网

    分享
  • 2017JavaScript框架战报 - React分战场

      我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完......

    02-27????来源:湖北新闻网

    分享
  • 小白学数据:教你用Python实现简单监督学

      监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段。即便是在无监督学习兴起的近......

    03-05????来源:今日头条

    分享
  • 现代编程语言Swift、Kotlin等十大有趣功能

      最近学习了一些现代编程语言,比如Reason,Swift,Kotlin和Dart。这些编程语言提供了许多新功能,本文主要分享了我认......

    04-29????来源:祁东新闻网

    分享
  • 领域场景分析的6W模型

      组成场景的要素常常被称之为6W模型,即描写场景的过程必须包含Who,What,Why,Where,When与hoW这六个要素。......

    04-30????来源:砍柴网

    分享
  • 开源应用服务器WildFly 12发新季度交付模式

      WildFly 12 Final版本现在已经可以下载了,WildFly是一款灵活的开源应用服务器,支持开发人员构建轻量级应用程序。支持......

    05-10????来源:青岛新闻网

    分享
  • 基于Spring Cloud的微服务落地

      微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,......

    06-04????来源:广西新闻网

    分享
  • 为什么阿里工程师纷纷在内网晒代码?

      前阵子,在阿里一个小黑屋里,5名对代码有着极致追求的工程师参与阿里代码领域最高荣誉“多隆奖”的最终角逐。......

    06-08????来源:四川新闻网

    分享
返回列表
Ctrl+D?将本页面保存为书签,全面了解最新资讯,方便快捷。