软件测试的有效方法(原书第2版)

软件测试的有效方法(原书第2版)
作 者: William Perry 兰雨晴 高静 兰雨晴
出版社: 机械工业出版社
丛编项: 软件工程技术丛书 测试系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 软件测试及维护
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  WilliamE.Perry是质量保证协会的创始人和执行主席,他写过很多有关软件测试和软件质量保证方面的书籍。

内容简介

本书提供了两种可以改进软件测试质量的策略,一是对团队软件测试能力的评估,二是对软件测试人员测试资格的评价。本书介绍了一套软件测试的方法,这种方法对应于软件开发生命周期的各个阶段,用11步软件测试过程详细讲述了从制定测试计划到执行测试以及获得最终测试结果的全过程,并对测试策略、测试工具、测试方法、测试指标等具体内容进行了全面的阐述。另外,本书还对一些特殊系统,如客户/服务器系统、基于Web的软件系统的测试过程做了专门介绍,并提出了一整套的测试指标,使测试活动能够得到量化的结果,便于做出测试结论。本书内容丰富、实用性强,既可作为计算机及相关专业学生的学习用书,同时又可用作广大软件工程技术人员的指导用书。为了保证软件能够按照计划运行,我们就需要了解有关软件测试的技术。否则,可能会导致生产率下降、收入降低、顾客不满意等情况的发生。本书提出了一个11步软件测试过程,涵盖了评价软件的所有测试内容。这个测试过程包含了大量的工作表和检查单,可以直接采用或修改,以测试软件的各个方面。在组建有效的软件测试环境时,从制定测试策略到选择和使用测试工具,读者都可以从本书中得到非常有益的指导。本书还提供了—些改进软件开发过程和提高软件测试人员能力的方法。需要特别指出的是,本书在第2版中对以下内容给出了详细的测试程序:·Internet/Intranet应用·成品软件·多平台环境·系统安全·数据仓库应用·客户/服务器系统·快速应用开发本书较少谈及理论,而更多地去指导如何解决疑难问题,为软件测试提供了有效的方法。从而可以向客户保证生产出最可靠的软件。

图书目录

第一部分 软件测试能力和资格的评估

第1章 评估软件测试的能力和人员资格 3

1.1 软件测试涉及的人员 3

1.2 软件测试的多种角色 4

1.2.1 制造 4

1.2.2 创作车间 4

1.2.3 专业化过程 4

1.3 什么是缺陷 5

1.3.1 缺陷与故障 5

1.3.2 过程问题与缺陷率 5

1.4 软件测试的商业前景 6

1.5 现有的测试过程和测试人员的状况如何 6

1.5.1 评估现有测试过程的质量 7

1.5.2 评估测试人员的素质 11

1.6 小结 14

第二部分 搭建软件测试环境

第2章 制定软件测试策略 23

2.1 计算机系统的策略风险 23

2.2 经济学测试 24

2.3 常见的计算机问题 25

2.3.1 软件问题 25

2.3.2 数据问题 26

2.4 系统开发生命周期的经济学测试 26

2.5 测试是一个组织问题 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.2 确定开发项目的类型 49

3.7.3 确定软件系统的类型 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.2.3 人工测试与自动测试 68

4.3 测试技术/工具的选择 68

4.4 结构化系统测试技术 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步软件测试过程

第6章 11步软件测试过程概述 109

6.1 计算机测试的费用 109

6.1.1 确定消除缺陷的费用 110

6.1.2 降低测试的费用 111

6.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.1 概述 120

7.2 目标 120

7.3 涉及的问题 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

9.6.3 任务3:执行需求走查 194

9.7 检查过程 196

9.8 输出 196

9.9 原则 196

9.10 小结 196

第10章 第4步, 设计阶段测试 206

10.1 概述 206

10.2 目标 206

10.3 涉及的问题 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章 第5步, 编程阶段测试 238

11.1 概述 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章 第6步, 执行测试并记录结果 257

12.1 概述 257

12.2 目标 257

12.3 涉及的问题 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章 第7步, 验收测试 291

13.1 概述 291

13.2 目标 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章 第8步, 报告测试结果 309

14.1 概述 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章 第11步, 评价测试的有效性 378

17.1 概述 378

17.2 目标 378

17.3 涉及的问题 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.7 检查过程 386

17.8 输出 386

17.9 原则 387

17.10 小结 387

第四部分 专用系统和应用的测试

第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.6.2 任务2:评估关键组成部分 399

18.6.3 任务3:测试系统 399

18.7 检查过程 399

18.8 输出 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.5 输入 408

19.6 执行过程 408

19.6.1 测试迭代的快速开发 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 执行过程 421

20.6.1 任务1:度量项目文档需求 421

20.6.2 任务2:确定必须生成的文档 422

20.6.3 任务3:确定单独文档的完整性 425

20.6.4 任务4:确定项目文档是否符合实际 426

20.7 检查过程 427

20.8 输出 427

20.9 原则 427

20.10 小结 428

第21章 测试基于Web的系统 431

21.1 概述 431

21.1.1 客户/服务器体系结构 431

21.1.2 基于Web的体系结构 431

21.2 目标 432

21.3 涉及的问题 432

21.4 工作流程 433

21.5 输入 433

21.6 执行过程 434

21.6.1 任务1:选择基于Web的风险加入到测试计划中 434

21.6.2 任务2:选择基于Web的测试 437

21.6.3 任务3:选择基于Web系统的测试工具 439

21.6.4 任务4:执行Web系统的测试 439

21.7 检查过程 440

21.8 输出 440

21.9 原则 440

21.10 小结 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.3 任务3:测试人员适应性 451

22.6.4 任务4:确认软件处理的验收测试 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

23.6.2 任务2:列出所需平台配置 463

23.6.3 任务3:评估测试实验室配置 463

23.6.4 任务4:列出平台影响的软件组件 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 执行过程 473

24.6.1 任务1:明确潜在的安全隐患 473

24.6.2 任务2:明确潜在的入侵点 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.4 工作流程 483

25.5 输入 483

25.6 执行过程 484

25.6.1 任务1:度量数据仓库的问题数量 484

25.6.2 任务2:明确要测试的数据仓库活动过程 484

25.6.3 任务3:测试数据仓库活动过程的充分性 488

25.7 检查过程 491

25.8 输出 491

25.9 原则 491

25.10 小结 491

第五部分 创建测试文档

第26章 创建测试文档 505

26.1 使用 505

26.2 类型 506

26.3 责任 506

26.4 存储 506

26.5 测试计划文档 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