容器化时代对测试的机遇 | TW洞见

今日洞见

文章作者/图片来自ThoughtWorks:梁真,图片来源于网络。

本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。

对于工作在复杂系统上的测试工程师,我们眼前浮现的都是这些人的屏幕上开着N个远程桌面,N个虚拟机,他们在每个交付迭代周期内都疲于奔命,顾此失彼地应付着各种不同的环境、浏览器和操作系统。在我曾经工作过的A公司和D公司,测试和开发人员的比例几乎是1:1甚至更高。

过去的几年里,测试的工作似乎变得完善和高效,成熟的敏捷实践使很多测试工作得以自动化,这无疑降低了企业成本,也使得测试本身变得更有趣,人们有时间去做一些创造性的工作,而把重复的、了无生趣的工作交给了机器和脚本。

但是,虽然我们做了很多改变,但就目前的情况而言,依然不是很乐观,我们还是会碰到诸如此类的问题:“我的环境没发现这个defect,你来帮我重现一下”,当我们信心满满去尝试重现的时候,却可能再也无法发现这个defect,然后不得不花费几个人几个小时甚至几天的时间去定位和解决它。

再有,很多敏捷团队都会做每日构建,构建成功的前提是所有的测试都要通过,我们为了减少构建时间、测试反馈时间,花了大力气去优化和重构,使用了mock技术等等,但对测试时间的影响依然是杯水车薪。

上述问题仅仅是我们平时工作里遇见的一小部分,对于这几个问题,我们归结了两点:

  1. 测试环境不够干净
  2. 测试执行效率需要大幅提升

我们带着这两个问题,来看近年来火爆的轻量级虚拟化——容器技术,它提供了能够独立运行的轻量级虚拟化解决方案,并且也提供了一种在安全、可重复的环境中自动部署软件的方式。

传统的硬件化虚拟占用的资源比一个容器要多不止10倍。我们不敢想象在一个物理机上开上百个虚拟机是什么效果,但是要实现同样数量的容器是很正常的。容器为我们提供了隔离的运行空间,每个容器又包含了完整的用户环境。不但如此,我们还可以通过诸如ansible、puppet、chef这样的自动化运维工具对不同的容器空间进行批量化操作等等。

从一个测试人员的角度来讲,这恰恰为我们运行测试脚本提供了丰富的土壤,我们不必担心一些依赖包悄悄地破坏我们的环境,也不再担心多人在相同的虚拟机或者硬件环境中的操作污染了环境,使defect无法重现,同时,多操作系统版本、多尺寸的移动端自动化测试也将从容器化技术中受益更多。

那么另一个问题解决起来也不算难,主流的开源自动化测试工具Selenium多年前就提供了Selenium Grid,hub/remote的机制可以很好地帮助我们设计分布式测试环境:

我们可以把这样分布式的环境与自定义的容器化空间结合在一起,利用提供各种语言支持的并发工具包,让我们在安全、可重复、可移植的环境基础下,指数级提升测试运行效率,减少反馈时间:

大部分测试人员对日新月异的技术并不是很敏感,很多时候,我们可能会认为,这些技术的发展,并不会也并不想知道这些技术能对日常的测试工作带来多少影响,但其实很多时候看似孤立的领域,碰撞在一起会有意想不到的火花。

乔布斯曾经说,创新就是把各种事物整合在一起。当你问有创意的人是如何创新的,他们可能会感到些许愧疚,因为他们根本没有创造什么。他们只是看到了一些东西。我们对于日常工作了解得更深更广,我们就会做得越出色。

原文发布于微信公众号 - 思特沃克(ThoughtWorks)

原文发表时间:2016-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏官网开发

企业网站革命性升级,好看、高效、低成本,“响应式官网”新生机…

H5网站大家可能并不陌生,要是换个说法,部分人可能就有点不知所以然了,比如“响应式网站”“自适应网站”,这两个词也不是本来就有的,随着网站制作的前端技术不断更新...

1455
来自专栏企鹅号快讯

直播、NFC、分包加载……小程序这两次新能力,有哪些开发者们可以玩的东西?

小程序释放的能力一波接一波,对于开发者而言,真的是高潮一波接一波,微信已经越来越像一个移动端的操作系统。 如今,理论上来说,基于微信几乎可以完成所有想完成的开发...

2905
来自专栏云加头条

云端架构师养成系列之二:云端负载均衡上手与实践

上周四,腾讯云技术社区继续推出了【云端架构师养成】系列分享的第二期:云端负载均衡上手与实践,邀请到的嘉宾是负责该产品的产品经理方坤丁与工程师龚飞斐。 [1496...

4009
来自专栏云计算D1net

成功实施DevOps的七个有力工具

现如今,每个软件企业都在谈论DevOps,他们希望从DevOps中获得好处。DevOps本身不是开发工具,而是开发文化的一次革新,为了能够成功地实施DevOps...

3419
来自专栏程序你好

采用微服务和容器架构的五个想法

作为New Relic容器Fabric项目(我们的内部容器编排和运行时平台)的首席站点可靠性工程师(SRE),我花了大量时间与现有和潜在客户一起回答关于我们如何...

913
来自专栏CSDN技术头条

SDCC 2015架构专场札记:一线互联网公司的架构实践

【编者按】11月21日,为期三天的SDCC2015中国软件开发者大会成功闭幕,主办方总计邀请了95余位演讲嘉宾,为参会者奉献了10个主题演讲,9大技术专场论坛(...

2157
来自专栏新智元

GitHub重磅年度报告:JavaScript最热,中国开发者贡献稳居第二

在昨日举行的GitHub Universe 2018开发者大会上,GitHub发布了一款重量级产品:GitHub Actions,可直接运行部分代码的产品,彻底...

942
来自专栏云计算D1net

保护共享技术的云安全贴士

公共云服务解决方案仍然还将继续保持其强劲的增长势头,因为他们可以快速的实现部署实施,有比私有云更低的成本,而且仅仅只需企业组织的IT工作人员提供最少的支持。然而...

3364
来自专栏java一日一条

为什么我要写自己的框架?

其实说白了框架就是使用别人造好的轮子。在软件开发里面就是command+C/command+V。

981
来自专栏云计算D1net

主流云技术解读:重点不在开发而在架构

云技术可以使用的语言有java,c++等。云技术的开发,并没有发展什么新语言,而是在其他语言的基础上,比如Java语言。与其他技术,最显著的区别,不是在开发上,...

3307

扫码关注云+社区