第1章 软件测试概述 1
1.1 软件测试的背景 1
1.1.1 软件缺陷 2
1.1.2 软件测试技术的发展历史和现状 7
1.2 软件测试的基本理论 8
1.2.1 软件测试的定义和目标 8
1.2.2 软件测试的标准 9
1.2.3 软件测试的原则 10
1.2.4 软件测试的分类 12
1.3 软件测试与软件开发 13
小结 15
习题 15
第2章 软件测试过程与策略 16
2.1 软件测试的复杂性与经济性分析 16
2.1.1 软件测试的复杂性 16
2.1.2 软件测试的经济性 19
2.1.3 软件测试的充分性准则 21
2.1.4 软件测试的误区 21
2.2 软件测试的流程 22
2.2.1 软件开发的V模型 22
2.2.2 单元测试 24
2.2.3 集成测试 28
2.2.4 确认测试 34
2.2.5 系统测试 36
2.2.6 验收测试 41
2.3 静态测试与动态测试 47
2.3.1 静态测试 47
2.3.2 动态测试 49
2.4 黑盒测试与白盒测试 49
2.4.1 黑盒测试 49
2.4.2 白盒测试 50
2.4.3 黑盒测试与白盒测试的对比 51
小结 52
习题 53
第3章 黑盒测试及其实例设计 54
3.1 黑盒测试概述 54
3.2 等价类划分法 55
3.2.1 等价类划分法的概念 55
3.2.2 常见等价类划分形式 57
3.2.3 等价类划分法测试用例 59
3.3 边界值分析法 60
3.3.1 边界值分析法的概念 60
3.3.2 边界条件与次边界条件 61
3.3.3 边界值分析法测试用例 63
3.4 决策表法 63
3.4.1 决策表法的概念 63
3.4.2 决策表法的应用 65
3.5 因果图法 67
3.5.1 因果图法的概念 67
3.5.2 因果图法测试用例 70
3.6 实例设计 71
3.7 测试方法的选择 76
小结 77
习题 77
第4章 白盒测试及其实例设计 78
4.1 逻辑覆盖测试 78
4.1.1 语句覆盖 79
4.1.2 判断覆盖 80
4.1.3 条件覆盖 81
4.1.4 判断/条件覆盖 82
4.1.5 条件组合覆盖 82
4.1.6 路径覆盖 83
4.2 路径分析测试 84
4.2.1 控制流图 84
4.2.2 独立路径测试 86
4.2.3 Z路径覆盖测试 89
4.3 其他白盒测试方法 90
4.3.1 循环测试 90
4.3.2 变异测试 91
4.3.3 程序插装 92
4.4 实例设计 93
小结 96
习题 96
第5章 软件测试计划与文档 98
5.1 测试计划的制定 98
5.1.1 测试计划 98
5.1.2 测试计划的制定和软件开发与测试的关系 100
5.2 测试文档 103
5.2.1 测试文档的概念 103
5.2.2 软件生命周期各阶段的测试任务与可交付的文档 104
5.3 测试用例的设计 107
5.4 测试总结报告 108
小结 110
习题 110
第6章 软件自动化测试 111
6.1 软件自动化测试概述 111
6.2 自动化测试的设计与开发 112
6.2.1 自动化测试的产生及定义 112
6.2.2 手工测试与自动化测试 112
6.2.3 测试工具的运用及作用 115
6.2.4 自动化测试产生的问题 117
6.3 常用自动化测试工具简介 118
6.3.1 自动化测试工具的分类 118
6.3.2 常见自动化测试工具介绍 121
6.4 性能测试实例 127
6.4.1 现场测试环境 128
6.4.2 测试要求 128
6.4.3 测试内容 128
6.4.4 测试方案 128
6.4.5 测试过程 131
小结 132
习题 133
第7章 软件测试管理 134
7.1 软件质量保证与软件测试 134
7.1.1 软件质量保证 134
7.1.2 软件质量保证与软件测试的关系 135
7.2 测试的组织管理和测试团队的职责 136
7.2.1 软件测试的组织 136
7.2.2 软件测试的管理 139
7.2.3 测试团队总的职责 140
7.2.4 软件开发和测试过程的组织结构与职责划分 140
7.3 ISO 9000标准 143
7.4 能力成熟度模型(CMM) 144
小结 146
习题 147
第8章 面向对象的软件测试 148
8.1 面向对象的软件测试概述 148
8.2 面向对象的软件 149
8.3 面向对象测试与传统测试的区别 152
8.4 面向对象的测试方法 161
8.5 类测试 166
8.6 JUnit简介 173
小结 178
习题 179
第9章 Web网站测试 180
9.1 Web网站的测试 180
9.2 功能测试 182
9.2.1 页面内容测试 183
9.2.2 页面链接测试 184
9.2.3 表单测试 185
9.2.4 Cookies测试 187
9.2.5 设计语言测试 188
9.2.6 功能测试用例 188
9.3 性能测试 188
9.3.1 负载测试 189
9.3.2 压力测试 189
9.3.3 连接速度测试 190
9.4 安全性测试 190
9.5 可用性/可靠性测试 193
9.5.1 导航测试 194
9.5.2 Web图形测试 194
9.5.3 图形用户界面(GUI)测试 196
9.5.4 可靠性测试 199
9.6 配置和兼容性测试 199
9.7 数据库测试 202
小结 204
习题 205
第10章 软件测试职业 206
10.1 软件测试职业和职位 206
10.1.1 测试团队的基本构成 207
10.1.2 测试人员职位及其责任 207
10.2 软件测试资源的获取途径 210