测试经理
其他
自动化测试
测试用例
可靠性测试
金融
Linux
推荐课程
average > 0 ? $model->average . '分' : '10.0分' ?>

构建卓越的可靠性测试技术保障体系——复杂软件的可靠性测试技术与实践

前华为 主任工程师/测试部部长

超过 20 年的产品质量保障及测试团队和项目管理经验,主导OS全量测试质量防护网架构规划,建立商用级OS持续集成系统;落地基于代码变更的智能测试,实现版本快速精准验证;引进启发式随机、符号执行程序行为分析、大数据及AI辅助智能化测试等技术,提高云OS的健壮性和安全性;熟悉华为IPD研发流程,主导开源项目测试质量保障流程和方法完善,持续参与华为软件测试任职标准刷新。

目前专注于开源项目的可信质量保障、智能化软件测试技术、复杂软件可靠性测试等技术探索。个人擅长产品研发过程中的团队建设、梯队培养、质量保障、测试策略、测试设计、测试度量等,曾主导华为杭州研究所测试系统工程师训练营项目,负责核心课程的开发和授课,获十佳讲师称号,也是华为大学课程认证讲师,有丰富的培训授课经验。

超过 20 年的产品质量保障及测试团队和项目管理经验,主导OS全量测试质量防护网架构规划,建立商用级OS持续集成系统;落地基于代码变更的智能测试,实现版本快速精准验证;引进启发式随机、符号执行程序行为分析、大数据及AI辅助智能化测试等技术,提高云OS的健壮性和安全性;熟悉华为IPD研发流程,主导开源项目测试质量保障流程和方法完善,持续参与华为软件测试任职标准刷新。 目前专注于开源项目的可信质量保障、智能化软件测试技术、复杂软件可靠性测试等技术探索。个人擅长产品研发过程中的团队建设、梯队培养、质量保障、测试策略、测试设计、测试度量等,曾主导华为杭州研究所测试系统工程师训练营项目,负责核心课程的开发和授课,获十佳讲师称号,也是华为大学课程认证讲师,有丰富的培训授课经验。

课程费用

6800.00 /人

课程时长

2

成为教练

课程简介

Software Defines Everything!Software Runs The World!人们正在构建超出自身管理能力的复杂智能化系统。通信、航空航天、金融、医疗等行业软件对可靠性本身要求就很高,伴随着智能化产品的难解释性、不确定性给可靠性测试设计带来更大挑战。智能软件正代替人类进行各种重大决策,系统的可靠性要求越来越高。如何验证复杂软件的可靠性设计?如何通过可靠性测试来驱动开发完善可靠性设计?本课程通过总结以OS(Linux/Android/AI车载系统/编译器等)为代表的复杂软件可靠性测试技术及优秀实践,形成体系化的课程。从传统的基于故障模型的可靠性测试技术开始,再深入到软件ABC化(AI/Big Data/Cloud Computing)后可靠性测试面临的挑战和智能化应对技术,涉及可靠性测试技术如启发式FUZZING、混沌工程、基于搜索的测试、形式化验证符号执行、AI辅助的测试用例自动生成、AI-based系统的自动化测试生成等相关论文10余篇,通过大量产学研合作的成功实践案例来引导学员理解和掌握先进的、系统化的可靠性测试方法。

目标收益

通过大量产学研合作的成功实践案例来引导学员理解和掌握先进的、系统化的可靠性测试方法。

培训对象

测试工程师、测试架构师、可靠性专项测试工程师等。

课程大纲

