按照开发阶段划分
按照开发阶段,软件测试可以划分为如下几个阶段:
单元测试: 单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作,其目的在于检查每个程序单元是否能够正确的实现详细设计说明书中的模块功能、性能、接口和设计约束等要求,发现模块内部可能存在的各种错误。
集成测试: 集成测试也可以称为组装测试,通常在单元测试得基础上,将所有的程序模块进行有序的、递增的测试模式。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序或软件,总共有两种集成方式,一种是自低向上的,一种是自顶向下的。软件集成也是一个持续的过程,在不断的集成过程中,功能的稳定性非常重要,在每个版本提交时都需要进行冒烟测试。
确认测试: 确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求说明书中规定的要求,其一般在系统测试前面进行,时间非常短,只是看系统的功能方面是否满足要求。
系统测试: 系统测试是为了验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的全面的测试,以保证软件在真实的环境中能够按照要求运行,满足用户在实际工作中的需求。
验收测试: 按照项目任务书或者双方约定的合同等具有法律效率的文件,对整个系统进行评审,以确认是否接收该系统。
按照测试实施组织划分
开发方测试: 通常也叫“验证测试”或“α测试”;开发方通过检测和提供客观证据,证实软件的实现是否满足规定需求。验证测试是在软件开发环境下,由开发者检测与证实软件的实现是否满足指定要求。这个可以和软件的系统测试同时进行。
用户测试: 在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试不是指用户的“验收测试”,而是指用户的使用性测试,由用户提交在使用过程中发现的缺陷与bug,然后再由开发人员进行修改。与其相关的有一种测试叫“β