课程简介
通过总结业界标杆公司的自动化测试方法、自动化测试架构技术、自动化测试优秀实践形成系统化的课程。赋能内容包括传统的自动化测试技术(测试执行自动化),也包含热门的智能自动化技术(测试设计自动化)。课程以大量的实践案例来引导学员理解和掌握先进的自动化测试方法。
目标收益
自动化不一定是智能化,但智能化一定是自动化的。通过本课程可以掌握自动化测试理论和方法,洞察最新的智能化测试技术。帮助完善测试架构师的能力栈,助力学员从测试效率和全质量属性上去构建卓越的自动化测试保障体系。
培训对象
自动化测试工程师、中高级测试工程师、测试架构师;
课程大纲
自动化测试趋势 |
1.自动化技术贯穿在软件研发的进化史中——开发、测试、运维 2.自动化测试的几个概念和层级——自动化不一定智能化,但智能化一定是自动化 3.自动化(计算机)应用在不同测试活动环节 4.软件开发生命周期中的自动化技术辅助 5.自动化测试优势发挥和智能化质量内建——执行最适合自动化/设计也需要自动化(DFx) 6.自动化/智能化测试分级——协同、自动化、智能化 7.自动化测试的优缺点 8.自动化测试的分层和金字塔模型演变 9.自动化测试的成本和收益 10.自动化测试质效评估维度 11.自动化测试的决策和影响因素 12.早期自动化测试技术发展 13.自动化测试生命周期/E2E流程 14.IPD流程中的自动化测试角色和分工配合 15.敏捷中的自动化测试挑战——脆弱的测试 16.敏捷中使用自动化测试作为质量防护 17.敏捷中自动化测试的持续部署 18.自动化测试对敏捷开发生产力的影响 |
自动化测试技术 |
1.自动化测试的本质——IBO模型驱动的自动化 2.好的自动化测试用例评判标准 3.自动化测试引擎——脚本怎么驱动? 4.自动化脚本设计技术——脚本怎么写? 5.自动化比较技术——Test oracle的定义和挑战 6.自动化比较技术——Test oracle的完整性和准确性 7.自动化比较技术——Test oracle的其他挑战 8.自动化比较技术——Test oracle的启发式策略 9.自动化比较技术——Test oracle结果比较策略 10.自动化比较技术——Test oracle的平衡(敏感和健壮的冲突) 11.自动化比较技术——不同比较策略差异 12.自动化比较技术——比较器和过滤器 13.自动化比较技术——单一功能过滤器举例 |
自动化测试架构基础 |
1.软件架构的概念 2.自动化测试架构的需求和定义 3.帮助自动化测试更好实施的准则 4.自动化测试件(testware)的管理 5.好的自动化测试的对外表现 6.自动化测试框架的架构——通用架构 7.自动化测试框架分类 8.自动化测试框架的功能 9.X-Driven Framework自动化测试框架对比 10.自动化测试替身(Test Double)的价值 11.自动化测试替身的分类和选择策略 12.自动化测试框架的运行时异常处理 13.自动化测试框架的日志系统 14.自动化测试框架的报告生成 |
自动化测试架构实践 |
1.自动化测试架构的需求分析5维度 2.好的自动化测试架构评判标准 3.合理的Testware文件系统架构 4.规范的Testware件配置管理 5.模块化的Testware自动化架构组织 6.自动化测试框架设计原则 7.自动化框架关键模块AW抽象原则和步骤 8.自动化框架应支持数据驱动参数的自动组合 9.灵活按需的自动化测试过程控制 10.自动化测试架构的建模和控制点设计 11.自动化测试框架的详细分析和设计步骤 12.自动化测试架构的可测试性设计范围 13.自动化测试架构的可测试性设计SOLID原则 14.AW和数据表驱动分析设计步骤 15.自动化测试架构中输入的变化性设计——破除杀虫剂悖论 16.不同种类自动化测试套通常的oracle策略选择 17.常规测试test oracle策略的适用场景对比 18.变化性输入测试test oracle策略的适用场景对比 19.自动化测试用例执行的前后处理要求 20.自动化测试技术债务举例和解决 21.债务解决:线性脚本和录制回放类脚本的改造 22.债务解决:脆弱测试需解决耦合的外部依赖 23.债务解决:可解释性差的坏味道代码 24.债务解决:可维护性差的坏味道代码——重复代码 25.债务解决:可维护性差的坏味道代码——结构重复优化例子 26.债务解决:可维护性差的坏味道代码——混乱的文件系统和参数 27.债务解决:可维护性差的坏味道代码——复杂的测试逻辑 28.债务解决:不可信赖的坏味道代码 29.债务解决:自动化测试执行的加速 30.自动化测试的度量维度和度量项 31.自动化测试需要反复执行放大收益 32.自动化ROI度量举例 33.稳定后的自动化缩短执行时间 34.自动化测试实施经验警句 |
智能化测试技术 —— 挑战 |
1.Software Defines Everything!Software Runs The World! 2.智能化产品大量使用复杂/庞大的开源软件 3.集成第三方/开源项目的测试设计过程被压缩 4.云/ABC的不确定性(难解释性)影响测试分析 5.ABC智能化系统/产品/解决方案的测试设计越来越难 6.自动化测试(执行)存在严重的杀虫剂悖论 7.智能化测试需同时解决输入域探索和输出预期判断的问题 |
智能化测试技术 —— 从随机到混沌工程 |
1.ABC背景下的可靠性测试三层防护——人工+随机+智能化 2.随机自动化测试——FUZZING 3.随机的混沌工程实验/探索测试 4.混沌工程原则 5.混沌工程发展时间线 6.混沌工程和传统测试对比 7.混沌工程的成熟度评估 8.Netflix创始的混沌工程平台实践 9.混沌工程关键技术 10.混沌工程技术发展趋势 11.混沌工程技术相关文献 12.混沌工程自动化实践1——最大化注入事件的真实性 13.混沌工程自动化实践2——安全混沌工程CloudStrike 14.混沌工程常用工具框架一览 15.阿里混沌工程框架ChaosBlade——丰富的分层故障注入场景 16.混沌工程自动化平台通用架构抽象 |
智能化测试技术 —— 启发式随机和符号执行 |
1.普通随机测试的盲目性会导致探索深度不够 2.“智能”的启发式随机可靠性测试 3.程序行为分析“全路径”的测试自动生成技术 4.智能化测试生成工具——符号执行测试 |
智能化测试技术 —— 测试全自动生成 |
1.测试设计自动化——测试自动生成技术的分类 2.测试设计自动化——AI辅助的测试全自动生成 3.测试设计自动化——等效蜕变测试全自动生成 |
智能化测试技术 —— 基于搜索的测试(SBST) |
1.软件工程问题的共性和本质 2.解决软工问题的搜索优化技术 3.SBSE领域的蓬勃发展 4.SBST的位置和研究领域 5.测试数据自动生成常用技术 6.SBST测试自动生成——爬山算法 7.SBST测试自动生成——GA算法 8.SBST技术演进趋势 9.SBST技术业界实践——Android应用自动探索测试 Sapienz 10.SBST技术业界实践——崩溃复现用例自动搜索框架 BOTSING 11.SBST的相关工具 12.SBST的相关工具——Java单元测试自动生成 EvoSuite 13.SBST的相关工具——Android应用自动探索 Sapienz |
智能化测试技术 —— AI系统的测试生成 |
1.AI系统测试需解决的问题和挑战 2.AI系统的测试过程 3.AI系统用例扩展的主要方法 4.AI驾驶测试技术洞察 5.AI系统的可靠性测试——充分性度量 6.AI汽车可靠性自动化测试概述 7.AI自动驾驶汽车的图像“变异”方法 8.以神经元覆盖率为用例有效性启发策略 9.基于图像变异合成+贪婪算法增加神经元覆盖率 10.控制变质关系创建Test Oracle参照 11.控制变异幅度避免过度变异 12.其他AI-Based系统测试借鉴意义 |
智能化测试技术 —— 测试分析的自动化 |
1.迭代影响分析和策略自动生成 2.兼容性测试影响分析自动化——变更识别和防护 3.精准影响分析及测试执行自动化 4.自动化用例健壮性分析自动化提升用例稳定度 5.缺陷自动分析和定位 6.缺陷自动分析和定界 |
智能化测试技术 —— 其他 |
1.环境0等待之组网自动化技术 2.云自动化助力全量测试工厂加速 |
自动化测试趋势 1.自动化技术贯穿在软件研发的进化史中——开发、测试、运维 2.自动化测试的几个概念和层级——自动化不一定智能化,但智能化一定是自动化 3.自动化(计算机)应用在不同测试活动环节 4.软件开发生命周期中的自动化技术辅助 5.自动化测试优势发挥和智能化质量内建——执行最适合自动化/设计也需要自动化(DFx) 6.自动化/智能化测试分级——协同、自动化、智能化 7.自动化测试的优缺点 8.自动化测试的分层和金字塔模型演变 9.自动化测试的成本和收益 10.自动化测试质效评估维度 11.自动化测试的决策和影响因素 12.早期自动化测试技术发展 13.自动化测试生命周期/E2E流程 14.IPD流程中的自动化测试角色和分工配合 15.敏捷中的自动化测试挑战——脆弱的测试 16.敏捷中使用自动化测试作为质量防护 17.敏捷中自动化测试的持续部署 18.自动化测试对敏捷开发生产力的影响 |
自动化测试技术 1.自动化测试的本质——IBO模型驱动的自动化 2.好的自动化测试用例评判标准 3.自动化测试引擎——脚本怎么驱动? 4.自动化脚本设计技术——脚本怎么写? 5.自动化比较技术——Test oracle的定义和挑战 6.自动化比较技术——Test oracle的完整性和准确性 7.自动化比较技术——Test oracle的其他挑战 8.自动化比较技术——Test oracle的启发式策略 9.自动化比较技术——Test oracle结果比较策略 10.自动化比较技术——Test oracle的平衡(敏感和健壮的冲突) 11.自动化比较技术——不同比较策略差异 12.自动化比较技术——比较器和过滤器 13.自动化比较技术——单一功能过滤器举例 |
自动化测试架构基础 1.软件架构的概念 2.自动化测试架构的需求和定义 3.帮助自动化测试更好实施的准则 4.自动化测试件(testware)的管理 5.好的自动化测试的对外表现 6.自动化测试框架的架构——通用架构 7.自动化测试框架分类 8.自动化测试框架的功能 9.X-Driven Framework自动化测试框架对比 10.自动化测试替身(Test Double)的价值 11.自动化测试替身的分类和选择策略 12.自动化测试框架的运行时异常处理 13.自动化测试框架的日志系统 14.自动化测试框架的报告生成 |
自动化测试架构实践 1.自动化测试架构的需求分析5维度 2.好的自动化测试架构评判标准 3.合理的Testware文件系统架构 4.规范的Testware件配置管理 5.模块化的Testware自动化架构组织 6.自动化测试框架设计原则 7.自动化框架关键模块AW抽象原则和步骤 8.自动化框架应支持数据驱动参数的自动组合 9.灵活按需的自动化测试过程控制 10.自动化测试架构的建模和控制点设计 11.自动化测试框架的详细分析和设计步骤 12.自动化测试架构的可测试性设计范围 13.自动化测试架构的可测试性设计SOLID原则 14.AW和数据表驱动分析设计步骤 15.自动化测试架构中输入的变化性设计——破除杀虫剂悖论 16.不同种类自动化测试套通常的oracle策略选择 17.常规测试test oracle策略的适用场景对比 18.变化性输入测试test oracle策略的适用场景对比 19.自动化测试用例执行的前后处理要求 20.自动化测试技术债务举例和解决 21.债务解决:线性脚本和录制回放类脚本的改造 22.债务解决:脆弱测试需解决耦合的外部依赖 23.债务解决:可解释性差的坏味道代码 24.债务解决:可维护性差的坏味道代码——重复代码 25.债务解决:可维护性差的坏味道代码——结构重复优化例子 26.债务解决:可维护性差的坏味道代码——混乱的文件系统和参数 27.债务解决:可维护性差的坏味道代码——复杂的测试逻辑 28.债务解决:不可信赖的坏味道代码 29.债务解决:自动化测试执行的加速 30.自动化测试的度量维度和度量项 31.自动化测试需要反复执行放大收益 32.自动化ROI度量举例 33.稳定后的自动化缩短执行时间 34.自动化测试实施经验警句 |
智能化测试技术 —— 挑战 1.Software Defines Everything!Software Runs The World! 2.智能化产品大量使用复杂/庞大的开源软件 3.集成第三方/开源项目的测试设计过程被压缩 4.云/ABC的不确定性(难解释性)影响测试分析 5.ABC智能化系统/产品/解决方案的测试设计越来越难 6.自动化测试(执行)存在严重的杀虫剂悖论 7.智能化测试需同时解决输入域探索和输出预期判断的问题 |
智能化测试技术 —— 从随机到混沌工程 1.ABC背景下的可靠性测试三层防护——人工+随机+智能化 2.随机自动化测试——FUZZING 3.随机的混沌工程实验/探索测试 4.混沌工程原则 5.混沌工程发展时间线 6.混沌工程和传统测试对比 7.混沌工程的成熟度评估 8.Netflix创始的混沌工程平台实践 9.混沌工程关键技术 10.混沌工程技术发展趋势 11.混沌工程技术相关文献 12.混沌工程自动化实践1——最大化注入事件的真实性 13.混沌工程自动化实践2——安全混沌工程CloudStrike 14.混沌工程常用工具框架一览 15.阿里混沌工程框架ChaosBlade——丰富的分层故障注入场景 16.混沌工程自动化平台通用架构抽象 |
智能化测试技术 —— 启发式随机和符号执行 1.普通随机测试的盲目性会导致探索深度不够 2.“智能”的启发式随机可靠性测试 3.程序行为分析“全路径”的测试自动生成技术 4.智能化测试生成工具——符号执行测试 |
智能化测试技术 —— 测试全自动生成 1.测试设计自动化——测试自动生成技术的分类 2.测试设计自动化——AI辅助的测试全自动生成 3.测试设计自动化——等效蜕变测试全自动生成 |
智能化测试技术 —— 基于搜索的测试(SBST) 1.软件工程问题的共性和本质 2.解决软工问题的搜索优化技术 3.SBSE领域的蓬勃发展 4.SBST的位置和研究领域 5.测试数据自动生成常用技术 6.SBST测试自动生成——爬山算法 7.SBST测试自动生成——GA算法 8.SBST技术演进趋势 9.SBST技术业界实践——Android应用自动探索测试 Sapienz 10.SBST技术业界实践——崩溃复现用例自动搜索框架 BOTSING 11.SBST的相关工具 12.SBST的相关工具——Java单元测试自动生成 EvoSuite 13.SBST的相关工具——Android应用自动探索 Sapienz |
智能化测试技术 —— AI系统的测试生成 1.AI系统测试需解决的问题和挑战 2.AI系统的测试过程 3.AI系统用例扩展的主要方法 4.AI驾驶测试技术洞察 5.AI系统的可靠性测试——充分性度量 6.AI汽车可靠性自动化测试概述 7.AI自动驾驶汽车的图像“变异”方法 8.以神经元覆盖率为用例有效性启发策略 9.基于图像变异合成+贪婪算法增加神经元覆盖率 10.控制变质关系创建Test Oracle参照 11.控制变异幅度避免过度变异 12.其他AI-Based系统测试借鉴意义 |
智能化测试技术 —— 测试分析的自动化 1.迭代影响分析和策略自动生成 2.兼容性测试影响分析自动化——变更识别和防护 3.精准影响分析及测试执行自动化 4.自动化用例健壮性分析自动化提升用例稳定度 5.缺陷自动分析和定位 6.缺陷自动分析和定界 |
智能化测试技术 —— 其他 1.环境0等待之组网自动化技术 2.云自动化助力全量测试工厂加速 |