课程介绍
本课程围绕“大型软件企业测试开发技术”这一主题,系统性地梳理了测试工程师必备的知识体系和技术技能,主要讲解GUI/API自动化测试框架设计与最佳实践、微服务测试的最佳实践、测试数据准备的行业最佳实践、测试框架选型、BDD和TDD的行业应用、测试基础架构和DevOps的建设与设计、性能测试以及全链路压测的基础知识、代码级单元测试的关键技术、测试新技术(人工智能,大数据和云计算在测试领域的落地实践)等内容。课程目标是帮助测试人员站在行业顶级公司的测试技术前沿,迅速提升技术视野,掌握业界的主流测试工具平台,在技术实力和工程实践两方面双管齐下,加速提升企业的全局测试能力,并帮助企业培养全栈测试工程师和测试技术骨干。
课程收益
深入理解并掌握高效测试策略的设计准则以及落地实践
深入理解并掌握GUI/API自动化测试技术的最佳实践
深入理解并高效利用业界先进测试平台和测试私有云的最佳实践
深入理解并掌握企业级测试基础架构的设计与实现
深入理解并掌握行业领先的测试数据准备方法以及行业应用
理解并掌握行业领先的性能测试方法和技术
理解并掌握代码级测试的关键技术与设计策略
掌握测试工程师持续发展的核心能力
从企业实际应用的视角,掌握人工智能,大数据以及云计算在测试领域的落地应用与案例
从资深测试人员的角度深入理解大型网站技术架构发展与技术演进
课程对象
测试工程师,测试开发工程师和测试技术骨干成员
测试技术负责人,测试经理和测试总监
测试架构师
DevOps资深工程师和技术负责人
工程效能团队负责人和工程效能研发工程师
开发工程师,开发技术经理,开发技术负责人
技术创新团队的工程师
课程大纲
模块1:从“软件测试”向“测试开发”的转型
系统性梳理了“软件测试”向“测试开发”转型过程中的主要技术障碍和难点,并指明正确的技术方向,同时以业界知名公司(Google,eBay,BAT)的实际案例来深入讲解核心的思路与具体实践
传统软件测试方法的弊端
测试左移的必要性
如何实现测试左移
自动化测试不是“银弹”
地毯式轰炸 VS精准打击
LessisMore原则在测试设计中的应用
高效的测试必须要站在巨人的肩膀之上:如何利用业界的先进实践
从测试框架到测试平台
从测试平台到测试服务化
从测试服务化到测试中台建设
“去QE”战略的得与失
测试策略的选型
基于架构的测试 VS基于功能的测试
软件测试的行业趋势解读
回归测试的初心
模块2:资深测试工程师必须掌握的架构知识
系统性梳理了测试架构师和资深测试工程师必须掌握的软件系统架构的核心知识体系,剖析了大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理与发展历程,从高性能、高可用、伸缩性和可扩展性等四个维度对大型网站架构进行了有针对性地深度剖析,弥补了测试工程师相比开发工程师以及架构师之间知识结构上的短板,并且从测试的视角对架构的测试策略进行了解读,为更好的测试设计打下坚实的架构知识基础。
测试架构师视角的大型网站架构设计
业务驱动下的大型网站技术架构的技术演进
分布式架构
微服务架构
服务网格
深入浅出网站高性能架构设计
深入浅出网站高可用架构设计
深入浅出网站伸缩性架构设计
深入浅出网站可扩展性架构设计
模块3:GUI自动化测试技术精要与工具选型
GUI自动化测试可以说是自动化测试最早的应用领域,也是测试工程师最常会接触到的测试实践。 本课程会从最基础的GUI测试谈起,用最直白的语句讲解GUI测试框架设计与发展的种种困境与突破,见证GUI测试框架从雏形走向高效的历程。同时还涉及这些框架在大型电商网站的具体实践与落地,并梳理了影响GUI自动化测试稳定性的关键因素并给出切实可行的技术解决方案。另外对于电商业务全球化发展所带来的测试挑战,也给出了业内的最佳实践。 最后还谈论了GUI自动化测试中的一些创新设计和方法。
如何构建高效,低维护成本的GUI自动化测试用例
测试用例脚本封装粒度的问题
从页面对象模型到业务流程模型
GUI测试脚本的自动生成技术初探
影响GUI测试用例稳定性的主要因素与应对策略
无头浏览器在GUI测试中的应用
行为驱动开发BDD的应用与局限性
超越BDD的GUI测试方案初探
人工智能AI在GUI自动化测试中的应用与落地
基于模型MBT在GUI自动化测试中的实践
模块4:API自动化测试技术精要与工具选型
面对GUI自动化测试普遍投入产出比(ROI)不高的窘境,现在互联网企业逐渐将测试重点从GUI移到了API。这里我同样会从最基础的API测试谈起,循序渐进,以兼具实用性和前瞻性的方式讲解API测试的关键技术。最后对API测试的企业级应用场景进行系统性梳理,给出测试策略设计与最佳实践。
主流API测试工具(Postman和JMeter)的原理与使用技巧
API测试工具的局限性
基于代码的API测试的必要性
设计与构建高效的API自动化测试框架
数据驱动在API测试中的应用
API的并发测试和压力测试
API测试的数据准备
API测试中的依赖解耦
复杂场景的API测试(连续API调用以及API调用之间的参数传递)
API调用时序的测试难点与应对策略
异步API的测试难点与应对策略
API后向兼容性测试的难点与解决方案
模块5:自动化测试中测试数据难题的解决思路
如同然界生物物竞天择的自然进化规律一样,测试数据准备也基本遵循类似的规律。这里将以测试数据准备的痛点为切入点,探讨测试数据准备的技术演进,并讨论最终如何发展成为测试数据平台的历程。其中还会涉及很多测试数据准备的创新设计,相信很多内容都可以很方便地被你所在的项目所应用。
测试中数据的复杂性与难点
基于实时数据创建的测试数据准备策略
基于预先生成的测试数据准备策略
测试数据生成的基本技术
复杂数据的生成技术
性能测试数据的批量生成技术
测试数据一致性,准确性和及时性的要求
测试数据工具的设计与业界最佳实践
测试数据准备 V1.0时代
测试数据准备 V2.0时代
测试数据准备 V3.0时代
Test Data Service的架构设计与实现
测试数据准备的创新设计
模块6:测试执行环境的设计与最佳实践
测试基础架构是测试架构师以及资深测试开发人员必须能够驾驭的重要环节。这里的内容会与当下主流行的DevOps和CI/CD有很多交集,并对DevOps和CI/CD的成功与否有着决定性的关键作用。同样地,测试基础架构的发展也不是一蹴而就的,同样是从一些简单的架构形式逐渐演变发展来适应高速发展的业务需求,在此我会从0到1,深入剖析大型互联网企业的测试基础架构设计以及其原始驱动力,主要探讨测试执行环境设计、测试报告平台设计以及如何与CI/CD的集成等内容,其中还会涉及很多具有前瞻性的设计创新。同时会介绍业界先进的商业工具的原理和使用。
测试执行环境的概念
测试基础架构的概念
早期的测试执行环境
测试执行服务的设计与应用
基于Jenkins触发测试执行
基于 Selenium Grid 提高测试并行执行能力
基于 Jenkins Cluster 提高测试并行执行能力
基于 Docker 实现 Selenium Grid 的动态扩展与收缩
基于 Docker 实现 Jenkins Cluster 的动态扩展与收缩
构建基于私有云(Cloud)的测试基础架构
云测服务的设计思路与原理
业界最佳实践:无缺测试云的案例解读
模块7:测试报告服务的设计与最佳实践
详细介绍All-in-one的测试报告设计策略,讲解如何实现全栈测试报告。
引入 Test Report Service 生成各种测试报告
典型的 Test Report Platform 架构
全栈测试报告的优势与关键技术
基于故事版的GUI自动化测试报告
设计Multi-Site Comparison Report 提高 LQA 测试效率
人工智能AI技术在测试用例执行结果分析中的应用与落地
模块8:测试新技术(基于大数据和机器学习的测试方法与实际案例)
面对各种新的测试方法论,测试架构师以及优秀的测试工程师必须做到胸有成竹,这里的内容选取了当下比较热门的探索式测试、测试驱动开发(TDD)、与行为驱动开发(BDD)、精准测试、基于模型的测试(MBT)以及人工智能(AI)在测试领域的应用为主题,讲述各自解决的问题和目前主流的工具,相信会让你有眼前一亮的感觉,以此帮助你拓展思路以及知识面。
再谈探索式测试
测试驱动开发(TDD)
行为驱动开发(BDD)
基于模型(MBT)的测试与大数据技术的结合
人工智能(AI)在测试领域的应用
机器学习在GUI自动化测试上的应用与实践
另辟蹊径的对象识别技术在GUI自动化控件识别上的应用
如何利用大数据技术来帮助确定测试的范围
基于模式识别的失败测试用例分析技术
模块9:性能测试的行业最佳实践
性能测试本身是个非常庞大的主题并且具有很强专业性的领域, 首先我会从0到1的入门者视角,系统性地对性能测试的方法以及应用领域进行阐述,并抛弃传统教科书纯理论讲解的形式,以通俗易懂的实例解释软件的各种性能指标,使你对这些晦涩难懂或者长期以来模棱两可的概念有本质清晰的认识。随后我从实战的角度对前端和后端性能测试工具的基本原理进行阐述,并基于LoadRunner讲解大型企业性能测试的规划、设计、实现的具体实例。然后我会以某全球软件公司性能测试卓越中心的实际案例来分享更多的性能测试创新实践,这部分内容大多属于首次公开,干货满满。最后谈论了大型互联网产品的全链路压测的行业实践。
不同视角的软件性能与性能指标解读
性能测试的基本方法与应用领域
后端性能测试的基本原理和工具
前端性能测试的基本原理和工具
LoadRunner的使用与工程应用
基于LoadRunner实现企业级服务器端性能测试的实践
JMeter的使用与工程应用
某知名全球软件研发中心-性能测试卓越中心实际案例与经验分享
如何0成本应用UI自动化测试脚本和API自动化测试脚本实现性能告警
高并发情况下单session的Profile方法设计
Performance Benchmark Kits 的设计
基于JMeter的全链路压测系统的设计
模块10:代码级单元测试技术的最佳实践
代码级测试通常都是由开发人员执行,但是单元测试框架选型、覆盖率统计、打桩技术选型、测试用例设计原则等内容都需要测试架构师或者资深测试工程师的全程参与,因此这里的内容会系统性阐述作为测试架构师对于代码级测试的所有知识点,为你呈现一幅包括代码测试技术入门、代码级测试方法论、代码级测试用例设计、覆盖率衡量、典型难点以及解决思路的全景技术视图。
代码的基本特征
代码缺陷产生的原因
代码错误的分类
代码级测试方法的分类
完备代码级测试用例的设计
代码测试覆盖率的衡量
代码测试覆盖率的实现原理
探讨覆盖率的局限性
典型代码错误分析
代码级测试中的广义自动化测试技术
基于变更代码的覆盖率衡量
模块11:测试管理者的“软实力”和“硬实力”
作为测试管理者,不仅需要掌握测试技术,还需要掌握很多其他领域的知识,这里我对测试管理者必备的自身能力进行了综合性的阐述。
软件测试管理者需要关注和不需要关注的事
软件测试管理者的知识能力模型
像软件测试架构师一样的思考
互联网企业与传统 IT 企业的异同及测试策略设计
QE 团队向工程效率团队转型的实践
产品测试中的沟通原则
如何基于产品特性设计合适的测试策略
DevOps与测试基础架构
模块12:软件测试项目管理的道法术器
当前软件质量所面临的问题与挑战
基于风险驱动的软件质量保障体系
测试设计中“Lessismore”原则的本质与内涵
地毯式轰炸 VS精准打击
如何实现精准打击,从架构黑盒到架构灰盒
测试思维的重要性与培养
“自动化软件测试”的误区
敏捷测试项目管理的最佳实践
传统测试项目管理的最佳实践
测试项目的度量维度
测试项目团队的组织与人才机构
测试需求分析与分解
测试项目管理的主流工具与案例
测试项目激励机制的设计
探索式测试在测试项目中的作用和地位
测试团队的梯度人才结构
如何平衡团队的自动化测试与手动业务测试的关系
软件质量的全生命周期管理与度量
现代软件测试的“角色”分配与定义
软件质量的常用度量手段
从“面向结果”到“面向过程”
测试设计的常用的评估手段和方法