服务热线

400-600-2138

对抗软件瑕疵的最佳实践

收藏课程
课程编号:54514 时间:2012年04月23日-24日 讲师:张银奎 地点:上海
学习费用:5800 元/位
用手机看:
课程编号 开课日期 地点 培训天数 选择报名

培训对象:

软件团队的经理,项目负责人,架构师,程序员,测试经理,测试人员

课程收益:

课程大纲:

开课时间:2012-04-23 授课时间:2012年4月23-24 日

开课地区: 上海市 课程费用:5800 元/人

学习对象

软件团队的经理,项目负责人,架构师,程序员,测试经理,测试人员

课程背景:

软件瑕疵是软件工程的大敌,无数软件项目因为不断涌现的瑕疵而反复延迟,甚至干脆放弃。在已经发布给用户的软件产品中,几乎无一不还存留着瑕疵,这些瑕疵轻者影响用户体验和产品销量,重者导致产品召回,甚至事故和灾难…….

如何对抗软件瑕疵呢?很多软件团队仍然使用着很原始的做法,好像在家里打蚊子一样,发现一只,消灭一只,缺乏科学和系统的方法。

本培训紧密围绕软件瑕疵这一主题,从软件瑕疵的成本曲线讲起,基于在集成电路领域广被认可的Design For Test(D4T)和Design For Debug(D4D)思想,系统介绍如何从产品的设计阶段就开始规划对抗软件瑕疵的基础设施,如何在产品编码和实现阶段利用这些设施及早发现瑕疵,如何在测试阶段更快的降低瑕疵数量,以及如何在产品发布后及时发现和修复残留的瑕疵。

本培训第一次将对抗软件瑕疵的主要理论和成功方法集成到一起,精选多个实际的软件项目和产品作为案例,结合讲师在软件领域的十几年工作经验,理论与实践紧密结合,让您在轻松的故事和有趣的演示中领会到成功的方法和经验。

课程大纲:

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

在集成电路领域,发现和修正瑕疵的成本更高,于是Design for Debug(D4D)和Design for Test(D4T)思想在这一领域

出现了,并得到广泛的应用。它山之石可以攻玉,本部分将系统介绍D4D 和D4T 思想的

内涵、发展历史和在CPU 领域的应用案例。

Day2

Topic5

可调试设计——

设计阶段的最佳实践 想到的则不难

可调试架构

基本原则

日志

输出调试信息

沉重的 print

转储

基类

调试模型

设计方案:代码的可追溯性

设计方案:数据的可追溯性

WMI

可配置性

可观察性

验证机制

追踪机制

不可调试代码

这一部分将介绍如何在软件项目的架构设计阶段贯彻 D4T 和D4D 思想,规划对抗软件瑕疵的基础设施,包括如何实现数据和代码的可追溯性,可观察性,自检设施和错误记录、错误通知和错误报告设施。

Day2

Topic6

程序员强则软件

强——开发阶段的最

佳实践 程序员的自我修养

“免加班秘诀”

TDD

Kent Beck

保证随时测试

吃“狗粮”

调试设施与生俱来

保证随时调试

调试与软件工程

支持调试

保证随时运行

典型错误

安全编程

软件的根本在于代码,代码的质量在于程序员。本部分从程序员的角度,探讨如何降低

DKLOC(每千行代码的缺欠数),从根本上少种下缺欠,早发现缺欠,保证软件质量。

本部分还将分析一些著名产品中的软件瑕疵,思考看似简单的编码问题如何导致严重

的后果。

Day2

Topic7

观止

(Showstopper)——

测试阶

段的最佳实践

根本难题

启发

钓鱼法则

80/20 法则

敏捷宣言

敏捷测试

Cem Kaner

Context Driven Testing

殖虫

突变测试

Beta 测试

也要测试调试版本

实例演示:基于模型的自动测

试方法(MBT)

测试无止境

当软件项目进入测试阶段后,软件瑕疵开始成为整个团队所关注的焦点,测试小组想法

设法找到瑕疵,程序员绞尽脑汁消除瑕疵,人们为瑕疵而争执,为瑕疵而战斗。越临近产品发布,这场战斗变得越紧张。本部分将以NT 团队开发NT 3.1 的故事为背景,探讨

测试与开发人员该如何同舟共济,密切配合,一起对抗软件瑕疵。

Day2

Topic8

自动诊断和远程

报告——产品支持

阶段的最佳实践

产品期瑕疵

WER

WER 客户端

WER 服务器端

WER 服务

应用程序转储

遥感(Telemetry)

用户反馈

AutoBug

CEIP

Jon 谈收益

实例分析:WDI

发布后软件可能运行在千差万别的用户环境中,测试阶段没有发现的瑕疵可能在用户

那里暴漏出来。对于发生在产品期的软件瑕疵该如何寻找根源呢?本部分将以微软产 品中广泛使用WER(Windows Error Report)机制为基础,详细介绍软件的自

动诊断和远程报告技术。

师资力量

张银奎 —— 业内资深工程师、内核调试专家

《软件调试》一书的作者,《程序员》杂志调试之剑栏目作者。毕业于上海交通大学信息与控制工程系,长期从事软件开发和研究工作,对 IA-32 架构、操作系统内核、驱动程序、尤其是软件调试有较深入研究。从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(2008年中国软件技术大会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。翻译(合译)作品有《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。

讲师介绍:

在线报名:

客户报名咨询:020-39971893     400 600 2138

近期相关公开课:

报名服务流程:

中培网优势:

热门课程

会员登录

勾选即代表确认同意《用户协议》

没有账号?立即注册

忘记密码?