《软件测试技术实战 设计、工具及管理》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:顾翔著;51TESTING软件测试网组编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115453921
  • 页数:446 页
图书介绍:本书通过总结作者十几年在软件测试中的实践、体会和思考,讲解了软件测试中的实战技术、方法和工具,帮助读者打开一扇通往软件测试之路的大门,寻找到解决测试问题的技术和方法,体验到测试工作中逮Bug犹如“寻宝”的乐趣。本书可供软件测试同仁借鉴。由于现在许多大学里计算机专业都开设了软件测试课程,所以本书也可作为计算机软件专业学生的参考书。

第1篇 软件测试设计技术 3

第1章 软件测试的基本知识 3

1.1 软件测试的基本理论 4

1.1.1 软件测试的定义 4

1.1.2 软件测试术语 5

1.1.3 软件工程模型 9

1.1.4 软件测试模型 10

1.1.5 软件测试方法 12

1.1.6 软件测试步骤 13

1.1.7 软件缺陷管理 14

1.1.8 测试用例 16

1.1.9 软件测试类型 19

1.1.10 软件测试曲线 28

1.1.11 软件的杀虫剂现象 29

1.2 软件测试的七项基本原则 29

1.2.1 原则1:软件测试显示存在缺陷 30

1.2.2 原则2:穷尽软件测试是不可行的 30

1.2.3 原则3:软件测试尽早介入 30

1.2.4 原则4:缺陷集群性 30

1.2.5 原则5:杀虫剂悖论 31

1.2.6 原则6:软件测试活动依赖于软件测试背景 31

1.2.7 原则7:不存在缺陷(即有用系统)的谬论 31

1.3 验证与确认的区别 31

1.4 本章总结 33

1.4.1 介绍内容 33

1.4.2 案例 34

第2章 传统的软件测试的设计方法 36

2.1 运用等价类/边界值设计测试用例 37

2.1.1 等价类 37

2.1.2 边界值 38

2.1.3 基于输出的等价类/边界值划分 39

2.1.4 测试用例的设计 39

2.1.5 案例 41

2.2 运用决策表设计测试用例 41

2.2.1 四边形类型判断系统 41

2.2.2 用户登录系统 43

2.2.3 飞机票定价系统 45

2.3 运用状态转换图设计测试用例 48

2.3.1 从状态转换图到状态转换树 49

2.3.2 从状态转换图到状态转换表 51

2.3.3 业务流程状态转化法 52

2.4 运用决策树设计测试用例 53

2.4.1 文本编辑软件 53

2.4.2 机票购买系统 54

2.5 运用正交法设计测试用例 55

2.5.1 正交法 56

2.5.2 浏览器组合软件测试 56

2.6 软件白盒测试 58

2.6.1 语句覆盖测试 59

2.6.2 分支覆盖测试 61

2.6.3 条件覆盖测试 63

2.6.4 判定/条件覆盖测试 65

2.6.5 MC/DC(修订的条件/分支软件测试)覆盖测试 66

2.6.6 路径覆盖测试 67

2.6.7 控制流测试 68

2.6.8 单元测试中的基于代码的功能测试 69

2.6.9 总结 70

2.7 测试用例设计的若干错误观点 70

2.7.1 能发现到目前为止没有发现的缺陷的用例是好的用例 70

2.7.2 测试用例应该详细记录所有的详细操作信息 70

2.7.3 测试用例设计出来后是不用维护的 71

2.7.4 测试用例不应该包含实际的数据 71

2.8 本章总结 71

2.8.1 介绍内容 71

2.8.2 案例 72

第3章 探索式软件测试设计方法 74

3.1 探索式软件测试中用到的一些方法 75

3.1.1 表单输入的测试探索 75

3.1.2 模糊查询输入框输入数据的测试探索 77

3.1.3 对文件的探索 78

3.1.4 登录界面的测试探索 79

3.1.5 根据机器的声音探索 79

3.1.6 通过查看Log日志探索 80

3.1.7 在开头/结尾处进行探索 80

3.1.8 多次执行同样操作进行探索 80

3.1.9 通过复制/粘贴进行探索 81

3.1.10 通过测试结果进行探索 82

3.1.11 利用反向操作进行探索 83

3.1.12 利用名词和动词进行探索 83

3.1.13 运用提问进行探索 84

3.1.14 函数级别的黑盒测试探索 85

3.1.15 运用不懂技术和业务的人员进行探索 85

3.1.16 并发操作的测试探索 85

3.1.17 页面刷新功能的测试探索 87

3.1.18 不常用功能的测试探索 87

3.1.19 URL栏的测试探索 87

3.1.20 突发事故的测试探索 88

3.1.21 界面链接的测试探索 88

3.1.22 需要多步操作来完成一个事务的测试探索 89

3.1.23 老功能的测试探索 89

3.1.24 重灾区的测试探索 90

