《软件测试技术概论》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:上海艾微软件技术有限公司主编;古乐,史九林编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302081778
  • 页数:450 页
图书介绍:本书比较全面地介绍了软件测试的方法和基本知识。

目录 1

第1章 概述 1

1.1 回顾测试的发展 1

1.2 什么是软件测试 3

1.2.1 IEEE的定义 3

1.2.2 测试在软件开发中的角色 4

1.3 为什么要进行软件测试 4

1.4 测试的目的 6

1.4.1 证明 6

1.4.2 检测 6

1.4.3 预防 6

1.5 业界的软件测试现状 7

1.6 软件测试中的误区 11

1.7 本章小结 12

第2章 白盒测试和黑盒测试 13

2.1 白盒测试 13

2.1.1 什么是白盒测试 13

2.1.2 为什么要进行白盒测试 14

2.1.3 白盒测试的常用技术 14

2.1.4 一个白盒测试的例子 16

2.2 黑盒测试 18

2.2.1 什么是黑盒测试 18

2.2.3 黑盒测试的常用技术 19

2.2.2 为什么要进行黑盒测试 19

2.2.4 一个黑盒测试的例子 20

2.3 白盒测试和黑盒测试的比较 21

2.3.1 白盒测试的优缺点 22

2.3.2 黑盒测试的优缺点 22

2.3.3 灰盒测试 23

2.4 本章小结 23

第3章 测试覆盖率 24

3.1 覆盖率概念 24

3.2 常见的逻辑覆盖 24

3.2.1 语句覆盖 24

3.2.2 判定覆盖 25

3.2.3 条件覆盖 26

3.2.4 判定条件覆盖 28

3.2.5 路径覆盖 29

3.2.6 逻辑覆盖小结 30

3.3 功能覆盖率 30

3.4 面向对象的覆盖率 31

3.4.1 继承上下文覆盖 32

3.4.2 基于状态的上下文覆盖 33

3.4.3 基于线程的上下文覆盖 35

3.5.2 指令块覆盖 36

3.5.1 函数覆盖 36

3.5 其他覆盖率 36

3.5.3 判定路径覆盖 37

3.5.4 更改条件判定覆盖 37

3.5.5 分支条件组合覆盖 39

3.5.6 过程到过程路径覆盖 39

3.5.7 Z路径覆盖 39

3.5.8 ESTCA覆盖 41

3.5.9 LCSAJ覆盖 42

3.6 如何使用覆盖率 43

3.6.1 基本原则 43

3.6.2 一个选择建议 44

3.6.3 使用最少测试用例来达到覆盖 45

3.7 本章小结 47

第4章 程序分析技术 48

4.1 文本视角 48

4.2 句法视角 49

4.3 控制流视角 54

4.4 数据流视角 55

4.5 计算流视角 58

4.5.1 故障插入 59

4.5.2 变体分析 59

4.5.3 敏感性分析 62

4.6 功能视角 63

4.7 本章小结 64

第5章 测试分析技术 65

5.1 面向规格的测试 65

5.1.1 测试独立于规格技术 66

5.1.2 测试依赖于规格技术 68

5.2 面向实现的测试 75

5.2.1 面向结构的测试 76

5.2.2 面向影响的测试 77

5.2.3 面向传递的测试 79

5.3 面向错误的测试 86

5.3.1 基于错误的测试 87

5.3.2 基于故障的测试 88

5.3.3 基于风险的测试 88

5.3.4 可能的正确性 89

5.4 混合测试技术 89

5.5 本章小结 90

第6章 单元测试 91

6.1 什么是单元测试 91

6.1.1 单元测试的目的 92

6.1.2 单元测试和集成测试的区别 92

6.1.3 单元测试和系统测试的区别 93

6.2 为什么要进行单元测试 93

6.3 单元测试环境 95

6.4.1 【策略一】由顶向下的单元测试策略 97

6.4.2 【策略二】由低到上的单元测试策略 97

6.4 单元测试策略 97

6.4.3 【策略三】孤立测试 98

6.4.4 综合测试 98

6.5 单元测试分析 99

6.5.1 模块接口 99

6.5.2 局部数据结构 99

6.5.3 独立路径 100

6.5.4 出错处理 100

6.5.5 边界条件 100

6.6.2 为正向测试设计用例 101

6.6.3 为逆向测试设计用例 101

6.6 单元测试用例设计思路 101

6.6.1 为系统运行设计用例 101

6.6.4 为满足特殊需求设计用例 102

6.6.5 为代码覆盖设计用例 102

6.6.6 为覆盖率指标完成设计用例 102

6.7 单元测试过程 103

6.7.1 完成测试计划 104

6.7.2 获取测试集 106

6.7.3 度量测试单元 107

6.9 单元测试应坚持的原则 110

6.8 单元测试工具介绍 110

6.10 我们的问题 111

6.11 本章小结 112

第7章 集成测试 113

7.1 什么是集成测试 113

7.1.1 集成测试与系统测试的区别 113

7.1.2 集成测试关注的重点 114

7.1.3 集成测试和开发的关系 114

7.1.4 集成测试的层次 115

