《软件测试技术 基于案例的测试》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:赵翀,孙宁编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:9787111336976
  • 页数:327 页
图书介绍:本书旨在全面介绍软件测试的相关理论、测试方法测试技术等,全书分为四个部分,第一部分介绍软件测试技术的起源、发展历史、相关术语等基础知识,并给出几个案例帮助读者对软件测试产生直观的理解;第二部分介绍软件测试的策略,主要介绍软件测试的策略性方法、单元测试、集成测试等;第三部分介绍软件测试的战术,主要内容包括黑盒测试、白盒测试、面向对象的测试等;第四部分介绍针对特定环境、体系结构和应用的测试,主要涉及图形用户界面测试、嵌入式软件测试、安全性测试、web应用测试等,第五部分则介绍如何进行测试管理以及相关的测试工具。书中穿插了大量的实际案例,帮助读者深入体会软件测试的过程、掌握测试方法。本书适合作为计算机、软件工程及相关专业软件测试课程的教材,也可作为软件测试技术人员的参考。

第一部分 软件测试背景知识 1

第1章 软件测试基础 1

1.1 软件质量 1

1.1.1 软件质量的内涵 1

1.1.2 软件质量与软件危机 3

1.1.3 软件质量保证 6

1.1.4 软件错误与缺陷 7

1.2 软件测试过程 10

1.2.1 软件测试的模型 10

1.2.2 测试过程成熟度 11

1.2.3 测试活动的自动化 12

1.3 软件测试术语 13

1.4 软件的可测性 14

1.5 软件测试原则 17

1.6 测试与调试 18

1.7 小结 20

习题 20

第2章 图论 21

2.1 无向图 21

2.2 有向图 23

2.3 用于测试的图 25

2.3.1 程序图 25

2.3.2 有限状态机 26

2.3.3 Petri网 27

2.3.4 事件驱动的Petri网 28

2.3.5 状态图 29

习题 29

第3章 测试案例 31

3.1 工资支付系统 31

3.2 三角形类型问题 34

3.3 简化的录像机系统 35

3.4 简单自动柜员机问题 36

3.5 货币转换程序 39

3.6 面向对象的NextDate问题 43

3.7 挡风玻璃雨刷系统 44

3.8 小结 45

习题 45

第二部分 软件测试战术 46

第4章 覆盖准则 46

4.1 引言 46

4.2 图覆盖准则 47

4.2.1 结构化的覆盖准则 50

4.2.2 案例:寻找主路径 53

4.2.3 数据流覆盖准则 56

4.2.4 案例:三种数据流覆盖准则的区别 59

4.2.5 图覆盖准则之间的包含关系 59

4.3 逻辑覆盖准则 60

4.3.1 逻辑谓词和子句 60

4.3.2 逻辑表达式覆盖准则 61

4.3.3 活动子句覆盖准则 62

4.3.4 案例:带气门的系统CACC和RACC设计 63

4.3.5 非活动子句覆盖准则 64

4.3.6 逻辑覆盖准则的包含关系 65

4.3.7 建立判定谓词的子句 65

4.3.8 案例:工资支付系统查找满足覆盖准则的值 66

4.4 输入空间的划分准则 68

4.4.1 输入域建模 69

4.4.2 组合策略准则 73

4.4.3 划分中的约束 75

4.5 基于语法的覆盖准则 76

4.5.1 BNF覆盖准则 77

4.5.2 变异测试覆盖准则 78

4.5.3 案例:stream语法的MOC和MPC覆盖 79

4.5.4 基于程序的语法覆盖准则 80

4.5.5 案例:min方法的变异测试 83

4.6 小结 84

习题 84

第5章 白盒测试 88

5.1 路径测试 88

5.1.1 程序图的表示 88

5.1.2 DD-路径 89

5.1.3 基路径测试 92

5.1.4 独立程序路径 92

5.1.5 案例:计算平均值的程序 93

5.2 控制结构测试 95

5.2.1 条件测试 95

5.2.2 案例:三角形问题的条件测试 96

5.2.3 数据流测试 97

5.2.4 案例:三角形问题的数据流测试 98

5.2.5 循环测试 98

5.2.6 案例:计算平均值的程序 99

5.3 变异测试 100

5.3.1 结构化变异 100

5.3.2 面向对象变异 101

5.3.3 案例:工资支付系统 102

5.4 小结 103

习题 104

第6章 黑盒测试 105

6.1 基于图的测试 105

6.1.1 基于图的测试方法 105

6.1.2 案例:工资支付系统的活动图测试设计 106

6.2 等价划分 108

6.2.1 等价划分的测试方法 108

6.2.2 案例:工资支付系统的等价类测试设计 109

6.3 边界值分析 110

6.3.1 边界值分析的测试方法 110

6.3.2 案例:工资支付系统的边界值测试设计 112

