首页 > 公开课 > 软件研发 > 敏捷测试与DevOps自动化测试最佳实践

敏捷测试与DevOps自动化测试最佳实践

培训地点 北京
培训时间 5月27-30日

一、培训重点

针对培训课程内容和特色做简要介绍,系统讲解敏捷测试过程中的储备知识,熟练掌握敏捷测试过程各阶段中所用到的技能点。

课程内容包括:

敏捷测试的理解、敏捷测试的核心;

敏捷测试人员的必备素养;敏捷策略的制定、敏捷测试的实施过程;

敏捷测试过程中开展自动化测试的前提条件及约束条件;

敏捷测试自动化测试的实施:单元、接口、UI;

敏捷测试与探索测试的深入探索;

持续集成在敏捷测试中的应用;

如何高效的开展手工测试。

Devops下开展自动化测试的前提条件及约束条件;

Devops接口测试的规范及接口测试实践;

DevopsUI自动化测试的规范及接口测试实践;

自动化测试框架的设计与实现;

单元测试的方法TDD;

掌握Postman轻量化接口测试;

Python接口自动化实践(HTTP协议、Fiddler抓包、Request封装、数据库驱动框架、Mock等);

接口测试框架设计与实现;

接口测试的规范;

python与selenium很好的结合,让学习者花最短的时间实现从功能工程师至自动化测试工程师的蜕变。

二、培训特色

1.理论与实践相结合、案例分析与行业应用穿插进行;

2.专家精彩内容解析、学员专题讨论、分组研究;

3.通过全面知识理解、专题技能和实践结合的授课方式。

三、培训对象

软件测试工程师、自动化测试工程师等

四、课程收益

探索性测试、自动化测试在敏捷测试中的应用与开展

敏捷测试团队的组建与培养

五、日程安排

时间 主题 内容描述
第一天 敏捷测试的认知&敏捷测试策略 1. 你我认知的敏捷测试
  敏捷开发的原则
  敏捷测试下的,测试与开发的关系
  协同协作
2. 敏捷测试的核心关键点 
  关注用户体验、系统使用场景
  测试尽早介入
  Code review、单元测试、自动化测试
  持续集成、持续测试、随时随地测试
3. 敏捷测试人员的必要条件
  依据风险确定需求优先级
  积极引入自动化测试
  增加探索性测试的使用
  适应从冲刺到冲刺的变化
4. 敏捷测试策略
  确定被测对象测试范围
  确定测试技术(自动化测试技术)与质量标准
  明确项目的测试流程
  确定了每一种测试技术的具体使用方式
  注:包括待使用的框架和工具等
  探索测试的深度和广度;探索测试的重点和难点
  统一项目内使用的测试相关的术语
  确定了质量度量
5. 测试策略和测试计划的差异
  敏捷测试实施过程 1. 敏捷测试的实施过程
  前期项目信息收集
  确立质量目标
  确定测试类型
  确定测试工具和框架
  确定测试阶段
  确定测试度量
6. 持续改进和风险分析
  敏捷测试过程下的人员要求与测试需求的提取 1. 测试人员的思维
  用户角度
  工具辅助思维整理
7. 测试需求的分析
  明确需求的范围
  业务处理过程
  需求背后的隐式需求
8. 测试需求分析何时进行?
9. 为什么要进行测试需求分析?
  直观的需求(用例图/活动图)
  需求转变
10. 如何开展测试需求分析?
  了解和学习需求
11. 测试需求分析的成果物是什么?
  明确测试范围-------功能点
  功能的处理过程----单功能点
12. 测试需求分析的成果物是什么?
  明确测试范围
13. 需求分析和测试需求分析的区别?
  需求分析
  测试需求分析
  敏捷测试实施过程 1. 敏捷测试的实施过程
  前期项目信息收集
  确立质量目标
  确定测试类型
  确定测试工具和框架
  确定测试阶段
  确定测试度量
  持续改进和风险分析
  敏捷测试中如何高效的开展手工与自动化 1. 敏捷团队中如何高效设计测试用例
  如何精简测试用例条数:测试用例不是越多越好
  等价类设计法
  边界值设计法
  基本路径分析法
  场景设计法
  因果图设计法等
  敏捷下的自动化测试的实施 敏捷测试过程中如何构建高质量的自动化测试
