资料介绍
要点
1.为什么你会遇上这些bug?因为它们是你放的。
2.在TDD(测试驱动的开发)中,你会在一个严格的反馈循环中,开发测试与生产代码。
3.TDD可能有助于避免恼人的Zune bug。
4.目标硬件瓶颈有多种形式,你可以在严格的TDD反馈循环中,用TDD来避开瓶颈。
5.TDD帮助你确保自己的代码如期望那样运行。但如果不是这样,你该如何建立一个可靠的系统?
6.TDD快速地发现小的和大的逻辑错误,防止出现bug,使最终得到较少的bug。
我们的工作方式都是编写代码,然后努力让它运行起来。先建立,然后改错。测试是以后的事,即写完代码后才要做的事。在不可预期的调试工作上,大概要花掉我们一半的时间。在日程表上,调试工作都穿着测试与集成的外衣。它是风险与不确定性的一个来源。修正了一个bug可能会产生另一个bug,有时甚至是一连串的bug。
保持调试的统计有助于预测要花多少时间才能消除bug。你要度量和管理bug。看曲线的拐点,拐点表示了趋势,告诉你最后修正的bug要比产生的多。拐点表示的是已经做的事,但你永远不知道是否在代码的某个阴暗角落还躲藏着其它的致命bug。
可制造性设计的一个方面是确定为什么你会有这些bug。答案很简单:错误是我们放进去的。这就是我们的工作方式。在开发以后的测试时,就会发现问题(图1和参考文献1)。我们在开发时会制造错误,测试的工作就是找到这些问题。只要仔细地测试,就会发现错误。开发后的测试工作意味着必须找到、修复和管理大量的错误。
图1,在开发以后做测试时,会发现缺陷
这种调试居后的编程程序是当今最常见的编程方式。先写代码,再调试它。调试居后的编程方式有风险。人都会犯错误。你既不能确定bug将在何时现身,也不能确定会花多长时间才能发现它们(图2)。
图2,人都会犯错误。你无法确定bug何时出现,以及要花多少时间才能找到它们
当发现一个bug的时间(TD)增加时,寻找bug根源的时间(TFIND)也会增加,通常增加得更多。如果从错误的引入到发现要花数小时、数天、数周,甚至数月时间,你已忘掉了当时的背景,必须开始做bug大扫荡。当你在开发周期以外发现缺陷时,就必须管理bug。对于有些bug,发现的时间不会影响修复的时间(TFIX),但有些代码的运行也可能依赖于bug,修改这些bug会造成其它bug。
短周期以及主动的测试自动化可节省时间和工作量。这时,你再不需要重复繁重而易错的手工测试。有了测试自动化,重复测试几乎不会增加额外工作量。测试自动化快速地探测出副作用,避免了对调试事务的需求。
1.为什么你会遇上这些bug?因为它们是你放的。
2.在TDD(测试驱动的开发)中,你会在一个严格的反馈循环中,开发测试与生产代码。
3.TDD可能有助于避免恼人的Zune bug。
4.目标硬件瓶颈有多种形式,你可以在严格的TDD反馈循环中,用TDD来避开瓶颈。
5.TDD帮助你确保自己的代码如期望那样运行。但如果不是这样,你该如何建立一个可靠的系统?
6.TDD快速地发现小的和大的逻辑错误,防止出现bug,使最终得到较少的bug。
我们的工作方式都是编写代码,然后努力让它运行起来。先建立,然后改错。测试是以后的事,即写完代码后才要做的事。在不可预期的调试工作上,大概要花掉我们一半的时间。在日程表上,调试工作都穿着测试与集成的外衣。它是风险与不确定性的一个来源。修正了一个bug可能会产生另一个bug,有时甚至是一连串的bug。
保持调试的统计有助于预测要花多少时间才能消除bug。你要度量和管理bug。看曲线的拐点,拐点表示了趋势,告诉你最后修正的bug要比产生的多。拐点表示的是已经做的事,但你永远不知道是否在代码的某个阴暗角落还躲藏着其它的致命bug。
可制造性设计的一个方面是确定为什么你会有这些bug。答案很简单:错误是我们放进去的。这就是我们的工作方式。在开发以后的测试时,就会发现问题(图1和参考文献1)。我们在开发时会制造错误,测试的工作就是找到这些问题。只要仔细地测试,就会发现错误。开发后的测试工作意味着必须找到、修复和管理大量的错误。
图1,在开发以后做测试时,会发现缺陷
这种调试居后的编程程序是当今最常见的编程方式。先写代码,再调试它。调试居后的编程方式有风险。人都会犯错误。你既不能确定bug将在何时现身,也不能确定会花多长时间才能发现它们(图2)。
图2,人都会犯错误。你无法确定bug何时出现,以及要花多少时间才能找到它们
当发现一个bug的时间(TD)增加时,寻找bug根源的时间(TFIND)也会增加,通常增加得更多。如果从错误的引入到发现要花数小时、数天、数周,甚至数月时间,你已忘掉了当时的背景,必须开始做bug大扫荡。当你在开发周期以外发现缺陷时,就必须管理bug。对于有些bug,发现的时间不会影响修复的时间(TFIX),但有些代码的运行也可能依赖于bug,修改这些bug会造成其它bug。
短周期以及主动的测试自动化可节省时间和工作量。这时,你再不需要重复繁重而易错的手工测试。有了测试自动化,重复测试几乎不会增加额外工作量。测试自动化快速地探测出副作用,避免了对调试事务的需求。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式为什么选择C语言作为开发语言?
- 嵌入式开发为什么选择C语言作为开发语言?
- 什么是嵌入式开发?为什么用C语言作为开发语言?
- 嵌入式linux c语言,嵌入式LinuxC语言开发工具.pdf
- 嵌入式软件之c语言编码规范 28次下载
- 嵌入式底层开发为什么选择C语言
- 嵌入式开发语言-C语言编程
- 嵌入式C语言-文件操用
- 嵌入式外中断c语言代码
- 嵌入式Linux与物联网软件开发C语言内核深度解析书籍的介绍
- C语言开发DSP嵌入式系统解析 1次下载
- 基于仿真的嵌入式C语言软件覆盖测试分析 0次下载
- 嵌入式c语言编程(由浅入深) 0次下载
- 如何用C语言开发DS嵌入式系统
- 如何用C 语言开发DSP 嵌入式系统
- vb语言和c++语言的区别 1480次阅读
- 聊一聊嵌入式C语言 433次阅读
- 嵌入式开发常见的C语言技巧与方法分享 864次阅读
- 用C语言构建高效的嵌入式程序 498次阅读
- 如何使用MAXQ串行驱动器开发应用 749次阅读
- C语言是怎么面向对象编程 1484次阅读
- 嵌入式C语言知识点总结 2575次阅读
- 为什么嵌入式开发要选择C语言? 1261次阅读
- 学习嵌入式要先分清C语言和C++的区别 7564次阅读
- 关于嵌入式C语言指针的解析 1041次阅读
- 嵌入式系统C语言编程实战教程合集 9264次阅读
- C语言里如何编写精确的微量延时 1614次阅读
- Java开发员应该知道的十种测试框架库 2974次阅读
- 嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍 1566次阅读
- 嵌入式Linux开发之C语言学习秘诀 9951次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多