小白零基础性学习软件测试,先来了解软件测试基础。
通过看电子书架上的《软件测试进阶之路:测试路上你问我答》了解了软件测试的分类。
按照软件开发的不同阶段划分
- 需求阶段
需求测试:对产品需求进行测试,包括逻辑错误、需求合理性、需求缺失、需求建议等。
- 编码阶段
单元测试:对软件的最小组单元(函数、方法)成进行的测试。
集成测试:通常也叫联合测试,指的是在完成单元测试的基础上,将所有模块按业务需求组装起来进行测试。
- 测试阶段
系统测试:将已完成集成测试的软件、硬件和网络等其他元素结合在一起,进行系统的各种组装测试和确认测试。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足需求规格的定义。
- 发布阶段
验收测试(acceptance testing):是指产品在完成系统测试之后、产品发布上线之前进行的测试活动。在合同类的项目中,验收测试也被称为交付测试。
按照测试视角划分
- 外部视角
黑盒测试:指的是在测试过程中,只关注程序的输入输出,一般用于系统测试阶段。
- 内部视角
白盒测试:指的是在测试过程中,不仅关注程序的输入输出,还关注程序内部处理逻辑,一般用于单元测试阶段。
- 内外兼顾
灰盒测试:顾名思义,就是在测试过程中黑白兼顾的测试方法,一般用于集成测试阶段。
按测试对象的属性划分
- GUI(图形用户界面)测试:指的是对软件的GUI进行测试,在新入金的APP测试中,GUI测试包含了了UI测试和匹配测绘。
- 功能测试(function testing):这是我们常见的测试,是为了验证产品是否符合产品需求规格说明书而进行最基本的测试。
- 易用性测试(usability testing):对现在的APP来说,易用性测试指的是检查系统交互和界面对用户来说是否友好且易用的测试活动。
- 接口测试:指的是测试系统组件间接口的测试活动,用于检查模块之间的参数传递是否符合测试文档的要求。
- 性能测试:指得是通过工具模拟各种正常、峰值以及异常负载条件来对系统的各种性能指标进行测试,包括负载测试、压力测试、稳定性测试等。
- 安全测试:指的是验证系统的安全等级和识别潜在的安全缺陷的过程,目的是找出系统里的安全隐患和漏洞。
- 兼容性测试:指的是验证软件在不同的硬件、操作系统、浏览器、数据库下是否都能正常运行的测试活动。对C/S(客户端/服务端)结构的产品来说,还包括服务器端和和客户端的兼容性测试。
- 国际化测试:指的是验证系统是否支持国际化特性的测试活动,包括多字节字符集的支持、区域设置、时区设置、界面定制性及字符串编码等。
- 本地化测试:指的是验证翻译后的系统,其语言、格式、内容和用户界面是否都正确的测试活动。
按测试对象是否处于运行状态划分
- 静态测试:指不需被测试系统运行时所采用的的一种测试方法,比如代码静态扫描、代码评审、文档评审等。
- 动态测试:指需要被测系统运行时所采用的的单元测试方法或系统测试方法。
按执行测试的角色划分
- 手工测试:指软件测试工程师手工执行完成的软件测试活动。
- 自动化测试:指由测试工具或测试脚本来执行完成的软件测试活动。
按测试行为划分
- 计划性测试:指的是在测试执行之前,需要进行详尽的测试计划、测试分析、测试用例设计,并按照计划通过执行测试用例来完成的测试活动。
- 随机测试:又叫ad-hoc testing,就是没有计划,不按测试用例,即兴发挥的自由测试。
按测试原因划分
- 新功能测试:指的是针对产品新功能验证所进行的测试。
- 回归测试:指的是产品增加了新功能或者修复了bug而进行确保原功能不会受到影响的检查测试。
按测试范围划分
- 冒烟测试:等同于BVT(build validation tasting)指的是对测试包所进行的快速可用性验证测试,一般会覆盖系统核心功能或所有功能的核心测试点。
- 全面测试:指的是对系统所有功能的所有测试点进行的测试活动。