6.4 正交表测试 113

6.4.1 正交表测试方法 113

6.4.2 案例:工资支付系统的正交表测试设计 115

6.5 健壮性测试 116

6.5.1 健壮性测试方法 116

6.5.2 测试用例生成要求 117

6.5.3 案例:工资支付系统的健壮性测试设计 117

6.6 决策表测试 118

6.6.1 决策表测试方法 118

6.6.2 案例:工资支付系统的决策表测试设计 119

6.7 有穷状态测试 119

6.7.1 有穷状态测试方法 120

6.7.2 案例:工资支付系统的有穷状态测试设计 121

6.8 小结 125

习题 125

第三部分 软件测试策略 127

第7章 软件测试的策略性方法 127

7.1 测试策略概述 127

7.2 验证与确认 128

7.3 软件测试的组织 129

7.4 软件测试的层次 129

7.4.1 测试层次的传统观点 130

7.4.2 生命周期模型对测试的影响 130

7.5 人工测试技术 131

7.5.1 走查 132

7.5.2 正式评审 132

7.5.3 审查 133

7.6 自动化测试与人工测试 133

7.7 测试完成的标准 135

7.8 回归测试 135

7.9 小结 136

习题 136

第8章 单元测试 137

8.1 单元测试概述 137

8.2 单元测试的任务 138

8.3 单元测试的规程 140

8.3.1 进入单元测试的条件 141

8.3.2 单元测试的类型及要求 141

8.3.3 通过准则 143

8.4 单元测试的测试代码编写 143

8.5 案例:测试Grow函数 144

8.6 小结 146

习题 146

第9章 集成测试 147

9.1 集成测试的概念 147

9.2 集成测试的策略 148

9.3 基于功能分解的集成测试 149

9.3.1 自顶向下集成测试 149

9.3.2 自底向上集成测试 150

9.3.3 三明治集成测试 151

9.3.4 基于功能分解方法的优缺点 151

9.4 基于调用图的集成测试 152

9.4.1 成对集成测试 152

9.4.2 相邻集成测试 152

9.4.3 基于调用图方法的优缺点 153

9.5 基于路径的集成测试 153

9.5.1 MM-路径的相关概念 154

9.5.2 MM-路径的集成测试 154

9.5.3 MM-路径复杂度 155

9.5.4 基于路径方法的优缺点 155

9.6 集成测试文档 156

9.7 面向对象环境中的集成测试 156

9.8 案例:SATM系统集成测试 156

9.9 小结 164

习题 164

第10章 系统测试 165

10.1 系统测试的概念 165

10.1.1 系统测试前的准备工作 165

10.1.2 系统测试的主要内容 166

10.1.3 系统测试的测试数据 167

10.1.4 系统测试与确认测试 167

10.2 系统级功能测试 168

10.2.1 线索的概念 168

10.2.2 需求规约的基本构造元素 169

10.2.3 寻找线索 171

10.2.4 线索测试的结构策略 173

10.2.5 线索测试的功能策略 174

10.2.6 案例:SATM系统的测试线索 176

10.2.7 系统测试线索的选择策略 180

10.3 压力测试 182

10.3.1 压力测试的概念 182

10.3.2 压力测试的方法 183

10.4 性能测试 183

10.4.1 性能测试的概念 183

10.4.2 性能测试与压力测试的区别 184

10.4.3 性能测试的步骤 184

10.5 恢复性测试 186

10.6 安全性测试 186

10.7 小结 186

习题 187

第11章 面向对象的测试 188

11.1 面向对象相关概念 188

11.1.1 继承 188

11.1.2 重用、封装和多态性 189

11.1.3 测试单元 189

11.1.4 测试层次 189

11.1.5 测试用例 189

11.2 类测试 190

11.2.1 以方法为单元 190

11.2.2 案例:Date.increment方法的单元测试 190

11.2.3 以类为单元 191

11.2.4 案例:windshieldWiper类的单元测试 192

11.2.5 类级可应用的测试方法 195

11.3 面向对象的集成测试 196

11.3.1 基于UML的集成测试 196

11.3.2 面向对象软件的MM-路径 197

11.3.3 案例:o_oCalendar的MM-路径测试 197

11.3.4 面向对象数据流集成测试框架 201

11.4 面向对象的系统测试 202

11.4.1 基于UML的系统测试 203

11.4.2 基于“状态图”的系统测试 204

11.5 小结 206

习题 207

第四部分 特定环境和特定体系结构的测试 208

第12章 图形用户界面测试 208

12.1 GUI测试的特点 208

12.1.1 GUI测试的独特性 208

12.1.2 一般Windows窗体构成部件 208

12.1.3 优秀GUI的构成要素 210

12.2 GUI测试技术 212

12.2.1 GUI测试验证的方法 212

