软件测试学习笔记
第一部分:软件测试概述
什么是软件缺陷
1. 软件未实现需求中的功能,即:少了功能
2. 软件功能出现了不应有的错误
3. 画蛇添足,软件功能超出了需求的范围
4. 软件未达到应达到的目标,要求
5. 软件难以理解,不易使用,运行速度缓慢
软件缺陷来源
需求、设计、编码、其他
软件测试对象
程序:保证功能正确,性能良好
文件:使用文档、手册
数据:如配置文件
软件测试过程模型
1. V模型
用户需求 验收测试
需求分析 系统测试
概要设计 集成测试
详细设计 单元测试
编码
缺陷1:串行、开发周期长
缺陷2:问题发现较晚
2. W模型
用户需求 验收测试设计 交付 验收测试
需求分析 系统测试设计 实施 系统测试
概要设计 集成测试设计 集成 集成测试
详细设计 单元测试设计
编码 编码
开发测试并行
及早发现问题
3. X模型
4. H模型
测试生命周期
1. 测试计划() --> 测试计划文档
2. 测试分析
3. 测试设计(用例设计) --> 测试用例文档
4. 测试执行(执行测试用例) -->测试缺陷报告文档
5. 测试评估 --> 测试报告文档
软件测试方法分类
1. 是否执行软件
静态分析、动态测试
2. 是否了解程序内部结构
黑盒测试(功能测试、数据驱动测试)
白盒测试(结构测试)
灰盒测试
3. 根据测试的阶段和作用
单元测试(函数的功能是否正确实现)
集成测试(各个模块之间的调用,接口参数的传递是否正确)
系统测试(验证需求是否被正确实现)
验收测试()
4. 根据目的
功能测试、性能测试、安全测试和兼容性测试
常被面试的概念
1. 回归测试 --> 修改了缺陷之后,功能是否正确,会否影响其他功能
2. 冒烟测试 --> 基本功能测试
3. α测试 --> 用户在开发环境进行测试
4. β测试 --> 用户在生产环境进行测试
软件测试的基本原则
1. 尽早地和不断地进行软件测试
2. 尽量避免测试自己的程序
3. pareto原则(80/20原则)
4. 测试用例由输入和预期的输出结果组成
5. 程序修改后要回归测试、避免引入新的缺陷
6. 穷举测试是不可能的