• 0
  • 0
分享

测试环境这个话题对于开发和测试同学一定不陌生,大家几乎每天都会接触。但是说到对测试环境的印象,却鲜有好评:

  • 环境不稳定,测试五分钟,排查两小时;

  • 功能建设不全,导致验证不充分,遗漏缺陷;

  • 多人共用,互相踩踏;

  • 随手改动不入库,消极对待,缺乏敬畏之心。

这些问题在行业内其实屡见不鲜。我甚至有听过运维同学"脏乱差"的评价。这里先不说他的评价是否有偏见,但是起码我认为,针对测试环境的管理有较大的改进空间,这是不争的事实。

而本文将重拾这个看起来老生常谈的话题,希望能系统化的阐述我的认知,以期与大家对齐。如果不对或者不完善的地方,欢迎提出,笔者将非常乐于与大家讨论。

首先我们要清晰的认知到,测试环境管理做的不好,不光有严重的质量风险,还会非常影响迭代效率,所以这件事情很重要。那在解决它之前,我们首先要去想想,对于测试环境我们到底有哪些诉求?

我们对测试环境的本质诉求是什么?

很明显,测试环境的定位就是满足产研侧的测试需求,保障产品迭代质量。所以从使用类型上,一般要支撑集成测试,系统测试,压力测试,甚至故障测试等。

而这些环境背后,其实都伴随着 非功能性要求 ,重点体现在:

从使用者角度

  • 想用就有,不要等待

  • 要低维护,高稳定

  1. 维护角度 - 我只关心我的测试需求,我不想干其他维护性工作

  2. 稳定角度 - 我依赖的其他服务和业务要稳定,不要影响我测试

从企业角度

  • 低成本,高效率

PS: 测试环境管理追求的是更高的研发迭代效率,但是成本是底线

除此之外,其实还有个非常关键的问题就是,要定义清楚测试环境管理的主体责任人是谁。这点很关键,没有责任人自然会滋生乱象。

  • 研发 虽经常使用测试环境,但从投入产出比上,组织一般还是希望研发同学能多投入精力做更多创造性的事情

  • 运维 本身负责线上环境的运维,可能有企业也会觉得把测试环境交给他们运维会顺水渠成,且现实确实是有不少企业就是这么干的。不过从人性的角度去分析,相比于线上环境,运维同学对测试环境的重视程度一定不够。而这也是为什么,很多企业的测试环境管理,也只是达到将就能用的水平的原因。

  • 测试 测试同学算是测试环境的主要使用者,对测试环境的管理理应负有直接责任。不过现实中,经常看到的是,测试同学因本身测试任务较多,且测试环境管理也要求具备一定的系统运维能力。导致相对而言,测试同学要想做好测试环境管理,也不容易。

不过,不管是哪个角色负责,其实症结还在ROI上。只要有充足的预算和人力,这些都不是问题。反之,就需要不断的优化和调整。

当然人力成本是组织层面的考量,今天我们先按下不表。这里重点聊聊如何从技术上解决这些问题。

业界的思路?

先来看看业界是怎么玩的。

阿里

阿里讲测试环境的文章不少,其中有一篇来自云效的文章,挺有借鉴价值。其重点聚焦了两个方向:

  • 通过项目环境复用公共基础环境的模式,来解决资源问题

1.png

  • 通过链路识别,请求染色,做到联调测试不串流量

3.png

当然,这些是借助阿里内部中间件实现的。不过在云原生环境下,其也开源了两个工具kt-connect和virtual-environment,虽产品化程度做的不够,但整体还是比较有想法的。

百度

百度有篇文件介绍了其中间件技术在测试中的应用。文章说的比较清晰,这个中间件的架构是类似istio的模式,本质是通过代理来托管系统流量,从而实现控制链路的能力。而有了这个能力,对测试联调和环境复用自然就不在话下。同样的,对于录制/回放/mock/混沌等测试场景的能力实现上也能顺水渠成。

4.png

不过这个平台看起来有浓浓的背景局限,尤其是其控制平面的逻辑设计,感觉要玩转起来,需要一系列的基础设施的配合。所以这个应该是强百度业务和技术环境背景下的产物,对于使用者,也应该有一定的学习和理解成本。

商业化?

其他企业如有赞、喜马拉雅等,基本上也都是采用改造服务,通过路由策略来实现隔离组,从而达到环境复用的能力。

不过以上都是技术人的玩法,我在想测试环境管理这个方向有没有商业化价值呢?

大家看下图,来自站点www.testenvironmentmanagement.com:

5.png

(PS: 2019年4月发布)

见名识意,这些都是国外主打Test Environment Management(TEM)方向的企业,其中Plutora在2011年创立,2016年融了1340万$. Enov8 始于2008年,正式创立于2014年。整体感觉活的都还不错。

研究这些企业会发现,他们会把价值重点落地在操作自动化,过程Visibility,以及自服务和降低成本上。尤其是降低成本这块,会推出计算器,让企业主一目了然的看到,使用了他们的TEM方案会降低多少人力成本,多少资源成本等等。

