这是《落叶》文集里第 148 片落叶,希望你能喜欢,不为别的,只为这份坚持。
【背景】
经常被问及测试都有哪些类型,有的是因为在面试中被问到,有的是因为自己在学习中被各种名词所困扰,也有的是因为在与同行交流时所用的叫法不同而迷惑。
其实,我觉得,问题本身所想了解的东西其实不重要,比如对于每个提测版本所进行的快速验证测试,到底是应该叫冒烟测试,还是叫 BVT 测试,重要吗?我们应该关注的,或者说应该要明白的是在不同的阶段,或者是针对不同的目的,我们应该需要进行哪种类型的测试,知道该类型的测试应该怎么做,难道不是这样吗?
不过,还是需要有个分类的,这样才好沟通和学习,我先按照自己的理解和认知做了一个分类和概要,后续再一一展开探究。
【你问】
不同的维度划分下到底有多少种测试分类?
【我答】
1、按软件开发流程的不同阶段划分:
1.1 需求阶段:
需求测试:对产品的需求进行测试,包括逻辑错误、需求合理性、需求缺失、需求建议等。
1.2 编码阶段:
单元测试:对软件的最小组成单元进行的测试,比如某个函数或者某个方法;
集成测试:我们通常也叫联合测试,指的就是在单元测试完成的基础上,将所有模块按业务需求组装起来,进行集成测试;
1.3 测试阶段:
系统测试:是将已经完成集成测试的软件和硬件、网络等其他元素结合在一起,进行系统的各种组装测试和确认测试,系统测试是针对整个产品进行的测试,目的是验证是否满足产品需求的定义。
1.4 发布阶段:
验收测试:Acceptance Testing,是指在产品完成系统测试之后、产品发布上线之前所进行的测试活动。在合同类的项目中,也会被称作交付测试。
2、按测试视角划分:
2.1 外部视角:
黑盒测试:指的是在测试过程中,只关注程序的输入和输出,一般用于系统测试阶段;
2.2 内部视角:
白盒测试:指的是在测试过程中,不仅关注程序的输入和输出,还关注程序内部的处理逻辑,一般用于单元测试阶段;
2.3 内外兼顾:
灰盒测试:顾名思义,其实就是在测试过程中,黑白兼顾的测试方法,一般用于集成测试阶段;
3、按测试对象的属性划分:
3.1 GUI 测试:指的是对软件的 GUI 进行测试,我认为在现如今的 APP 测试里,GUI 测试包含了 UI 测试和适配测试;
3.2 功能测试:Function Testing,这是我们最常见的,为了验证产品是否符合产品需求规格说明书而进行的最基本的测试;
3.3 易用性测试:Usability Testing,对于现在的 APP 来说,指的就是检查系统的交互和界面对用户来说是否友好且易用的测试活动;
3.4 接口测试:指的是测试系统组件间接口的测试活动,检查模块之间参数传递是否符合设计文档要求;
3.5 性能测试:指的是通过工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。其中包括了负载测试、压力测试、稳定性测试等;
3.6 安全测试:指的是验证系统的安全等级和识别潜在的安全性缺陷的过程,目的是找出系统里的安全隐患和漏洞;
3.7 兼容性测试:指的是验证软件在不同的硬件、操作系统、浏览器、数据库 下是否都能正常的运行,对于 C/S 结构的产品来说,还包括服务端和客户端的兼容性;
3.8 国际化测试:验证系统是否支持国际化特性的测试,包括多字节字符集的支持、区域设置、时区设置、界面定制性以及字符串编码等;
3.9 本地化测试:验证翻译后的系统,语言、格式、内容和 UI 是否都正确的测试活动;
4、按测试对象是否处于运行状态划分:
4.1 静态测试:指在不需要被测试系统运行时,采用的一种测试方法,比如代码静态扫描、代码评审、文档评审等等;
4.2 动态测试:指在需要被测试系统运行时,所采用的单元测试方法或者是系统测试方法;
5、按执行测试的角色划分:
5.1 手工测试:指由软件测试工程师手工执行完成的软件测试活动;
5.2 自动化测试:指由测试工具或测试脚本来执行完成的软件测试活动;
6、按测试的行为划分:
6.1 计划性测试:顾名思义,在测试执行之前,需要进行详尽的测试计划、测试分析、测试用例设计,并按照计划通过执行测试用例来完成的测试活动;
6.2 随机测试:又叫 Ad-hoc testing,顾名思义,就是没有计划的,不按测试用例的,即兴发挥的自由测试;
7、按测试原因划分:
7.1 新功能测试:针对产品新功能的验证所进行的测试;
7.2 回归测试:因为产品增加了新功能或修复了 Bug,而进行的确保原有功能不会受到影响的检查测试;
8、按测试范围划分:
8.1 冒烟测试:我认为也可以等同于 BVT 测试(Build Validation Testing),指的就是对测试包所进行的快速可用性验证测试,一般只会覆盖到系统核心功能或者是所有功能的核心测试点;
8.2 全面测试:指的就是对系统所有功能的所有测试点进行的测试活动;
《测试路上你问我答》里的 Q&A 18,如果是你要的,甚好!如果不是,你问,我答!
作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