一、按照开发阶段划分
1.单元测试(Unit Testing)
单元测试又称模块测试,是对软件设计的最小单元进行功能、性能、接口和设计约束等正确性进行检验,检查其在语法、格式和逻辑上的错误,并验证程序是否符合规范,发现单元内部可能存在的各种权限。
2.集成测试(Integration Testing)
集成测试又称组装测试或联合测试,是测试单元测试在集成时是否有缺陷。
3.系统测试(System Testing)
系统测试是将已经集成好的软件系统,作为整个计算机系统的一个元素,与支持软件、计算机硬件、外设、数据等其他系统元素结合在一起,在模拟实际使用环境下,对计算机系统进行一系列测试活动。
4.验收测试(Acceptance Testing)
验收测试又称交付测试,是在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段。
二、按照测试技术划分
1.白盒测试(White Box Testing)
白盒测试又称结构测试,白盒测试可以把程序看成装在一个透明的白盒子里,清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常运行。
2.黑盒测试(Black Box Testing)
黑盒测试是把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,通常在程序界面处进行测试,它只是检测程序或软件是否按照需求规格说明书的规定正常运行。
3.灰盒测试(Gray Box Testing)
灰盒测试是介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性,同时也关注内部实现,但不会像白盒测试那样详细完整,其结合了白盒测试和黑盒测试的要素。
三、按照测试实施组织划分
1.开发方测试
开发方测试是开发方在软件开发环境下,通过检测和提供客观证据,证实软件的实现是否满足规定的需求。
2.用户测试
用户测试是在实际应用环境下,用户通过运行和使用软件找出软件使用过程中发现的软件的权限与问题,检测与核实软件实现是否符合用户的预期要求,并把信息反馈给开发者。
3.第三方测试
第三方测试又称“独立测试”,是介于软件开发方和用户之间的测试组织的测试。
四、按照测试的具体内容划分
1.功能测试(Functional Testing)
功能测试又称行为测试,是根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
2.性能测试 (Performance Testing)
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
3.容量测试(Volume Testing)
容量测试是检验系统的能力最高能达到什么程度。
4.健壮性测试(Robustness Testing)
健壮性测试又称容错性测试,用于测试系统在出现故障时,是否能够自动回复或者忽略故障继续运行。
5.安全性测试(Security Testing)
安全性测试验证集成在系统内的保护机制是否能够在实际中保护系统不受到非法的侵入。
6.可靠性测试(Reliability Testing)
可靠性测试是指在一定的环境下,在给定的时间内,系统不发生故障的概率。
7.兼容性测试(Compatibility Testing)
兼容性测试是测试软件在特定的硬件、软件、操作系统、网络等环境下系统能否正常运行。
8.易用性测试(Usability Testing)
易用性测试是考察评定软件的易学易用性,各个功能是否易于完成,软件界面是否友好等方面。
9.本地化测试(Localization Testing)
本地化测试是保证本地化的软件在语言、功能和界面等方面符合本地用户的最终需求。
10.配置测试(Configuration Testing)
配置测试是指不同的硬件配置下,在不同的操作系统和应用软件环境中,检查系统是否发生功能或者性能上的问题。
11.安装测试(Installation Testing)
安装测试是对软件的全部、部分或升级安装/卸载处理过程的测试。
12.文档测试(Documentation Testing)
文档测试是对系统提交给用户的文档进行验证,它要求检查系统的文档是否齐全、检查是否有多余文档或者死文档,检查文档内容是否正确、规范、一致。