另外,在TEM方向上,这些企业都会比较重视测试环境资源的自动或预约回收能力,以达到节约成本。这一点,感觉国内的玩家重视程度不够。

当然,目前国内互联网ToB Saas企业也开始方兴未艾,比如我前老大的创业公司www.koderover.com,其拳头产品云原生持续交付平台,也有关注TEM方向,值得推荐。

认知自醒,我们需要坚守哪些原则?

测试环境抛开全局管理一说,我认为作为使用者,最重要的还是坚守以下原则:

  • 重视服务部署环节,尽可能的遵循线上部署模式,比如:

  1. 基础系统一致(系统版本,内核版本等)

  2. 中间件版本和部署姿势一致 - 千万不要想当然

  3. 部署工具一致(PS: 坚决抵制那种通过apt-get install在机器上随意安装的行为)。

  4. 部署逻辑一致 - 模拟真实场景,避免测试遗漏(The wider the gap between test and production, the greater the probability that the delivered product will have more bugs/defects.), 包括:

  • 服务版本

  • 配置写法

  • 实例个数

  • 机房or区域情况等等


作者:大卡尔

原文链接:https://www.cnblogs.com/jinsdu/p/14736491.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   白宫周一为总统拜登和副总统卡马拉-哈里斯开通了 Threads 账户。Meta 旗下的 Threads 在方便 Instagram 账户转移后,短时间内就积累了数百万用户。随着 Threads 成为 X(前 Twitter)的替代平台,白宫的强大影响力将帮助 Threads 站稳脚跟。  虽然 X 仍是公共言论的主要论坛,但它因未能对公共和私营部门认为有害的内容进行审核而受到越来越多的抨击。  而拜登政府正在转向更多的社交媒体平台,在总统大选前与美国人交流其成就。  第一夫人吉尔-拜登(Jill Biden)、第二任总统道格-艾默霍夫(Doug Emhoff)、白宫的各种账户以及白宫的西班...
            0 0 706
            分享
          • 随着软件开发过程复杂性的不断增加,客户希望得到新软件的期望周期也越来越短,所以软件测试方法需要不断的发展快速适应新的开发模式,敏捷测试的呼声越来越高,以下是CC先生对敏捷测试的一些思考。敏捷测试的定义在CC先生初次遇到敏捷的时候,认为敏捷只是有关于流程和工具,学习了一系列有关于敏捷的流程和自动化测试的工具,随着对敏捷理解的深入,越发能体会到敏捷不仅仅是关于流程和工具,它是关于人和文化的! 受到这种认识的启发,CC先生开始深入了解敏捷的历史 - 事实证明,人和文化一直是敏捷的核心。敏捷测试也是如此,它不仅是流程和工具的更改,它更倾向于一种新的测试模式,高投入产出比的同时也提供高质量的产品。如果把...
            0 1 3305
            分享
          •   最近一个学生也可以说是朋友,他遇到了一个让他困扰的职场难题,背景如下:  1)他们公司准备搞安全测试了,现在有人员培训的计划,所以全组有学习安全测试课程的安排。  2)他自己目前专职性能测试1年了,现在他领导有意想把他往安全测试的方向发展,但是他自己内心是排斥安全测试的,但是又不好拒绝领导的好意。  3)自己不想去安全,不是因为不感兴趣,而是因为目前阶段自己觉得性能还没完全摸清楚,现在又进入另外一个陌生的领域,心里没底。  4)且公司内部目前打算培养3个人做安全测试,他从性能部门转过去从零开始学习安全测试。  5)自己也不清楚安全测试的发展情况,非常头疼。目前就只想好好把性能搞好。  6)...
            0 1 885
            分享
          • 今天的组织应该彻底了解实施有效的测试自动化策略和持续测试策略之间的关键区别。采用持续测试方法当然是一种更好的方法,并且比传统的软件测试自动化更具优势。尽管有时这两个术语是同义词,但每个术语的功能和含义存在显着差异。让我们先了解一下构建理想的连续测试方法的各种概念:持续测试不再是软件世界中的新概念。它已成为软件开发生命周期 (SDLC)不可或缺的一部分。持续的测试使组织能够在产品开发的每个阶段保持软件质量。早期测试和频繁测试有助于提高软件产品的整体竞争力。借助与移动DevOps战略保持一致的强大的持续测试方法,已经不再停留在理论阶段,这已成为现实。持续测试和DevOps在DevOps中, 持续一...
            0 0 1312
            分享
          • 前言selenium自动化+ pytest测试框架本章你需要一定的python基础一定的selenium基础——不讲selenium,不会的自己去看selenium中文翻译网测试框架简介测试框架有什么优点呢:代码复用率高,如果不使用框架的话,代码会很冗余可以组装日志、报告、邮件等一些高级功能提高元素等数据的可维护性,元素发生变化时,只需要更新一下配置文件使用更灵活的PageObject设计模式测试框架的整体目录目录/文件说明是否为python包common这个包中存放的是常见的通用的类 是config配置文件目录是logs日志目录page对selenium的方放进行深度的封装是pag...
            5 9 5834
            分享
      • 51testing软件测试圈微信