《软件测试与持续质量改进 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)WILLIAM E.LEWIS GUNASEKARAN VEERAPILLAI著;陈绍英 张河涛 刘建华 金成姬译
  • 出 版 社:北京市:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115171610
  • 页数:337 页
图书介绍:本书旨在为软件测试过程提供一个质量框架,其目的是提出一个持续改进软件质量的途径,以提高测试效率。书中详细列举基本的软件测试技巧,并基于一种持续改进过程介绍Deming的质量概念,将“计划、执行、检查、改进”(Plan, Do, Check, Act, PDCA)这样一个“质量轮”引入软件测试过程,阐述现代质量保证理论及最佳实践方法。本书共分5个部分,分别从软件质量、生命周期测试、软件测试方法、测试项目管理、现代软件测试工具的角度展开。此外,附录中提供软件测试过程中可能涉及的各种文档的格式样本,非常便于查阅和参考。本书既适合作为计算机及相关专业软件测试课程的教材,又适合软件测试领域的专业技术人员作为参考手册。

第一部分 软件质量透视第1章 质量保证框架 2

1.1 什么是质量 2

1.2 预防与检测 2

1.3 验证与确认 3

1.4 软件质量保证 4

1.5 质量保证的组成 5

1.6 软件测试 5

1.7 质量控制 5

1.8 软件配置管理 6

1.9 软件配置管理的要素 6

1.10 组件确定 7

1.11 版本控制 7

1.12 配置构建 8

1.13 变更控制 8

1.14 软件质量保证计划 8

1.15 开发和实施软件质量保证计划的步骤 9

1.15.1 步骤1:编写计划 9

1.15.2 步骤2:获得管理层认可 10

1.15.3 步骤3:获得开发人员认可 10

1.15.4 步骤4:准备编写SQA计划 10

1.15.5 步骤5:执行SQA计划 10

1.16 质量标准 10

1.16.1 ISO9000 11

1.16.2 能力成熟度模型 11

1.16.3 PCMM 13

1.16.4 CMMI 14

1.16.5 美国波多里奇国家质量奖 14

第2章 测试技术概述 16

2.1 黑盒测试(功能测试) 16

2.2 白盒测试(结构测试) 16

2.3 灰盒测试(功能与结构测试) 17

2.3.1 手工测试与自动测试 17

2.3.2 静态测试与动态测试 17

2.4 软件测试技术的分类 18

第3章 质量的持续改进过程 22

3.1 Edward Deming的贡献 22

3.2 统计方法的角色 22

3.2.1 因果图 22

3.2.2 流程图 23

3.2.3 帕累托图 23

3.2.4 运行图 23

3.2.5 直方图 23

3.2.6 散布图 23

3.2.7 控制图 23

3.3 Deming的14条质量原则 23

3.3.1 第1条:树立始终如一的目标 23

3.3.2 第2条:采用新的质量观念 24

3.3.3 第3条:停止对大量检查的依赖 24

3.3.4 第4条:结束仅靠价签来激励企业的实践活动 24

3.3.5 第5条:坚持不懈地、永久地改进生产和服务系统 24

3.3.6 第6条:组织培训及再培训 25

3.3.7 第7条:确立领导职责 25

3.3.8 第8条:驱除恐惧 25

3.3.9 第9条:打破员工区域之间的栅栏 25

3.3.10 第10条:为员工解除口号、训词及目标 26

3.3.11 第11条:去除数字化目标 26

3.3.12 第12条:消除员工自豪感的障碍 26

3.3.13 第13条:组织有关教育和再培训方面的强有力的课程 26

3.3.14 第14条:采取行动完成转变 26

3.4 通过“计划、执行、检查、改进”实现持续改进 27

3.5 遵循PDCA循环 27

第二部分 生命周期测试概述第4章 概述 30

4.1 瀑布式开发方法 30

4.2 “阶段化”持续改进方法 31

4.3 生命周期测试的心理学 31

4.4 将软件测试作为持续改进过程 31

4.5 测试的圣经:软件测试计划 33

4.6 制定测试计划的主要步骤 34

