第一部分 目标、策略和战术
第1章 实用意味着什么 2
1.1 你想有什么样的效果 2
1.2 什么是高效性的正确级别 3
1.2.1 避免冗余 3
1.2.2 控制费用 3
1.2.3 软件测试不是(但是经常
被误认为是)什么 4
1.3 测试者认知的5个阶段 5
1.4 测试的其他基本观点 6
1.5 将测试作为质量风险管理的一种
形式 6
1.6 测试团队到底是干什么的 7
第2章 三角形测试练习 9
2.1 练习:三角形测试 9
2.2 你的三角形测试解答 9
2.3 作者的三角形测试解答 10
第3章 测试与项目的协调 13
3.1 为什么要进行测试 13
3.2 测试的视角 13
3.3 在上下文环境中测试 14
3.4 常见的测试阶段和目标 14
3.5 贯穿组织的测试 15
3.6 V模型 16
3.7 演化式和增量式模型 18
3.8 螺旋模型 18
3.9 遗憾的常用模型:编码和修正 19
3.10 测试维护性发布 20
3.11 系统集成 20
3.12 硬件开发和软件开发 22
3.13 测试过程 22
第4章 理解测试策略、战术和设计 24
4.1 让任务、策略和战术保持协调 24
4.2 分析的测试策略 25
4.3 基于模型的测试策略 25
4.4 系统的测试策略 26
4.5 面向过程的测试策略 26
4.6 动态测试策略 27
4.7 哲学的测试策略 28
4.8 回归 28
4.8.1 回归策略1:重复所有
测试 29
4.8.2 回归策略2:重复一些
测试 30
4.9 其他3种回归策略 31
4.10 战术:测试技术类别 31
4.11 策略与战术方面的考虑 33
4.12 测试系统 34
4.13 测试设计的经典原则 35
4.14 测试开发的阶段 36
4.15 测试策略、战术和设计的提要 37
第二部分 基于风险的测试
第5章 理解系统质量的风险 40
5.1 测试风险分类 40
5.1.1 功能 41
5.1.2 性能和可靠性 41
5.1.3 压力、容量和规模 43
5.1.4 状态 43
5.2 事务 44
5.2.1 安装和卸载 45
5.2.2 操作 45
5.2.3 维护和可维护性 46
5.3 回归 46
5.3.1 可用性和用户界面 47
5.3.2 数据质量 47
5.3.3 错误和灾难处理以及恢复 48
5.3.4 日期和时间处理 49
5.3.5 本地化 50
5.3.6 配置和兼容性 51
5.3.7 联网的、Internet上的
和分布式的 51
5.3.8 符合标准和法规 51
5.3.9 安全 52
5.3.10 计时和协同 52
5.3.11 文档 53
5.4 你能想到其他质量风险吗 53
第6章 协调测试和质量风险 54
6.1 为系统质量风险划分优先级 54
6.2 测试、客户使用和系统配置 55
6.3 质量风险分析的方法 56
6.4 非正式的质量风险分析 57
6.5 风险分析的小技巧 60
6.6 风险分析的挑战 61
第7章 质量风险分析练习 63
7.1 我的解答 63
7.2 关于我的解答的评论 66
7.3 在迈向质量风险的途中我遇见了
一件有趣的事 67
7.4 额外练习 69
7.5 模板 69
7.6 我的解答 72
7.7 对我的解答的评论 73
7.8 额外范例:“灰和蓝”质量风险
分析 74
第三部分 静 态 测 试
第8章 复审和其他静态测试 78
8.1 测试需求和设计 78
8.2 复审的开销和收益 78
8.3 复审的类型 79
8.4 为验证和确认而复审 79
8.5 将复审作为一种改进过程、改进
系统、节约开销的手段 80
8.6 关于静态测试三个问题的答案 82
8.7 复审作为一种取得共识和理解的
手段 82
8.8 复审过程、角色和责任 83
8.9 来自复审的交付品和基本章程 84
8.10 常见的需求和风险缺陷 85
8.11 复审(和测试)文档 86
8.12 其他静态测试 87
第9章 复审练习 88
9.1 复审 88
9.2 你的解答 88
9.3 我的解答 90
9.4 对我的解答的评论 93
9.5 额外练习:复审三角形需求首页 93
9.6 你所找到的需求缺陷 94
9.7 我的解答:需求缺陷 97
9.8 对我的解答的评论 98
第四部分 行 为 测 试
第10章 等价类和边界值 100
10.1 等价性划分 100
10.2 边界值分析 101
10.2.1 整数 102
10.2.2 实数 103
10.2.3 字符和字符串 104
10.2.4 日期 107
10.2.5 时间 108
10.2.6 货币 109
10.2.7 功能之外的类和边界 110
第11章 等价类和边界值练习 111
11.1 功能性边界和类 111
11.2 我的解答和评论 112
11.3 非功能的边界和类 116
11.3.1 Omninet市场需求
文档(v0.3) 116
11.3.2 Omninet系统需求
文档(v0.2) 117
第12章 用况、实况数据和决策表 118
12.1 用况和场景测试 118
12.2 名词与动词、形容词与副词 120
12.3 实况数据和客户测试 120
12.4 决策表 121
第13章 决策表练习 123
13.1 决策表测试 123
13.2 我的解答和评论 124
13.3 决策表和边界值 126
13.4 我的解答和评论 127
13.5 为测试建立一个决策表 131
13.6 我的解答和评论(业务规则
是互斥的) 132
第14章 状态转换图 136
14.1 使用状态转换图描述具有状态
的系统 136
14.2 状态表 137
14.3 打印服务器状态转换图 138
第15章 状态转换图练习 140
15.1 自助服务机状态 140
15.2 我的解答和评论 140
15.3 ATM状态模型 146
15.4 我的解答和评论(ATM状态
模型) 147
15.5 “灰和蓝”状态转换图 148
15.6 我的解答和评论(状态转换图) 149
第16章 域测试 151
16.1 组合的爆炸式剧增 151
16.2 使用飞行里程计划的域例子 152
16.3 可能的域测试值 153
16.4 一个航空例子 154
16.5 当域规则变化时 155
16.6 域分析总结 155
16.7 复杂的域测试例子 156
16.8 复杂域的一个通用规则 158
第17章 域测试练习 161
17.1 我的解答和评论 161
第18章 正交表和所有对值 164
18.1 组合的爆炸式剧增 164
18.2 正交表和所有对值表 165
18.3 两个正交表 166
18.4 选择一个正交表 167
18.5 将正交表运用到一个复杂的
真实世界例子中 167
18.6 所有对值表 178
18.7 配置测试上的其他观点 179
第19章 正交表练习 181
19.1 我的解答和评论 182
第20章 反应测试 185
20.1 反应测试的基本事实 185
20.2 错误猜测、攻击和缺陷归类 186
20.3 缺陷围猎 187
20.4 探索式测试 187
20.5 清单 188
20.6 其他反应测试的灵感来源 189
20.7 优点和缺点 190
20.8 探索式测试的一个案例研究 191
第五部分 结 构 测 试
第21章 控制流测试 196
21.1 代码覆盖 196
21.2 McCabe圈复杂度 198
第22章 控制流测试练习 200
22.1 我的解答和评论 201
22.1.1 理解潜在的测试用况
的数量 201
22.1.2 为语句、分支、条件和
循环的全覆盖创建一套
测试用况集 201
22.1.3 计算McCabe复杂性,
写出基本路径,并创建
基本测试 202
第23章 数据流测试 205
第24章 数据流测试练习 207
24.1 我的解答和评论 208
第25章 集成测试 214
25.1 驱动和桩 214
25.2 集成技术 215
25.3 主干集成 217
25.4 集成的McCabe基本路径 218
25.5 增强的十六进制转换器程序 220
25.6 调用流 222
第26章 集成基本测试练习 225
26.1 我的解答和评论 225
第六部分 附 录
附录A Omninet市场需求文档 230
A.1 范围 230
A.1.1 术语、缩写和简称 230
A.1.2 适用文档 231
A.2 发布时间要求 231
A.3 需求描述 231
A.3.1 通用的技术需求 231
A.3.2 管理 232
附录B Omninet系统需求文档 235
B.1 系统功能需求 235
B.2 系统可靠性需求 237
B.3 可用性需求 238
B.4 系统高效性需求 239
B.5 系统维护性需求 240
B.6 可移植性系统需求 240
B.7 设计模型 241
B.7.1 Omninet系统架构 241
B.7.2 付费处理决策表 241
B.7.3 自助服务机模块流 242
B.7.4 自助服务机状态转换图 242
B.7.5 自助服务机状态转换表 243
B.7.6 自助服务机操作系统/
浏览器/连接速度配置
的正交表 243
附录C 书目和其他推荐阅读材料 245