12.2.2 测试标号和装饰性的GUI控件 214

12.2.3 测试带有键盘输入的文本框控件 215

1 2.2.4 测试RadioButton控件和CheckBOX控件 215

12.2.5 GUI测试自动化中的菜单测试 216

12.3 GUI测试用例的设计方法 216

12.3.1 窗体的测试设计 217

12.3.2 菜单的测试设计 217

12.3.3 文本框控件的测试设计 217

12.3.4 按钮控件的测试设计 218

12.3.5 组合列表框、复选框、列表框控件的测试设计 218

12.3.6 滚动条控件的测试设计 218

12.3.7 各种控件在窗体中混合使用时的测试设计 218

12.4 案例:工资支付系统 219

12.5 小结 220

习题 220

第13章 嵌入式软件测试 221

13.1 嵌入式软件 221

13.1.1 嵌入式系统和嵌入式软件 221

13.1.2 嵌入式系统专用测试方法 222

1 3.1.3 嵌入式软件测试模型 225

13.2 嵌入式软件测试技术 226

13.2.1 嵌入式软件测试步骤 226

13.2.2 基于状态的测试设计技术 227

13.2.3 其他测试设计技术 230

13.3 嵌入式软件的测试环境 232

13.3.1 模拟阶段 232

13.3.2 原型阶段 233

13.3.3 临近生产阶段 234

13.3.4 开发后阶段 235

13.4 案例:简化的录像机状态转换测试 236

13.5 小结 239

习题 239

第14章 Web应用软件测试 240

14.1 Web应用软件概述 240

14.1.1 Web应用软件的特点 240

14.1.2 Web应用软件的质量维度 241

14.1.3 Web应用软件错误的特点 241

14.2 测试Web应用软件概述 242

14.2.1 测试策略 242

14.2.2 测试策划 242

14.2.3 测试建模方法 242

14.2.4 测试过程概述 244

14.3 内容测试 245

14.3.1 内容测试的目标 245

14.3.2 动态内容测试 246

14.4 界面测试 247

14.4.1 界面测试策略 247

14.4.2 测试界面机制 248

14.4.3 测试界面语义 249

14.4.4 可用性测试 249

14.5 导航测试 250

14.5.1 测试导航语法 250

14.5.2 测试导航语义 251

14.6 构件级测试 251

14.7 配置测试 252

14.8 性能测试 253

14.9 Web应用软件测试环境 254

14.10 案例:工资支付系统 255

14.11 小结 256

习题 257

第15章 安全性测试 258

15.1 软件中的安全漏洞 258

15.1.1 设计引入的安全漏洞 258

15.1.2 实现引入的安全漏洞 259

15.1.3 部署上的薄弱性 260

15.2 安全性测试技术 260

15.2.1 常见网络故障注入技术 260

15.2.2 会话攻击技术 263

15.2.3 Web应用程序攻击技术 265

15.2.4 本地故障注入技术 269

15.3 安全性测试的测试环境 274

15.3.1 建立用于测试的实验室 274

15.3.2 开展应用程序攻击 275

15.4 漏洞侦探试验 277

15.4.1 协议发现 277

15.4.2 SOAP和WSDL 278

15.4.3 使用SOAPpy库侦探漏洞 279

15.5 小结 282

习题 283

第五部分 测试管理与工具 284

第16章 测试过程管理 284

16.1 测试过程中的活动 284

16.2 软件测试过程要求 285

16.2.1 测试需求分析 285

16.2.2 测试策划阶段 286

16.2.3 测试设计和实现 287

16.2.4 测试执行 288

16.2.5 测试总结 289

16.3 软件测评项目管理 290

16.3.1 测评项目需求管理 290

16.3.2 测评项目策划 291

16.3.3 测评项目跟踪与控制 291

16.3.4 测评项目质量保证 291

16.3.5 测评项目配置管理 293

16.4 文档和记录的控制 294

16.5 测试过程改进 294

16.6 岗位与职责 295

16.7 评审与控制 296

16.8 测试过程规范 296

16.9 小结 297

习题 297

第17章 软件测试工具 298

17.1 软件测试工具概述 298

17.1.1 软件测试工具的引入 298

17.1.2 软件测试工具分类 299

17.2 静态分析工具 300

17.2.1 静态测试工具的原理 300

17.2.2 常用静态测试工具 301

17.3 动态分析工具 303

17.3.1 动态分析工具的原理 303

17.3.2 常见的动态分析工具 303

17.3.3 IBM Rational PurifyPlus简介 304

17.4 功能测试工具 308

17.4.1 功能测试自动化过程 308

17.4.2 HP WinRunner简介 309

17.5 性能测试工具 310

17.5.1 性能测试步骤 310

17.5.2 Rational Robot简介 311

17.6 小结 312

习题 312

附录 测试文档模板 314

参考文献 323