测试环境这个话题对于开发和测试同学一定不陌生,大家几乎每天都会接触。但是说到对测试环境的印象,却鲜有好评:
这些问题在行业内其实屡见不鲜。我甚至有听过运维同学"脏乱差"的评价。这里先不说他的评价是否有偏见,但是起码我认为,针对测试环境的管理有较大的改进空间,这是不争的事实。
而本文将重拾这个看起来老生常谈的话题,希望能系统化的阐述我的认知,以期与大家对齐。如果不对或者不完善的地方,欢迎提出,笔者将非常乐于与大家讨论。
首先我们要清晰的认知到,测试环境管理做的不好,不光有严重的质量风险,还会非常影响迭代效率,所以这件事情很重要。那在解决它之前,我们首先要去想想,对于测试环境我们到底有哪些诉求?
很明显,测试环境的定位就是满足产研侧的测试需求,保障产品迭代质量。所以从使用类型上,一般要支撑集成测试,系统测试,压力测试,甚至故障测试等。
而这些环境背后,其实都伴随着 非功能性要求 ,重点体现在:
除此之外,其实还有个非常关键的问题就是,要定义清楚测试环境管理的主体责任人是谁。这点很关键,没有责任人自然会滋生乱象。
不过,不管是哪个角色负责,其实症结还在 ROI 上。只要有充足的预算和人力,这些都不是问题。反之,就需要不断的优化和调整。
当然人力成本是组织层面的考量,今天我们先按下不表。这里重点聊聊如何从技术上解决这些问题。
先来看看业界是怎么玩的。
阿里讲测试环境的文章不少,其中有一篇来自云效的文章,挺有借鉴价值。其重点聚焦了两个方向:
当然,这些是借助阿里内部中间件实现的。不过在云原生环境下,其也开源了两个工具 kt-connect 和 virtual-environment,虽产品化程度做的不够,但整体还是比较有想法的。
百度有篇文件介绍了其中间件技术在测试中的应用。文章说的比较清晰,这个中间件的架构是类似 istio 的模式,本质是通过代理来托管系统流量,从而实现控制链路的能力。而有了这个能力,对测试联调和环境复用自然就不在话下。同样的,对于录制/回放/mock/混沌等测试场景的能力实现上也能顺水渠成。
不过这个平台看起来有浓浓的背景局限,尤其是其控制平面的逻辑设计,感觉要玩转起来,需要一系列的基础设施的配合。所以这个应该是强百度业务和技术环境背景下的产物,对于使用者,也应该有一定的学习和理解成本。
其他企业如有赞、喜马拉雅等,基本上也都是采用改造服务,通过路由策略来实现隔离组,从而达到环境复用的能力。
不过以上都是技术人的玩法,我在想测试环境管理这个方向有没有商业化价值呢?
大家看下图,来自站点 www.testenvironmentmanagement.com:
(PS: 2019 年 4 月发布)
见名识意,这些都是国外主打 Test Environment Management(TEM)方向的企业,其中 Plutora 在 2011 年创立,2016 年融了 1340 万 $. Enov8 始于 2008 年,正式创立于 2014 年。整体感觉活的都还不错。
研究这些企业会发现,他们会把价值重点落地在操作自动化,过程 Visibility,以及自服务和降低成本上。尤其是降低成本这块,会推出计算器,让企业主一目了然的看到,使用了他们的 TEM 方案会降低多少人力成本,多少资源成本等等。
另外,在 TEM 方向上,这些企业都会比较重视测试环境资源的自动或预约回收能力,以达到节约成本。这一点,感觉国内的玩家重视程度不够。
当然,目前国内互联网 ToB Saas 企业也开始方兴未艾,比如我前老大的创业公司 www.koderover.com,其拳头产品云原生持续交付平台,也有关注 TEM 方向,值得推荐。
测试环境抛开全局管理一说,我认为作为使用者,最重要的还是坚守以下原则:
您觉得呢?
领取专属 10元无门槛券
私享最新 技术干货