软件测试的分类整理
关于软件测试领域,名称繁多,概念混淆,今天借鉴大牛们的经验(CNBLOG, CNDS),个人整理下软件测试的概念和分类。
一、软件测试概念
(1) 经典定义
软件测试(Software Testing),在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
(2) 标准定义
软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
(3)测试目的
软件测试的目的是发现问题,发现至今未发现的问题。检查系统是否满足需求。
(4)测试的对象
程序、数据、文档。
(5) 软件测试常见的 V 模型
RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件测试的V模型。它通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。
V模型大体可以划分为以下几个不同的阶段步骤:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。
二、软件测试的分类
A. 按是否查验代码划分
测试名称 |
测试内容 |
Black box 黑盒测试 |
把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。 从软件的行为,而不是内部结构出发来设计测试。 |
White box 白盒测试 |
设计者可以看到软件系统的内部结构,并且使用软件的内部知识 来指导测试数据及方法的选择。 |
Gray box 灰盒测试 |
介于黑盒和白盒之间,灰盒测试多用于集成测试阶段, 不仅关注输出、输入的正确性,同时也关注程序内部的情况。 |
B. 按是否手工执行
测试名称 |
测试内容 |
Manual Test 手动测试 |
由人一个个输入用例,然后执行测试,观察测试的结果 (测试GUI) |
Automation Test 自动化测试 |
用程序测试程序 ,让机器执行测试的过程(测试API) |
C、按开发阶段划分
测试名称 |
测试内容 |
Unit Test 单元测试 |
对软件中的基本组成单位进行的测试, 测试的对象是软件设计 的最小单位:模块 |
Integration Test 集成测试 |
将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的 功能进行正确性检测的测试工作。检查软件单位之间的接口是否正确 |
System Test 系统测试 |
包括对功能、性能以及软件所运行的软硬件环境进行测试 |
Acceptance Test 验收测试 |
确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档, 向软件购买都展示该软件系统满足原始需求。 |
D、按测试的目的分类
功能测试
测试名称 |
测试内容 |
GUI Test 界面测试 |
登陆界面、总界面、输入界面(增、删、改、查)、 处理界面、输出界面、报表界面、提示界面 |
Smoke Test 冒烟测试 |
冒烟测试目的是确认软件基本功能正常,冒烟测试带有一定的随机性。 |
Regression Test 回归测试 |
是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误 或导致其他代码产生错误 |
Compatibility Test 兼容性测试 |
指对程序与硬件、软件之间的兼容性的测试。主要有浏览器兼容、 分辨率兼容、平台兼容等。 |
Usability Test 易用性测试 |
易理解性,易学习性,易操作性,吸引性,依从性。 |
Install Test 安装测试 |
安装、升级、完整的或自定义的安装都能进行安装,然后卸载。 异常情况包括磁盘空间不足、缺少目录创建权限等。 |
Document Test 文档测试 |
系统帮助、用户使用手册、用户安装手册等 |
非功能(包含性能)测试
测试名称 |
测试内容 |
Performance Test 性能测试 |
TPS吞吐量、响应速度、cpu占用率、内存占用率 |
Load Test 负载测试 |
压力测试、强度测试、容量测试 |
Stress Test 压力测试 |
压力测试即就是大用户测试(针对B/S而言) |
Volume Test 容量测试 |
容量测试即就是大数据量测试 |
Compatibility Test 并发测试 |
指多个用户在同一时间对同一条数据的删除或者修改等处理 |
Configuration Test 配置测试 |
测试软件在各种配置下能否正常工作,最低配置和推荐配置 |
Usability Test 可靠性测试 |
可用性测试 –测试软件是否好用 |
Security Test 安全性测试 |
用户权限的正确性、数据库数据的正确性与完整性、 操作日志的安全性、脚本攻击和SQL注入攻击 |