3.5 程序的調(diào)試
程序調(diào)試(注釋1)的任務(wù)是診斷和改正程序中的錯誤,主要在開發(fā)階段進(jìn)行,調(diào)試程序應(yīng)該由編制源程序的程序員來完成。
程序調(diào)試的基本步驟:(1)錯誤定位;(2)糾正錯誤;(3)回歸測試。
*:軟件的調(diào)試后要進(jìn)行回歸測試,防止引進(jìn)新的錯誤。(注釋2)
軟件調(diào)試可分為靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試主要是指通過人的思維來分析源程序代碼和排錯,是主要的調(diào)試手段,而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試。
對軟件主要的調(diào)試方法可以采用:
(1)強(qiáng)行排錯法。主要方法有:通過內(nèi)存全部打印來排錯;在程序特定部位設(shè)置打印語句;自動調(diào)試工具。
(2)回溯法。發(fā)現(xiàn)了錯誤,分析錯誤征兆,確定發(fā)現(xiàn)“癥狀”的位置。一般用于小程序。
(3)原因排除法。是通過演繹、歸納和二分法來實現(xiàn)的。
1)演繹法。根據(jù)已有的測試用例,設(shè)想及枚舉出所有可能出錯的原因作為假設(shè);然后再用原始測試數(shù)據(jù)或新的測試,從中逐個排除不可能正確的假設(shè);最后,再用測試數(shù)據(jù)驗證余下的假設(shè)確定出錯的原因。
2)歸納法。從錯誤征兆著手,通過分析它們之間的關(guān)系來找出錯誤。大致分四步:收集有關(guān)的數(shù)據(jù);組織數(shù)據(jù);提出假設(shè);證明假設(shè)。
3)二分法。在程序的關(guān)鍵點給變量賦正確值,然后運行程序并檢查程序的輸出。如果輸出結(jié)果正確,則錯誤原因在程序的前半部分;反之,錯誤原因在程序的后半部分。
本章應(yīng)考點撥:本章在筆試中一般占8分左右,約3道選擇題,1道填空題,是公共基礎(chǔ)部分比較重要的一章。從出題的深度來看,本章主要考察對基本概念的識記,有少量對基本原理的理解,沒有實際運用,因此考生在復(fù)習(xí)本章時,重點應(yīng)放在基本概念的記憶和基本原理的理解上。
注釋1:注意與軟件測試區(qū)分。
注釋2:這是因為修改程序可能帶來新的錯誤,重復(fù)進(jìn)行暴露這個錯誤的原始測試或某些有關(guān)測試,以確認(rèn)該錯誤是否被排除、是否引進(jìn)了新的錯誤。