按照是否执行被测试软件划分
静态测试:是指不运行软件,测试包括代码检查、静态结构分析、代码质量度量等,主要对软件需求说明书、设计说明书、软件源代码进行检查与分析
动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,分析差异原因,并分析软件运行效率、健壮性等性能
按照测试技术划分
黑盒测试:又叫功能测试或数据驱动测试,在完全不考虑程序内部结构和内部特性的情况下,通过软件的外部表现来发现其缺陷和错误
白盒测试:也称结构测试或逻辑驱动测试,按照程序内部的结构进行测试程序,通过测试来检测产品内部逻辑是否按照设计规格说明书的规定正常进行,检验程序中的每条逻辑是否都能按预定要求正确工作
按照测试手段划分
手工测试
自动化测试
按照过程阶段划分
单元测试:通过模块(类/方法/函数)测试,使代码达到设计要求,主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误
集成测试:将经过单元测试的模块逐步组装成完整的程序。主要目的是检查各单元与其它程序部分之间的接口是否存在问题,各模块功能之间是否有影响
系统测试:将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起进行测试。针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,进行改正
验收测试:又称交付测试,产品发布之前所进行的最后一次软件测试活动,通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要