图书介绍

测试工程师全栈技术进阶与实践pdf电子书版本下载

测试工程师全栈技术进阶与实践
  • 茹炳晟编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115513281
  • 出版时间:2019
  • 标注页数:335页
  • 文件大小:64MB
  • 文件页数:365页
  • 主题词:软件-测试

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

测试工程师全栈技术进阶与实践PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 软件测试基础知识精要(上) 1

1.1 从“用户登录”测试谈起 2

1.1.1 功能测试用例 2

1.1.2 更多的测试用例 3

1.1.3 功能性需求与非功能性需求 3

1.1.4 测试的不可穷尽性 5

1.2 设计“好的”测试用例 5

1.2.1 “好的”测试用例的定义 6

1.2.2 “好的”测试用例具备的特征 6

1.2.3 常用测试用例的设计方法 6

1.2.4 “好的”测试用例的设计方法 8

1.2.5 测试用例设计的其他经验 10

1.3 单元测试的基础知识 10

1.3.1 单元测试的定义 10

1.3.2 单元测试的最佳实践 11

1.3.3 单元测试用例详解 12

1.3.4 单元测试在实际项目中的最佳实践 14

1.4 自动化测试的原始驱动力和使用场景 15

1.4.1 自动化测试的基本概念 15

1.4.2 自动化测试的优势与劣势 16

1.4.3 自动化测试的使用场景 17

1.5 软件开发各阶段的自动化测试技术 18

1.5.1 单元测试的自动化技术 19

1.5.2 代码级集成测试的自动化技术 21

1.5.3 Web Service测试的自动化技术 21

1.5.4 GUI测试的自动化技术 24

1.6 测试覆盖率 25

1.6.1 需求覆盖率 25

1.6.2 代码覆盖率 25

1.6.3 代码覆盖率的价值 26

1.6.4 代码覆盖率的局限性 27

1.6.5 关于代码覆盖率的报告 27

1.6.6 代码覆盖率工具的实现技术 29

第2章 软件测试基础知识精要(下) 31

2.1 高效撰写软件缺陷报告 32

2.1.1 缺陷标题 32

2.1.2 缺陷概述 33

2.1.3 缺陷影响 33

2.1.4 环境配置 33

2.1.5 前置条件 34

2.1.6 缺陷重现步骤 34

2.1.7 期望结果和实际结果 34

2.1.8 优先级和严重程度 34

2.1.9 变通方案 35

2.1.10 根原因分析 35

2.1.11 附件 35

2.2 以终为始,做好测试计划 36

2.2.1 没有测试计划会怎么样 36

2.2.2 测试范围 37

2.2.3 测试策略 37

2.2.4 测试资源 38

2.2.5 测试进度 39

2.2.6 测试风险预估 40

2.3 软件测试工程师的核心竞争力 40

2.3.1 两个实际面试案例 40

2.3.2 传统测试工程师的核心竞争力 41

2.3.3 测试开发工程师的核心竞争力 43

2.4 软件测试工程师需要掌握的非测试知识 44

2.4.1 迷你版的系统架构师 44

2.4.2 网站架构的核心知识 44

2.4.3 容器技术 45

2.4.4 云计算技术 46

2.4.5 DevOps思维 46

2.4.6 前端开发技术 47

2.5 互联网产品的测试策略设计 47

2.5.1 研发流程的不同决定了测试策略的不同 47

2.5.2 传统软件产品的测试策略——金字塔模型 48

2.5.3 互联网产品的测试策略——菱形模型 49

第3章 GUI自动化测试精要 52

3.1 从0到1:GUI自动化测试初探 53

3.1.1 示例:构建一个Selenium自动化测试用例 53

3.1.2 Selenium的实现原理 55

3.2 效率为王:测试脚本和测试数据的解耦 58

3.2.1 测试脚本和测试数据的解耦 59

3.2.2 数据驱动测试 59

3.3 效率为王:页面对象模型 60

3.3.1 早期GUI测试脚本的结构 60

3.3.2 基于模块化思想实现GUI测试用例 61

3.3.3 基于页面对象模型实现GUI测试用例 63

3.4 更接近业务的抽象:让自动化测试脚本更好地描述业务 63

3.4.1 操作函数的粒度把控 63

3.4.2 衔接两个操作函数之间的页面 64

3.4.3 业务流程抽象 64

3.5 过不了的坎:GUI自动化过程中的测试数据 66

3.5.1 基于API调用创建测试数据 67

3.5.2 基于数据库操作创建测试数据 68

3.5.3 综合运用API调用和数据库操作创建测试数据 68

