第1章 软件测试概述 1
1.1 软件、软件危机和软件工程 1
1.1.1 软件、软件危机和软件工程的基本概念 1
1.1.2 软件工程的目标及其一般开发过程 3
1.1.3 软件过程模型 4
1.2 软件缺陷与软件故障 8
1.3 软件质量与质量模型 10
1.4 软件测试 13
1.4.1 软件测试的概念 13
1.4.2 软件测试的原则 15
1.4.3 软件测试过程模型 16
1.4.4 软件测试的分类 19
1.4.5 软件测试流程 21
1.4.6 软件测试发展历程和发展趋势 25
1.5 软件测试人员的基本素质 26
习题1 27
第2章 软件测试计划 28
2.1 软件测试计划的作用 28
2.2 制订测试计划的原则 30
2.3 如何制订软件测试计划 30
2.4 制订测试计划时面对的问题 32
2.5 衡量测试计划的标准 32
2.6 制订测试计划 33
习题2 40
第3章 软件测试基本技术 41
3.1 软件测试技术概述 41
3.2 白盒测试技术 42
3.2.1 静态测试 43
3.2.2 程序插桩 46
3.2.3 逻辑覆盖 48
3.2.4 基本路径测试 53
3.2.5 其他白盒测试方法 59
3.2.6 白盒测试应用策略 61
3.3 黑盒测试技术 62
3.3.1 功能测试 62
3.3.2 非功能测试 73
3.3.3 黑盒测试策略 77
习题3 77
第4章 软件测试过程 80
4.1 软件测试过程概述 80
4.2 单元测试 81
4.2.1 单元测试的定义 81
4.2.2 单元测试的重要性与单元测试原则 82
4.2.3 单元测试的主要任务 83
4.2.4 单元测试环境的建立 85
4.2.5 单元测试主要技术和单元测试数据 86
4.2.6 单元测试工具简介 89
4.2.7 单元测试人员 90
4.3 集成测试 90
4.3.1 集成测试的定义 90
4.3.2 集成测试的主要任务 91
4.3.3 集成测试遵循的原则 91
4.3.4 集成测试实施方案 91
4.3.5 集成测试的测试技术与集成测试数据 96
4.3.6 集成测试人员 97
4.4 系统测试 98
4.4.1 系统测试的定义 98
4.4.2 系统测试前的准备工作 98
4.4.3 系统测试的测试技术和系统测试数据 99
4.4.4 系统测试人员 100
4.5 验收测试 101
4.5.1 验收测试的定义 101
4.5.2 验收测试的主要内容 102
4.5.3 验收测试的测试技术和验收测试数据 105
4.5.4 α、β测试 106
4.5.5 验收测试人员 107
4.6 回归测试 107
4.6.1 回归测试的测试技术和回归测试的数据 108
4.6.2 回归测试的范围 108
4.6.3 回归测试人员 109
4.7 系统排错 109
习题4 111
第5章 测试用例设计 113
5.1 测试用例的基本概念 113
5.2 测试用例的设计 114
5.2.1 测试设计说明 114
5.2.2 测试用例的编写标准 115
5.2.3 测试用例设计应考虑的因素 116
5.2.4 测试用例的分类 118
5.3 测试用例设计实例 119
5.4 测试用例的执行与跟踪 131
5.5 测试用例管理 133
习题5 136
第6章 测试报告与测试评测 137
6.1 软件缺陷和软件缺陷种类 137
6.1.1 软件缺陷的定义和描述 137
6.1.2 软件缺陷的种类 138
6.1.3 软件缺陷的属性 141
6.2 软件缺陷的生命周期 144
6.3 分离和再现软件缺陷 146
6.4 正确面对软件缺陷 147
6.5 报告软件缺陷 148
6.5.1 报告软件缺陷的基本原则 148
6.5.2 IEEE软件缺陷报告模板 150
6.6 软件缺陷的跟踪管理 152
6.6.1 软件缺陷跟踪管理系统 152
6.6.2 手工报告和跟踪软件缺陷 154
6.7 软件测试的评测 155
6.7.1 覆盖评测 155
6.7.2 质量评测 158
6.7.3 性能评测 162
6.8 测试总结报告 163
习题6 165
第7章 软件测试项目管理 166
7.1 软件测试项目管理概述 166
7.1.1 软件测试项目与软件测试项目管理 166
7.1.2 软件测试项目的范围管理 169
7.2 软件测试文档 169
7.2.1 软件测试文档的作用 170
7.2.2 软件测试文档的类型 171
7.2.3 主要软件测试文档 171
7.3 软件测试的组织与人员管理 175
7.3.1 软件测试的组织与人员管理概述 175
7.3.2 软件测试人员的组织结构 176
7.3.3 软件测试人员 178
7.3.4 软件测试人员的通讯方式 178
7.3.5 软件测试人员管理的激励机制 178
7.3.6 软件测试人员的培训 179
7.3.7 软件测试的组织与人员管理中的风险管理 180
7.4 软件测试过程管理 180
7.4.1 软件项目的跟踪与质量控制 180
7.4.2 软件测试项目的过程管理 181
7.5 软件测试的配置管理 182
7.6 软件测试风险管理 184
7.7 软件测试的成本管理 188
7.7.1 软件测试成本管理概述 188
7.7.2 软件测试成本管理的一些基本概念 188
7.7.3 软件测试成本管理的基本原则和措施 192
习题7 193
第8章 面向对象软件测试 195
8.1 面向对象软件的特点及其对测试的影响 195
8.2 面向对象软件测试的不同层次及其特点 198
8.3 面向对象软件测试模型 206
习题8 210
第9章 软件测试自动化 211
9.1 软件测试自动化基础 211
9.2 软件测试自动化的作用和优势 212
9.3 软件测试自动化的引入条件 217
9.4 软件测试自动化的实施过程 219
9.5 软件测试工具分类 220
9.6 几种常用软件测试工具 223
9.6.1 QACenter 223
9.6.2 WinRunner 225
9.6.3 LoadRunner 226
9.6.4 全球测试管理系统 228
9.6.5 GUI接口自动化测试工具 229
9.6.6 BoundsChecker 231
9.6.7 Jtest 231
9.6.8 JUnit 232
9.6.9 JCheck 232
9.6.10 CodeReview 232
9.6.11 SmartCheck 233
9.6.12 TrueTime 234
9.6.13 TrueCoverage 234
9.6.14 FailSafe 235
习题9 235
第10章 测试实践——一个实际软件项目的测试案例 236
10.1 被测试软件项目介绍 237
10.1.1 被测试软件项目的背景 237
10.1.2 门诊挂号管理子系统介绍 238
10.1.3 门诊挂号管理子系统的功能需求分析 239
10.1.4 门诊挂号管理子系统的性能及可用性要求 241
10.2 测试计划 242
10.2.1 概述 242
10.2.2 定义 243
10.2.3 质量风险摘要 243
10.2.4 测试进度计划 244
10.2.5 进入标准 244
10.2.6 退出标准 244
10.2.7 测试配置和环境 245
10.2.8 测试开发 245
10.2.9 预算 245
10.2.10 关键参与者 245
10.2.11 参考文档 245
10.3 HIS测试过程概述 246
10.3.1 单元测试 246
10.3.2 集成测试 247
10.3.3 系统测试 248
10.3.4 验收测试 248
10.4 测试用例设计 248
10.4.1 挂号管理子系统测试大纲 249
10.4.2 其他可用性测试检查标准 250
10.4.3 功能测试用例 250
10.4.4 性能测试用例 259
10.5 缺陷报告 259
10.5.1 建立缺陷报告数据库 259
10.5.2 编写缺陷报告 260
10.6 测试结果总结分析 261
10.6.1 测试总结报告 261
10.6.2 测试用例分析 262
10.6.3 软件测试结果统计分析 263
10.7 软件测试自动化工具 266
10.8 文档测试 268
习题10 269
参考文献 270