测试工程师:全栈技术进阶与实践

admin 2022年9月25日20:43:07评论94 views字数 6988阅读23分17秒阅读模式

微信公众号:计算机与网络安全


测试工程师:全栈技术进阶与实践
(全文略)

本书全面讲解了软件测试人员必知必会的测试知识、技术和工具。
全书分为12章。第1章和第2章用“用户登录”测试实例,讲解了软件测试基础知识,让读者快速学习关键的基础知识;第3章讲解了GUI测试框架设计、框架在大型电商网站的具体实践,梳理了影响GUI自动化测试稳定性的关键因素,并给出了切实可行的解决方案;第4章介绍了3类移动应用的测试方法与技术,以及如何在移动测试中应用Appium来帮助测试人员更好地实现自动化测试;第5章以循序渐进的方式,讲解了API测试的关键技术、微服务架构下的API测试挑战等;第6章讲解了代码级测试的基础知识、静态测试方法、动态测试方法、静态扫描工具Sonar、单元测试框架TestNG、代码覆盖率工具等内容;第7章和第8章系统地对性能测试的方法以及应用领域进行阐述,并基于LoadRunner讲解大型企业性能测试的规划、设计、实现的具体实例,还介绍了大型互联网产品的全链路压测的行业实践;第9章探讨了测试数据准备的技术,并讨论了很多准备测试数据的新方法;第10章结合主流的DevOps和CI/CD,深入剖析了大型互联网企业的测试基础架构设计;第11章和第12章讲解了软件测试新技术,如探索式测试、测试驱动开发、精准测试、渗透测试、基于模型的测试,以及人工智能在测试领域的应用。
本书适合测试人员、开发人员、运维人员、测试经理和软件质量保证人员学习,也可以作为大专院校相关专业师生的学习用书和培训学校的教材。

目录

