中台技术解析之微服务架构下的测试实践中台技术解析之微服务架构下的测试实践
引言
随着技术的发展,软件开发方法不断演进,测试一直都是不可或缺的一步。作为提升用户体验、保障软件质量的关键环节,软
件测试至关重要。特别是面对多样化的测试需求、不断加快的版本迭代速度,如何围绕业务功能需求搭建适合其特点且快速、
高效的软件测试体系、框架和流程,FreeWheel 核心业务团队对此进行了深入的探索和实践。团队将测试中具有共性的模块
进行抽象和提取,形成了自己的“测试之道”,为产品质量提供强有力的保障。
架构演进带来的测试挑战
在项目初期,核心业务团队采取的是基于 Ruby-Rails 的单体架构,如上图左侧所示,主要包括前端、中间业务逻辑层和数据
库层三层结构。随着项目规模的扩大,越来越多的人加入了开发团队,代码量也在与日俱增,单体架构的缺点也随之开始显
现:复杂性高,模块之间相互依赖;项目部署速度变慢,花费的时间不断增长;阻碍了技术创新,系统扩展能力受限。
基于以上原因,核心业务团队决定改变技术架构,逐步抛弃构建单一、庞大的单体式应用,转而采用微服务架构,如上图所
示。微服务架构将单体架构的中间层分解,拆分成多个可独立设计、开发、运行的小应用,各个小应用之间协作通信,为用户
提供最终服务。此外,将服务部署在 AWS 上,这些调整都有效地消除了痛点。
与此同时,微服务架构的使用也给我们的测试带来了新的挑战,除了要验证各个微服务的功能是否正常之外,还需要考虑如下
问题:
1. 如何测试微服务之间的依赖是否正常;
2. 在微服务架构下如何验证整个系统的功能是否符合预期;
3. 如何有效的进行多个微服务的部署和测试。
新的测试需求需要新的测试策略来满足,下文首先会对软件测试进行简单的介绍,然后会介绍核心业务团队对这些需求的应对
良策。
软件测试概述
软件测试是使用人工或者自动化手段来鉴定软件的功能或性能是否满足开发之前提出的需求的一个过程。通过软件测试可以及
时发现问题、解决问题,提高软件质量,降低因软件问题带来的商业风险,提升用户体验。
按照不同分类标准,软件测试可划分为不同的类型,下图列举了一些常见的软件测试分类。