1.按工程阶段划分
- 单元测试
是最小单元的测试活动;在编程中,单元可能表现为函数,过程或者类。
单元测试关注单元是否正确地实现了规定的功能、逻辑是否正确、输入输出是否正确。 - 集成测试
在单元测试完成并修复所有问题之后,进行模块的集成测试;
目的是验证组装后的各模块之间的接口是否满足软件的设计文件要求;
主要任务发现单元之间的接口可能存在的问题,如接口数据不匹配,接口数据丢失等问题。 - 系统测试
目标是确认软件的应用系统能否如预期工作并满足应用的需求。
系统测试的对象是应用系统,除软件外可能还包括硬件、网络及数据。
系统测试需要按照需求规格说明逐一验证系统的质量特性。 - 确认测试
确认测试称为有效性测试,由软件开发方组织。
确认测试可以局部分项展开,也可开展完全的确认,来验证软件的有效性。 - 验收测试
验收测试由用户方组织,在生产环境下进行。
验收测试将全面确认交付给用户的软件是否符合预期的各项需求。
上述工程阶段的测试都是有组织的活动,需要制定测试计划和测试方案,设计测试用例,选择测试工具,记录测试结果,编制测试报告,并对其中的一些结果和过程进行评审。
2.按是否执行代码划分
- 静态测试
不运行软件,只做检查和审核。
测试对象包含需求文档、设计文档、产品规格说明书以及代码等。
对各类的文档主要是通过评审的方式进行,对代码的静态测试采用走查和代码审查方式。 - 动态测试
动态测试就是通过运行软件来检验软件的动态行为和运行结果的正确性。目前,大多数公司主要的测试方式就是动态测试。
3.按测试实施主体划分
- 开发方测试
- 用户方测试
只能开展验收测试。 - 第三方测试
第三方主要开展验收确认测试、验收测试和符合性测试,另外也可接受其他的委托测试。
4.按是否关联代码划分
- 白盒测试
人员测试时完全清楚被测试程序的内部结构、语句和工作过程,可以看清一切细节。 - 黑盒测试
通过软件的外部表现行为进行测试的方法,不关心程序的内部结构和如何实现,只关心程序的输入和输出。 - 灰盒测试
既关注程序的输入输出,也在一定程度上关注程序的内部情况。
5.按软件质量特性划分
- 功能性
- 性能效率
- 兼容性
- 易用性
- 可靠性
- 信息安全性
- 维护性
- 可移植性
6.按符合性评价要求划分
符合性测试是要通过测试去判定软件是否符合事先已经明确的稳健性要求和约束,如标准、规范、技术指标、投招标文件、合同等。
7.回归测试
在软件升级迭代过程中通用会复用之前版本的大量内容并加入一些新的内容,此时必须开展回归测试。
只要软件发生了变化,都应该进行回归测试