第1章 软件测试概论 1
1.1 软件 1
1.1.1 软件发展史 1
1.1.2 软件项目 2
1.2 软件过程 3
1.2.1 RUP 3
1.2.2 敏捷过程 5
1.3 软件测试 6
1.3.1 测试历程 6
1.3.2 测试与开发的关系 7
1.4 软件缺陷 8
1.4.1 缺陷案例 8
1.4.2 缺陷产生的原因 10
1.4.3 缺陷内容 11
1.4.4 跟踪流程 15
1.4.5 缺陷预防 16
1.5 软件测试行业 17
1.5.1 行业现状 17
1.5.2 软件测试职业 18
1.5.3 测试思维方式 18
1.6 测试认识的误区 19
第2章 软件测试基本知识 21
2.1 测试的几种观点 21
2.2 软件测试的目的与原则 23
2.2.1 软件测试的目的 23
2.2.2 软件测试的原则 23
2.3 软件测试分类 24
2.3.1 按照测试阶段划分 24
2.3.2 按照执行状态划分 25
2.3.3 按照测试技术划分 26
2.3.4 按照执行主体划分 27
2.4 软件测试模型 27
2.4.1 V模型 27
2.4.2 W模型 28
2.4.3 H模型 28
2.4.4 X模型 30
2.4.5 前置模型 30
2.5 测试用例 31
2.5.1 简介 31
2.5.2 测试用例作用 32
2.5.3 测试用例设计准则 33
2.5.4 测试用例的设计步骤 33
2.5.5 测试用例维护 34
2.5.6 测试用例设计的误区 34
2.6 测试停止标准 35
2.6.1 软件测试停止总体标准 35
2.6.2 软件测试各阶段停止标准 35
第3章 黑盒测试 37
3.1 概述 37
3.2 等价类划分 37
3.2.1 划分原则 38
3.2.2 设计测试用例步骤 38
3.3 边界值分析 40
3.3.1 设计原则 40
3.3.2 两类方法 41
3.3.3 应用举例 41
3.3.4 局限性 42
3.4 决策表 43
3.4.1 应用举例 44
3.4.2 优点和缺点 46
3.5 因果图 46
3.5.1 基本术语 47
3.5.2 应用举例 48
3.6 场景法 49
3.6.1 基本流和备选流 50
3.6.2 应用举例 50
3.7 错误推测法 54
3.7.1 概念 54
3.7.2 优缺点 55
3.8 综合策略 55
第4章 白盒测试 57
4.1 白盒测试发展史 57
4.2 静态测试 58
4.2.1 代码检查 58
4.2.2 静态结构分析 59
4.3 代码质量度量 60
4.3.1 代码覆盖率 60
4.3.2 代码度量方法 60
4.4 逻辑覆盖 64
4.4.1 语句覆盖 64
4.4.2 判定覆盖 65
4.4.3 条件覆盖 66
4.4.4 条件判定覆盖 66
4.4.5 修正条件/判定覆盖 67
4.4.6 条件组合覆盖 68
4.4.7 路径覆盖 69
4.5 路径分析 69
4.5.1 简介 69
4.5.2 控制流图 70
4.5.3 应用举例 72
4.6 控制结构测试 73
4.6.1 条件测试 73
4.6.2 循环测试 75
4.6.3 Z路径覆盖 76
4.7 数据流测试 76
4.7.1 词(语)法分析 76
4.7.2 变量定义/使用分析 77
4.7.3 程序片 78
4.8 程序插桩 78
4.8.1 介绍 78
4.8.2 作用 80
4.9 测试方法综述 80
第5章 软件测试流程 81
5.1 测试流程概述 81
5.2 测试需求 82
5.2.1 检查需求文档 82
5.2.2 测试用例编写 83
5.3 测试计划 84
5.3.1 测试计划要点 84
5.3.2 测试计划步骤 84
5.4 测试设计 86
5.4.1 测试设计内容 86
5.4.2 测试用例属性 87
5.5 测试执行 87
5.5.1 单元测试 88
5.5.2 集成测试 90
5.5.3 系统测试 94
5.5.4 验收测试 94
5.6 回归测试 95
5.6.1 测试流程 96
5.6.2 测试用例设计方法 96
5.7 测试评估 97
5.7.1 测试评估活动 97
5.7.2 缺陷分析方法 97
第6章 性能测试 100
6.1 基本概念 100
6.2 性能测试分类 102
6.2.1 负载测试 102
6.2.2 压力测试 102
6.2.3 可靠性测试 103
6.2.4 数据库测试 103
6.2.5 安全性测试 103
6.2.6 兼容性测试 104
6.2.7 可用性测试 104
6.3 性能测试步骤 105
6.4 Web测试 107
6.4.1 Web系统体系结构 107
6.4.2 Web测试内容 108
第7章 软件测试自动化 114
7.1 自动化测试与手工测试 114
7.2 自动化测试发展历程 115
7.3 测试成熟度模型 116
7.4 自动化测试体系 121
7.5 测试工具分类 122
7.5.1 黑盒测试工具 122
7.5.2 白盒测试工具 123
7.5.3 测试管理工具 124
7.6 测试工具特征 127
7.7 如何选择测试工具 128
第8章 软件测试管理 129
8.1 概述 129
8.1.1 测试项目范围管理 129
8.1.2 测试管理主要功能 130
8.2 测试过程改进 130
8.2.1 功能 130
8.2.2 方法 131
8.3 软件测试文档 131
8.3.1 测试文档的类型 132
8.3.2 测试文档的重要性 132
8.4 人力资源 133
8.4.1 测试团队架构 133
8.4.2 测试团队阶段性 134
8.5 配置管理 135
8.5.1 软件配置管理 135
8.5.2 基本概念 135
8.5.3 配置库的检入检出机制 136
8.5.4 持续集成的测试 137
8.5.5 变更管理的作用 138
8.6 软件质量 139
8.6.1 软件质量与测试 139
8.6.2 常用的软件质量度量 140
8.6.3 质量评价三大体系 141
参考文献 146