软件测试05:软件测试分类
软件测试分类
按照开发阶段划分
- 单元测试
- 单元测试又称模型测试,是针对软件设计的最小单位——程序进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各种模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试
- 单元测试一般要读程序和代码。大多数时候(现状)单元测试都是由开发人员自己去完成(但一般不认为是在做测试)。测试人员为什么不做单元测试,因为测试人员不懂代码和算法
- 集成测试
- 集成测试也叫做组装测试。通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部分或整个系统
- 集成测试比较多的涉及到接口测试(需了解接口测试工具和方法),是一个持续不断的过程。
- 确认测试
- 确认测试也叫有效性测试(一般为正向的测试)。是在模拟的环境下,验证软件的所有功能和性能及其他特性是否与用户的预期达到一致。通过了确认测试之后的软件,才具备了进入系统测试阶段的资质
- 系统测试
- 系统测试是在真实的系统运行的环境下,检查完整的程序系统是否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并最终完成用户的所有需求
- 系统测试是全面的:系统所有功能的测试;模拟所有的软件用户的操作;
- 系统测试是全方位:和硬件系统的联系;和系统软件的联系;和其他软件的关系
- 验收测试
- 是软件产品检验的最后一个环节。按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒绝系统。
- 一般供求双方达成。一般有三种验收测试主体。
- α测试:软件的开发商自己进行的交付前的测试
- β测试:软件的需求方自己进行测试
- γ测试:第三方测试
按照测试技术划分
- 黑盒测试
- 通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑软件内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是检查程序是否按照需求规格说明书的规定正确实施。
- 白盒测试
- 通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在了一个透明的盒子里,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称结构测试。
- 灰盒测试
- 介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。
按照代码运行划分
- 静态测试
- 指不实际运行被测对象,而只是静态地检查程序代码、界面或文档中可能存在错误的过程
- 代码测试:主要测试代码是否符合相应的标准和规范
- 界面测试:主要测试软件的实际界面与需求中的说明是否相符
- 文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求
- 动态测试
- 指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序
按照软件特性划分
- 功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求
- 逻辑功能测试
- 界面测试
- 易用性测试
- 安装/卸载测试
- 兼容性测试
- 性能测试
- 功能的另一个指标,主要关注软件中的某一功能在指定的时间、空间条件下,是否使用正常
- 软件的性能包括很多方面,主要有时间性能和空间性能两种
- 安全性测试
- 验证安装在系统内的保护机制是否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰
其他测试类型划分
- 回归测试
- 是否对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例
- 目的:
- 验证之前版本产生的所有缺陷已经全部被修复
- 确认修复这些缺陷没有引发新的缺陷
- 冒烟测试
- 是指在对个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。也叫可测性测试
- 随机测试
- 是指测试人员基本经验和直觉的测试,发现一些边缘性的错误
- 猴子测试
- 把自己当成不懂产品的笨蛋或小动物,随便乱点,没有任何的主观意识和想法参与进来,让一些意想不到的操作造成错误的结果。
按照测试运行主体划分
-
手工测试(功能测试)
-
自动化测试:利用工具软件或者编写代码的方式测试被测的软件系统。
各类测试分类之间的联系(以实际情况为准)
单元测试 | 集成测试 | 确认测试 | 系统测试 | 验收测试 | |
---|---|---|---|---|---|
按测试技术划分 | 黑盒测试/白盒测试 | 黑盒测试/白盒测试/灰盒测试 | 黑盒测试/白盒测试 | 黑盒测试/白盒测试 | 黑盒测试/白盒测试 |
按代码运行划分 | 动态/静态 | 动态/静态 | 动态/静态 | 动态/静态 | 动态/静态 |
按软件特性划分 | 功能测试/性能测试/安全性测试 | 功能测试/性能测试/安全性测试 | 功能测试/性能测试/安全性测试 | 功能测试/性能测试/安全性测试 | 功能测试/性能测试/安全性测试 |
其他测试 | - | - | 冒烟测试 | 回归测试 | 随机测试/猴子测试 |
按测试运行主体 | 手工测试/自动化测试 | 手工测试/自动化测试 | 手工测试/自动化测试 | 手工测试/自动化测试 | 手工测试/自动化测试 |