毕业于上海交通大學(xué),获硕士學(xué)位,现任 eBay 中國(guó)研发中心测试基础架构(QE-Infrastructure)技术主管,历任 HP 软件中國(guó)研发中心资深测试架构师、性能(néng)测试专家,Alcatel-Lucent 高级测试主管,Cisco 中國(guó)研发中心资深测试工程师等职位,具有(yǒu)超过 15 年的软件测试开发经验和技术管理(lǐ)经验,具有(yǒu)丰富的测试框架设计与自动化测试经验。曾负责建立全球大型電(diàn)商(shāng)网站的测试基础架构和和自动化测试方案,主持搭建持续集成测试生态體(tǐ)系,并负责主导无線(xiàn)路由产品的整體(tǐ)自动化测试方案、金融平台产品 SDK,测试框架设计、系统开发平台的白盒测试方案、DSP 平台自动化测试方案、轨道交通安全软件平台测试、大规模产品链的自动化部署和多(duō)个大型電(diàn)子商(shāng)務(wù)网站的自动化功能(néng),测试,API 测试与性能(néng)测试。曾在國(guó)际以及國(guó)内學(xué)术期刊上发布多(duō)篇测试管理(lǐ)和自动化测试解决方案的论文(wén),并担任“软件测试世界杯赛”的亚洲區(qū)评委。曾受邀在國(guó)际(美國(guó), 俄罗斯, 日本等)以及國(guó)内顶级技术大会(Arch Summit, CNUTCon,Tid,GITC 等 )上多(duō)次发表软件测试和 DevOps 相关的技术演讲。另外,王胜还是极客时间“软件测试 52 讲-从小(xiǎo)工到专家的实战心法”的专栏作者。
课程背景
进入敏捷2.0时代,Devops以及微服務(wù)架构受到一致的青睐,但大家发现随着服務(wù)的越来越多(duō),以及Devops下快速发布部署的要求,测试成為(wèi)最大的瓶颈,包括Google、Facebook 和eBay等國(guó)际互联网巨头的研发团队都在推行开发人员自己做测试,也就是说不会再有(yǒu)专职测试团队,原本的测试团队正逐渐向工程效率团队转型,在此过程中,工程效能(néng)团队应该如何设计和构建高效的测试基础架构和支持工具链生态體(tǐ)系来确保全局工程效能(néng)的提升就变得尤其重要,為(wèi)此我在团队内提出了“测试即服務(wù)(Test as a Service)"的架构,提倡所有(yǒu)测试相关的活动都以Web Service的形式对外提供统一接口,一方面可(kě)以方便开发人员的直接使用(yòng),而不需要知道里面具體(tǐ)的细节,让开发人员可(kě)以把有(yǒu)限的精力放在业務(wù)测试的逻辑实现上,另一方面可(kě)以规范化测试与CI/CD的接口。
培训内容
工程效能(néng)概述 |
• 工程效能(néng)的定义(由 Google 的最佳实践谈起) • 工程效能(néng)的由来与发展 • “去 QE”的行业趋势解读 • 工程效能(néng)的收益与必要性 • 工程效能(néng)的职能(néng)范围 • 工程效能(néng)团队的组织结构与人员要求 |
从互联网架构的技术演讲来看工程效能(néng)的重要性 |
• 互联网技术架构的演进与发展 • 微服務(wù)架构对研发工程效能(néng)的依赖于局限 • 自动化测试的必要性与局限性 • 敏捷 VS DevOps • DevOps、AIOps、TestOps |
工程效能(néng) 的业界 最佳实践 |
• eBay 工程效能(néng)工具链體(tǐ)系的建设 • eBay “Test As a Service”架构 • eBay 工程效能(néng)团队的建设实践 • eBay 工程效能(néng)实施的收益 |
工程效能(néng)在互联网大厂的落地案例解读 |
• 微创新(xīn):如何在 CI/CD 中处理(lǐ)大量的测试执行请求 • 微创新(xīn):如何自动化地分(fēn)析失败的自动化测试用(yòng)例 • 微创新(xīn):如何让 GUI 自动化测试适用(yòng)于多(duō)语言多(duō)版本的测试 • 微创新(xīn):如何保证 API 在的边界测试场景中的质量 • 微创新(xīn):如何解决测试中的测试数据难题 • 微创新(xīn):如何实现高效率的 API 后向兼容性测试 • 微创新(xīn):如何快速实现代码级别的性能(néng)测试 • 微创新(xīn):如何盘活各个团队和组织自行开发的小(xiǎo)工具 |
基于工程效能(néng)的 自动化测试与 与 D CI/CD |
• 分(fēn)层的测试策略的设计 • 适合互联网产品的测试策略设计 • GUI 测试 VS API 测试 • 容器技术的应用(yòng)场景 • 全局配置服務(wù)的必要性与收益 • CI/CD 流水線(xiàn)的建设 |
基于工程效能(néng)的 I GUI 测试 |
• 测试脚本的封装粒度问题 • 页面对象模型的由来以及应用(yòng) • 业務(wù)流程模型的解决的问题以及应用(yòng) • 如何提高 GUI 测试的稳定性 • 应对全球化的统一业務(wù)模型的设计与创新(xīn) • 页面对象的自动代码生成 • 行為(wèi)驱动开发 BDD 简介以及应用(yòng)场景 • 无头浏览器 Headless • 提高 GUI 自动化测试的关键技术 • 基于 AI 技术提升 GUI 测试的效率 • 基于模型的 GUI 自动化测试技术(MBT) |
基于工程效能(néng)的 I API 测试 |
• 主流 API 测试方法简介 • API 测试框架的开发与关键技术 • API 测试与 CI/CD 的高效绑定 • API 的高效性能(néng)测试方法 • API 测试的难点以及效率提升的技术手段 • 一站式 API 测试解决方案 HttpRunner • 微服務(wù)时代的 API 测试策略与工程效能(néng)提升 • 基于消费者契约的 API 测试 • 基于契约的 Mock Service 实现 API 测试依赖解耦 • Demo 分(fēn)享:Spring Cloud Contract 实例 |
基于工程效能(néng)方法论,解决测试数据准备的难题 |
• 测试中数据的复杂性与难点 • 基于实时数据创建的测试数据准备策略 • 基于 Out-of-box 的测试数据准备策略 • 测试数据准备工具的最佳实践 o 测试数据准备 V1.0 时代 o 测试数据准备 V2.0 时代 o 测试数据准备 V3.0 时代 • Test Data Service 的架构设计与实现 • 数据准备的创新(xīn)设计 o 引入 Test Data Core Service 和 Recipe o 引入 Data Quantity / Quality 管理(lǐ) o 引入 Unified Controller 接入不同 Test Data Tool • 实际案例分(fēn)享:全球大型電(diàn)商(shāng)网站测试数据的最佳实践 |
测试执行环境的设计与最佳实践 ( 根据时间调整 ) |
• 早期的测试执行环境 • 基于 Jenkins 触发测试执行 • 引入 Test Runner / Test Execution System • CI/CD 集成的设计与最佳实践 • Selenium Grid 简介与工程应用(yòng) • 基于 Selenium Grid 提高测试并行执行能(néng)力 • 基于 Jenkins Cluster 提高测试并行执行能(néng)力 • 基于 Docker 实现 Selenium Grid 的动态扩展与收缩 • 基于 Docker 实现 Jenkins Cluster 的动态扩展与收缩 • 引入 Test Report Service 生成各种测试报告 |
测试报告平台的设计与最佳实践 ( 根据时间调整) |
• 典型的 Test Report Platform 架构 • 高扩展的 Test Report Service • 引入 Story Board Test Report • Full Trace Test Report 设计与实现 • 引入 Multi-Site Comparison Report 提高 LQA 测试效率 • 引入 Test Analysis Service 提高 Defect 分(fēn)类效率 |
从代码角度提升工程效能(néng) |
• 代码的基本特征 • 代码缺陷产生的原因 • 代码级测试方法的分(fēn)类 • 完备代码级测试用(yòng)例的设计 • 代码测试覆盖率的衡量 • 代码测试覆盖率的实现原理(lǐ) • 探讨覆盖率的局限性 • 典型代码错误分(fēn)析 |