3.5.4 实时创建测试数据 69

3.5.5 事先创建测试数据 69

3.5.6 实时创建测试数据和事先创建测试数据的互补 70

3.6 GUI测试还能这么“玩” 70

3.6.1 自动生成页面对象 70

3.6.2 自动生成GUI测试数据 71

3.6.3 无头浏览器简介 72

3.6.4 Headless Chrome与Puppeteer的使用 73

3.7 精益求精:提高GUI测试稳定性的关键技术 74

3.7.1 非预计的弹出对话框 75

3.7.2 页面控件属性的细微变化 76

3.7.3 被测系统的A/B测试 76

3.7.4 随机的页面延迟造成控件识别失败 77

3.7.5 测试数据问题 77

3.8 眼前一亮:带你玩转GUI自动化的测试报告 77

3.8.1 早期基于视频的GUI测试报告 78

3.8.2 开源GUI测试框架的测试报告实现思路 78

3.8.3 全球化GUI测试报告的创新设计 80

3.9 真实的战场:大型全球化项目中GUI自动化测试策略的设计 82

3.9.1 大型全球化电商网站的前端模块划分 82

3.9.2 大型全球化电商网站的GUI自动化测试策略设计 82

3.9.3 大型全球化电商网站的GUI自动化测试脚本管理 85

第4章 移动应用测试技术 87

4.1 移动应用的种类和特点 88

4.1.1 Web应用 88

4.1.2 原生应用 89

4.1.3 混合应用 89

4.2 移动应用测试方法概论 89

4.2.1 Web应用的测试 90

4.2.2 原生应用的测试 90

4.2.3 混合应用的测试 90

4.2.4 移动应用的测试难点 91

4.3 移动应用的专项测试 92

4.3.1 安装测试 92

4.3.2 卸载测试 94

4.3.3 特殊操作测试 95

4.3.4 交互测试 96

4.3.5 通知测试 96

4.3.6 交叉事件测试 96

4.3.7 兼容性测试 97

4.3.8 流量测试 98

4.3.9 耗电量测试 98

4.3.10 弱网络测试 99

4.3.11 边界测试 99

4.4 移动应用测试工具:Appium使用入门 100

4.4.1 移动应用的自动化测试需求 100

4.4.2 iOS开发环境的搭建 101

4.4.3 Android开发环境的搭建 102

4.4.4 Appium测试环境的搭建 103

4.4.5 Appium Inspector的使用 105

4.5 Appium实战(iOS篇) 107

4.5.1 基于iOS开发第一个原生应用的测试用例 107

4.5.2 基于iOS开发第一个Web应用的测试用例 110

4.5.3 在iOS真机上执行Web应用测试 111

4.5.4 在iOS真机上执行原生应用测试 114

4.6 Appium实战(Android平台) 114

4.6.1 基于Android模拟器的Web应用测试 114

4.6.2 基于Android真机的Web应用测试 115

4.6.3 Web应用的测试:温故而知新 115

4.6.4 底层自动化驱动引擎 116

4.6.5 基于Android模拟器的原生应用测试 116

4.6.6 基于Android真机的原生应用测试 118

4.6.7 原生应用的测试:温故而知新 119

4.7 Appium的实现原理 120

4.7.1 Appium服务器 120

4.7.2 Appium客户端 121

4.8 企业级移动应用测试框架的设计思路与实践 121

4.8.1 移动应用测试框架的设计思路 121

4.8.2 移动应用测试框架的实现与实践 122

4.9 搭建企业级移动测试私有云的实践 123

4.9.1 基于Selenium Grid的移动测试私有云 124

4.9.2 基于Open STF的移动测试私有云 126

4.10 移动应用云测试服务简介 128

4.10.1 Sauce Labs 128

4.10.2 Testin 129

4.10.3 MTC 131

第5章 API自动化测试技术 132

5.1 从0到1:API测试初探 133

5.1.1 API测试的基本步骤 133

5.1.2 基于Spring Boot构建被测API 133

5.1.3 使用cURL 135

5.1.4 使用Postman 137

5.2 复杂场景的API测试 140

5.2.1 被测业务操作由多个API调用协作完成 141

5.2.2 API测试过程中的第三方依赖 141

5.2.3 异步API的测试 141

5.3 API自动化测试框架的技术演进与创新 142

5.3.1 早期基于Postman的API测试 142

5.3.2 基于Postman和Newman的API测试 142

5.3.3 基于代码的API测试 142

5.3.4 自动生成API测试代码 144

5.3.5 当响应结果发生变化时的自动识别 145

5.4 微服务模式下的API测试 146

