代碼大全讀書筆記——第23章 調試

第二十三章 調試學習

1.調試概述測試

.開發高質量軟件產品的最佳途徑是精確描述需求,完善設計,並使用高質量的代碼編寫規範,調試只是無可奈何時候才使用的手段。spa

.調試軟件,能夠從錯誤中學習不少東西:例若有助於理解程序、明確所犯下錯誤的類型、從閱讀者的角度分析代碼質量、審視本身解決問題的方法等。設計


2.尋找缺陷調試

一種尋找缺陷的有效方法:開發

a)將錯誤狀態穩定下來。(即保證bug可重現)產品

b)肯定錯誤的來源。(收集產生缺陷的數據->分析數據給出假設->證明或證僞假設->得出最終結論)it

c)修補缺陷。cli

d)對修補的地方進行測試。軟件

e)檢查是否還有相似的錯誤。

3.修正缺陷

(1)動手以前理解問題。(先搞清楚問題再動手)


(2)理解程序自己而不單單是問題。(至少應當理解問題附近的代碼)


(3)驗證對錯誤的分析。


(4)保存最初的源代碼。(至少知道修改了哪些地方)


(5)治本而不是治標。

應當使用一種可以在深層次上解決問題的方法,而不是用「代碼繃帶」去暫時解決問題。

例如:

for(claimNumber = 0; claimNumber < numClaims[client];claimNumber++)

{

sum[client] = sum[client] + claimAmount[claimNumber];

}

假設當client等於45的時候,sum得出的結果有3.45的偏差,則採用以下的修補方法就是隻治標的方法:

for(claimNumber = 0; claimNumber < numClaims[client];claimNumber++)

{

sum[client] = sum[client] + claimAmount[claimNumber];

}

if(client==45)

{

sum[45] +=3.45;

}


(6)修改代碼必定要有恰當的理由。

(7)一次只作一個改動。


(8)檢查本身的改動。


(9)注意調試中的心理因素(具體看參見《程序開發心理學》)


(未完待續。。。。正在閱讀PHP調試手冊,後有補充)

相關文章
相關標籤/搜索