2011-02-11 57 views

回答

2

有一個在Wikipedia page for Software Bugs的開始。它列出了他們的原因。就我個人而言,我發現它比通過他們的manefestation列出它們的系統沒那麼有用,因爲在調試之前,你並不真正瞭解原因。

此外,通過定義的因果方法留下了我最喜歡的兩個錯誤,HeisenbugSchrodenbug

2

許多錯誤是相當特定於該語言。 如果你正在尋找跨語言的錯誤/錯誤,你可以從anti-patterns

0

安全的角度來看,軟件缺陷的一個衆所周知的分類(加里·麥格勞在他的軟件安全系列圖書介紹給更廣泛的受衆)的執行錯誤設計缺陷區分。一個執行錯誤是潛伏在你的實現中的低級缺陷。一個實現bug的典型例子是緩衝區溢出。另一方面,設計缺陷是您的實施中的一個「邏輯」錯誤,它允許惡意人員以您未預料到的方式使用它來打破或繞過您的系統或您實施的某種安全機制。一個很好的例子就是API設計中的缺陷,它允許攻擊者將特定的調用與API結合起來,迫使系統去做系統設計者沒有預料到的事情。