第1章 软件测试基础知识精要(上)
1.1 从“用户登录”测试谈起
1.1.1 功能测试用例
1.1.2 更多的测试用例
1.1.3 功能性需求与非功能性需求
1.1.4 测试的不可穷尽性
1.2 设计“好的”测试用例
1.2.1 “好的”测试用例的定义
1.2.2 “好的”测试用例具备的特征
1.2.3 常用测试用例的设计方法
1.2.4 “好的”测试用例的设计方法
1.2.5 测试用例设计的其他经验
1.3 单元测试的基础知识
1.3.1 单元测试的定义
1.3.2 单元测试的*佳实践
1.3.3 单元测试用例详解
1.3.4 单元测试在实际项目中的*佳实践
1.4 自动化测试的原始驱动力和使用场景
1.4.1 自动化测试的基本概念
1.4.2 自动化测试的优势与劣势
1.4.3 自动化测试的使用场景
1.5 软件开发各阶段的自动化测试技术
1.5.1 单元测试的自动化技术
1.5.2 代码级集成测试的自动化技术
1.5.3 Web Service测试的自动化技术
1.5.4 GUI测试的自动化技术
1.6 测试覆盖率
1.6.1 需求覆盖率
1.6.2 代码覆盖率
1.6.3 代码覆盖率的价值
1.6.4 代码覆盖率的局限性
1.6.5 关于代码覆盖率的报告
1.6.6 代码覆盖率工具的实现技术
第2章 软件测试基础知识精要(下)
2.1 高效撰写软件缺陷报告
2.1.1 缺陷标题
2.1.2 缺陷概述
2.1.3 缺陷影响
2.1.4 环境配置
2.1.5 前置条件
2.1.6 缺陷重现步骤
2.1.7 期望结果和实际结果
2.1.8 优先级和严重程度
2.1.9 变通方案
2.1.10 根原因分析
2.1.11 附件
2.2 以终为始,做好测试计划
2.2.1 没有测试计划会怎么样
2.2.2 测试范围
2.2.3 测试策略
2.2.4 测试资源
2.2.5 测试进度
2.2.6 测试风险预估
2.3 软件测试工程师的核心竞争力
2.3.1 两个实际面试案例
2.3.2 传统测试工程师的核心竞争力
2.3.3 测试开发工程师的核心竞争力
2.4 软件测试工程师需要掌握的非测试知识
2.4.1 迷你版的系统架构师
2.4.2 网站架构的核心知识
2.4.3 容器技术
2.4.4 云计算技术
2.4.5 DevOps思维
2.4.6 前端开发技术
2.5 互联网产品的测试策略设计
2.5.1 研发流程的不同决定了测试策略的不同
2.5.2 传统软件产品的测试策略——金字塔模型
2.5.3 互联网产品的测试策略——菱形模型
第3章 GUI自动化测试精要
3.1 从0到1:GUI自动化测试初探
3.1.1 示例:构建一个Selenium自动化测试用例
3.1.2 Selenium的实现原理
3.2 效率为王:测试脚本和测试数据的解耦
3.2.1 测试脚本和测试数据的解耦
3.2.2 数据驱动测试
3.3 效率为王:页面对象模型
3.3.1 早期GUI测试脚本的结构
3.3.2 基于模块化思想实现GUI测试用例
3.3.3 基于页面对象模型实现GUI测试用例
3.4 更接近业务的抽象:让自动化测试脚本更好地描述业务
3.4.1 操作函数的粒度把控
3.4.2 衔接两个操作函数之间的页面
3.4.3 业务流程抽象
3.5 过不了的坎:GUI自动化过程中的测试数据
3.5.1 基于API调用创建测试数据
3.5.2 基于数据库操作创建测试数据
3.5.3 综合运用API调用和数据库操作创建测试数据
3.5.4 实时创建测试数据
3.5.5 事先创建测试数据
3.5.6 实时创建测试数据和事先创建测试数据的互补
3.6 GUI测试还能这么“玩”
3.6.1 自动生成页面对象
3.6.2 自动生成GUI测试数据
3.6.3 无头浏览器简介
3.6.4 Headless Chrome与Puppeteer的使用
3.7 精益求精:提高GUI测试稳定性的关键技术
3.7.1 非预计的弹出对话框
3.7.2 页面控件属性的细微变化
3.7.3 被测系统的A/B测试
3.7.4 随机的页面延迟造成控件识别失败
3.7.5 测试数据问题
3.8 眼前一亮:带你玩转GUI自动化的测试报告
3.8.1 早期基于视频的GUI测试报告
3.8.2 开源GUI测试框架的测试报告实现思路
3.8.3 全球化GUI测试报告的创新设计
3.9 真实的战场:大型全球化项目中GUI自动化测试策略的设计
3.9.1 大型全球化电商网站的前端模块划分
3.9.2 大型全球化电商网站的GUI自动化测试策略设计
3.9.3 大型全球化电商网站的GUI自动化测试脚本管理
第4章 移动应用测试技术
4.1 移动应用的种类和特点
4.1.1 Web应用
4.1.2 原生应用
4.1.3 混合应用
4.2 移动应用测试方法概论
4.2.1 Web应用的测试
4.2.2 原生应用的测试
4.2.3 混合应用的测试
4.2.4 移动应用的测试难点
4.3 移动应用的专项测试
4.3.1 安装测试
4.3.2 卸载测试
4.3.3 特殊操作测试
4.3.4 交互测试
4.3.5 通知测试
4.3.6 交叉事件测试
4.3.7 兼容性测试
4.3.8 流量测试
4.3.9 耗电量测试
4.3.10 弱网络测试
4.3.11 边界测试
4.4 移动应用测试工具:Appium使用入门
4.4.1 移动应用的自动化测试需求
4.4.2 iOS开发环境的搭建
4.4.3 Android开发环境的搭建
4.4.4 Appium测试环境的搭建
4.4.5 Appium Inspector的使用
4.5 Appium实战(iOS篇)
4.5.1 基于iOS开发*1个原生应用的测试用例
4.5.2 基于iOS开发* 一个Web应用的测试用例
4.5.3 在iOS真机上执行Web应用测试
4.5.4 在iOS真机上执行原生应用测试
4.6 Appium实战(Android平台)
4.6.1 基于Android模拟器的Web应用测试
4.6.2 基于Android真机的Web应用测试
4.6.3 Web应用的测试:温故而知新
4.6.4 底层自动化驱动引擎
4.6.5 基于Android模拟器的原生应用测试
4.6.6 基于Android真机的原生应用测试
4.6.7 原生应用的测试:温故而知新
4.7 Appium的实现原理
4.7.1 Appium服务器
4.7.2 Appium客户端
4.8 企业级移动应用测试框架的设计思路与实践
4.8.1 移动应用测试框架的设计思路
4.8.2 移动应用测试框架的实现与实践
4.9 搭建企业级移动测试私有云的实践
4.9.1 基于Selenium Grid的移动测试私有云
4.9.2 基于Open STF的移动测试私有云
4.10 移动应用云测试服务简介
4.10.1 Sauce Labs
4.10.2 Testin
4.10.3 MTC
第5章 API自动化测试技术
5.1 从0到1:API测试初探
5.1.1 API测试的基本步骤
5.1.2 基于Spring Boot构建被测API
5.1.3 使用cURL
5.1.4 使用Postman
5.2 复杂场景的API测试
5.2.1 被测业务操作由多个API调用协作完成
5.2.2 API测试过程中的第三方依赖
5.2.3 异步API的测试
5.3 API自动化测试框架的技术演进与创新
5.3.1 早期基于Postman的API测试
5.3.2 基于Postman和Newman的API测试
5.3.3 基于代码的API测试
5.3.4 自动生成API测试代码
5.3.5 当响应结果发生变化时的自动识别
5.4 微服务模式下的API测试
5.4.1 单体架构
5.4.2 微服务架构
5.4.3 微服务架构下的测试挑战
5.4.4 基于消费者契约的API测试
5.4.5 微服务测试的依赖解耦和模拟服务
5.4.6 代码实例
第6章 代码级软件测试技术基础与进阶
6.1 代码级测试的基本理念与方法
6.1.1 常见的代码错误类型
6.1.2 代码级测试常用方法
6.2 静态测试方法
6.2.1 人工静态方法
6.2.2 自动静态方法
6.2.3 使用自动静态方法的实例
6.3 动态测试方法
6.3.1 人工动态方法
6.3.2 自动动态方法
6.4 代码静态扫描工具Sonar的使用
6.4.1 基于Sonar的实例
6.4.2 SonarLint的使用
6.5 单元测试框架TestNG的使用
6.5.1 TestNG的基本用法
6.5.2 TestNG的*级用法
6.6 代码覆盖率工具JaCoCo的使用
6.6.1 JaCoCo简介
6.6.2 JaCoCo的使用
第7章 性能测试基础
7.1 不同视角下的软件性能与性能指标
7.1.1 终端用户眼中的软件性能
7.1.2 系统运维人员眼中的软件性能
7.1.3 软件设计开发人员眼中的软件性能
7.1.4 性能测试人员眼中的软件性能
7.1.5 并发用户数
7.1.6 响应时间
7.1.7 系统吞吐量
7.1.8 并发用户数、响应时间、系统吞吐量之间的关系
7.2 常用的性能测试与应用领域
7.2.1 常用的7种性能测试
7.2.2 性能测试的四大应用领域
7.3 后端性能测试工具原理与行业常用工具简介
7.3.1 后端性能测试和后端性能测试工具之间的关系
7.3.2 后端性能测试工具和GUI自动化测试工具的区别
7.3.3 后端性能测试工具的原理
7.3.4 后端性能测试场景设计和具体内容
7.3.5 业内主流的后端性能测试工具
7.4 前端性能测试工具原理
7.4.1 Performance TimingAPI
7.4.2 Profile工具
7.4.3 页面埋点计时
7.4.4 资源加载时序图
第8章 性能测试实战
8.1 前端性能测试工具WebPagetest
8.1.1 WebPagetest功能简介
8.1.2 使用WebPagetest测试某网站的首页
8.1.3 前端性能评估结果评分分析
8.1.4 其他前端性能指标解读
8.1.5 WebPagetest实际使用中需要解决的问题
8.2 后端性能测试主流商业工具LoadRunner
8.2.1 LoadRunner的基本原理
8.2.2 LoadRunner的主要模块
8.2.3 基于LoadRunner的性能测试实战
8.3 后端性能测试主流开源工具JMeter
8.3.1 JMeter简介
8.3.2 JMeter的主要概念
8.3.3 JMeter的使用
8.4 企业级实际性能测试案例与经验
8.4.1 性能基准测试
8.4.2 稳定性测试
8.4.3 并发测试
8.4.4 容量规划测试
8.5 大型互联网产品的全链路压测
8.5.1 全链路压测的定义
8.5.2 单系统的独立压测
8.5.3 海量并发请求的发起
8.5.4 全链路压测流量和数据的隔离
8.5.5 实际业务负载的模拟
8.5.6 真实交易和支付的撤销以及数据清理
第9章 准备测试数据
9.1 准备测试数据的基本方法
9.1.1 基于GUI操作生成测试数据
9.1.2 通过API调用生成测试数据
9.1.3 通过数据库操作生成测试数据
9.1.4 综合运用API和数据库生成测试数据
9.2 创建测试数据的方法
9.2.1 实时创建方法
9.2.2 事先创建方法
9.2.3 综合运用实时创建方法和事先创建方法
9.3 测试数据的“银弹”——统一测试数据平台
9.3.1 测试数据准备的1.0时代
9.3.2 测试数据准备的2.0时代
9.3.3 测试数据准备的3.0时代
9.3.4 测试数据准备的4.0时代
9.3.5 大数据技术在测试数据准备中的应用
第10章 自动化测试基础架构的建设与实践
10.1 从小作坊到工厂:Selenium Grid简介
10.1.1 测试基础架构的基本概念
10.1.2 早期测试执行环境的问题
10.1.3 Selenium Grid简介
10.1.4 传统Selenium Grid的搭建方法
10.1.5 基于Docker的SeleniumGrid的搭建方法
10.2 从小工到专家:测试执行环境架构设计基础
10.2.1 测试执行环境概述
10.2.2 测试基础架构的设计
10.2.3 早期的测试基础架构
10.2.4 经典的测试基础架构
10.3 从小工到专家:测试执行环境架构设计进阶
10.3.1 基于Docker实现的Selenium Grid测试基础架构
10.3.2 引入统一测试执行平台的测试基础架构
10.3.3 基于Jenkins集群的测试基础架构
10.3.4 测试负载自适应的测试基础架构
10.3.5 测试基础架构的选择
10.4 实战案例:大型全球化电商网站的测试基础架构设计
10.4.1 统一测试执行服务
10.4.2 统一测试数据服务
10.4.3 测试执行环境准备服务
10.4.4 被测系统部署服务
10.4.5 测试报告服务
10.4.6 全局测试配置服务
10.4.7 大型全球化电商网站测试基础架构的使用示例
第11章 软件测试新技术
11.1 发挥人的潜能——探索式测试
11.1.1 软件测试与招聘面试的类比
11.1.2 探索式测试的定义
11.1.3 探索式测试与即兴测试的区别和联系
11.1.4 探索性测试的开展
11.2 测试先行——TDD
11.2.1 TDD的核心理念
11.2.2 TDD的优势
11.2.3 TDD的实施过程
11.2.4 TDD进阶
11.3 打蛇打七寸——精准测试
11.3.1 传统软件测试的主要短板
11.3.2 精准测试的核心思想
11.3.3 精准测试的具体方法
11.4 安全* 一——渗透测试
11.4.1 渗透测试的定义
11.4.2 渗透测试的常用方法
11.4.3 执行渗透测试的步骤
11.4.4 渗透测试的常用工具
11.4.5 渗透测试的收益
11.5 用机器设计测试用例——基于模型的测试
11.5.1 MBT的基本原理
11.5.2 常用模型简介
11.5.3 常用MBT工具
11.5.4 MBT的优势
11.5.5 MBT的劣势
11.6 人工智能在测试领域的应用
11.6.1 人工智能概述
11.6.2 人工智能在软件测试领域的应用
11.6.3 基于人工智能的测试工具
第12章 测试人员的互联网架构核心知识
12.1 测试工程师掌握大型网站架构知识的必要性
12.1.1 基于消息队列的分布式系统测试设计
12.1.2 缓存的示例
12.1.3 架构知识的学习方法
12.2 大型网站架构介绍
12.2.1 *简单的网站架构
12.2.2 应用和数据分离的网站架构
12.2.3 引入本地缓存和分布式缓存的网站架构
12.2.4 引入应用服务器集群的网站架构
12.2.5 引入主从分离的数据库
12.2.6 引入CDN服务器和反向代理服务器的网站架构
12.2.7 引入分布式文件系统和分布式数据库系统的网站架构
12.2.8 基于业务拆分和消息队列的网站架构
12.2.9 基于分布式服务的网站架构
12.2.10 微服务架构
12.2.11 下一代微服务架构——服务网格
12.3 网站高性能架构设计
12.3.1 前端的高性能架构
12.3.2 后端服务器的高性能架构
12.4 网站高可用架构设计
12.4.1 造成网站不可用的主要原因
12.4.2 网站高可用架构设计
12.5 网站可伸缩性架构设计
12.5.1 可伸缩性和可扩展性的区别
12.5.2 分层的可伸缩性架构
12.5.3 应用服务器的可伸缩性设计
12.5.4 缓存集群的可伸缩性设计
12.5.5 数据库的可伸缩性设计
12.6 网站可扩展性架构设计
12.6.1 网站可扩展性架构设计的案例
12.6.2 事件驱动架构与消息队列
12.6.3 引入消息队列后的测试关注点


附:测试工程师:全栈技术进阶与实践.pdf


- The end -

原文始发于微信公众号(计算机与网络安全):测试工程师:全栈技术进阶与实践

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月25日20:43:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   测试工程师:全栈技术进阶与实践https://cn-sec.com/archives/1313788.html

发表评论

匿名网友 填写信息