1. 软件测试分类
1.1 按开发阶段分类:
- 单元测试
- 集成测试
- 系统测试
- 功能测试
- 兼容性测试:保障产品在不同的软硬件环境下都可以使用
- 性能测试:软件是否好用
- 响应速度(客户关心内容)、运行是否流畅
- 系统资源利用情况(测试人员关心)
- 系统容量(用户最大并发量)
- 系统稳定性
- 安全测试(相对独立的一个领域)
- 验收测试
- α测试:内测版本,开发环境下模拟真实用户操作进行测试
- β测试:公测版本,实际使用环境下,实际用户进行操作
1.2 按是否查看代码分类:
- 白盒测试
- 研究产品内容的源代码和程序结构
- 单元测试就是白盒测试的一种
- 黑盒测试:
- 黑盒测试又称为数据驱动测试
- 完全不考虑程序内部结构和内部特性
- 注重于测试软件的功能需求
- 只关心软件的输入数据和输出数据
- 灰盒测试
1.3 按测试执行方式:
- 静态测试
- 不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
- 对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错
- 动态测试
- 通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能
1.4 按是否手工执行划分:
- 手工测试
- 由人去一个一个的输入用例,然后观察结果,和机器测试相对应。
- 自动化测试
1.5 其他分类:
- 冒烟测试
- 开发提交代码后,在系统测试之前,需要把所有功能流程全部跑通,也就是对软件基本功能进行测试。
- 回归测试
- 修改代码后,对原有bug进行测试,确保bug被修复且无新bug被引入。
- 随机测试
- 除了根据测试用例和测试说明书进行测试外,还需要进行随机测试,主要是根据测试者的经验对软件进行功能和性能抽查。
- 一般在测试最后去执行
- 探索性测试
- 探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。
2. 自动化分层测试体系
分层测试体系说明:
- 层级越往上BUG反馈速度越慢、维护成本越高
- 根据分层测试策略,UI端和服务端都要完成测试
Unit Tests:
- 可对产品质量做到最强的保障。既要保证质量,又要做到持续交付,则单元测试一定要做起来。
- 单元测试方法:
- Java单元测试框架:
- Python单元测试框架:
Service Tests:
- 接口:全称Application Programming Interface,一般称作API。对于软件来说,接口相当于每个模块之间传递数据的桥梁。
- 接口测试:针对软件对外提供的服务的接口的输入输出尽心测试
- 接口测试的重点:检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性
- 为什么进行接口测试?保证API反馈数据的正确,并且接口比UI更底层,进行接口测试,发现的问题修改代价比UI层测试小。
- 接口测试的方法和工具
- Charles、Fidder :代理工具,接口数据抓包
- postman
- Jmeter :接口功能和性能验证
- LoadRunner
- 打造自己的接口测试框架:
- Python:Requests、HttpRunner
- Java:HttpClient、RestAssured
UI Tests:
- 可对核心业务,相对稳定的业务,做UI自动化测试
- UI测试方法
|