1. 自动化测试的实施背景
2. 如何建立一个务实明确的自动化测试目标
  问题1:如何估算分析自动化测试效益
  问题2:如何构建高收益成本比自动化测试目标
敏捷测试下的自动化测试规范
3. 敏捷测试下自动化测试的引入要求
  自动化测试准入条件
  自动化测试适用场景
4. 敏捷测试下自动化测试范围
  分层测试:单元、接口、UI
5. 自动化测试开展时机
6. 自动化测试规范
  工具规范
  单元测试规范
  接口自动化测试规范
  UI自动化测试规范
7. 自动化测试流程
8. 项目团队
9. 风险评估
敏捷测试下的自动化测试开展
1. 确定自动化测试类型
10. 明确自动化测试活动
11. 敏捷测试过程中测试工作的开展
  单元测试框架:采用TDD,覆盖率检查,QA review UT,每次构建在CI执行
  测试数据工具: faker等
  集成测试框架
  集成测试工具:Swagger、Jmeter等
  UI功能测试框架:selenium、UFT
  性能测试:压力测试,负载测试
  安全测试:渗透测试
12. 代码单元测试方案
  基于TDD的单元测试框架编写单元测试代码
  使用Mock模拟外部依赖测试
  单元测试用例的实战
13. 接口自动化测试方案
  轻量化接口测试
  接口自动化测试框架
14. UI自动化测试方案
  UI自动化测试
  自动化测试框架
  敏捷策划中探索性测试的应用:
探索性测试策略的引入
1. 软件测试需求分析与管理
  需求分析与需求评审
1. 软件测试策略方案认知与设计
2. 常规测试策略:有点至面、流程式
3. 结构化测试流程
  探索性测试的基本过程
第二天 敏捷策划中探索性测试的应用:
探索性测试策略的系统认知
2. 探索性测试的核心
3. 探索性测试的目标
4. 探索性测试的优点
5. 自由式探索式测试
6. 基于场景的探索式测试
7. 基于策略的探索式测试
  基于反馈的探索式测试
  DevOps中如何高效的开展手工与自动化 DevOps自动化测试的开展
1. DevOps自动化测试的认知
2. DevOps下自动化测试的引入要求
  自动化测试准入条件
  自动化测试适用场景
3. DevOps下自动化测试范围
  分层测试:单元、接口、UI
4. 自动化测试开展时机
5. 自动化测试规范
  工具规范
  单元测试规范
  接口自动化测试规范
  UI自动化测试规范
6. 自动化测试流程
7. 项目团队
8. 风险评估
第三天 单元测试方法TDD 一、TDD编程单元划分定义
1. 从“用户故事”到“程序文件”划分定义
2. 程序文件分类组织到层次化文件夹
3. 从“程序文件”到“数据与函数”划分定义
4. 接口层次、函数单元粒度与访问范围大小
5. 动手实践:代码单元划分定义实践
二、TDD编程单元的测试
1. 基于编程单元代码实现的测试用例与测试覆盖率
2. 基于编程单元声明定义的测试用例与测试覆盖率
3. 好的单元测试必须遵守AIR原则
4. 编写单元测试代码遵守BCDE原则
5. 编程单元的业务依赖与技术依赖
6. 基于单元黑盒的测试脚本标准编写
7. 全面完整取值与代码路径覆盖
8. 依据单元测试脚本编写实现代码的过程
9. 执行单元测试脚本检查实现代码是否满足标准
10. 实现代码重构时必须先修改测试脚本
11. 单元测试方法之逻辑驱动测试方法
12. 动手实践:单元测试框架案例实战
三、Mock那些事
1. Mock的作用
2. 揭示mock:mock的对象、mock的目的
3. mock在测试中的应用
4. mock的注意事项
5. 动手实践:Mock动手实践
四、TDDMock的深度实践
1. 复杂问题的TDD开发模式
2. 分而治之的思维:更小单元粒度TDD
3. 单元独立测试与组合单元测试
4. mock与patch
5. mock断言的作用与实践
6. mock断言与单元测试框架断言的结合:Assert_*_with等
7. mock统计
8. 动手实践:单元测试与mock 的深度案例实践
  DevOps接口自动化测试规范 接口测试如何开展?如何规范化
