2011-02-11 62 views

回答

2

有一个在Wikipedia page for Software Bugs的开始。它列出了他们的原因。就我个人而言,我发现它比通过他们的manefestation列出它们的系统没那么有用,因为在调试之前,你并不真正了解原因。

此外,通过定义的因果方法留下了我最喜欢的两个错误,HeisenbugSchrodenbug

2

许多错误是相当特定于该语言。 如果你正在寻找跨语言的错误/错误,你可以从anti-patterns

0

安全的角度来看,软件缺陷的一个众所周知的分类(加里·麦格劳在他的软件安全系列图书介绍给更广泛的受众)的执行错误设计缺陷区分。一个执行错误是潜伏在你的实现中的低级缺陷。一个实现bug的典型例子是缓冲区溢出。另一方面,设计缺陷是您的实施中的一个“逻辑”错误,它允许恶意人员以您未预料到的方式使用它来打破或绕过您的系统或您实施的某种安全机制。一个很好的例子就是API设计中的缺陷,它允许攻击者将特定的调用与API结合起来,迫使系统去做系统设计者没有预料到的事情。