测试工程师全栈技术进阶与实践PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:茹炳晟编著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2019
- ISBN:9787115513281
- 页数:335 页
第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
- 《市政工程基础》杨岚编著 2009
- 《工程静力学》王科盛主编 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《化学反应工程》许志美主编 2019
- 《语文教育教学实践探索》陈德收 2018
- 《彼得·布鲁克导演实践研究》邓小玲著 2019
- 《反思性实践》胡红梅, 2019
- 《绿色过程工程与清洁生产技术 张懿院士论文集精选 上》《绿色过程工程与清洁生产技术》编写组编 2019
- 《软件工程》齐治昌,谭庆平,宁洪编著 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019