5.4.1 单体架构 146

5.4.2 微服务架构 147

5.4.3 微服务架构下的测试挑战 148

5.4.4 基于消费者契约的API测试 150

5.4.5 微服务测试的依赖解耦和模拟服务 151

5.4.6 代码实例 152

第6章 代码级软件测试技术基础与进阶 153

6.1 代码级测试的基本理念与方法 154

6.1.1 常见的代码错误类型 154

6.1.2 代码级测试常用方法 156

6.2 静态测试方法 158

6.2.1 人工静态方法 158

6.2.2 自动静态方法 159

6.2.3 使用自动静态方法的实例 160

6.3 动态测试方法 161

6.3.1 人工动态方法 161

6.3.2 自动动态方法 166

6.4 代码静态扫描工具Sonar的使用 167

6.4.1 基于Sonar的实例 167

6.4.2 SonarLint的使用 170

6.5 单元测试框架TestNG的使用 171

6.5.1 TestNG的基本用法 172

6.5.2 TestNG的高级用法 175

6.6 代码覆盖率工具JaCoCo的使用 177

6.6.1 JaCoCo简介 177

6.6.2 JaCoCo的使用 178

第7章 性能测试基础 180

7.1 不同视角下的软件性能与性能指标 181

7.1.1 终端用户眼中的软件性能 181

7.1.2 系统运维人员眼中的软件性能 182

7.1.3 软件设计开发人员眼中的软件性能 182

7.1.4 性能测试人员眼中的软件性能 184

7.1.5 并发用户数 184

7.1.6 响应时间 185

7.1.7 系统吞吐量 186

7.1.8 并发用户数、响应时间、系统吞吐量之间的关系 187

7.2 常用的性能测试与应用领域 188

7.2.1 常用的7种性能测试 189

7.2.2 性能测试的四大应用领域 192

7.3 后端性能测试工具原理与行业常用工具简介 193

7.3.1 后端性能测试和后端性能测试工具之间的关系 193

7.3.2 后端性能测试工具和GUI自动化测试工具的区别 194

7.3.3 后端性能测试工具的原理 194

7.3.4 后端性能测试场景设计和具体内容 196

7.3.5 业内主流的后端性能测试工具 197

7.4 前端性能测试工具原理 197

7.4.1 Performance Timing API 198

7.4.2 Profile工具 200

7.4.3 页面埋点计时 200

7.4.4 资源加载时序图 201

第8章 性能测试实战 202

8.1 前端性能测试工具WebPagetest 203

8.1.1 WebPagetest功能简介 203

8.1.2 使用WebPagetest测试某网站的首页 203

8.1.3 前端性能评估结果评分分析 204

8.1.4 其他前端性能指标解读 210

8.1.5 WebPagetest实际使用中需要解决的问题 212

8.2 后端性能测试主流商业工具LoadRunner 215

8.2.1 LoadRunner的基本原理 216

8.2.2 LoadRunner的主要模块 217

8.2.3 基于LoadRunner的性能测试实战 218

8.3 后端性能测试主流开源工具JMeter 226

8.3.1 JMeter简介 227

8.3.2 JMeter的主要概念 228

8.3.3 JMeter的使用 228

8.4 企业级实际性能测试案例与经验 238

8.4.1 性能基准测试 238

8.4.2 稳定性测试 239

8.4.3 并发测试 240

8.4.4 容量规划测试 240

8.5 大型互联网产品的全链路压测 241

8.5.1 全链路压测的定义 241

8.5.2 单系统的独立压测 242

8.5.3 海量并发请求的发起 242

8.5.4 全链路压测流量和数据的隔离 243

8.5.5 实际业务负载的模拟 244

8.5.6 真实交易和支付的撤销以及数据清理 244

第9章 准备测试数据 245

9.1 准备测试数据的基本方法 246

9.1.1 基于GUI操作生成测试数据 246

9.1.2 通过API调用生成测试数据 247

9.1.3 通过数据库操作生成测试数据 248

9.1.4 综合运用API和数据库生成测试数据 248

9.2 创建测试数据的方法 249

9.2.1 实时创建方法 250

9.2.2 事先创建方法 251

9.2.3 综合运用实时创建方法和事先创建方法 252

9.3 测试数据的“银弹”——统一测试数据平台 252

9.3.1 测试数据准备的1.0时代 253

9.3.2 测试数据准备的2.0时代 256

9.3.3 测试数据准备的3.0时代 258

9.3.4 测试数据准备的4.0时代 260

9.3.5 大数据技术在测试数据准备中的应用 261