系统可靠性(DFR)基础 1.软件产品的质量标准
2.产品质量模型中的可靠性定义
3.广义可靠性和狭义可靠性
4.软件缺陷的相关定义和类型
5.复杂系统的可靠性需要体系化的测试来保障
6.系统可靠性的度量指标
7.狭义可靠性和可用性的关系(可靠性不高但可用性高?)
8.系统可靠性的度量方法和阶段
9.软件可靠性的避错设计(分解抽象和重用)
10.软件可靠性的避错设计(模块化)
11.软件可靠性的避错设计(模块耦合及复杂度控制)
12.软件可靠性的检错设计(主动和被动式)
13.软件可靠性的容错设计(局部容错和完全容错)
14.软件可靠性的纠错设计(纠错时机和方法)
15.IPD流程中可靠性测试软件工程(可靠性增长和确认的端到端测试)
16.案例:复杂系统的可靠性架构
17.案例:某类型软件可靠性测试方法和评估
18.案例:产品开发过程中的可靠性快速度量
复杂系统可靠性测试挑战 1.Software Defines Everything!Software Runs The World!
2.人们正在构建超出自身管理能力的系统
3.智能化产品大量使用复杂/庞大的开源软件
4.集成第三方/开源项目的测试设计过程被压缩
5.云/ABC的不确定性(难解释性)影响测试分析
6.ABC智能化系统/产品/解决方案的测试设计越来越难
7.人工测试设计存在严重的杀虫剂悖论
8.可靠性测试的三层防护网
9.智能化测试需同时解决输入域探索和输出预期判断(test oracle)的问题
10.输入域测试数据自动生成常用技术
11.输出结果的自动比较技术分类和选择
12.快速智能化的可靠性测试用例扩展技术和方法
可靠性测试防护网第一层:精准的人工设计 1.可靠性测试的正向和逆向设计
2.架构的正向测试:复杂系统可靠性架构设计评审关注点(韧性/弹性/业务连续/可持续运维)
3.可靠性软件缺陷的模式和影响及根因
4.故障模型和影响分析FMEA
5.软件的故障模式分析(SWFMEA)
6.故障模式分析之故障模式库和ECA要素
7.案例演练:业务链路得可靠性FMEA分析
8.故障注入测试的输入输出因子提取(故障触发)
9.故障注入测试的输入因子选择及去重合并
10.故障注入测试的结果检测——基于业务特征做oracle判断
11.故障注入测试的结果检测——基于系统特征做oracle判断
12.基于硬件和基于软件故障注入测试技术对比
13.硬件及驱动故障注入测试
14.软件系统故障注入测试
可靠性测试防护网第二层:随机和混沌工程测试 1.人工设计可靠性测试的不足(杀虫剂悖论,人的脑力相比复杂被测系统的局限性)
2.随机自动化测试——FUZZING
3.随机的混沌工程实验/探索测试
4.混沌工程原则
5.混沌工程和传统测试对比
6.Netflix创始的混沌工程实践
7.混沌工程关键技术
8.混沌工程技术发展趋势
9.案例:实践1——最大化注入事件的真实性
10.案例:实践2——安全混沌工程CloudStrike
11.案例:实践3——区块链共识算法上应用混沌工程
12.混沌工程常用工具框架
13.混沌工程通用架构抽象
可靠性测试防护网第三层:智能化的“全”覆盖探索测试 1.普通随机测试的盲目性会导致探索深度不够
2.“智能”的启发式随机可靠性测试
3.测试设计自动化——测试自动生成技术的分类
4.程序行为分析“全路径”的测试自动生成技术
5.“全”路径覆盖的智能化测试生成——符号执行测试
6.测试设计自动化——AI辅助的测试全自动生成
7.测试设计自动化——等效蜕变测试全自动生成
智能的基于搜索的可靠性测试(SBST技术) 1.软件工程问题的共性和本质
2.解决软工问题的搜索优化技术
3.SBST测试自动生成——爬山算法
4.SBST测试自动生成——GA算法
5.SBST技术演进趋势
6.案例:业界实践——Android应用自动探索测试 Sapienz
7.案例:业界实践——崩溃复现用例自动搜索框架 BOTSING
AI-based系统的可靠性测试 1.AI系统测试需解决的问题和挑战——难解释性、不确定性(test oracle未知)
2.AI系统的测试过程
3.AI系统用例扩展的主要方法
4.AI系统的可靠性测试——充分性度量
5.案例:AI汽车可靠性智能化测试生成技术
系统可靠性(DFR)基础
1.软件产品的质量标准
2.产品质量模型中的可靠性定义
3.广义可靠性和狭义可靠性
4.软件缺陷的相关定义和类型
5.复杂系统的可靠性需要体系化的测试来保障
6.系统可靠性的度量指标
7.狭义可靠性和可用性的关系(可靠性不高但可用性高?)
8.系统可靠性的度量方法和阶段
9.软件可靠性的避错设计(分解抽象和重用)
10.软件可靠性的避错设计(模块化)
11.软件可靠性的避错设计(模块耦合及复杂度控制)
12.软件可靠性的检错设计(主动和被动式)
13.软件可靠性的容错设计(局部容错和完全容错)
14.软件可靠性的纠错设计(纠错时机和方法)
15.IPD流程中可靠性测试软件工程(可靠性增长和确认的端到端测试)
16.案例:复杂系统的可靠性架构
17.案例:某类型软件可靠性测试方法和评估
18.案例:产品开发过程中的可靠性快速度量
复杂系统可靠性测试挑战
1.Software Defines Everything!Software Runs The World!
2.人们正在构建超出自身管理能力的系统
3.智能化产品大量使用复杂/庞大的开源软件
4.集成第三方/开源项目的测试设计过程被压缩
5.云/ABC的不确定性(难解释性)影响测试分析
6.ABC智能化系统/产品/解决方案的测试设计越来越难
7.人工测试设计存在严重的杀虫剂悖论
8.可靠性测试的三层防护网
9.智能化测试需同时解决输入域探索和输出预期判断(test oracle)的问题
10.输入域测试数据自动生成常用技术
11.输出结果的自动比较技术分类和选择
12.快速智能化的可靠性测试用例扩展技术和方法
可靠性测试防护网第一层:精准的人工设计
1.可靠性测试的正向和逆向设计
2.架构的正向测试:复杂系统可靠性架构设计评审关注点(韧性/弹性/业务连续/可持续运维)
3.可靠性软件缺陷的模式和影响及根因
4.故障模型和影响分析FMEA
5.软件的故障模式分析(SWFMEA)
6.故障模式分析之故障模式库和ECA要素
7.案例演练:业务链路得可靠性FMEA分析
8.故障注入测试的输入输出因子提取(故障触发)
9.故障注入测试的输入因子选择及去重合并
10.故障注入测试的结果检测——基于业务特征做oracle判断
11.故障注入测试的结果检测——基于系统特征做oracle判断
12.基于硬件和基于软件故障注入测试技术对比
13.硬件及驱动故障注入测试
14.软件系统故障注入测试
可靠性测试防护网第二层:随机和混沌工程测试
1.人工设计可靠性测试的不足(杀虫剂悖论,人的脑力相比复杂被测系统的局限性)
2.随机自动化测试——FUZZING
3.随机的混沌工程实验/探索测试
4.混沌工程原则
5.混沌工程和传统测试对比
6.Netflix创始的混沌工程实践
7.混沌工程关键技术
8.混沌工程技术发展趋势
9.案例:实践1——最大化注入事件的真实性
10.案例:实践2——安全混沌工程CloudStrike
11.案例:实践3——区块链共识算法上应用混沌工程
12.混沌工程常用工具框架
13.混沌工程通用架构抽象
可靠性测试防护网第三层:智能化的“全”覆盖探索测试
1.普通随机测试的盲目性会导致探索深度不够
2.“智能”的启发式随机可靠性测试
3.测试设计自动化——测试自动生成技术的分类
4.程序行为分析“全路径”的测试自动生成技术
5.“全”路径覆盖的智能化测试生成——符号执行测试
6.测试设计自动化——AI辅助的测试全自动生成
7.测试设计自动化——等效蜕变测试全自动生成
智能的基于搜索的可靠性测试(SBST技术)
1.软件工程问题的共性和本质
2.解决软工问题的搜索优化技术
3.SBST测试自动生成——爬山算法
4.SBST测试自动生成——GA算法
5.SBST技术演进趋势
6.案例:业界实践——Android应用自动探索测试 Sapienz
7.案例:业界实践——崩溃复现用例自动搜索框架 BOTSING
AI-based系统的可靠性测试
1.AI系统测试需解决的问题和挑战——难解释性、不确定性(test oracle未知)
2.AI系统的测试过程
3.AI系统用例扩展的主要方法
4.AI系统的可靠性测试——充分性度量
5.案例:AI汽车可靠性智能化测试生成技术

活动详情

提交需求