4.6.1 步骤1:定义测试目标 35

4.6.2 步骤2:确定测试方法 35

4.6.3 步骤3:定义测试环境 35

4.6.4 步骤4:制定测试规约 35

4.6.5 确定测试日程表 35

4.6.6 评审及批准测试计划 35

4.7 测试计划的组成 35

4.8 将技术评审作为持续改进过程 37

4.9 技术评审的动机 38

4.10 评审的类型 38

4.11 结构化走查 38

4.12 审查 38

4.13 参与者角色 40

4.14 有效评审的步骤 40

4.14.1 步骤1:规划评审过程 40

4.14.2 步骤2:安排评审进度 41

4.14.3 步骤3:制定评审议程 41

4.14.4 步骤4:创建评审报告 41

第5章 验证需求阶段 42

5.1 通过技术评审测试需求 43

5.2 审查和走查 43

5.3 检查表 43

5.4 方法检查表 43

5.5 需求可追溯性矩阵 44

5.6 制定系统/验收测试计划 44

第6章 验证逻辑设计阶段 46

6.1 数据模型、过程模型及其联系 46

6.2 通过技术评审测试逻辑设计 47

6.3 细化系统/验收测试计划 48

第7章 验证物理设计阶段 49

7.1 通过技术评审测试物理设计 49

7.2 创建集成测试用例 50

7.3 集成测试方法 50

7.3.1 步骤1:标识出单元接口 50

7.3.2 步骤2:全面协调接口 50

7.3.3 步骤3:创建集成测试条件 51

7.3.4 步骤4:评估集成测试条件的完整性 51

第8章 验证程序单元设计阶段 52

8.1 通过技术评审测试程序单元设计 52

8.2 顺序结构 52

8.3 选择结构 52

8.4 循环结构 52

8.5 编写单元测试用例 53

第9章 代码编写阶段的检验 54

9.1 用技术评审对代码编写进行测试 54

9.2 执行测试计划 55

9.3 单元测试 55

9.4 集成测试 55

9.5 系统测试 56

9.6 验收测试 56

9.7 缺陷记录 56

第三部分 软件测试方法第10章 开发方法概述 60

10.1 生命周期开发的局限性 60

10.2 客户端/服务器架构的挑战 60

10.3 客户端/服务器架构中螺旋测试的心理学 61

10.3.1 新思想 61

10.3.2 对测试人员/开发人员的理解 62

10.3.3 项目的目标:把质量保证和开发结合起来 62

10.3.4 迭代/螺旋式开发方法 63

10.4 JAD的角色 64

10.5 原型的角色 65

10.6 开发原型的方法 66

10.6.1 开发原型 66

10.6.2 向管理层演示原型 67

10.6.3 向用户演示原型 67

10.6.4 修订并定稿规约 67

10.6.5 开发产品系统 68

10.7 持续改进螺旋测试方法 68

第11章 信息收集(计划) 71

11.1 步骤1:准备访谈 72

11.1.1 任务1:确定参加访谈的人 72

11.1.2 任务2:确定议程 72

11.2 步骤2:执行访谈 73

11.2.1 任务1:理解项目 73

11.2.2 任务2:理解项目的目标 73

11.2.3 任务3:理解项目的状态 74

11.2.4 任务4:理解项目的计划 75

11.2.5 任务5:理解项目的开发方法 75

11.2.6 任务6:确定高级业务需求 75

11.2.7 任务7:进行风险分析 76

11.3 步骤3:总结访谈成果 77

11.3.1 任务1:总结访谈 77

11.3.2 任务2:确认访谈成果 78

第12章 测试计划(计划) 79

12.1 步骤1:建立测试计划 80

12.1.1 任务1:准备引言部分 80

12.1.2 任务2:定义总体的功能需求 81

12.1.3 任务3:确定手动/自动测试的种类 82

12.1.4 任务4:确定测试结束标准 82

12.1.5 任务5:制定回归测试策略 83

12.1.6 任务6:定义测试交付物 84

12.1.7 任务7:组建测试团队 85

12.1.8 任务8:建立测试环境 86

