1.按开发阶段分
单元测试
单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。
- 测试阶段:编码后或者编码前TDD(测试驱动开发)
- 测试对象:最小模块、测试人员:白盒测试工程师或者开发工程师
- 测试依据:代码和注释+详细的设计文档
- 测试方法:白盒测试
- 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
集成测试
集成测试也称联合测试(联调),集成测试是按照一定的组合策略把功能模块组装起来,就是把组装后的模块进行测试。
集成测试主要的目的是检查软件之间的接口是否正确。
- 测试阶段:一般单元测试之后进行
- 测试对象:模块间的接口
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:单元测试的模块+概要设计文档
- 测试方法:黑盒测试和白盒测试之间的结合
- 测试内容:模块之间数据的传输、模块之间功能冲突、模块组装功能正确性,全局数据结构、单模块缺陷对系统的影响;
系统测试
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试,时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
- 测试阶段:集成测试之后
- 测试对象:整个系统(软、硬件)
- 测试人员:黑盒测试工程师
- 测试依据:需求规格说明文档
- 测试方法:黑盒测试
- 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性
回归测试
回归测试是指修改了旧代码之后,重新进行测试以确认没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅度降低系统测试、维护升级等阶段的成本。
在软件测试过程中,软件各个阶段都会进行多次回归测试,随着系统的庞大、回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性显得尤为重要。
冒烟测试
冒烟测试是基本的流程的测试,它相当于一个准入原则。它的对象是每一个新编译的需要进行测试的正式软件版本,目的是确认软件的基本功能正常,可以进行后续的正式测试工作,