对抗软件瑕疵的最佳实践
课程大纲
认证须知
开课计划
学习QQ群
常见问题
课程信息
本培训紧密围绕软件瑕疵这一主题,从软件瑕疵的成本曲线讲起,基于在集成电路领域广被认可的Design For Test(D4T)和Design For Debug(D4D)思想,系统介绍如何从产品的设计阶段就开始规划对抗软件瑕疵的基础设施,如何在产品编码和实现阶段利用这些设施及早发现瑕疵,如何在测试阶段更快的降低瑕疵数量,以及如何在产品发布后及时发现和修复残留的瑕疵。
培训特色
整个培训理论讲解和实验演示紧密结合。
目标收益
1、了解如何从产品的设计阶段就开始规划对抗软件瑕疵的基础设施。
2、如何在产品编码和实现阶段利用这些设施及早发现瑕疵。
3、如何在测试阶段更快的降低瑕疵数量。
4、如何在产品发布后及时发现和修复残留的瑕疵。
培训对象
软件团队的经理,项目负责人,架构师,程序员,测试经理,测试人员
课程大纲
主题内容
Day1
Topic1
软件瑕疵概览
理解瑕疵
内因与表象
瑕疵分类:海森伯瑕疵,曼德
罗瑕疵,薛丁格瑕疵
谁的 Bug
Bug 的生命周期
案例分析:2003 北美大停电
Day1
Topic2
软件瑕疵的成本曲线
水手一号太空船
直接和间接成本
成本-时间曲线
NT 3.1 构建过程
串行化开发
打断构建
“打断概率-团队规模”曲线
“检入开销-团队规模”曲线
案例分析:Vista 和Win7
Day1
Topic3
思考根本——
目前方法难以解决
的问题
实例演示:寻找 Win7“发疯”
的原因
缓冲区溢出
基于 Cookie 的安全检查
标准标注语言
根本问题
技术路线
代码角斗士
糟糕的代码
瑕疵的根源
职业道德
Day1
Topic4
D4T和D4D
它山之石:从黄沙变成芯片
IC 的难题
JTAG 标准
Fuse 的作用
DFD 联盟
软件的 DFT 和DFD
NT 的经验
典型技术
目标
DTrace 简介、架构
实例分析:ETW,CLFS
Day2
Topic5
可调试设计——
设计阶段的最佳实践
想到的则不难
可调试架构
基本原则
日志
输出调试信息
沉重的 print
转储
基类
调试模型
设计方案:代码的可追溯性
设计方案:数据的可追溯性
WMI
可配置性
可观察性
验证机制
追踪机制
不可调试代码
Day2
Topic6
程序员强则软件
强——开发阶段的最
佳实践
程序员的自我修养
“免加班秘诀”
TDD
Kent Beck
保证随时测试
吃“狗粮”
调试设施与生俱来
保证随时调试
调试与软件工程
支持调试
保证随时运行
典型错误
安全编程
Day2
Topic7
观止
(Showstopper)——
测试阶
段的最佳实践
根本难题
启发
钓鱼法则
80/20 法则
敏捷宣言
敏捷测试
Cem Kaner
Context Driven Testing
殖虫
突变测试
Beta 测试
也要测试调试版本
实例演示:基于模型的自动测
试方法(MBT)
测试无止境
Day2
Topic8
自动诊断和远程
报告——产品支持
阶段的最佳实践
产品期瑕疵
WER
WER 客户端
WER 服务器端
WER 服务
应用程序转储
遥感(Telemetry)
用户反馈
AutoBug
CEIP
Jon 谈收益
实例分析:WDI