第1章 测试过程概述 1
1.1 测试的发展简史 1
1.1.1 预防性测试 3
1.1.2 当今大多数公司的状况 5
1.1.3 为什么测试工作如此困难 7
1.2 STEP方法 8
1.2.1 STEP的范围与目标 8
1.2.2 STEP元素 10
1.2.3 STEP体系结构 11
1.2.4 STEP活动的时间安排 12
1.2.5 STEP的工作产品 14
1.2.6 STEP中的角色和职责 16
1.2.7 STEP总结 16
第2章 风险分析 19
2.1 风险为何物 21
2.2 软件风险分析 23
2.2.1 谁将负责风险分析 23
2.2.2 应在何时完成风险分析 24
2.2.3 应如何进行风险分析 24
2.3 计划风险与应急措施 40
2.3.1 项目假设 44
第3章 总体测试计划 47
3.1 测试计划的等级(阶段) 48
3.2 读者分析 51
3.3 活动的时间安排 52
3.4 标准模板 53
3.5 测试计划的各个组成部分 54
3.5.1 测试计划标识符 55
3.5.2 目录表 56
3.5.3 参考文献 56
3.5.4 词汇表 57
3.5.5 介绍(范围) 57
3.5.6 测试项 58
3.5.7 软件风险问题 58
3.5.8 待测特征 60
3.5.9 不予测试的特征 60
3.5.10 方法(策略) 62
3.5.11 测试项通过/失败准则 74
3.5.12 挂起准则和恢复需求 75
3.5.13 测试交付物 76
3.5.14 测试任务 77
3.5.15 环境需求 77
3.5.16 职责 79
3.5.17 人员安排与培训需求 80
3.5.18 进度表 80
3.5.19 计划风险与应急措施 81
3.5.20 审批 82
第4章 详细测试计划 85
4.1 验收测试 89
4.1.1 读者分析 89
4.1.2 活动的时间安排 90
4.1.3 信息来源 93
4.1.4 用户职责 94
4.1.5 配置管理 100
4.1.6 出口准则 101
4.1.7 发布的策略 102
4.1.8 测试环境 104
4.2 系统测试 106
4.2.1 读者分析 107
4.2.2 信息来源 107
4.2.3 软件配置管理 108
4.2.4 出口/入口准则 113
4.2.5 烟雾测试 115
4.3 集成测试 116
4.3.1 读者分析 117
4.3.2 活动的时间安排 118
4.3.3 信息来源 119
4.3.4 集成测试计划问题 119
4.3.5 配置管理 120
4.3.6 测试环境 120
4.4 单元测试 121
4.4.1 单元测试的常见障碍 122
4.4.2 培训与相关支持 123
4.4.3 标准与需求 123
4.4.4 配置管理 124
4.4.5 度量 125
4.4.6 单元测试件的复用 126
4.4.7 评审、走查与审查 126
4.4.8 伙伴测试 127
第5章 分析与设计 129
5.1 建立清单 129
5.1.1 设计分析 139
5.2 黑盒与白盒测试 139
5.3 黑盒科学 141
5.3.1 等价类划分 142
5.3.2 边界值分析 145
5.3.3 判定表 146
5.3.4 状态转换图 148
5.3.5 正交阵列 149
5.4 黑盒技术 152
5.4.1 即席测试 152
5.4.2 随机测试 153
5.4.3 半随机测试 155
5.4.4 探查性测试 155
5.5 白盒科学 157
5.5.1 白盒测试 158
5.5.2 覆盖技术 159
5.6 测试设计文档编制 160
5.6.1 IEEE测试设计规格说明 161
5.6.2 IEEE测试用例规格说明 165
5.6.3 IEEE测试规程规格说明 168
第6章 测试实施 173
6.1 测试环境 173
6.1.1 人员 174
6.1.2 硬件配置 176
6.1.3 共驻软件 178
6.1.4 接口 179
6.1.5 测试数据来源 180
6.1.6 测试数据量 182
6.1.7 策略 183
6.2 模型办公室的概念 184
6.3 自动化的对象有哪些 184
6.3.1 重复的任务 187
6.3.2 枯燥的任务 188
6.4 避开测试工具陷阱 188
6.4.1 没有清晰的策略 189
6.4.2 过高的预期 189
6.4.3 缺乏支持 190
6.4.4 缺乏成效的培训 190
6.4.5 错误对象的自动化 190
6.4.6 选择错误的工具 191
6.4.7 选择错误的供应商 192
6.4.8 不稳定的软件 194
6.4.9 做得太多、太快 195
6.4.10 低估时间/资源 195
6.4.11 不充分或独特的测试环境 195
6.4.12 拙劣的时间安排 196
6.4.13 工具成本 197
6.5 评价测试件 197
6.5.1 质量保证团队 198
6.5.2 评审 198
6.5.3 预检 198
6.5.4 跟踪 199
6.5.5 缺陷种植 200
6.5.6 变异分析 203
6.5.7 测试自动化规程 204
第7章 执行测试 205
7.1 执行测试前的准备工作 205
7.1.1 确定应当由谁来执行测试 206
7.1.2 确定首先执行什么 207
7.1.3 在执行过程中编写测试用例 208
7.1.4 记录每个测试用例的结果 208
7.2 测试日志 209
7.3 意外事件报告 210
7.3.1 IEEE测试意外事件报告模板 212
7.3.2 书写意外事件报告 219
7.3.3 缺陷跟踪工具的属性 220
7.3.4 使用多个缺陷跟踪系统 221
7.4 测试状态与结果 222
7.4.1 测试状态的度量 222
7.4.2 测试总结报告 223
7.5 何时才算完成了测试工作 227
7.5.1 缺陷发现率 229
7.5.2 残留缺陷估计准则 230
7.5.3 资源耗尽 230
7.6 度量测试的有效性 231
7.6.1 客户满意度度量 232
7.6.2 缺陷度量 235
7.6.3 覆盖的度量 245
7.6.4 整体代码覆盖率 249
第8章 测试组织 251
8.1 测试组织 252
8.1.1 测试组织的样例 253
8.1.2 独立的测试小组 254
8.1.3 集成的测试小组 255
8.1.4 开发人员 255
8.1.5 测试协调员 257
8.1.6 质量保证 258
8.1.7 外包 258
8.1.8 独立验证与确认 259
8.2 办公环境 260
8.2.1 办公空间 260
8.2.2 相对于其他参与人员的位置 261
8.2.3 小房间、办公室与公共办公室 261
8.2.4 深入时间 262
8.2.5 安静时间 264
8.2.6 会议 265
第9章 软件测试人员 267
9.1 优秀测试人员的特点 267
9.2 发现优秀的测试人员 268
9.2.1 开发人员 268
9.2.2 用户 269
9.2.3 售后服务/技术支持人员 269
9.2.4 技术文员 269
9.2.5 QA人员 269
9.2.6 新近毕业生 269
9.2.7 来自其他公司(新雇用的)的人员 270
9.3 雇用测试人员 270
9.3.1 定义工作需求 271
9.3.2 阅读应聘人员的简历 271
9.3.3 自己做好精神上的准备 271
9.3.4 第一印象很重要 272
9.3.5 学会问问题 272
9.3.6 要求应聘人员展示他们的能力 273
9.3.7 做笔记 274
9.3.8 回答应聘人员的问题 274
9.3.9 核实推荐信 274
9.3.10 小组面试 275
9.4 你需要多少测试人员 275
9.5 留住职员 277
9.5.1 加班工作 279
9.6 软件测试人员认证 280
9.6.1 认证对测试人员的价值 283
9.6.2 认证对于测试经理的价值 284
9.6.3 认证对公司的价值 285
9.6.4 如何准备认证 286
9.6.5 重认证 288
第10章 测试经理 291
10.1 什么是管理 291
10.1.1 人际关系角色 291
10.1.2 信息角色 293
10.1.3 决策角色 293
10.2 管理与领导 293
10.2.1 领导风格 294
10.3 海军陆战队的领导原则 296
10.4 作为领导的测试经理 296
10.4.1 领导的基石 297
10.4.2 政策 298
10.4.3 控制范围 299
10.4.4 有效的交流 300
10.5 测试经理在团队中的作用 300
10.5.1 经理在测试自动化中的作用 307
10.6 测试经理在培训中的作用 309
10.6.1 需要培训的一些主题 310
10.6.2 培训方法 312
10.7 针对测试经理的度量入门 316
10.7.1 软件的测量和度量 316
10.7.2 使用度量的好处 317
10.7.3 使用度量的经验法则 319
10.7.4 要收集哪些度量 326
10.7.5 “最好的”项目使用的度量 327
10.7.6 度量工程的前景 328
第11章 测试过程改进 331
11.1 改进测试过程 331
11.1.1 步骤1:确定当前实践的基线 332
11.1.2 步骤2:拟定前景和目标 334
11.1.3 步骤3:阐明需求并按优先级排序 336
11.1.4 步骤4:创建项目 336
11.1.5 步骤5:制定计划 337
11.1.6 步骤6:逐步引入变更 337
11.1.7 步骤7:度量结果 340
11.1.8 步骤8:回到步骤1 340
11.1.9 在整个过程中获得支持 341
11.2 ISO认证 346
11.2.1 ISO检查清单 347
11.2.2 ISO认证的优点和缺点 349
11.3 能力成熟度模型 349
11.4 测试过程改进(TPI)模型 353
11.4.1 TPI的关键域 354
11.4.2 TPI评估示例 357
11.5 持续改进 361
第12章 最后的一些想法 363
12.1 使用预防性测试技术 364
12.2 进行软件风险分析 364
12.3 确定计划风险 364
12.4 制定测试策略 365
12.5 使用测试清单 365
12.6 恰当使用测试工具 365
12.7 分析缺陷趋势和模式 366
12.8 度量测试有效性 366
12.9 不断进行培训 366
12.10 宣传测试的思想 367
附录A 术语表 369
附录B 测试调查 381
附录C IEEE模板 387
附录D 总体测试计划样例 395
附录E 简化的单元测试计划 409
附录F 过程图 413
附录G 参考文献 415