译者序 3
如何使用本书 3
第一部分软件测试能力和 3
资格的评估 3
第1章评估软件测试的能力和人员资格 3
1.1软件测试涉及的人员 3
目 录 3
1.2软件测试的多种角色 4
1.2.1制造 4
1.2.2创作车间 4
1.2.3专业化过程 4
1.3.1缺陷与故障 5
1.3.2过程问题与缺陷率 5
1.3什么是缺陷 5
1.4软件测试的商业前景 6
1.5现有的测试过程和测试人员的 6
状况如何 6
1.5.1评估现有测试过程的质量 7
1.5.2评估测试人员的素质 11
1.6小结 14
第二部分搭建软件测试环境 23
第2章制定软件测试策略 23
2.1计算机系统的策略风险 23
2.2经济学测试 24
2.3常见的计算机问题 25
2.3.1软件问题 25
2.5测试是一个组织问题 26
2.4系统开发生命周期的经济学测试 26
2.3.2数据问题 26
2.6建立测试原则 28
2.7测试的结构化方法 29
2.7.1需求 31
2.7.2设计 31
2.7.3编程(创建/构建) 31
2.7.4测试过程 31
2.7.5安装 32
2.7.6维护 32
2.8测试策略 32
2.8.1测试因素 32
2.8.2制定测试策略 35
2.8.3创建测试策略样例 36
2.9测试方法论 37
2.10软件测试的状况 38
2.11小结 39
第3章建立软件测试方法论 41
3.1需要测试什么 41
3.2为什么缺陷难以发现 41
3.3减少测试费用 42
3.4什么是验证和确认 44
3.5功能和结构测试 45
3.5.1为什么使用两种测试方法 46
3.5.2使用验证和确认技术进行的结构和功能测试 46
3.6工作流程的概念 46
3.7开发测试方法论中要考虑的8个问题 48
3.7.1获取和研究测试策略 48
3.7.3确定软件系统的类型 49
3.7.2确定开发项目的类型 49
3.7.4确定项目的范围 50
3.7.5确定战术风险 50
3.7.6确定何时进行测试 51
3.7.7建立系统测试计划 52
3.7.8建立单元测试计划 52
3.8测试战术检查单 54
3.9小结 54
第4章确定软件测试技术 65
4.1 应用程序适应性的概念 65
4.2测试技术/工具的选择过程 65
4.2.1结构测试与功能测试 66
4.2.2动态测试与静态测试 67
4.4结构化系统测试技术 68
4.3测试技术/工具的选择 68
4.2.3人工测试与自动测试 68
4.4.1 压力测试技术 69
4.4.2执行测试技术 70
4.4.3恢复测试技术 71
4.4.4操作测试技术 72
4.4.5一致性测试技术 73
4.4.6安全性测试技术 74
4.5功能性系统测试技术 75
4.5.1需求测试技术 75
4.5.2回归测试技术 76
4.5.3错误处理测试技术 77
4.5.4人工支持测试技术 78
4.5.5系统间测试技术 79
4.5.6控制测试技术 80
4.5.7平行测试技术 81
4.6单元测试技术 81
4.7功能测试和分析 82
4.8功能测试 82
4.8.1独立于规格说明技术的测试 82
4.8.2基于规格说明技术的测试 83
4.8.3结构测试和分析 84
4.8.4面向错误的测试和分析 85
4.8.5单元测试和分析的管理 87
4.9测试因素/测试技术矩阵 88
4.10小结 88
第5章软件测试工具的选择和安装 90
5.1测试工具——测试的“锤子” 90
5.2测试工具的选择和使用 94
5.2.1第1步,将工具及其用途进行匹配 95
5.2.2第2步,选择适合于软件生命周期各阶段的工具 95
5.2.3第3步,选择与测试人员的技能水平相符的测试工具 95
5.2.4第4步,选择可支付的工具 99
5.2.5如果完成第4步后所有的工具都被排除了,那该如何做 101
5.3指定测试工具管理者 101
5.3.1第1步,选择工具管理者 102
5.3.2第2步,为工具管理者分配任务 102
5.3.3第3步,限定工具管理者的任期 103
5.4小结 104
第三部分11步软件测试过程 109
第6章11步软件测试过程概述 109
6.1计算机测试的费用 109
6.1.1确定消除缺陷的费用 110
6.2生命周期测试 111
6.1.2降低测试的费用 111
6.2.1 定义过程 112
6.2.2使用V-测试概念 113
6.2.3组建软件开发项目组 113
6.2.4组建软件开发测试小组 113
6.3软件开发过程中的验证和确认 115
6.4 11步软件测试过程 115
6.5 工作流程所需的技能 117
6.6小结 118
7.1概述 120
7.3涉及的问题 120
7.2目标 120
估算和状态 120
第7章第1步,评估项目管理开发的 120
7.4 工作流程 122
7.5输入 122
7.6执行过程 122
7.6.1任务1:测试软件估算的有效性 122
7.6.2任务2:测试软件系统的状态 131
7.7检查过程 139
7.8输出 139
7.9原则 139
7.10 小结 139
第8章第2步,制定测试计划 143
8.1概述 143
8.2目标 143
8.3涉及的问题 144
8.4 工作流程 145
8.5输入 146
8.6执行过程 146
8.6.1任务1:组建测试小组 146
8.6.2任务2:了解项目风险 148
8.6.3任务3:制定测试计划 154
8.6.4任务4:审查测试计划 160
8.7检查过程 167
8.8输出 167
8.9原则 167
8.10小结 168
第9章第3步,需求阶段测试 183
9.1概述 183
9.2目标 184
9.3涉及的问题 185
9.4工作流程 185
9.5输入 185
9.6执行过程 186
9.6.1任务1:准备风险矩阵 186
9.6.2任务2:进行需求阶段的测试 192
因素分析 192
9.6.3任务3:执行需求走查 194
9.7检查过程 196
9.8输出 196
9.9原则 196
9.10小结 196
10.3涉及的问题 206
10.2目标 206
10.1概述 206
第10章第4步,设计阶段测试 206
10.4工作流程 208
10.5输入 208
10.6执行过程 209
10.6.1任务1:给成功因素评分 209
10.6.2任务2:分析测试因素 211
10.6.3任务3:进行设计评审 213
10.6.4任务4:审查设计的可交付性 214
10.7检查过程 214
10.8输出 215
10.9原则 215
10.10小结 215
11.1概述 238
第11章第5步,编程阶段测试 238
11.2目标 239
11.3涉及的问题 239
11.4 工作流程 239
11.5输入 240
11.6执行过程 241
11.6.1任务1:对程序进行桌面调试 241
11.6.2任务2:分析编程阶段测试因素 242
11.6.3任务3:执行同行评审 244
11.7检查过程 246
11.8输出 246
11.9原则 246
11.10小结 246
12.3涉及的问题 257
12.2目标 257
12.1概述 257
第12章第6步,执行测试并记录结果 257
12.4 作流程 259
12.5输入 259
12.6执行过程 260
12.6.1任务1:构造测试数据 260
12.6.2任务2:执行测试 274
12.6.3任务3:记录测试结果 276
12.7检查过程 278
12.8输出 278
12.9原则 278
12.10小结 279
13.1概述 291
13.2目标 291
第13章第7步,验收测试 291
13.3涉及的问题 294
13.4 工作流程 294
13.5输入 294
13.6执行过程 295
13.6.1任务1:定义验收标准 295
13.6.2任务2:制定验收计划 297
13.6.3任务3:执行验收计划(进行验收测试和评审) 298
13.6.4任务4:得出验收结果 302
13.7检查过程 305
13.8输出 305
13.9原则 305
13.10小结 305
14.1概述 309
第14章第8步,报告测试结果 309
14.2目标 310
14.3涉及的问题 311
14.4工作流程 311
14.5输入 312
14.5.1测试计划和项目计划 312
14.5.2预期的处理结果 312
14.5.3测试中收集的数据 312
14.5.4存储测试过程中收集的数据 313
14.6执行过程 313
14.6.1任务1:报告软件状态 314
14.6.2任务2:报告中间测试结果 319
14.6.3独立项目构件测试结果 326
14.6.4任务3:报告最终测试结果 327
14.7检查过程 328
14.8输出 329
14.9原则 329
14.10小结 329
第15章第9步,测试软件安装 333
15.1概述 333
15.2目标 333
15.3涉及的问题 334
15.4 作流程 335
15.5输入 336
15.6执行过程 336
15.6.1任务1a:新系统的安装测试 336
15.6.2任务1b:测试软件的变更版本 338
15.6.3任务2:监控产品 341
15.6.4任务3:文档化问题 342
15.7检查过程 342
15.8输出 342
15.9原则 342
15.10小结 343
第16章第10步,测试软件变更 352
16.1概述 352
16.2目标 352
16.3涉及的问题 353
16.4 工作流程 354
16.5输入 355
16.6执行过程 355
16.6.1任务1:制定/更新测试计划 355
16.6.2任务2:开发/更新测试数据 356
16.6.3任务3:测试变更控制过程 358
16.6.4任务4:执行测试 359
16.6.5任务5:开发/更新培训材料 360
16.7检查过程 362
16.8输出 362
16.8.1是否可接受自动化应用系统 362
16.8.2是否可接受人工部分 363
16.9原则 364
16.9.1 进行测试调整 364
16.9.2 进行培训调整 364
16.9.3软件变更反馈 364
16.10 小结 365
17.2目标 378
17.3涉及的问题 378
第17章第11步,评价测试的有效性 378
17.1概述 378
17.4工作流程 379
17.5输入 381
17.6执行过程 381
17.6.1任务1:确定评估目标 381
17.6.2任务2:确定度量内容 382
17.6.3任务3:指定度量责任 382
17.6.4任务4:选择评估方法 382
17.6.5任务5:确定所需事实 383
17.6.6任务6:收集评估数据 383
17.6.7任务7:评估测试有效性 383
17.8输出 386
17.7检查过程 386
17.9原则 387
17.10小结 387
第四部分专用系统和应用的测试 391
第18章测试客户/服务器系统 391
18.1概述 391
18.2目标 391
18.3涉及的问题 391
18.4 工作流程 392
18.5输入 392
18.6执行过程 392
18.6.1任务1:评估准备情况 392
18.7检查过程 399
18.8输出 399
18.6.2任务2:评估关键组成部分 399
18.6.3任务3:测试系统 399
18.9原则 400
18.10小结 400
第19章测试快速应用开发系统 406
19.1概述 406
19.2目标 406
19.3涉及的问题 406
19.3.1迭代过程中的测试信息 407
19.3.2测试组件信息 407
19.3.3测试性能信息 407
19.3.4记录测试信息 407
19.4 工作流程 407
19.6执行过程 408
19.6.1测试迭代的快速开发 408
19.5输入 408
19.6.2螺旋测试 409
19.6.3任务1:测试计划的迭代 410
19.6.4任务2:测试中间计划的迭代 411
19.6.5任务3:测试最终计划的迭代 412
19.7检查过程 412
19.8输出 412
19.9原则 412
19.10小结 413
第20章测试系统文档的恰当性 418
20.1概述 418
20.2目标 418
20.3涉及的问题 418
20.4工作流程 419
20.5输入 420
20.6.1任务1:度量项目文档需求 421
20.6执行过程 421
20.6.2任务2:确定必须生成的文档 422
20.6.3任务3:确定单独文档的完整性 425
20.6.4任务4:确定项目文档是否 426
符合实际 426
20.7检查过程 427
20.8输出 427
20.9原则 427
20.10小结 428
21.1.1客户/服务器体系结构 431
21.1.2基于Web的体系结构 431
21.1概述 431
第21章测试基于Web的系统 431
21.2目标 432
21.3涉及的问题 432
21.4工作流程 433
21.5输入 433
21.6执行过程 434
21.6.1任务1:选择基于Web的风险 434
加入到测试计划中 434
21.6.2任务2:选择基于Web的测试 437
21.6.3任务3:选择基于Web系统的 439
测试工具 439
21.6.4任务4:执行Web系统的测试 439
21.9原则 440
21.10小结 440
21.7检查过程 440
21.8输出 440
第22章测试成品软件 443
22.1概述 443
22.2目标 443
22.3涉及的问题 443
22.4 工作流程 444
22.5输入 444
22.6执行过程 444
22.6.1任务1:测试业务适应性 445
22.6.2任务2:测试操作适应性 447
22.6.4任务4:确认软件处理的 451
验收测试 451
22.6.3任务3:测试人员适应性 451
22.7检查过程 453
22.8输出 453
22.9原则 453
22.10小结 454
第23章多平台环境的测试 460
23.1概述 460
23.2目标 460
23.3涉及的问题 460
23.4 工作流程 460
23.5输入 461
23.6执行过程 462
23.6.1任务1:定义平台配置涉及的 462
问题 462
23.6.4任务4:列出平台影响的软件 463
组件 463
23.6.2任务2:列出所需平台配置 463
23.6.3任务3:评估测试实验室配置 463
23.6.5任务5:列出接口平台的影响 465
23.6.6任务6:执行测试 465
23.7检查过程 465
23.8输出 465
23.9原则 466
23.10小结 466
第24章安全性测试 471
24.1概述 471
24.2目标 471
24.3涉及的问题 471
24.4工作流程 471
24.5输入 472
24.6.2任务2:明确潜在的入侵点 473
24.6执行过程 473
24.6.1任务1:明确潜在的安全隐患 473
24.6.3任务3:创建入侵矩阵 476
24.6.4任务4:明确高风险入侵点 477
24.6.5任务5:执行安全性测试 478
24.7检查过程 478
24.8输出 479
24.9原则 479
24.10小结 479
第25章测试数据仓库 482
25.1概述 482
25.2 目标 482
25.3涉及的问题 482
25.5输入 483
25.4工作流程 483
25.6.1任务1:度量数据仓库的问题 484
数量 484
25.6.2任务2:明确要测试的数据仓库 484
活动过程 484
25.6执行过程 484
25.6.3任务3:测试数据仓库活动过程的充分性 488
25.7检查过程 491
25.8输出 491
25.9原则 491
25.10小结 491
第五部分创建测试文档 505
第26章创建测试文档 505
26.1使用 505
26.4存储 506
26.5测试计划文档 506
26.2类型 506
26.3责任 506
26.5.1第一部分:一般信息 507
26.5.2第二部分:计划 507
26.5.3第三部分:规格说明和评价 508
26.5.4第四部分:测试说明 508
26.6测试分析报告文档 511
26.6.1第一部分:一般信息 511
26.6.2第二部分:测试结果和结论 511
26.6.3第三部分:软件功能结论 511
26.6.4第四部分:分析小结 512
26.7小结 513