3.1.25 强迫症测试法的测试探索 90

3.1.26 升级的测试探索 91

3.1.27 总结 91

3.2 基于场景的测试 92

3.3 本章总结 94

3.3.1 介绍内容 94

3.3.2 案例 95

第4章 基于风险的软件测试 97

4.1 基于风险的软件测试方法 98

4.2 软件测试风险级别确认与调整 101

4.2.1 确定风险级别 101

4.2.2 调整风险级别 103

4.3 本章总结 105

4.3.1 介绍内容 105

4.3.2 案例 105

第5章 专项软件测试设计 106

5.1 性能测试 107

5.1.1 性能测试的定义 107

5.1.2 由于性能测试没做到位发生的缺陷 107

5.1.3 性能指标 107

5.1.4 性能计数器 110

5.1.5 性能测试类型 118

5.1.6 性能测试可以发现的问题 119

5.1.7 性能调优 119

5.1.8 性能测试角色 121

5.1.9 性能测试工具 122

5.1.10 性能测试流程 123

5.2 嵌入式软件的基本测试方法 125

5.2.1 嵌入式软件测试流程 125

5.2.2 单元测试和集成测试 127

5.2.3 插桩技术 127

5.2.4 嵌入式软件测试工具 127

5.3 本章总结 129

5.3.1 介绍内容 129

5.3.2 案例 129

第6章 云计算、大数据的软件测试方法 131

6.1 如何对大数据软件产品进行软件测试 132

6.1.1 前言 132

6.1.2 新产品的软件测试 132

6.1.3 老产品的升级测试 132

6.2 云计算软件测试应注意的问题 133

6.2.1 云计算中增加了供应商角色,给云计算测试带来复杂性 133

6.2.2 云计算中使用虚拟技术,给性能测试带来的影响 134

6.2.3 增加按照使用量收费的软件测试方法 134

6.2.4 安全性测试 135

6.2.5 定位问题 135

6.2.6 法律法规问题 136

6.2.7 迁移性软件测试 136

6.2.8 功能测试 137

6.2.9 自动化测试 138

6.3 云计算的优缺点 138

6.3.1 优点 138

6.3.2 缺点 140

6.4 文档、环境、数据在云软件测试中的管理 141

6.4.1 文档管理 141

6.4.2 云计算软件测试环境管理 142

6.4.3 云计算软件测试数据管理 143

6.4.4 变更管理与版本控制 143

6.5 本章总结 144

6.5.1 介绍内容 144

6.5.2 案例 144

参考文献 145

第2篇 软件测试工具 149

第7章 软件测试工具总览 149

7.1 软件测试工具介绍 150

7.1.1 普通软件测试工具推荐 150

7.1.2 APP软件测试工具 150

7.1.3 软件测试工具介绍 151

7.1.4 软件测试工具的类型 153

7.2 关于自动化测试工具 154

7.2.1 自动化测试工具本身也是软件,也要重视工具本身的质量 154

7.2.2 自动化测试工具要随用户的需求变化而变化 155

7.2.3 不是所有的功能都可以作自动化测试 155

7.2.4 探索式软件测试也可由自动化测试来实现 155

7.2.5 是否需要采用自动化测试,需要考虑测试的效率 155

7.2.6 自动化测试可以覆盖软件测试中的每个阶段 156

7.2.7 软件测试自动化是敏捷开发强有力的工具 156

7.2.8 不要盲目选用现有的自动化测试工具 156

7.2.9 各种类型的自动化测试工具的比较 157

7.3 本章总结 158

第8章 单元测试工具 160

8.1 单元测试工具JUnit 4如何在Eclipse中使用 161

8.1.1 JUnit4环境的配置 161

8.1.2 JUnit4测试用例的运行和调试 164

8.1.3 对代码的详细介绍 166

8.1.4 对JUnit4的高级操作 167

8.1.5 介绍一下断言 171

8.1.6 案例分析 173

8.2 本章总结 175

8.2.1 介绍内容 175

8.2.2 案例 175

第9章 性能测试工具 176

9.1 LoadRunner工具介绍 177

9.1.1 LoadRunner简介 177

9.1.2 LoadRunner性能测试工具架构 177

9.1.3 LoadRunner基本功能使用技巧 178

9.1.4 用LoadRunner实现APP压力测试 207

9.1.5 案例 209

9.2 本章总结 214

9.2.1 介绍内容 214

9.2.2 案例 214

第10章 缺陷管理工具 215

10.1 Bugzilla使用指南 216

10.1.1 什么是Bugzilla 216

10.1.2 为什么使用Bugzilla 216

10.1.3 新建一个Bugzilla账号 216

10.1.4 产品和结构 217

10.1.5 Bug报告状态分类和Bug处理意见 217

10.1.6 指定处理人 218

10.1.7 超链接 218

10.1.8 概述 218

10.1.9 硬件平台和操作系统 218

10.1.10 版本 218

