软件测试类型 | 按开发阶段划分 | 单元测试(单元功能、接口、数据结构、执行路径、错误处理路径、边界条件测试) 集成测试(模块间接口测试、模块间数据传递、全局数据结构测试) 系统测试(从用户角度对系统做出功能性的验证) 验收测试(对整个系统的测试与评审、根据验收通过准则分析测试结果、觉决定是否接受系统及测试评价) |
按测试实施组织划分 | 开发方测试、用户测试、第三方测试 | |
按照测试技术划分 | 黑盒测试、白盒测试、灰盒测试 | |
按照测试执行方式划分 | 静态测试(代码走查)、动态测试(测试用例) | |
按照测试对象类型划分 | 功能测试、界面测试、流程测试、接口测试、安装测试、文档测试、源代码测试、性能测试、数据库测试、网络测试 | |
按照质量属性测试 | 容错性、兼容性、安全性、可靠性、可用性、维护性、可移植性、易用性 | |
按照测试地域划分 | 本地测试、国际化测试
|
软件测试过程:测试计划、测试设计与开发、测试实施、测试评审与结论
软件测试模型:V模型、W模型、H模型、X模型、前置测试模型
测试对象:需求规格说明、概要设计规格说明、详细设计规格说明、源程序
验证:保证软件正确实现特定功能的一系列活动和过程,目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段所设定的目标
确认:保证软件满足用户需求的一系列活动和过程,目的是在软件开发完成后保证软件与用户需求相符合
软件测试模型 | V模型 | 优点: 1、将复杂的测试工作按阶段划分为各个小阶段来实现 2、从多角度测试系统找出更多的缺陷 |
缺点: 1、软件测试容易误导为软件开发的最后一个阶段 2、需求、设计阶段产生的问题不能很早的发现 3、质量控制和测试效率无高效发挥 | ||
W模型 | 优点: 1、测试和开发同步进行,有利于尽早发现问题 2、增加非程序角度测试系统的思想 3、测试准备及设计工作提前,提高测试质量及效率 | |
缺点: 1、把软件开发视为需求、设计、编码等一系列串行的活动 2、开发和测试保持一种线性的前后关系 3、无法支持迭代、自发性以及变更调整 | ||
H模型 | 优点: 1、将测试从开发中独立出来,利于研究更深的测试技术 2、同时测试多个项目时,可对测试技术重复利用 3、高效调整测试人员 4、缺陷修复时不收项目组内部人员限制 | |
缺点: 1、独立的测试对系统认识不够深入 2、影响测试质量及测试效率 | ||
X模型 | 优点: 1、强调单元测试及集成测试的重要性 2、引入探索性测试使测试模型与现实更接近 3、缺陷修复时不受项目组内部人员限制 | |
缺点: 1、只强调测试过程中的部分内容 2、没有对需求测试、验收测试等内容进行说明 | ||
前置模型 | 1、将测试执行与开发结合在一起,在开发阶段以“编码-测试-编码”的方式体现。当程序片段编写完成,立即进行测试 2、提倡验收测试和技术测试沿两条不同路线进行,每条路线分别验证系统是否能够如设计一样可以正常工作 3、用较低成本尽早发现错误,强调了测试对确保系统的高质量的重要意义 4、整个开发过程中,反复使用各种测试技术使开发人员、经理和用户节省时间,简化了工作 |