7.2 集成测试策略 115

7.2.1 大爆炸集成 116

7.2.2 自顶向下的集成 117

7.2.3 自底向上的集成 119

7.2.4 三明治集成 121

7.2.5 修改过的三明治集成 122

7.2.6 基于集成 123

7.2.7 分层集成 124

7.2.8 基于功能的集成 126

7.2.9 高频集成 127

7.2.10 基于进度的集成 129

7.2.11 基于风险的集成 130

7.2.12 基于事件(消息)的集成 130

7.2.13 基于使用的集成 131

7.2.15 分布式集成 132

7.2.14 客户/服务器的集成 132

7.3 集成测试分析 133

7.3.1 体系结构分析 133

7.3.2 模块分析 134

7.3.3 接口分析 136

7.3.4 风险分析 137

7.3.5 可测试性分析 138

7.3.6 集成测试策略分析 138

7.3.7 常见的集成测试故障 138

7.4.1 为系统运行设计用例 139

7.4 集成测试用例设计思路 139

7.4.2 为正向测试设计用例 140

7.4.3 为逆向测试设计用例 140

7.4.4 为满足特殊需求设计用例 140

7.4.5 为高覆盖设计用例 141

7.4.6 测试用例补充 141

7.4.7 注意事项 141

7.5 集成测试过程 141

7.5.1 计划阶段 141

7.5.2 设计阶段 142

7.5.3 实现阶段 143

7.5.4 执行阶段 144

7.6 集成测试环境 145

7.7 集成测试工具介绍 146

7.8 集成测试应坚持的原则 146

7.9 本章小结 147

第8章 系统测试 148

8.1 系统测试概念 148

8.2 系统测试方法 149

8.2.1 功能测试 149

8.2.2 协议一致性测试 150

8.2.3 性能测试 152

8.2.4 压力测试 154

8.2.6 安全性测试 156

8.2.5 容量测试 156

8.2.7 恢复性测试 159

8.2.8 备份测试 160

8.2.9 GUI测试 160

8.2.10 健壮性测试 163

8.2.11 兼容性测试 166

8.2.12 可用性测试 167

8.2.13 可安装性测试 168

8.2.14 文档测试 171

8.2.15 在线帮助测试 172

8.2.16 数据转换测试 172

8.3 系统测试过程 173

8.3.1 完成系统测试计划 175

8.3.2 完成系统测试用例 178

8.3.3 评审/审批系统测试计划 178

8.3.4 执行系统测试 179

8.4 本章小结 181

第9章 可靠性与可靠性测试 182

9.1 基本概念 182

9.1.1 什么是软件可靠性 182

9.1.2 错误、缺陷、故障和失效 183

9.1.3 软件可靠性指标 184

9.1.4 软件和硬件可靠性区别 186

9.2 可靠性指标分配 187

9.3 可靠性预计 188

9.3.1 计数法 188

9.3.2 应力法 188

9.4 可靠性分析方法 189

9.4.1 FMEA 189

9.4.2 CA 191

9.4.3 FTA 192

9.4.4 ETA 193

9.4.5 SCA 193

9.5 软件可靠性测试 194

9.5.1 可靠性测试流程 195

9.5.2 可靠性模型介绍 198

9.5.3 一个可靠性数据分析例子 202

9.6 软件可靠性工程 205

9.7 可靠性标准和可靠性工具 205

9.7.1 可靠性标准 205

9.7.2 可靠性工具 207

9.8 本章小结 208

第10章 其他专项性测试 210

10.1 可接受性测试 210

10.2 Alpha测试 211

10.3 Beta测试 212

10.4 标杆测试 213

10.5 配置测试 214

10.6 外场测试 214

10.7 SQL测试 215

10.8 2000年测试 215

10.9 回归测试 216

10.10 本章小结 218

第11章 软件质量透视 219

11.1 质量的定义 219

11.2 质量的预防和检测 220

11.3.1 流程对质量的贡献 221

11.3 如何提高软件产品的质量 221

11.3.2 流程与技术 223

11.3.3 全面质量管理 224

11.3.4 关注测试 233

11.3.5 组织、流程和人 234

11.5 本章小结 237

第12章 软件验证和确认 238

12.1 基本概念 238

12.2 软件验证和确认计划 240

12.2.1 SVVP步骤 241

12.2.2 SVVP的7个主题 242

12.3 验证和确认任务分析 248

12.3.1 关键性分析 248

12.3.2 可跟踪性分析 250

12.3.3 评估 251

12.3.4 接口分析 252

12.4 生命周期各阶段活动 253

12.4.1 管理阶段的验证和确认 253

12.3.5 测试 253

12.4.2 概念阶段的验证和确认 255

12.4.3 需求阶段的验证和确认 255

12.4.4 设计阶段的验证和确认 256

12.4.5 实现阶段的验证和确认 257

12.4.6 测试阶段的验证和确认 258

12.4.7 安装和校验阶段的验证和确认 258

12.4.8 运行和维护阶段的验证和确认 260

12.4.9 验证和确认任务总结 261

12.5 验证和确认的报告 274