第10章 自动化测试基础架构的建设与实践 262

10.1 从小作坊到工厂:Selenium Grid简介 263

10.1.1 测试基础架构的基本概念 263

10.1.2 早期测试执行环境的问题 263

10.1.3 Selenium Grid简介 264

10.1.4 传统Selenium Grid的搭建方法 265

10.1.5 基于Docker的SeleniumGrid的搭建方法 268

10.2 从小工到专家:测试执行环境架构设计基础 268

10.2.1 测试执行环境概述 269

10.2.2 测试基础架构的设计 270

10.2.3 早期的测试基础架构 270

10.2.4 经典的测试基础架构 271

10.3 从小工到专家:测试执行环境架构设计进阶 272

10.3.1 基于Docker实现的Selenium Grid测试基础架构 272

10.3.2 引入统一测试执行平台的测试基础架构 274

10.3.3 基于Jenkins集群的测试基础架构 275

10.3.4 测试负载自适应的测试基础架构 276

10.3.5 测试基础架构的选择 277

10.4 实战案例:大型全球化电商网站的测试基础架构设计 277

10.4.1 统一测试执行服务 278

10.4.2 统一测试数据服务 279

10.4.3 测试执行环境准备服务 279

10.4.4 被测系统部署服务 279

10.4.5 测试报告服务 280

10.4.6 全局测试配置服务 280

10.4.7 大型全球化电商网站测试基础架构的使用示例 282

第11章 软件测试新技术 284

11.1 发挥人的潜能——探索式测试 285

11.1.1 软件测试与招聘面试的类比 285

11.1.2 探索式测试的定义 285

11.1.3 探索式测试与即兴测试的区别和联系 287

11.1.4 探索性测试的开展 287

11.2 测试先行——TDD 288

11.2.1 TDD的核心理念 288

11.2.2 TDD的优势 289

11.2.3 TDD的实施过程 290

11.2.4 TDD进阶 294

11.3 打蛇打七寸——精准测试 294

11.3.1 传统软件测试的主要短板 295

11.3.2 精准测试的核心思想 296

11.3.3 精准测试的具体方法 297

11.4 安全第一——渗透测试 299

11.4.1 渗透测试的定义 299

11.4.2 渗透测试的常用方法 300

11.4.3 执行渗透测试的步骤 301

11.4.4 渗透测试的常用工具 302

11.4.5 渗透测试的收益 303

11.5 用机器设计测试用例——基于模型的测试 303

11.5.1 MBT的基本原理 304

11.5.2 常用模型简介 305

11.5.3 常用MBT工具 305

11.5.4 MBT的优势 306

11.5.5 MBT的劣势 307

11.6 人工智能在测试领域的应用 308

11.6.1 人工智能概述 308

11.6.2 人工智能在软件测试领域的应用 309

11.6.3 基于人工智能的测试工具 310

第12章 测试人员的互联网架构核心知识 312

12.1 测试工程师掌握大型网站架构知识的必要性 313

12.1.1 基于消息队列的分布式系统测试设计 313

12.1.2 缓存的示例 314

12.1.3 架构知识的学习方法 314

12.2 大型网站架构介绍 315

12.2.1 最简单的网站架构 315

12.2.2 应用和数据分离的网站架构 316

12.2.3 引入本地缓存和分布式缓存的网站架构 316

12.2.4 引入应用服务器集群的网站架构 317

12.2.5 引入主从分离的数据库 317

12.2.6 引入CDN服务器和反向代理服务器的网站架构 318

12.2.7 引入分布式文件系统和分布式数据库系统的网站架构 319

12.2.8 基于业务拆分和消息队列的网站架构 319

12.2.9 基于分布式服务的网站架构 321

12.2.10 微服务架构 321

12.2.11 下一代微服务架构——服务网格 322

12.3 网站高性能架构设计 322

12.3.1 前端的高性能架构 323

12.3.2 后端服务器的高性能架构 323

12.4 网站高可用架构设计 325

12.4.1 造成网站不可用的主要原因 326

12.4.2 网站高可用架构设计 327

12.5 网站可伸缩性架构设计 328

12.5.1 可伸缩性和可扩展性的区别 329

12.5.2 分层的可伸缩性架构 329

12.5.3 应用服务器的可伸缩性设计 330

12.5.4 缓存集群的可伸缩性设计 331

12.5.5 数据库的可伸缩性设计 332

12.6 网站可扩展性架构设计 333

12.6.1 网站可扩展性架构设计的案例 333

12.6.2 事件驱动架构与消息队列 334

12.6.3 引入消息队列后的测试关注点 335

精品推荐