隔离——阿里测试之道(08)

发表于:2022-4-13 09:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:阿里巴巴技术质量小组    来源:51Testing软件测试网原创

  1.5.2隔离
  隔离指不同的测试活动(包括不同的测试运行批次)之间要尽量做到不相互影响。在有些团队里,自动化的功能回归测试和其他日常测试(例如探索性测试)都在同一个测试环境里进行,相互干扰非常大。
  相比“三斧子半”里的其他几个(高频、用完即抛、不自动重跑),隔离的重要性是比较容易理解并被广为接受的。隔离的好处有如下两点。
  减少噪声:减少多个测试批次运行时彼此影响导致的用例失败。
  提高效率:会产生全局性影响的测试,可以在多个隔离的环境里并发执行。
  测试隔离的具体策略要根据技术栈、架构、业务形态来具体分析,选择最合适的技术方案。测试隔离一般可以分为硬隔离和软隔离两种。硬隔离和软隔离之间并没有一个清晰的界限:硬隔离偏属物理层,一般通过多实例实现,例如,消息队列和数据库的多个物理实例;软隔离偏属逻辑层,一般通过多租户(Multi-tenancy)和路由(Routing)实现,例如同一消息队列里的不同命名空间、同一数据表里标志位的不同取值、API调用和消息体上的流量标志位等。
  一般来说,硬隔离在架构上比较简单,对应用代码入侵较小,应用代码和测试代码需要的改造较小。软隔离由于偏属逻辑层,应用代码和测试代码需要有一定的感知,对架构有较多的入侵,设计的复杂度较高。但硬隔离通过多实例实现,成本较高。测试隔离的种类如图1-2所示。一个团队在不同的发展阶段可以用不同的策略组合。当团队和系统规模较小时,不妨以硬隔离为主;当团队和系统规模变大后,团队已经有资源和能力驾驭较复杂的架构,同时成本问题也日趋凸显,这时可以逐渐建设起软隔离。
▲图1-2测试隔离的种类

  软隔离的终极形态是TestinginProduction(TiP),依靠完善的隔离机制,直接复用生产环境的资源和服务搭建测试环境,如图1-3所示。
▲图1-3TiP

  TiP是测试环境的终局,这是因为线下环境的某些局限性是无法避免的。
  线下环境的容量有限。生产环境的容量往往是线下环境的几十、几百倍。单单是生产环境里的冗余容量和使用率波动的峰谷之间的量,就足以满足我们对线下环境的容量需求了。
  上下游支持力度不够。线下环境稳定性经常受到上下游系统稳定性的影响。这些上下游系统也是线下环境。当这些上下游系统出现问题时,虽然也可以给相关团队报故障,但响应速度和支持力度比不上生产环境。如果把测试环境与上下游系统的生产环境集成,支持力度就不再是问题了。
  线下环境和生产环境不一致。不一致不仅包括被测系统(SystemUnderTest,SUT)自身的一些配置,也包括上下游系统的版本和配置。把SUT和上下游系统的生产环境集成,能够最大限度地减少这种不一致。

查看《阿里测试之道》全部连载章节
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任
21天更文挑战,赢取价值500元大礼,还有机会成为签约作者!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2022, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号