12.1.9 任务9:定义依赖关系 86

12.1.10 任务10:创建测试进度表 87

12.1.11 任务11:选择测试工具 89

12.1.12 任务12:建立缺陷报告/跟踪规程 89

12.1.13 任务13:建立变更请求规程 90

12.1.14 任务14:建立版本控制规程 91

12.1.15 任务15:定义配置构建规程 91

12.1.16 任务16:定义项目问题解决规程 91

12.1.17 任务17:建立报告规程 92

12.1.18 任务18:定义批准规程 92

12.2 步骤2:定义度量目标 92

12.2.1 任务1:定义度量标准 93

12.2.2 任务2:定义度量要点 93

12.3 步骤3:评审与批准测试计划 95

12.3.1 任务1:评审的日程安排/执行 95

12.3.2 任务2:获得批准 96

第13章 测试用例设计(执行) 97

13.1 步骤1:设计功能测试 97

13.1.1 任务1:完善功能测试需求 97

13.1.2 任务2:建立功能/测试矩阵 102

13.2 步骤2:设计图形用户界面测试 103

13.2.1 任务1:确定应用程序图形用户界面组件 103

13.2.2 任务2:定义图形用户界面测试 104

13.3 步骤3:定义系统/验收测试 105

13.3.1 任务1:确定可能的系统测试 105

13.3.2 任务2:设计阶段性系统测试 105

13.3.3 任务3:确定潜在的验收测试 107

13.4 步骤4:测试设计的评审和批准 107

13.4.1 任务1:评审的日程安排/准备 107

13.4.2 任务2:获得批准 107

第14章 测试开发(执行) 108

14.1 步骤1:开发测试脚本 108

14.1.1 任务1:开发自动/手动图形用户界面测试和功能测试脚本 108

14.1.2 任务2:开发自动/手动的阶段性系统测试的脚本 109

14.2 步骤2:测试开发的评审和批准 109

14.2.1 任务1:评审的日程安排/准备 109

14.2.2 任务2:获得批准 109

第15章 通过可追溯性实现测试覆盖 111

15.1 用例和可追溯性 112

15.2 小结 113

第16章 测试执行/评价(执行/检查) 114

16.1 步骤1:组织测试内容并进行测试 114

16.1.1 任务1:回归测试上次螺旋过程中的缺陷 114

16.1.2 任务2:执行新螺旋测试中的手动/自动测试 115

16.1.3 任务3:记录螺旋测试中发现的缺陷 115

16.2 步骤2:测试评价 115

16.3 步骤3:发布中期报告 116

16.3.1 任务1:重新安排测试进度表 116

16.3.2 任务2:确定需求变更 116

第17章 准备下次螺旋测试(改进) 118

17.1 步骤1:更新测试内容 119

17.1.1 任务1:更新功能/图形用户界面测试内容 119

17.1.2 任务2:更新阶段性系统测试内容 119

17.1.3 任务3:更新验收测试内容 119

17.2 步骤2:重新评价测试队伍、规程、环境 119

17.2.1 任务1:评价测试队伍 119

17.2.2 任务2:评审测试控制规程 120

17.2.3 任务3:更新测试环境 120

17.3 步骤3:发布中期测试报告 121

第18章 进行系统测试 123

18.1 步骤1:完成系统测试计划 123

18.1.1 任务1:确定系统测试的类型 123

18.1.2 任务2:确定系统测试的日程安排 124

18.1.3 任务3:组建系统测试团队 126

18.1.4 任务4:建立系统测试环境 126

18.1.5 任务5:安装系统测试工具 127

18.2 步骤2:完成系统测试用例 127

18.2.1 任务1:设计/脚本化性能测试 127

18.2.2 任务2:设计/脚本化安全性测试 129

18.2.3 任务3:设计/脚本化容量测试 130

18.2.4 任务4:设计/脚本化压力测试 130

18.2.5 任务5:设计/脚本化兼容性测试 131

18.2.6 任务6:设计/脚本化转换测试 131

18.2.7 任务7:设计/脚本化易用性测试 131

18.2.8 任务8:设计/脚本化文档测试 132

