图书介绍
测试工程师全栈技术进阶与实践PDF|Epub|txt|kindle电子书版本网盘下载
![测试工程师全栈技术进阶与实践](https://www.shukui.net/cover/33/32494586.jpg)
- 茹炳晟编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115513281
- 出版时间:2019
- 标注页数:335页
- 文件大小:64MB
- 文件页数:365页
- 主题词:软件-测试
PDF下载
下载说明
测试工程师全栈技术进阶与实践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 Labs128
4.10.2 Testin129
4.10.3 MTC131
第5章 API自动化测试技术132
5.1 从0到1:API测试初探133
5.1.1 API测试的基本步骤133
5.1.2 基于Spring Boot构建被测API133
5.1.3 使用cURL135
5.1.4 使用Postman137
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 API198
7.4.2 Profile工具200
7.4.3 页面埋点计时200
7.4.4 资源加载时序图201
第8章 性能测试实战202
8.1 前端性能测试工具WebPagetest203
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 后端性能测试主流商业工具LoadRunner215
8.2.1 LoadRunner的基本原理216
8.2.2 LoadRunner的主要模块217
8.2.3 基于LoadRunner的性能测试实战218
8.3 后端性能测试主流开源工具JMeter226
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 测试先行——TDD288
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