测试技术体系
软件测试分类
按开发阶段分类
- 单元测试:按照最小模块代码进行测试
- 集成测试:小模块组装集成后进行测试
- 系统测试:所有功能进行测试
- 功能测试:保证业务功能正常使用
- 兼容性测试:不同的软硬件环境下都要正常使用
- 性能测试:响应时间、系统资源利用情况 (如 CPU、内存等)、系统容量–并发等、稳定性-持续性测试
- 安全测试:协议测试、防火墙、操作系统漏洞、网关、网络攻击 (如sql注入等)
- 验收测试:上线前的验证测试
- α 测试:内测版本,测试环境
- β 测试:公测版本,生产环境
按是否查看代码分类
- 白盒测试:查看所有代码
- 研究产品内部的源代码和程序结构
- 单元测试就算白盒测试的一种
- 黑盒测试:不看任何代码
- 又称数据驱动测试
- 完全不考虑程序内部结构和内部特性
- 注重于测试软件的功能需求
- 只关心软件的输入数据和输出数据
- 灰盒测试:只看部分代码
按测试执行方式分类
- 静态测试:代码走查、文档评审等
- 动态测试:需要程序跑起来
按是否手工执行划分
- 手工测试:人工执行进行测试
- 自动化测试:通过编码执行测试用例
其他分类
- 冒烟测试:程序核心业务测试
- 回归测试:bug 修复后的测试、老功能回归测试
- 随机测试:随机操作测试
- 探索性测试:根据人工经验,探索更深层的随机测试行为进行测试
分层测试体系
自动化分层测试体系
- 70% 单元测试:Unit Tests
- 20% 服务测试:Service Tests
- 10% 用户界面测试:UI Tests
单元测试方法
接口测试
- 接口全称:Application Programming Interface,简称API
- 是针对软件对外提供服务的接口的输入输出进行测试
- 检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性
接口测试方法
- Charles、Fiddler:抓包工具
- postman、Apifox:接口测试工具
- Jmeter:接口功能测试、接口性能测试
- loadRunner:性能测试
- python:Requests、HttpRunner,测试库与框架
- Java:HttpClient、RestAssured,测试库与框架
UI 测试
UI 测试方法
- 手工方法:人工查看、操作
- 自动化方法:web—selenium, app—appium