第1章 软件测试概述 1
1.1 软件缺陷 1
1.1.1 软件缺陷案例 1
1.1.2 软件缺陷产生的原因 3
1.2 软件测试概述 3
1.2.1 软件测试定义 4
1.2.2 软件测试贯穿于软件生命周期 5
1.2.3 软件测试的目标和原则 5
1.2.4 软件测试的代价 6
1.2.5 软件测试类别 6
1.3 软件测试模型 8
1.3.1 软件开发阶段与测试阶段的联系 8
1.3.2 软件测试模型 9
1.4 测试驱动开发 12
1.4.1 测试驱动开发的概念 12
1.4.2 测试驱动开发的优点 12
1.4.3 测试驱动开发的原则 13
1.5 软件质量保证 14
1.5.1 软件质量和软件质量模型 14
1.5.2 软件能力成熟度模型 16
1.5.3 软件测试成熟度模型 18
1.5.4 软件质量保证 20
1.6 小结 22
习题 22
第2章 测试用例设计 23
2.1 测试用例 23
2.1.1 测试用例定义 23
2.1.2 测试用例设计概述 24
2.1.3 测试用例编写规范 26
2.2 黑盒测试概述 28
2.2.1 黑盒测试的概念 28
2.2.2 黑盒测试用例设计方法 29
2.3 典型黑盒测试方法 29
2.3.1 等价类划分方法 29
2.3.2 边界值分析法 33
2.3.3 错误推测法 37
2.3.4 因果图方法 37
2.3.5 决策表法 40
2.3.6 正交试验设计法 45
2.3.7 功能图法 48
2.3.8 黑盒测试方法使用策略 49
2.4 白盒测试概述 49
2.4.1 白盒测试概念 49
2.4.2 白盒测试优缺点 50
2.4.3 白盒测试方法 50
2.5 典型白盒测试方法 50
2.5.1 逻辑覆盖测试 50
2.5.2 基本路径测试 55
2.5.3 程序插桩 58
2.5.4 静态方法 61
2.5.5 白盒测试方法使用策略 62
2.6 黑白盒测试方法总结 63
2.7 小结 63
习题 64
第3章 软件测试流程 66
3.1 软件测试的过程 66
3.1.1 软件测试基本过程 66
3.1.2 与软件开发过程并行的测试流程 67
3.2 单元测试 70
3.2.1 单元测试概述 70
3.2.2 单元测试步骤 70
3.2.3 单元测试环境 71
3.2.4 单元测试主要任务 71
3.3 集成测试 73
3.3.1 集成测试概述 73
3.3.2 集成测试过程 73
3.3.3 集成测试策略 75
3.3.4 回归测试 77
3.4 确认测试 79
3.4.1 有效性测试 79
3.4.2 配置审查 79
3.5 系统测试 80
3.5.1 系统测试概念 80
3.5.2 系统测试的主要类型 80
3.5.3 Web系统的测试方法 87
3.6 验收测试 91
3.6.1 验收测试概念 91
3.6.2 验收测试策略 91
3.6.3 验收测试过程 93
3.7 小结 93
习题 93
第4章 面向对象软件的测试 95
4.1 面向对象的基本概念 95
4.2 面向对象软件的特点对其测试策略的影响 98
4.3 面向对象软件测试的特殊性 100
4.4 面向对象软件的测试模型 101
4.5 面向对象软件的测试策略 103
4.6 小结 106
习题 106
第5章 软件自动化测试 107
5.1 软件自动化测试概述 107
5.1.1 自动化测试定义 107
5.1.2 自动化测试与手工测试的比较 108
5.1.3 软件测试自动化的优缺点 108
5.2 软件自动化测试的引入和实施 109
5.2.1 软件自动化测试的引入原则 109
5.2.2 软件自动化测试生命周期 110
5.2.3 软件自动化测试实施中存在的问题 112
5.3 软件自动化测试工具 112
5.3.1 自动化测试原理和方法 112
5.3.2 自动化测试工具的特征 115
5.3.3 自动化测试工具的作用和优势 116
5.3.4 软件自动化测试工具的选择 116
5.3.5 自动化测试工具的分类 117
5.3.6 自动化测试工具的局限性 120
5.4 小结 120
习题 120
第6章 软件测试管理 121
6.1 软件测试管理概述 121
6.1.1 软件测试管理的引入 121
6.1.2 软件测试管理的要素 122
6.1.3 软件测试管理的内容 123
6.2 软件测试计划的管理 125
6.2.1 测试计划的编制 125
6.2.2 测试计划的控制和度量 127
6.3 缺陷管理 134
6.3.1 缺陷管理简介 134
6.3.2 缺陷的处理流程 135
6.3.3 缺陷的分类 136
6.3.4 缺陷报告 137
6.3.5 常用的缺陷管理工具 138
6.4 测试文档管理 140
6.4.1 软件测试文档标准 140
6.4.2 计算机软件测试文档编制规范(GB/T 9386—1988) 141
6.4.3 测试文档类型 143
6.5 测试过程管理 143
6.5.1 《评价者用的过程》GB/T 18905.5简介 144
6.5.2 评价与生存周期的关系 144
6.6 软件测试组织及管理 145
6.6.1 测试组织模型 145
6.6.2 测试团队管理 146
6.7 软件配置管理 149
6.7.1 配置管理的基本术语 150
6.7.2 软件配置管理的关键活动 152
6.8 TestDirector测试管理工具的运用 154
6.8.1 TestDirector概述 154
6.8.2 Testdirector测试管理过程 156
6.8.3 TestDirector配置 158
6.8.4 使用TestDirector管理测试项目 163
6.9 小结 184
习题 184
第7章 单元测试实施 185
7.1 单元测试解决方案 185
7.1.1 单元测试的对象 185
7.1.2 单元测试的流程 186
7.1.3 自动化单元测试的构建 187
7.1.4 单元测试工具 188
7.2 静态代码分析工具PC-Lint 188
7.2.1 PC-Lint简介 188
7.2.2 PC-Lint的安装与设置 189
7.2.3 集成PC-Lint到.NET编译环境 196
7.3 利用JUnit进行单元测试 199
7.3.1 JUnit概要 199
7.3.2 JUnit框架组成 200
7.3.3 JUnit的安装和运行 204
7.3.4 JUnit实例 207
7.3.5 从Eclipse中运行JUnit测试 218
7.3.6 用Eclipse插件辅助测试 223
7.4 利用NUnit进行单元测试 231
7.4.1 NUnit测试的基本过程 231
7.4.2 NUnit的布局 235
7.4.3 断言机制 238
7.4.4 NUnit常用属性 240
7.5 小结 251
习题 251
第8章 功能测试实施 252
8.1 功能测试解决方案 252
8.1.1 功能测试概述 252
8.1.2 实施自动化功能测试 252
8.1.3 网站功能测试 255
8.2 使用WinRunner进行功能测试 256
8.2.1 WinRunner简介 256
8.2.2 GUI Map 260
8.2.3 录制测试脚本 264
8.2.4 检查点 270
8.2.5 同步点 278
8.3 小结 278
习题 279
第9章 性能测试实施 280
9.1 性能测试概述 280
9.1.1 性能测试内容 280
9.1.2 性能测试过程 285
9.1.3 全面性能测试模型 288
9.2 使用LoadRunner进行性能测试 294
9.2.1 LoadRunner简介 294
9.2.2 LoadRunner的功能 297
9.2.3 创建脚本 302
9.2.4 回放脚本 307
9.2.5 负载测试的脚本 314
9.2.6 创建负载测试场景 319
9.2.7 运行负载测试 329
9.2.8 分析场景 335
9.3 小结 346
习题 346
参考文献 347