1. 接口测试
  内容
  目的
2. 接口测试规范
  接口测试的原则
  接口测试的规则
  接口文档的规范
3. 接口测试用例
  测试用例编写规则
  测试用例设计思路
  测试用例设计方法
4. 测试工具
  接口测试流程
  接口测试质量评估标准
  测试用例设计思考点
  Postman实操 Postman全面了解
1. get请求
2. post请求
3. 断言
Postman实操
1. Get请求:百度搜索案例
2. Get请求案例:微信接口
3. Post请求案例:微信群发消息
4. Post请求案例:微信From表单
5. Post请求案例:公众号菜单维护
6. 局部环境变量
7. 全局变量
8. 参数传值
  Jmeter接口测试 1. 开源的力量—Jmeter
  解析引入和使用Jmeter的原因
  对比多种工具,阐述性能测试工具选型原则
  阐述Jmeter的优势和劣势
2. Jmeter重要组件
  Jmeter中的属性和变量
  Jmeter中的采样器
  Jmeter中的前置处理器和后置处理器
   通过实例演示Jmeter组件作用域
3. Jmeter案例
  Get请求:百度搜索案例
  Get请求案例:微信接口
  多接口间参数的传递
第四天 接口自动化实践 1. Fiddler抓包
  Fiddler界面介绍
  Fiddler抓包
  断点
  重定向
  过滤等
2. Requests库
  Request讲解
  Request案例
3. Unittest
4. Base函数与Request类封装
  Base函数封装
  Request类
5. 数据驱动操作
  Excel操作
  数据框架讲解
6. 数据库操作
7. Mock
  Mock简介与构造器
  Mock创建
  Mock的统计方法
  Mock对象管理
持续集成
  接口自动化框架 8. 接口自动化框架
  接口测试自动化框架的认知
  测试是自动化框架的工作流程
  测试框架的规划设计
  框架的详细设计与实现:公共配置模块的设置
  框架的详细设计与实现:通用模块的实现
  实战:接口自动化测试框架的设计
9. 手把手实现接口自动化框架
  通用模块那些事儿(DB、Http、Email、Log等)?
  requests模块再回顾
  xml的维护与操作
  excel的操作(读、写)
  数据库的操作
  实战:接口自动化测试框架的实现
10. 一步一践接口自动化框架
  测试用例的设计与组织
  测试报告的维护
  测试用例的运行
  测试结果的分析
  实践:接口自动化测试框架的运行
  DevOpsUI自动化测试规范 DevOps自动化测试的开展
1. DevOps自动化测试的认知
2. DevOps下自动化测试的引入要求
  自动化测试准入条件
  自动化测试适用场景
3. DevOps下自动化测试范围
  分层测试:单元、接口、UI
4. 自动化测试开展时机
5. 自动化测试规范
  工具规范
  单元测试规范
  接口自动化测试规范
  UI自动化测试规范
6. 自动化测试流程
7. 项目团队
8. 风险评估
  WebDriver Api、POM设计模式 Python基础
自动化测试基础
1. 自动化简介
2. 分层的自动化测试
3. 什么样的项目适合自动化测试
4. 自动化工具对比
5. selenium 介绍
6. 成就大神之路
7. 前端工具介绍
Python自动化环境的部署
WebDriver API
1. 从定位元素开始
2. 控制浏览器
3. 简单元素操作
4. 鼠标事件
5. 键盘事件
6. 获得验证信息
7. 设置元素等待
8. 模块驱动测试
9. 关键字驱动测试
10. 数据驱动测试
11. 模块化测试模型实例
12. 数据驱动测试实例(txt、xml文件等)
单元测试框架(可选pytest)
1. 单元测试框架的认知
2. Unittest工作原理
3. 单元测试用例的组织
4. 构建测试固件
5. 组织多个测试用例
6. 构建测试套件
7. 测试套件的优化
8. 多个测试类的控制
9. 单元测试执行的控制
10. 测试用例的跳过
  测试结果的美化、POM的设计、测试报告的发送 如何生成【漂亮的】测试结果