18.2.9 任务9:设计/脚本化备份测试 133

18.2.10 任务10:设计/脚本化恢复性测试 133

18.2.11 任务11:设计/脚本化安装测试 133

18.2.12 任务12:设计/脚本化其他类型的系统测试 134

18.3 步骤3:系统测试的评审和批准 135

18.3.1 任务1:评审的日程安排/执行 135

18.3.2 任务2:获得批准 135

18.4 步骤4:执行系统测试 135

18.4.1 任务1:对系统测试中的修正进行回归测试 135

18.4.2 任务2:执行新的系统测试 135

18.4.3 任务3:记录系统测试中发现的缺陷 136

第19章 进行验收测试 137

19.1 步骤1:完成验收测试计划 138

19.1.1 任务1:确定验收测试的类型 138

19.1.2 任务2:确定验收测试的日程安排 138

19.1.3 任务3:组建验收测试团队 138

19.1.4 任务4:建立验收测试环境 139

19.1.5 任务5:安装验收测试工具 139

19.2 步骤2:完成验收测试用例 139

19.2.1 任务1:系统级别测试用例的子集 139

19.2.2 任务2:设计/脚本化附加的验收测试 140

19.3 步骤3:验收测试计划的评审和批准 140

19.3.1 任务1:评审的日程安排/执行 140

19.3.2 任务2:获得批准 140

19.4 步骤4:执行验收测试 140

19.4.1 任务1:对验收测试中的修正进行回归测试 140

19.4.2 任务2:执行新的验收测试 141

19.4.3 任务3:记录验收测试中发现的缺陷 141

第20章 总结/报告螺旋测试结果 142

20.1 步骤1:执行数据精简 142

20.1.1 任务1:确保所有的测试均已执行/解决 142

20.1.2 任务2:通过测试编号整理测试缺陷 143

20.1.3 任务3:将剩余的缺陷写入一个矩阵 143

20.2 步骤2:准备最终的测试报告 143

20.2.1 任务1:准备项目概述 143

20.2.2 任务2:总结测试活动 143

20.2.3 任务3:分析/创建度量图 144

20.2.4 任务4:总结测试成果/建议 148

20.3 步骤3:最终测试报告的评审和批准 149

20.3.1 任务1:评审的日程安排/执行 149

20.3.2 任务2:获得批准 150

20.3.3 任务3:发布最终的测试报告 150

第四部分 测试项目管理第21章 项目管理概述 152

21.1 定义目标 152

21.2 定义项目范围 152

21.3 识别关键活动 153

21.4 正确地估算 153

21.5 设计 153

21.6 人员管理 153

21.6.1 领导力 153

21.6.2 沟通 154

21.6.3 解决问题 154

21.6.4 持续监控 154

21.6.5 变更管理 155

第22章 测试项目管理 156

22.1 理解需求 156

22.2 测试规划 157

22.3 测试执行 157

22.4 识别及改进过程 157

22.5 测试项目经理的基本特质 158

22.5.1 需求分析 158

22.5.2 差距分析 158

22.5.3 开发测试用例时要进行横向思考 158

22.5.4 避免重复 158

22.5.5 测试数据生成 158

22.5.6 确认测试环境 159

22.5.7 带着破坏目的去测试 159

22.5.8 分析测试结果 159

22.5.9 毫不犹豫地接受别人的帮助 159

22.5.10 出现问题时将它们转移 159

22.5.11 增强沟通 159

22.5.12 不断更新自身的业务知识 159

22.5.13 学习新的测试技术和工具 160

22.5.14 提交质量 160

22.5.15 过程改进 160

22.5.16 创建知识库 160

22.5.17 重获成功 160

第23章 测试评估 161

23.1 测试评估中的关键活动 163

23.1.1 测试范围文档 163

23.1.2 测试策略 163

23.1.3 测试条件 163

23.1.4 测试用例 164

23.1.5 测试脚本 164

23.1.6 执行/运行计划 164

23.2 影响测试评估的因素 164

23.3 测试计划评估 164

23.4 测试执行与控制工作量 165

23.5 测试结果分析 165

