1. 按测试阶段
1.1 单元测试
单元测试是开发者编写的一小段代码,用于检测被测代码的一个很小的、很明确的功能是否正确,通常而言,一个单元测试是用于判断某个特定条件 (或场景)下某个特定函数的行为。
简单来说,单元测试对软件组成单元进行测试(对代码进行测试)。
目的 | 检验软件基本组成单位的正确性。 |
对象 | 软件设计的最小单位:模块,所以又称为模块测试。 |
阶段 | 编码后或编码前(TDD:测试驱动开发) |
人员 | 白盒测试工程师或开发工程师 |
依据 | 代码和注释 + 详细设计文档 |
方法 | 白盒测试 |
内容 | 模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试 |
1.2 集成测试
集成测试 也称联合测试、组装测试,将程序模块采用适当的继承策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。
目的 | 检验软件单位之间的接口是否正确 |
对象 | 模块间的接口 |
阶段 | 一般在单元测试之后进行 |
人员 | 白盒测试工程师或开发工程师 |
依据 | 单元测试的模块 + 概要设计文档 |
方法 | 黑盒测试与白盒测试相结合 |
内容 | 模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响 |
1.3 系统测试
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
目的 | 看成一个系统去检验 |
对象 | 整个系统(软、硬件) |
阶段 | 集成测试通过之后 |
人员 | 黑盒测试工程师 |
依据 | 需求规格说明文档 |
方法 | 黑盒测试 |
内容 | 功能、界面、可靠性、易用性、性能、兼容性、安全性等 |
1.4 回归测试
回归测试是指修改了旧代码后,重新进行测试确认修改没有引入新的错误或导致其他代码产生错误。
自动回归测试将大幅度降低系统测试、维护升级等阶段的成本。
在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
1.5 冒烟测试
对象 | 每一个新编译的需要正式测试的软件版本 |
目的 | 确认软件基本功能正常,可以进行后续的正式测试工作 |
人员 | 版本编译人员 |
冒烟测试一般在开发人员开发完毕后,给测试人员来进行测试时,测试人员会先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。
1.6 验收测试
验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。
目的 | 确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求 |
对象 | 整个系统(包括软硬件) |
阶段 | 系统测试通过之后 |
人员 | 主要是最终用户或者需求方 |
依据 | 用户需求、验收标准 |
方法 | 黑盒测试 |
内容 | 功能、界面、可靠性、易用性、性能、兼容性、安全性等 |