浅谈测试环境

除了在床上,咱们一天中大概最多的时间就是在测试环境上战斗和工做了。数据库

最近在梳理测试环境和一些测试流程,在这里顺手记录一下,几年之后看过来,应该是会显得幼稚和贻笑大方的吧。服务器

测试环境的责任边界

由于测试环境基本上是属于测试同窗安身立命之本了,不少时候因为环境问题形成的漏测和事故是家常便饭的,所以测试环境的重要性不言而喻。架构

那么测试环境应该谁来管理呢?性能

目前看来比较好的方案是全部的测试环境都由测试同窗管理,测试同窗掌控发布策略,准入准出规则等等。学习

另外有条件的话,建议测试同窗能够自行搭建测试环境。尽管很难,不过值得一试,由于这种作有以下好处测试

  • 全面了解系统的架构。搭建了环境以后,你可能对数据库,服务器软件,各类中间件和一系列的配置有了必定程度的感性认识。记得咱们当年新人来了以后有条件的话都会让他们搭建一下开发或者测试环境,这是熟悉系统架构的快捷方式。ui

  • 了解数据源。不少时候数据源差别也会引发潜在问题。搭建测试环境的时候基本上会准备一些基础数据和小规模的业务数据,若是这些数据跟线上数据类似度高,好比有必定比例的脏数据,那么的话发现缺陷的几率相应的也会高一点把。中间件

  • 学习开发技能。这点不用展开了吧。接口

  • 理解环境以前的差别。生产环境和测试环境之间或多或少都会有差别,这些差别其实有多是缺陷的温床。若是咱们能理解这些差别,针对这些差别作一些验证,好比线上环境有集群,而测试环境是单机,能够在集群上验证一下数据一致性的问题,这会使咱们的测试用例更加的完善和高效。资源

综上,仍是建议测试环境测试同窗负责,好处仍是显而易见的。卧榻之侧,岂容他人鼾睡,不是么?

准入准出规则及流程

准入准出其实跟测试环境的分层有必定的关系。不过原则上,咱们能够建议在准入以前作一下简单的冒烟测试,提高准入门槛。

提高准入门槛有下面一些好处。

  • 给开发敲警钟。不少低级问题其实都是开发质量意识低下所致使的。固然质量意识跟能力是成正比的,能力强的开发每每质量意识比较好。提高准入门槛实际上就是让大部分平均水准的开发多花点心思在功能的质量上,毕竟他们才是质量保障的源头。开发慎重一些,赛过测试点到吐血。

  • 节约沟通成本。若是让质量不好的版本轻易的发布到测试环境,那么各类阻塞性的问题是会至关耗费沟通成本的,若是版本打回的话,你们都不开心,因此严格一点,你好我也好。

测试环境分层

有条件的话,建议能够给测试环境分层,层层隔离,每层承担不一样的使命。通常来讲,测试环境能够分为

  • 开发联调测试环境。开发协做进行测试和联调的环境。这个环境可让开发随便玩,也能够做为下一层环境的准入测试环境。
  • 功能或模块测试环境。测试维护的某个功能或者模块的测试环境。能够直接部署分支代码。
  • 集成测试环境。全部的功能都合入该环境进行测试,就是通常意义上的测试环境。前两个环境没有其实能够接受,但这个环境是必定须要稳定和可控的。
  • uat环境。能够从主干拉uat分支到该环境进行uat测试,缺陷解决后能够合回主干。
  • 类生产环境。与生产环境尽可能一致。包括代码,软硬件以及数据高度一致。正式发布以前回归策略执行的地方。
  • 灰度环境。有条件能够有灰度环境,用来进行灰度策略的实施。
  • 独立的性能测试环境。这种环境多是临时的,性能测试结束以后资源能够释放掉。

通常来讲,测试环境的层级越多就表明着越多的角色会参与到测试活动中去,提早发现问题的几率相对会高一点点。

测试环境与自动化

  • 多层级的测试环境要求发布过程尽量高度自动化。若是每次发布都很手工,都很痛苦,那么团队可能会选择维护尽量少的测试环境来下降工做量,这显然不是咱们想要的结果。

  • 稳定的测试环境能够进行周期性的自动化回归测试。好比能够在集成测试环境跑接口或ui的自动化。

测试环境与测试及发布流程

测试环境与测试及发布流程强相关,什么样的测试环境分层从客观上会影响总体的测试开发及发布流程。

综上,每一个团队不一样,所采用的测试环境分层策略也不尽相同,另外做者的水平有限,上面内容仅供参考,欢迎斧正。

相关文章
相关标签/搜索