第1章 软件测试概述 1
1.1 软件测试的产生与发展 2
1.1.1 软件可靠性问题 2
1.1.2 软件缺陷与故障 2
1.1.3 软件测试的产生与发展 4
1.1.4 软件测试的发展趋势 7
1.2 软件测试基础知识与理论 8
1.2.1 软件测试的目的与原则 8
1.2.2 软件测试的基本原理与特性准则 8
1.2.3 软件测试的基本策略 9
1.3 软件开发模式与软件测试 11
1.3.1 软件开发模式 11
1.3.2 软件开发与软件测试 17
1.3.3 软件测试模型分析 18
1.4 软件质量及其保证 21
1.4.1 软件质量体系 21
1.4.2 软件测试成熟度 24
本章小结 28
习题与作业 28
第2章 软件生命周期的测试 32
2.1 软件生命周期中的测试 33
2.1.1 软件生命周期 33
2.1.2 软件生命周期中的测试策略 34
2.1.3 软件测试通用流程 35
2.2 软件测试技术分析 36
2.2.1 基于动态测试分析与静态测试分析 36
2.2.2 基于规格说明的测试技术 37
2.2.3 基于结构的测试技术 38
2.2.4 基于经验的测试技术 39
2.2.5 手工测试与自动化测试 42
2.2.6 基于风险的测试 43
2.2.7 软件测试的分类 44
2.3 组件测试 46
2.3.1 组件测试的类别及模式 46
2.3.2 组件测试的任务 47
2.3.3 组件测试的过程 49
2.3.4 组件测试管理 49
2.4 集成测试 50
2.4.1 集成测试概念 50
2.4.2 集成测试策略 50
2.5 系统测试 52
2.5.1 系统测试的概念、对象、环境与目标 52
2.5.2 系统的功能性测试 52
2.5.3 系统测试的非功能性测试 54
2.6 确认测试 57
2.6.1 确认测试的准则 57
2.6.2 程序修改后的确认测试 58
2.6.3 配置与审查 58
2.7 验收测试 58
2.7.1 验收测试的含义 58
2.7.2 验收测试的任务及内容 59
2.7.3 软件文档验收测试 60
2.8 软件新版本的测试 60
2.8.1 软件维护测试 60
2.8.2 软件版本开发的测试 60
2.8.3 软件增量开发中的测试 61
本章小结 63
习题与作业 64
第3章 软件静态测试技术 72
3.1 软件静态测试 73
3.1.1 静态测试技术概要 73
3.1.2 静态测试技术 74
3.2 程序数据流分析方法 76
3.2.1 数据流测试 76
3.2.2 数据流测试的应用举例 77
3.3 程序控制流分析方法 78
3.3.1 程序的控制流图 78
3.3.2 将程序流程图转换为控制流图 80
3.3.3 控制流图分析的测试应用 81
3.4 软件的复杂性度量 82
3.4.1 静态检查与测试对象的规范、标准的一致性 82
3.4.2 软件复杂度的度量 82
3.4.3 Logiscope静态分析测试应用 90
3.5 软件评审 100
3.5.1 软件评审的概念 100
3.5.2 评审的组织 101
3.5.3 评审过程 101
3.5.4 评审类型 102
本章小结 103
习题与作业 104
第4章 软件动态测试技术 109
4.1 软件动态测试技术 110
4.1.1 动态测试 110
4.1.2 动态测试(黑盒技术)的测试模型 112
4.2 等价类划分法与边界值分析法 113
4.2.1 等价类划分法简介 113
4.2.2 边界值测试 117
4.2.3 等价类划分测试法与边界值测试法结合设计测试用例 119
4.3 因果图/决策表法 121
4.3.1 因果图法 121
4.3.2 决策表法 123
4.3.3 因果图/决策表法的测试应用 126
4.4 状态转换法 131
4.4.1 状态转换法原理 131
4.4.2 运用状态转换法设计测试用例 133
4.5 全配对法 135
4.5.1 全配对法测试原理 135
4.5.2 全配对测试法应用 138
4.6 覆盖测试法 142
4.6.1 逻辑覆盖 142
4.6.2 路径覆盖 147
4.6.3 循环的路径测试 151
本章小结 153
习题与作业 154
第5章 软件自动化测试 166
5.1 软件自动化测试概念 167
5.1.1 自动化测试的原理 167
5.1.2 自动化测试的优势与特点 168
5.2 软件自动化测试生存周期方法学及应用 170
5.2.1 自动化测试决策 170
5.2.2 测试工具获取 170
5.2.3 自动化测试引入 171
5.2.4 测试计划、设计、开发 171
5.2.5 测试执行与管理 172
5.2.6 测试评审与评估 173
5.3 自动化测试用例与脚本 174
5.3.1 自动化测试用例的生成要求 174
5.3.2 自动化测试脚本 174
5.4 自动化测试工具 176
5.4.1 自动化测试的专项工具 176
5.4.2 自动化测试套件 181
本章小结 190
习题与作业 191
第6章 软件项目的组件测试 193
6.1 软件项目的组件测试介绍 194
6.1.1 组件测试的范围及内容 194
6.1.2 软件项目的组件测试解决方案 194
6.2 软件GUI的测试 197
6.2.1 页面元素测试 197
6.2.2 对窗体操作的测试 198
6.2.3 对下拉式菜单与鼠标操作的测试 198
6.2.4 对数据项操作的测试 198
6.3 面向对象软件类的测试 199
6.3.1 类、对象、消息及接口 199
6.3.2 类的测试设计 202
6.4 Logiscope组件测试应用 208
6.4.1 Logiscope概况 208
6.4.2 Logiscope功能 210
6.4.3 Logiscope的安装与配置 211
6.4.4 TestChecker测试应用 212
6.5 运用JUnit进行组件测试 220
6.5.1 JUnit的基本概要 220
6.5.2 运用JUnit进行组件测试 224
本章小结 230
习题与作业 231
第7章 软件系统性功能测试 233
7.1 软件系统性功能测试 234
7.1.1 软件系统性功能测试的内容 234
7.1.2 软件系统性功能测试的基本要素 235
7.2 软件功能测试工具及应用 236
7.2.1 RFT的一般概况 236
7.2.2 RFT的基本运用方法 241
7.2.3 RPT的测试应用 254
本章小结 260
习题与作业 260
第8章 软件系统性能测试 262
8.1 软件系统性能测试概述 263
8.1.1 软件系统性能测试的概念 263
8.1.2 软件系统性能测试规划与设计 267
8.1.3 软件系统性能测试管理 270
8.2 Web性能测试 272
8.2.1 Web性能测试模型 272
8.2.2 Web性能测试用例设计 273
8.2.3 Web性能测试过程管理 278
8.3 软件系统性能测试工具 279
8.3.1 RPT功能简介 279
8.3.2 RPT的基本测试应用分析 281
8.3.3 RPT性能测试工程应用 286
本章小结 293
专业术语 293
习题与作业 294
第9章 软件系统安全性测试 296
9.1 软件系统安全性测试的问题 297
9.1.1 软件系统安全性概述 297
9.1.2 软件系统安全性测试策略 302
9.1.3 软件系统安全性测试方法 303
9.2 Web应用系统的安全性测试 305
9.2.1 Web应用安全的背景 305
9.2.2 Web应用安全测试 306
9.3 软件系统安全测试工具及测试应用 310
9.3.1 AppScan概要 311
9.3.2 AppScan功能特性 312
9.3.3 AppScan的基本使用 320
9.3.4 AppScan安全性测试应用 328
本章小结 330
习题与作业 330
第10章 软件测试管理 332
10.1 软件测试管理的概念 333
10.1.1 测试管理的基本要素 333
10.1.2 测试组织管理 334
10.2 测试过程管理 337
10.2.1 测试计划管理 337
10.2.2 测试流程管理 340
10.3 测试事件管理 348
10.3.1 缺陷管理 348
10.3.2 测试用例管理 351
10.4 软件配置管理 354
10.4.1 软件配置管理的内涵 354
10.4.2 配置管理策略与方法 356
10.4.3 配置管理的应用 359
10.5 测试管理工具及应用 360
10.5.1 TestDirector测试管理工具 360
10.5.2 RationalTest Manager测试管理工具 366
本章小结 367
专业术语 367
习题与作业 368
参考文献 372