测试设计的升华—PO设计模式
1. 为什么使用page object(PO)设计模式
2. PageObject案例实操:基本测试用例
3. 基础场景设计
4. 场景的优化
5. 测试用例的组织
通过邮件发送测试报告
案例实战:
1. 测试案例设计
2. 以邮件的形式发送html格式的测试报告
3. 给单人发送邮件
4. 给多人发送邮件
5. 发送『漂亮的』HTML格式的邮件
  自动化框架的设计与实现 自动化框架的设计与实现
6. 配置文件
7. 数据驱动
8. 日志管理
9. 自动化框架的架构设计
10. 框架的实现之公共文件库:配置文件的操作
11. 框架的实现之公共文件库:外部文件的操作
12. 框架的实现之公共文件库:测试用例信息的管理
13. 框架的实现之公共文件库:邮件的配置
14. 测试用例(页面)的设计与实现
自动化测试模型
1. 自动化测试模型概览
2. 模块化驱动测试实例
3. 数据驱动测试实例
  敏捷测试过程中CI的应用 4. 持续集成
  软件交付痛点
  持续集成概述
  持续集成迫切需求
  持续集成的作用、过程和优势
  CI工具
  应用脚本自动化构建
  持续测试
  持续代码质量
  持续部署;持续改进
5. 敏捷开发& 持续交付
  什么是持续交付;持续交付的研发流程
  高质量的单元测试提高开发期质量的反馈
  应用CI进行每日构建以频繁地交付可工作的软件
  基本脚本的自动化部署缩短系统部署时间
6. 持续集成工具(CI)
  持续集成工具(CI)环境部署
  持续集成工具过程:创建任务、运行构建、定时执行、自动化构建

六、授课专家

李老师 计算机硕士  熟练使用QTP与LoadRunner、Selenium、Jemeter自动化测试工具,熟练掌握Vbs、shell、脚本语言,熟悉主流测试技术;熟悉QC、TD等测试管理工具;拥有丰富的测试项目管理经验;熟练搭建部署Linux、win2008主流服务器;熟悉oracle数据库部署与维护,熟练使用PL/SQL语言;熟练部署MOSS门户网站,熟悉规划设计MOSS门户网站工作流。精通课程:《测试基础》、《测试流程优化》、《loadrunner》、《敏捷测试》、《测试管理》、《测试技术》、《QuickTest professional》、《ALM&QC》、《自动化测试工具selenium》、《Testlink与缺陷管理平台整合》、《测试管理》。

程老师 中国科学院软件研究所硕士,主要研究方向:架构设计、项目管理实践、大型高可用高并发架构设计、微服务架构、软件测试等等。熟悉网络分布式计算、数据库、网络操作系统,精通J2EE、SQL、中间件服务器。在J2EE技术领域具有理论功底和实践经验。在J2ME商务应用和基于J2ME游戏开发领域具有深厚的理论功底和丰富的实战经验。主要授课方向:DevOps落地实践、微服务架构、软件构架设计、UML、GO语言、OOAD、J2EE企业级高级应用开发等。 擅长架构企业级应用;有独立工作流引擎开发、企业系统应用集成方面的丰富经验;在企业门户(Portal)、报表、工作流引擎和企业服务总线(ESB)等应用领域有深入的理论研究和充分的实践;对软件开发的整个流程有深刻认识,有很好的协作精神和学习能力。在架构下的系统设计和开发方面均有丰富经验。能够结合实际,在复杂的应用环境中选择适合的技术组合并合理利用开源中间件来降低项目开发风险、缩短开发周期、提高应用系统的可维护性和可扩展性。