目录
前言:
在软件开发中,客户端测试和服务端测试是两个不同但互补的测试方面。客户端测试主要关注用户界面和用户体验,而服务端测试则关注服务器端的功能、性能和安全性。
一、服务端测试 vs 客户端测试
1.1 概念
软件测试有多种维度的分类测试。其中一种,对标研发开发领域可分:
- 客户端测试 ,客户端测试即对一切终端,比如收集(app、小程序)、平板、车载设备、其它电子终端设备的测试;
- 服务端测试,广义上指后端服务;
- web端测试,即web页面的测试。
1.2 现状
业内互联网大厂目前的情况有一下几种:
- All in one, 即不分前后端
- 【优势】节约人力成本。一个体现在沟通成本上,一个需求不需要拉多方,进行多次沟通校准;再一个是很多需求即便分了服务端和客户端,也是有一小部分的测试工作是冗余的,存在一定浪费。
- 【劣势】测试深度不够。客户端与服务端整体的质量保障思路差异非常大,具体差异下面会进行分析,由于差异性,all in one的保障模式本质上不是不测服务端的,但是由于客户端保障内容太多,基本已经占满排期,因此,给人一种错觉,不分前后端的测试=客户端测试。
- 【适用业务】
- 尤其适用于初创阶段/小有收益,产品依然在快速试错,这样的投入整体ROI是比较高的;
- 对于bug容忍度比较高的业务,比如一些边缘业务/内部业务
- 服务端客户端分离,各司其职
- 【优势】服务质量有保障
- 【劣势】质量这块的人力投入成本整体高于all in one模式
- 【适用业务】对质量要求高,比如业务体量大、涉及资金、安全,重视用户体验类产品
二、为什么要做服务端测试?
保障模式上面已经说明了,如果目标是服务质量高,bug少,可以继续往下看,否则就可以坚持走自己的路。
2.1客户端测试
2.1.1 客户端测试重点
- 功能准确性
- 兼容性
- 系统版本兼容性:细分ios和安卓大小系统
- 硬件兼容性:屏幕、组件等
- 稳定性
- App自身稳定性(无闪退、崩溃、白屏等)
- App运行时硬件资源稳定性
- 安全性
2.1.2 客户端测试特点
- 重复工作较多:由上面测试重点可知,除了安全性,测试内容是(功能正确性+稳定性)X不同版本,是大量的重复工作。鉴于此,多数客户端测试人员都主要是外包。
- 工作量非常大:发版是一项重要工作:具备节奏性、发版前全量回归
- 缺乏自动化手段:并非没有自动化测试,而是自动化能获得收益非常小
2.2服务端测试
2.2.1 服务端测试重点
- 功能准确性
- 架构合理性测试
- 一致性:数据一致性、状态一致性等
- 可扩展性
- 代码开发规范性
- 上下游异常:接口/参数/服务异常
- 幂等性
- 风险代码
- 中间件测试
- redis: 超时时间设置合理性、k-v长度、缓存异常、雪崩、击穿等
- mysql: 慢sql
- mq/es等常用组件
- 分布式测试
- 集群有效性
- 集群负载均衡
- 集群单节点服务异常
- 异地多活有效性
- 稳定性
- 长时间一定流量压力测试
- 性能测试
- 安全性
- 数据安全
- 资金安全
- 内容安全
2.2.2 服务端测试特点
- 深度较深:此处深度指与代码/设计/RD联结程度,并非指个人能力。
- 质量保障效果好
综上,软件领域没有银弹,选择适合自己的,就是最好哒!
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等)
相信能使你更好的进步!
点击下方小卡片