第1章 确定测试的重点内容:测试项目的基础 1
1.1 可能测试什么:扩大的测试工作量 1
1.1.1 从显微镜到望远镜:测试粒度 1
1.1.2 后退还是前进?测试阶段 3
1.1.3 第一次挫折 7
1.2 测试时要考虑质量 7
1.2.1 为质量进行全面定义 7
1.2.2 不注重质量是铤而走险 8
1.2.3 评价质量风险的非正式方法 10
1.2.4 故障模式和效果分析:理解质量风险的正式方法 18
1.3 测试的内容:进度、资源和预算 22
1.3.1 削足适履:使测试计划适应项目 23
1.3.2 估计资源和创建预算 26
1.3.3 协商合适的测试项目 29
1.5 练习 31
1.4 案例研究 31
第2章 策划和描述测试过程:测试计划 33
2.1 编写测试计划的目的 33
2.2 测试计划的数量 33
2.3 利用草案激发讨论 34
2.4 测试计划模板 34
2.6 边界 35
2.6.1 范围 35
2.5 概述 35
2.6.2 定义 36
2.6.3 设置 36
2.7 质量风险 36
2.8 里程碑的推荐进度 38
2.9 过渡 38
2.10 进入标准 39
2.11 退出标准 40
2.12 测试配置和环境 40
2.13 测试开发 42
2.14 测试执行 43
2.14.1 关键参与者 43
2.14.2 测试用例和错误跟踪 43
2.14.3 错误隔离和分类 43
2.14.4 测试版本管理 44
2.14.5 测试循环 46
2.14.6 测试时间 46
2.15 风险和不测事件 47
2.16 变更历史 47
2.17 参考文档 47
2.18 常见问题 47
2.19 IEEE 829模板:比较和对照 47
2.20 推销计划 48
2.21 清晰、针对性和行动 49
2.22 免费测试计划模板 49
2.24 练习 52
2.23 案例研究 52
第3章 测试系统体系结构、用例和覆盖 53
3.1 测试系统体系结构和工程设计 53
3.2 测试系统体系结构原理 56
3.2.1 测试系统质量 57
3.2.2 任何测试系统都不是孤岛:测试人员和测试系统 59
3.2.3 测试系统质量的好实践和原理 60
3.3.2 基本测试模板 61
3.3.1 创建测试条件 61
3.3 系统的基本构件:测试用例 61
3.3.3 DataRocket的压力测试用例 65
3.3.4 其他测试用例模板 66
3.3.5 如何细化?准确性的作用 67
3.4 避免可怕的“测试遗漏”:覆盖和回归测试间距 70
3.4.1 最好的意图,低劣的覆盖决策 71
3.4.2 正在测试的是开发建立的系统吗 72
3.4.3 把质量风险和测试用例联系起来 72
3.4.4 配置覆盖 73
3.4.5 错误覆盖 75
3.4.6 回归测试间距 76
3.4.7 如果不能重复所有测试怎么办?回归风险缓和策略 86
3.5 “学习经验教训”:测试用例递增改进 87
3.5.1 故障响应 87
3.5.2 采用最佳实践 87
3.5.3 使用探索性测试 87
3.6 不能面面俱到:有所取舍 88
3.7 案例研究 88
3.8 免费案例研究 89
3.9 练习 91
第4章 令人兴奋的捕虫工作:错误跟踪数据库 93
4.1 为什么捣乱?正式的错误跟踪系统示例 94
4.2 问题是什么?故障描述 95
4.2.1 报告描述风格 96
4.2.2 编写好的错误报告的十个步骤 98
4.3 灵活的报告:开始创建数据库 99
4.4 重要的少,次要的多:按重要性排序 101
4.5 设置错误跟踪:添加动态信息 102
4.5.1 使用状态来管理错误生命周期 102
4.5.2 强调所有权和责任 104
4.5.3 关键转移:隔离到调试 104
4.5.4 引导错误生命周期:错误分类过程 107
4.5.5 设置动态字段 108
4.6 最后一步:为分析获取错误数据 109
4.6.1 与错误相关的:子系统、配置和质量风险 109
4.6.2 错误来源:解决方案和根本原因 111
4.6.3 错误何时结束?关闭日期和注入、检测和删除阶段 114
4.6.4 完成错误跟踪数据库 115
4.7 从错误跟踪数据库中抽取度量 116
4.7.1 如何去除缺陷:公开/关闭图表 117
4.7.3 开发小组如何响应:关闭周期图表 121
4.7.2 为什么发生错误:根本原因图表 121
4.7.4 什么被破坏了:子系统图表 127
4.7.5 事后度量:缺陷发现比例 129
4.7.6 关于度量和图表 130
4.8 管理错误跟踪 131
4.8.1 错误数据的误用和策略 131
4.8.2 陷入困境 133
4.9 案例研究 134
4.10 练习 134
第5章 管理测试用例:测试跟踪电子表格 141
5.1 建立最基本的测试跟踪电子表格 141
5.1.1 基本的电子表格 141
5.1.2 在测试项目中使用测试跟踪电子表格 143
5.2 进一步提高 145
5.2.1 为测试包和测试用例指定标识符和测试人 145
5.2.2 加入日期和时间信息:计划与实际情况的对比 146
5.2.3 理解测试运行的时间长短 147
5.2.4 增加测试用例状态的精确度 148
5.2.5 划分测试包和测试用例的优先级 150
5.2.6 审阅累计列 151
5.2.7 其他总结和分组数据的方法 151
5.2.8 通过加入测试用例细节来扩展测试跟踪电子表格 152
5.2.9 跟踪覆盖 152
5.3 启动测试跟踪系统 153
5.3.1 小问题 154
5.3.2 大问题 155
5.3.3 没有问题 157
5.4 从测试跟踪电子表格中抽取度量值 157
5.4.1 我们能完成什么工作吗?画出测试进度图 158
5.4.2 我们在按照计划完成工作吗?画出计划测试完成表 158
5.4.3 我们在按计划进行测试吗?画出测试和错误覆盖图 161
5.4.4 简而言之,测试状态就是建立一个平衡的计分卡或监控板 162
5.5 质问监控板:异议和争论 164
5.6 案例研究 166
5.7 练习 168
第6章 危急时刻的技巧和工具:管理动态内容 171
6.1 做好每个细节:凡事做到最好 171
6.1.1 在遇到问题时要坚持继续前进 171
6.1.2 关联性、进度表和提示:进度管理的重要性 172
6.1.3 它不会交付自己:修订和发布过程 172
6.1.4 它不会安装自己:配置测试环境 173
6.1.5 审核和更新测试结果时要细心 173
6.1.6 定义测试执行过程 174
6.1.7 当测试失败时:使测试结果的误判最小化 176
6.1.8 “祝端午节快乐……”当危急时刻、假日和发生文化冲突时 177
6.2 蜘蛛网:管理测试硬件和软件配置后勤 178
6.2.1 各部分及其连接方式:实体-关系图 179
6.2.2 从图表到模式:实现后勤数据库 181
6.2.3 预算和计划:提早使用后勤数据库 183
6.2.4 什么东西在什么地方运行?跟踪软件配置 189
6.3 意料之中和意料之外:变更管理数据库 193
6.3.2 简单就好:变更管理数据库 195
6.3.1 使用(和误用)变更管理数据 195
6.4 案例研究 197
6.5 练习 199
第7章 配置和管理测试实验室 201
7.1 设置测试实验室的必要性 202
7.2 选择和规划实验室场所 203
7.3 测试实验室配置清单 206
7.3.1 清单模板的样本 206
7.3.2 使用风险分析来选择正确的配置清单 208
7.3.3 关于实验室配置的深远考虑 209
7.4 安全和跟踪问题 210
7.5 管理设备和配置 211
7.6 保持测试环境的整洁 213
7.7 人的因素 214
7.7.1 安全的实验室是工作效率高的实验室 214
7.7.2 对实验室设备的损坏 215
7.7.3 实验室中的生产率 216
7.8 案例研究 217
7.9 练习 222
第8章 组织和管理测试小组 223
8.1 测试工作的合适人选:什么样类型的人能成为优秀的测试工程师 223
8.1.1 专业悲观主义 223
8.1.2 适度的好奇心 224
8.1.3 集中注意力:杜绝水平差的人 225
8.1.5 防止懒惰 226
8.1.4 避免胸怀大志的英雄 226
8.1.6 拒绝懦弱的人 227
8.2 确定测试小组:需要多少人、谁可以参加、应该做什么 227
8.2.1 规模 228
8.2.2 技能 229
8.2.3 教育和培训 233
8.2.4 岗位、经验和目标 235
8.3 专家或者项目资源?组织模型 237
8.4.1 确定工作 240
8.4 雇佣测试人员 240
8.4.2 收集和筛选简历 242
8.4.3 现场面试 243
8.4.4 做出雇佣决定 244
8.4.5 避免和销除雇佣错误 245
8.4.6 接纳新的测试人员 246
8.5 非常关注:激励你的测试小组 247
8.5.1 站在测试小组一边 247
8.5.2 支持合理的工作方式 249
8.5.3 促进每个测试人员的职业发展 251
8.5.4 不要根据是否符合时间进度来分发奖金 251
8.5.5 不要像买大米那样购买错误 252
8.5.6 希望感谢星期六晚上的比萨饼 252
8.5.7 提高我们与他们的思想水平 252
8.5.8 人们到底该做什么 252
8.6.1 临时性工作人员充当的角色 253
8.6 扩展你的能力:使用临时专家和实施人员 253
8.6.2 长期临时工 255
8.6.3 雇佣承包人 258
8.6.4 引入专家 261
8.7 案例研究 263
8.8 练习 265
第9章 政治斗争的胜利:测试经理面临的组织性挑战 273
9.1 唐吉诃德,质量冠军:你的工作职责到底是什么 273
9.2 适合你的位置:组织内部的测试小组 275
9.3 还有其他什么适合的吗?增加其他测试功能 278
9.4 同其他经理协作:测试管理的方向 279
9.4.1 向上管理 281
9.4.2 向外管理 285
9.5 在黑暗中前行的测试:没有文档,你是否应该继续下去 289
9.6 停牌检查:解雇和清算 290
9.7 表现测试工作业绩:以合理的方式呈现正确的信息 291
9.7.1 传递坏消息的好方法 292
9.7.2 测试监控制度化 293
9.7.3 精确性和听众的重要性 294
9.8 可以告诉先驱们:早期采纳对测试的影响 295
9.9 练习 298
第10章 联合其他参与者的力量:测试项目的分布化 311
10.1 选择合作伙伴 311
10.1.1 供应商 314
10.1.2 第三方测试组织 317
10.1.3 销售办事处 319
10.1.4 用户和用户代理人 321
10.2 制定分布式测试工作的计划 322
10.2.1 评估能力 322
10.2.2 了解成本 323
10.2.3 比较、协调和分配测试方案 323
10.2.4 组织后勤 325
10.2.5 处理映射问题 327
10.3.1 监控测试工作的进展情况 328
10.3 管理分布式测试工作 328
10.3.2 交流进展状况和改变工作方向 329
10.3.3 处理策略上的注意事项 330
10.3.4 关注文化差异 331
10.3.5 建立和维护信任关系 332
10.4 案例研究 333
10.5 练习 334
第11章 测试环境:经济学、生命周期和过程成熟度 335
11.1 质量的获得是免费的吗?对测试进行经济调整 336
11.1.1 测试实际上花费多少 336
11.1.2 SpeedyWriter案例研究 337
11.1.3 管理测试筹款的阻碍 339
11.1.4 克服障碍……,做我们力所能及的事情 342
11.2 测试要符合生命周期的要求 344
11.2.1 常见生命周期主题 344
11.2.2 V模型 346
11.2.3 螺旋模型 348
11.2.4 演化或递增模型 349
11.2.5 代码编写与错误修正 351
11.2.6 测试维护版本 352
11.2.7 系统、子系统、商业软件和组件集成 354
11.2.8 硬件/软件系统 355
11.3 过程成熟度 356
11.3.1 “但是我们是不相同的……”:解决方案的共性 356
11.3.2 测试团队不是一座孤岛:外部因素对工作生产率的影响 358
11.3.3 过程成熟度模型 363
11.4 管理测试过程:回顾性总结 367
11.5 案例研究 369
11.6 练习 371
附录A 硬件测试基础:软件测试人员入门 377
附录B 参考文献、相关读物和其他资源 387
术语表 393