五種調試方法


 簡單的講,調試是執行一次成功的測試之后所要進行的工作。記住,所謂成功的測試,是指它可以證明程序沒有實現預期的功能。

包含兩個步驟的過程,從執行了一個成功的測試用例,發現一個問題開始。第一步,確定程序中可疑錯誤的准確性質和位置;第二部,修改錯誤

  • 暴力法調試:

 

調試程序的最為普遍的模式就是所謂的“暴力”方法。這種方法之所以流行,是因為它不需要過多思考,是費腦力最少的方法,但同時效率低下,通   常來講不是很成功。

暴力調試方法可至少被划分為三種類型:

       1. 利用內存信息輸出來調試。

       2. 根據一般的“在程序中插入打印語句”建議來調試。

       3. 使用自動化的調試工具進行調試。

 不過,該方法的主要問題在於:它忽略了思考的過程。因此在下列情況下使用暴力調試方法:1)其他的方法都失敗了 2)作為我們下面將會討論的思考過程的補充,而不是替代方法。

 

  • 歸納法調試:

 

   很顯然,認真的思考能夠發現大部分錯誤,甚至不需要調試人員使用調試工具。歸納是一種特殊的思考過程,可以從細節轉到全局,也就是從線索(即錯誤的症狀,可能是一個或多個測試用例的結果)出發,尋找線索之間的聯系。歸納的過程如下圖示:

 歸納法調試: 1)確定相關數據。2)組織數據。3)做出假設。4)證明假設。

 

  • 演繹法調試:

 

   演繹的過程是從一些普遍的理論或前提出發,使用排除和精煉的過程,達到一個結論(錯誤的位置)。

    演繹發調試:1)列舉所以可能的原因或假設。2)利用數據排除可能的原因。3)提煉剩下的假設。4)證明剩下的假設。

 

  •  回溯發調試:

   在小型程序中定位錯誤的一種有效方法是沿着程序的邏輯結構回溯不正確的結果,直到找出程序邏輯出錯的位置。

  • 測試法調試:

    供測試的測試用例,其目的是暴露出以前尚未發現的錯誤;供調試的測試用例,其目的是提供有用的信息,供定位某個被懷疑的錯誤之用。

 

 

  調試的原則   :由於調試的過程由兩部分組成,即定位錯誤和修改錯誤,因此我們將討論兩類原則

  定位錯誤的原則:1)動腦筋。2)如果遇到僵局,就留到稍后解決。3)如果遇到了困境,就把問題描述給其他人聽。4)僅將測試工具作為第二種

  手段。5)避免使用試驗法----僅將其作為最后的手段。

 

 修改錯誤的技術:1)存在一個缺陷的地方,很有可能還存在其他缺陷。2)應糾正錯誤本身,而不是其症狀。3)正確糾正錯誤的可能性並  非100%。4)正確修改錯誤的可能性隨着程序的增加而降低。5)應意識改正錯誤會引入新錯誤的可能性。6)修改錯誤的過程也是臨時回到設計階段的過  程。7)應修改源代碼,而不是目標代碼。

 

 錯誤分析包含的內容:1)錯誤出現在什么地方?2)誰制造了這個錯誤?3)哪些做得不正確?4)如何避免該錯誤的出現?5)為什么錯誤沒  有早些發現?6)該如何更早地發現錯誤?

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM