服务端测试的价值

Posted by comeyke on 05-11,2023

测试分层

软件开发的生命周期一般为:用户需求-设计-软件需求(需求评审)-软件设计(设计评审)-编码-测试-上线-运维或废弃下线。基于软件开发的流程,开发人员进行单元测试,测试人员负责服务端测试+客户端测试。
服务端测试
服务端测试主要进行接口测试。接口测试检查数据的交换、传递和控制管理过程。它绕过了客户端,直接对服务端进行测试。
客户端测试
UI 测试,兼容性测试等

服务端测试分类

客户端/服务器架构下的服务端测试
单一功能的系统,数据交互的模式:客户端-服务器-数据库,服务端测试主要是基于服务器提供的接口进行业务逻辑,数据交互等的验证
微服务的架构下的服务端测试
基于敏捷的开发模式,把一个大而复杂的业务场景拆分成很多的一系列小型独立的微服务,每个服务都可以独立的部署、运行和维护。每个服务都有自己的数据库、业务逻辑和接口。规范化的微服务可以保证服务的可测性,服务端测试价值可以被放大。基于这类测试对象,测试的内容包括:

  • 从外部接口去进行接口协议的测试,接口的入参和出参,功能的逻辑验证等;
  • 内部交互进行故障演练;
  • 服务实例角度,如实例的扩容,升级测试,回滚测试;
  • 启动配置项的测试;
  • 高并发高性能,验证服务的高可用,稳定性等;

当然还有一些类型的服务不能进行服务端测试,比如:

  • 没有对外接口;
  • 环境问题,接口不能被接入第三方服务;
  • 功能设置,比如定时的业务处理或者只和数据库打交道进行数据的增删改等;

服务端测试的价值

1.践行测试左移,能够更早介入测试,更早的发现问题
2.测试维度的颗粒度更细,能发现更多的问题,场景覆盖相对于功能测试更齐全
3.测试效率更高,能够通过编程能力挖掘业务造数据痛点并解决,实现自动化测试减少执行耗时
4.服务端测试远比功能测试更理解底层服务的实现,如果遇到问题,能够更快速更精准的发现问题