课程大纲
全员软件质量管理模型初探
• 到底什么是软件的质量
• 软件的质量问题到底谁来背锅
• 从“用户登录”测试来看测试的不可穷尽性
• 基于风险驱动的软件测试策略
• 自动化测试不是银弹
从大型网站技术架构的演进来看测试策略的设计
• 资深测试人员必须掌握的架构知识
• 分布式架构的发展和测试策略
• 微服务架构的发展和测试策略
• 冰淇淋测试策略
• 金字塔测试策略
• 菱形测试策略
• ”去QE“策略的利与弊
软件质量提升的最佳实践
• 软件质量的挑战与难点
• 全员软件质量管理模型的核心理念与落地实践
• 根据被测产品架构选择最佳的测试策略
• 如何充分利用自动化测试技术
• 如何避免过度依赖于自动化测试技术
• 哪些项目适合自动化测试
• 哪些测试最适合开发人员自己做
• 开发人员自己做测试的局限性以及解决方案
• 测试基础架构的建设
分层测试策略设计
• 代码级别的软件质量
• 集成级别的软件质量
• 系统级别的软件质量
• 发布级别的质量
• 运维级别的软件质量
企业级GUI自动化测试技术精要
• 测试脚本的封装粒度问题
• 页面对象模型的由来以及应用
• 业务流程模型的解决的问题以及应用
• 如何提高GUI测试的稳定性
• 应对全球化的统一业务模型的设计与创新
• 页面对象的自动代码生成
• 无头浏览器Headless
• 提高GUI自动化测试的关键技术
• 基于模型的GUI自动化测试技术(MBT)
• 案例分享:大型互联网电商的GUI测试基础架构的设计
企业级API自动化测试技术精要
• 最原始的API测试框架
• API测试框架的开发与关键技术
• API测试的数据准备
• API测试与CI/CD的集成
• API的并发测试
• API的性能测试
• API测试的难点与解决思路:数据传递
• API测试的难点与解决思路:顺序调用
• API测试的难点与解决思路:异步API
• API测试的难点与解决思路:API的后向兼容性
• API测试一站式解决方案:HttpRunner使用 (Python)
微服务时代的测试方法
• 微服务架构下的API测试挑战
• 基于消费者契约的API测试
• 基于契约的Mock Service实现API测试依赖解耦
• 基于消费者契约的契约捕获
• 基于消费者契约的实际案例解析
企业级自动化测试中测试数据难题的解决思路
• 测试中数据的复杂性与难点
• 基于实时数据创建的测试数据准备策略
• 基于Out-of-box的测试数据准备策略
• 测试数据准备工具的最佳实践
• Test Data core service设计哲学
• Test Data Service的架构设计与实现
• 数据准备的创新设计
• 实际案例分享:全球大型电商测试数据的最佳实践
企业级自动化测试执行环境的设计与最佳实践
• 早期的测试执行环境
• 基于Jenkins触发测试执行
• 引入Test Runner / Test Execution System
• CI/CD集成的设计与最佳实践
• 基于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分类效率
代码级的软件质量保证
• 代码的基本特征
• 代码缺陷产生的原因
• 代码错误的分类
• 代码级测试方法的分类
• 完备代码级测试用例的设计
• 代码测试覆盖率的衡量
• 代码测试覆盖率的实现原理
• 探讨覆盖率的局限性
业界前沿测试管理经验
• 敏捷开发模式下的敏捷测试管理
• “去QE”时代下的测试管理
• 测试驱动开发(TDD)的测试管理实践
• 行为驱动开发(BDD)的测试管理实践
• 基于Test as a Service架构的测试管理
• DevOps和TestOps时代的测试管理
• 测试工具应用商店的实践与管理