10.1.11 Bug报告优先级 218

10.1.12 Bug状态 218

10.1.13 报告人 219

10.1.14 邮件抄送列表 219

10.1.15 从属关系 219

10.1.16 附加描述 219

10.1.17 Bug查找 219

10.1.18 Bug列表 220

10.1.19 用户属性设置 220

10.2 案例 220

10.3 本章总结 225

10.3.1 介绍内容 225

10.3.2 案例 226

第11章 APP软件测试工具 227

11.1 UiAutomator工具介绍 228

11.1.1 使用UiAutomator工具的优点 229

11.1.2 下载和配置 229

11.1.3 开发测试代码 232

11.1.4 UiAutomatorAPI详解 245

11.1.5 案例分析 258

11.2 Selenium和WebDriver工具入门介绍 264

11.2.1 环境安装 265

11.2.2 WebDriver对浏览器的支持 268

11.2.3 操作指南 269

11.2.4 案例分析 272

11.3 Monkey工具介绍 293

11.3.1 Monkey的特征 293

11.3.2 基本语法 293

11.3.3 检查安卓设备中有什么包 293

11.3.4 Monkey的参数列表 294

11.3.5 利用Monkey进行稳定性测试 297

11.3.6 Monkey脚本 298

11.4 精准测试工具——星云测试平台 298

11.4.1 精准测试理念 298

11.4.2 星云测试工具客户端下载与配置 299

11.4.3 项目编译 300

11.4.4 执行测试 305

11.5 本章总结 311

11.5.1 介绍内容 311

11.5.2 案例 312

参考文献 313

第3篇 软件测试管理 317

第12章 软件测试与质量文档 317

12.1 研发过程管理工作规范 318

12.2 飞天e-购网软件测试报告 360

12.3 BBS软件测试报告 375

12.4 数字电视机顶盒中间件集成测试计划书 378

12.5 BBS主测试计划 383

12.6 BBS级别测试计划 392

12.7 软件缺陷管理流程 398

12.8 本章总结 409

第13章 软件测试管理 410

13.1 软件测试团队组成结构分析 411

13.1.1 方案一 411

13.1.2 方案二 412

13.2 软件测试过程 413

13.3 软件测试的独立性 417

13.4 从微软裁员首裁软件测试工程师谈起 419

13.5 软件测试的本质 421

13.5.1 纯软件测试方法介绍 421

13.5.2 纯软件测试方法在Sprint中的运用 422

13.5.3 纯软件测试方法与软件质量的关系 423

13.6 对敏捷开发的一些思考 424

13.6.1 简介 424

13.6.2 敏捷开发的优点 424

13.6.3 敏捷开发的缺点 426

13.6.4 总结 427

13.7 精益创业与探索式软件测试 427

13.8 本章总结 428

13.8.1 介绍内容 428

13.8.2 案例 429

第14章 软件测试工程师的职业素质 430

14.1 如何成为一名优秀的软件测试工程师 431

14.1.1 起码有3年以上的软件开发经验 431

14.1.2 具有逆向思维的能力 432

14.1.3 具有敏锐的洞察力和锲而不舍的精神 432

14.1.4 具有发散性思维的能力 432

14.1.5 擅于同软件开发工程师沟通 432

14.1.6 擅于同领导沟通 433

14.1.7 掌握一些自动化软件测试工具和脚本 433

14.1.8 擅于学习 434

14.1.9 提高自己的表达能力 434

14.1.10 了解业务知识 434

14.1.11 培养对软件测试的兴趣 434

14.1.12 追求完美 434

14.2 如何成为一名优秀的软件质量保证工程师 435

14.2.1 具有软件开发,软件测试和实施经验 435

14.2.2 具有一定的统计学基础 435

14.2.3 强大的沟通能力 436

14.2.4 专业的管理和质量知识 436

14.3 软件测试好书推荐 436

14.3.1 《软件测试的艺术》 436

14.3.2 《赢在测试2-中国软件测试专家访谈录》 437

14.3.3 《探索式软件测试》 437

14.3.4 《探索式测试实践之路》 438

14.3.5 《探索吧!深入理解探索式软件测试》 438

14.3.6 《云服务测试如何高效地进行云计算测试》 438

14.3.7 《Google软件测试之道》 438

14.3.8 《软件测试经验与教训》 438

14.3.9 《学习要像加勒比海盗》 439

14.4 云计算中发生的事故 439

14.4.1 Google应用引擎平台宕机 439

14.4.2 Google Gmail和日历服务中断 439

14.4.3 Google Voice服务宕机 439

14.4.4 亚马逊S3服务故障 440

14.4.5 亚马逊EC2云计算服务遭到僵尸网络攻击 440

14.4.6 微软爆发BPOS服务中断事件 440

14.4.7 Amazon主页故障 440

14.5 ISTQB和CSTQB 441

14.6 本章总结 442

参考文献 443