23.6 工作量估算——项目模型 166

第24章 缺陷监控及管理过程 169

24.1 缺陷报告 170

24.2 缺陷会议 170

24.3 缺陷分类 170

24.4 缺陷的优先级 171

24.5 缺陷的种类 171

第25章 测试与开发方法的整合 173

25.1 步骤1:组建测试团队 173

25.2 步骤2:确定将要整合的测试步骤及任务 174

25.3 步骤3:自定义测试步骤及任务 174

25.4 步骤4:选择整合要点 174

25.5 步骤5:修改开发方法 174

25.6 步骤6:合并缺陷记录 174

25.7 步骤7:对测试方法的使用进行培训 175

第26章 本土/离岸模型 176

26.1 步骤1:分析 176

26.2 步骤2:确定经济上的得失 176

26.3 步骤3:确定选择标准 177

26.4 项目管理和监控 177

26.5 外包方法 177

26.5.1 本土活动 178

26.5.2 离岸活动 178

26.6 实现本土/离岸模型 179

26.6.1 知识转移 179

26.6.2 详细设计 179

26.6.3 基于里程碑的转移过程 179

26.6.4 稳定状态 179

26.6.5 应用管理 179

26.6.6 关系模型 180

26.7 本土/离岸方法的收益 181

26.8 本土/离岸模型的未来 183

第五部分 现代软件测试工具第27章 软件测试简史 186

27.1 自动测试工具的发展 188

27.1.1 静态录制/回放工具(不附带脚本语言) 189

27.1.2 静态录制/回放工具(具有脚本语言) 189

27.1.3 可变的录制/回放工具 189

27.2 软件测试和开发的历史比较 191

第28章 软件测试趋势 193

28.1 自动录制/回放测试工具 193

28.2 测试用例建立工具 193

28.3 领先的自动测试工具 194

28.4 领先的测试用例生成工具 195

28.5 必要条件和充分条件 195

28.6 测试数据/测试用例的生成 195

28.6.1 生产数据抽样 196

28.6.2 从零开始 196

28.6.3 数据播种 196

28.6.4 根据数据库生成数据 197

28.6.5 根据需求生成测试数据/测试用例 197

第29章 测试工具的分类 199

29.1 测试工具选择检查表 199

29.2 厂商工具描述 199

29.3 需要使用测试自动化的情况 205

29.4 不需要使用测试自动化的情况 205

第30章 自动测试工具的评价方法 207

30.1 步骤1:定义你的测试需求 207

30.2 步骤2:设定工具的目标 207

30.3 步骤3a:非正式采购模式下的选择活动 207

30.3.1 任务1:制定采购计划 207

30.3.2 任务2:定义选择标准 208

30.3.3 任务3:确定候选工具 208

30.3.4 任务4:进行候选工具评审 208

30.3.5 任务5:为候选工具打分 208

30.3.6 任务6:选择工具 208

30.4 步骤3b:正式采购模式下的选择活动 209

30.4.1 任务1:制定采购计划 209

30.4.2 任务2:创建技术需求文档 209

30.4.3 任务3:评审需求 209

30.4.4 任务4:生成请求建议 209

30.4.5 任务5:简化建议 209

30.4.6 任务6:进行技术评估 209

30.4.7 任务7:选择工具源 209

30.5 步骤4:采购测试工具 210

30.6 步骤5:制定评价计划 210

30.7 步骤6:制定工具经理计划 210

30.8 步骤7:创建培训计划 210

30.9 步骤8:接收工具 210

30.10 步骤9:执行验收测试 211

30.11 步骤10:召开推介会议 211

30.12 步骤11:实施修改 211

30.13 步骤12:培训工具的用户 211

30.14 步骤13:在操作环境中使用工具 211

30.15 步骤14:撰写评价报告 212

30.16 步骤15:确定目标是否实现 212

附录A 螺旋测试法 213

附录B 软件质量保证计划 221

附录C 需求规约 222

附录D 变更请求表 224

附录E 测试模板 225

附录F 检查表 251

附录G 软件测试技术 281

参考文献 325

术语表 331

索引 334