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