12.5.1 标准要求的报告 275

12.5.2 标准可选报告 275

12.6 本章小结 275

第13章 软件质量保证 277

13.1 基本概念 277

13.1.1 目标 278

13.1.2 执行的承诺 278

13.1.3 执行的能力 278

13.1.4 执行的活动 279

13.1.6 验证实现 281

13.2 SQA实施过程 281

13.1.5 度量分析 281

13.2.1 建立SQA组织 282

13.2.2 选择SQA任务 283

13.2.3 产生/维护SQA计划 297

13.2.5 产生/维护SQA规程 299

13.2.6 标识SQA培训 299

13.2.4 实施SQA计划 299

13.2.8 改进项目SQA过程 300

13.2.7 标识/选择SQA工具 300

13.3 本章小结 301

第14章 需求测试 302

14.1 需求测试概述 302

14.1.1 什么是需求 302

14.1.2 测试需求 307

14.2 通过评审来测试需求 307

14.2.1 需求评审中的常见风险 307

14.2.2 需求评审检查表 308

14.3 通过用例设计来测试需求 313

14.4 需求建模测试 316

14.4.1 统一建模语言 317

14.4.2 消息顺序图(MSC) 320

14.4.3 分析建模工具介绍 321

14.4.4 需求的形式化描述 324

11.4 质量标准 324

14.5 基于原型的测试 325

14.5.1 原型的目的 325

14.5.2 原型的种类 325

14.5.3 原型的测试方法 326

14.6 本章小结 327

15.1.1 什么是设计 328

15.1 设计测试概述 328

第15章 设计测试 328

15.1.2 软件构架设计 330

15.1.3 概要设计和详细设计 334

15.2 设计的评审 336

15.2.1 设计查检表 336

15.2.2 构架设计评审方法 340

15.2.3 软件构架评价最佳工业实践 345

15.3 SDL 及相关测试 352

15.3.1 SDL介绍 352

15.3.2 SDL基本概念 353

15.3.3 SDL结构 356

15.3.4 SDL测试 358

5.4 本章小结 365

第16章 同行评审 366

16.1 基本概念 366

16.2 同行评审的一般过程 367

16.2.1 计划阶段 367

16.2.2 实施被选择的同行评审过程 370

16.2.3 同行评审过程度量 370

16.2.4 同行评审的评审/审计 370

16.3.5 过程 371

16.3.4 入口标准 371

16.3.3 输入 371

16.3.1 过程目标 371

16.3 走读 371

16.3.2 特定的角色和职责 371

16.3.6 出口标准 372

16.3.7 输出 372

16.4 技术评审 372

16.4.1 过程目标 373

16.4.2 特定的角色和职责 373

16.4.3 输入 373

16.4.4 入口标准 373

16.4.5 过程 373

16.5 正规检视 374

16.4.6 出口标准 374

16.4.7 输出 374

16.5.1 正规检视小组 375

16.5.2 正规检视过程 379

16.5.3 正规检视常用表格 387

16.6 本章小结 393

第17 章测试经验总结 395

17.1 软件测试的10大原则 395

17.1.1 原则1:测试是一个持续进行的过程,而不是一个阶段 395

17.1.2 原则2:测试必须被计划、被控制,并且被提供时间和资源 395

17.1.3 原则3:测试应当分级别 396

17.1.5 原则5:测试不是为了证明程序的正确性,而是为了证明程序不能工作 397

17.1.4 原则4:测试应当有重点 397

17.1.7 原则7:测试是开发的朋友,不是开发的敌人 398

17.1.6 原则6:测试是不可能穷尽的,当测试出口条件满足时就可以停止测试 398

17.1.8 原则8:测试人员应公正地测试,如实地记录和报告缺陷 399

17.1.9 原则9:测试自动化能解决一部分问题,但不是全部 399

17.1.10 原则10:测试不能仅仅包括功能性的验证,还应当包含性能、可靠性、可维护性、安全性等方面的验证 399

17.2 软件测试的10个最佳实践 400

17.2.1 实践1:尽早地、频繁地进行测试是降低项目成本,提高质量的一个好方法 400

17.2.2 实践2:尽早产生一个综合的主测试计划 400

17.2.4 实践4:在每个开发阶段,使用测试和评价的结果作为是否可以通过的标准 401

17.2.5 实践5:开发和维护一个测试需求和目标的风险优先级列表 401

17.2.3 实践3:对质量要求较高或大型复杂的产品成立独立的测试组 401

17.2.6 实践6:把测试件作为产品的一部分等同管理,使用相同的评价标准和过程 402

17.2.7 实践7:提供集成化的测试工具和测试基础支持 402

17.2.8 实践8:加强测试度量工作和缺陷分析工作,不断地改进测试 404

17.2.9 实践9:加强测试的培训并且为测试人员提供技能发展的通道 405

17.2.10 实践10:加强沟通和交流,让项目组内所有人员都了解测试的工作及其重要性 405

17.3本章小结 406

附录A 常见测试术语 407

附录B 测试技术分类 427

附录C 常见的编码错误 430

附录D 经典测试网站 433

附录E 参考资料 437