网站文件怎么做下载手机app安装
web/
2025/10/9 12:35:44/
文章来源:
网站文件怎么做,下载手机app安装,网站建设公司发展理念,湖南seo网站策划阿里妹导读#xff1a;如何治理测试稳定性问题#xff1f;很多人会说#xff1a;环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的#xff0c;而不是方法论和理论体系层面的。今天#xff0c;阿里研究员郑子颖来说说测试… 阿里妹导读如何治理测试稳定性问题很多人会说环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的而不是方法论和理论体系层面的。今天阿里研究员郑子颖来说说测试稳定性的三板斧。据说阿里同学们都非常认同这三板斧看完文章感觉很多做的事情有了理论基础。郑子颖阿里巴巴研究员2002年上海交通大学计算机系硕士毕业。2018年3月加入阿里负责质量和技术风险。1. 测试稳定性问题理想情况下我们希望每一个失败的测试用例[1]都是由真正的缺陷引起的。实际情况中用例失败的原因大多是一些其他的原因某个服务的版本部署的不对测试执行机的硬盘满了因为上次运行时写的log没清掉数据库里有脏数据测试用例写得有问题测试运行时有人手工执行了一次定时任务把流水捞走了消息串了...每次排查都是一堆这种问题时间久了开发和测试同学也就疲了。有些同学对失败的用例草草看一眼就说这是一个“环境问题”不再排查下去了。如此一来很多真正的缺陷就被漏过了。2. 测试稳定性三板斧如何治理测试稳定性问题很多人会说环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的而不是方法论和理论体系层面的。在方法论和理论体系层面我们对安全生产有三板斧可灰度、可监控、可回滚。类似的对于测试稳定性我也有三板斧高频(Frequency)隔离(Isolation)用完即抛(Disposable)三板斧之一高频If it hurts, do it more often是我说的最多的一句话之一。这句话从Martin Fowler那儿来的有兴趣的可以读一下他的那篇“Frequency Reduces Difficulty”的原文。高频跑测试的好处是缩短验证的delay变主动验证为“消极等待”识别intermittent的问题暴露各层面的不稳定因素倒逼人肉环节的自动化提供更多的数据供分析...高频不单单是治理测试稳定性的不二法门也是治理其他工程问题的game changer持续打包以前只是在部署测试环境前才打包经常因为打包的问题导致部署花了很多时间还影响了后面的测试进度。针对这个问题我们做了持续打包每个小时都会对master的HEAD打包一旦遇到问题(例如依赖的mvn包缺失、配置缺失、等等)马上修复。天天上生产现在每周发一次生产环境每次都费事费力。我提出能不能天天上生产。发布还是按照原来的节奏来每周发一次新代码一周里的其余日子就算没有新代码也要走一遍生产发布。空转。不为别的就是为了要用高频来暴露问题、倒逼人肉环节的自动化、倒逼各种环节的优化。分支合并很痛苦那就频繁合并一天一次一天多次。做到极致就变成了主干开发一直在rebase、一直在提交。蚂蚁的SRE团队也是用的是高频的思路。为了加强容灾能力建设、提高容灾演练的成功率SRE团队的一个主打思想就是要高频演练用高频演练来充分暴露问题、倒逼能力建设。高频也不是那么容易做到的。高频需要基建保障。首先高频需要资源。高频执行还会给基建的各个方面造成前所未有的压力。高频还需要能力水平达到一定的基准。就拿SRE的高频演练来说吧。如果每次演练还有很多问题那是不可能搞高频的。能高频做演练的前提是我们的隔离机制、恢复能力已经到一定的水平了。对于测试运行来说高频跑测试要收到效果需要把隔离和用完即抛做好。对于高频跑测试一个很常见的疑虑是原来一天只跑一次失败的用例我已经没有时间一一排查了现在高频跑了我岂不是更没时间了我的回答是实际上并不会这样因为开始高频跑了以后很快问题就会收敛的所以总的需要排查的量可能是差不多的或者反而小了的。三板斧之二隔离相比起三板斧里的其他两个(高频、用完即抛)隔离的重要性应该是比较被广为接受的。隔离的好处包括避免测试运行彼此影响减少噪音。提高效率执行某些破坏性测试的时候不再需要相互协调隔离无非是两种硬隔离、软隔离。至于到底是走硬隔离路线还是走软隔离路线要根据技术栈、架构、业务形态来具体分析。不过两条道路都是能通往终局硬隔离(全隔离环境、物理隔离)要成为终态关键是成本。要在不增加质量盲区的前提下压缩成本。例如如果能把整个支付系统都压缩在一台服务器里面跑[2]而且所有的功能(包括中间件层面的例如定时任务、消息订阅、分库分表规则等)都能很好的覆盖那是一个理想的终局。每个人都可以随时搞几套全量环境那是很爽的。另外对架构的拆分解耦(例如我们做的按域独立发布)是有助于降低硬隔离的成本的可以把一整套被测系统部署的scope大大缩小。软隔离(半共享环境逻辑隔离链路级别隔离)要成为终局关键是隔离的效果。如果隔离做到完美了就能把今天的联调环境部署到生产环境里去跑。这样就不存在stable环境稳定性的问题了。这样做到了真正的testing in production也是个很理想的终局状态。这两种终局状态我在我以前的工作中都达到过。的确都能work的。这两种隔离要通往终局都是技术挑战。压缩成本是技术问题。逻辑隔离做彻底做牢靠也是技术问题。对于我们今天的支付或电商系统来说我们未来的终局是硬隔离还是软隔离呢现在还很难说。从技术可行性方面判断软隔离更有可能成为我们的终局。硬隔离做到深水区以后就很难做了因为会遇到架构的物理极限。突破架构的物理极限有可能产生新的质量盲区。但相当长的一段时间里硬隔离会继续对我们帮助很大。例如我们要做各种非常规测试的时候就需要硬隔离。软隔离要做到能够支持非常规测试技术复杂度很高。从上个财年开始我在我团队搞一键拉全量测试环境(硬隔离)的原因就是一键拉全量环境相对比较容易做主要就是自动化而基于路由的软隔离方案一下子还不太ready短期内达到我们需要的隔离水平还很难。硬隔离和软隔离也不是对立的是可以一起用的。例如我们在拉起基于路由的隔离环境的时候拉会新的数据库。在数据库层面是一种硬隔离是对数据库层面软隔离能力欠缺的一种补充。总之隔离是必须的。采取何种隔离方案要阶段性的基于复杂度、成本、效果等因素的综合考量。三板斧之三用完即抛我最喜欢的另一句话是Test environment is ephemeral。这句话是我原创的。Ephemeral的意思就是short-living短暂的短命的。我对我的QA团队反复讲这句话希望同学们能在日常工作中时刻记得这个原则。Test environment is ephemeral就意味着我们的test setup能力要很强。我们今天在搞的一键拉起环境就是这种能力的一部分。而且setup起来以后要能快速verify。我们的test strategy、test plan、testability design和test automation必须不依赖一个long living的测试环境。包括不能依赖一个long living 的test environment里面的一些老数据。例如Test automation必须能自己造数据造自己需要的所有的数据。有了这些能力能够以零人力成本、非常快速且非常repeatable的从无到有建一套“开箱即用”的测试环境能够造出来测试需要的所有数据我们就能做到测试环境的用完即抛要跑测试了就新建一个环境测试跑完了就把环境销毁掉。下次要用再建一个新的。而且不单单是测试环境测试执行机也要用完即抛。对于用完还需要保留一定时间的环境也要设一个比较短的上限。例如我以前采用过这样的做法联调测试环境默认生命周期是7天。如果到时间还需要保留可以延展有效期(expiration date)。每次展期最多可以展7天(相当于是 newExpDate now 7而不是newExpDate currentExpDate 7)。最多可以展期到30天(从createDate开始算)需要30天以上的需要特批(比如事业群CTO)。这样的好处就是倒逼。必须一刀切的倒逼一开始会有点痛苦但很快大家就会习惯的自动化什么的很快就跟上了。不这么逼一逼很多改进是不会发生的。用完即抛的好处是解决环境腐化问题减少脏数据提高repeatability确保每次测试运行的环境都是一致的倒逼各种优化和自动化能力的建设(测试环境的准备、造数据、等等)提高资源使用的流动性。实际的物理资源不变的前提下增加流动性就能增加实际容量。测试环境用完即抛的确会引入一些新的质量风险。如果有一套长期维护的环境里面的数据是之前老版本的代码生成的部署了新版本代码后这些老数据是可以帮我们发现新代码里面的数据兼容性问题的。现在用完即抛没有老数据了这些数据兼容性问题就可能无法发现。这个风险的确是存在的。解决这个风向的思路是往前看而不是往回退。我们要探索数据兼容性问题是否有其他的解法。有没有其他的测试或者质量保障手段。甚至要想一想怎么做到“从测到不测”把数据兼容性问题通过架构设计来消除掉让它不成为一个问题。3. 落地上面讲的三板斧高频、隔离、用完即抛的确是有点理想主义的。我们今天的基建、架构、自动化建设离理想状态还有不少差距的。但我们就是要有那么一点的理想主义的。把这三板斧做好技术上的挑战是非常非常大的但我们有乐观主义相信我们能够达到目标。我们有现实主义我们可以分解目标结合实际情况一步步的去做。Note[1] 这里的用例主要指的是功能性的测试用例包括unit test、单系统的接口测试、全链路/端到端的测试等等。[2] 这样子做实操层面的一个可能的负面影响是它可能会discourage微服务化治理(包括域自治性独立测试、独立发布能力等)。你可能还喜欢点击下方图片即可阅读《长安十二时辰背后的技术秘籍》正式公开结构化数据存储如何设计才能满足需求如何实现一次编码到处运行关注「阿里技术」把握前沿技术脉搏
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89633.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!