軟體偵錯的目的在於:改正錯誤。軟體調試是將編制的程式投入實際運作前,用手工或編譯程式等方法進行測試,修正語法錯誤和邏輯錯誤的過程;它是確保電腦資訊系統正確性的必不可少的步驟。
本教學操作環境:windows7系統、Dell G3電腦。
軟體偵錯的目的在於:改正錯誤。
軟體偵錯是泛指重現軟體缺陷問題,定位與 找出問題根源,最終解決問題的過程。軟體除錯通常有以下兩種不同的定義:
定義1:
軟體除錯是為了發現並排除軟體程式中的錯誤,可以透過某種方法控制被調試程序的執行過程,以便隨時查看和修改被調試程序執行狀態的方法。在這個定義中,軟體測試屬於軟體除錯的一部分,與 牛津字典中的調試定義類似。在牛津字典中調試定義為:“識別和排除電腦硬體或軟體中錯誤的過程。”
#定義2:
調試是執行一次成功的測試之後所要進行的工作。所謂成功的測試,是指它可以證明程式沒 有實現預期的功能。調試包含兩個步驟,從執行了一個成功測試案例,發現問題後開始;第一步,確定程序 中可疑錯誤的準確性質和位置;第二步,修改錯誤。在該定義中軟體測試從調試工作中分離出來。
#軟體除錯是將編制的程式投入實際運作前,用手動或編譯程式等方法進行測試,修正語法錯誤和邏輯錯誤的過程。 這是保證電腦資訊系統正確性的必不可少的步驟。編完計算機程序,必須送入計算機測試。根據測試時所發現的錯誤,進一步診斷,找出原因和具體的位置來修正。
調試這個術語可能意味著很多不同的事情,但最字面的意思是,它意味著從程式碼中刪除錯誤、異常和bug。現在,有很多方法可以做到這一點。例如,可以透過掃描程式碼以查找輸入錯誤或使用程式碼分析器進行偵錯。您可以使用效能分析器來偵錯程式碼。或者,可以使用調試器進行調試。
##依照定義1,#軟體系統偵錯的基本流程如下:
##用編輯程式把編制的原始程式依照一定的書寫格式送到電腦中,編輯程式會根據使用人員的意圖對原始程式進行增、刪或修改。
把送入的原始程式翻譯成機器語言,即用編譯程式對原始程式進行語法檢查並將符合語法規則的原始程式語句翻譯成電腦能辨識的「語言」。如果經過編譯程式檢查,發現有語法錯誤,那就必須用編輯程式來修改原始程式中的語法錯誤,然後再編譯,直到沒有語法錯誤為止。
使用電腦中的連接程序,把翻譯好的電腦語言程式連接起來,並扶植成一個電腦能真正運作的程式。在連線過程中,一般不會出現連線錯誤,如果出現了連線錯誤,表示來源程式中存在子程式的呼叫混亂或參數傳遞錯誤等問題。這時又要用編輯程式對原始程式進行修改,再進行編譯和連接,如此反覆進行,直到沒有連接錯誤為止。
將修改過的程式進行試算,這時可以假設幾個模擬資料去試運行,並將輸出結果與手動處理的正確結果進行比較。如有差異,表示計算機的程式有邏輯錯誤。如果程式不大,可以用人工方法去模擬電腦對原始程式的這幾個資料進行修改處理;如果程式比較大,人工模擬顯然行不通,這時只能將電腦設定成單步執行的方式,一步步跟踪程序的運行。一旦找到問題所在,仍然要用編輯程式來修改原始程序,接著仍要編譯、連接和執行,直到無邏輯錯誤為止。也可以在完成後再進行編譯。
依照定義2,軟體系統偵錯的基本流程如下:
重現問題:重現軟體測試發現的問題;
##問題定位:決定可能發生問題的程式段位置;
找出原因:分析相關程式碼,確定導致缺陷問題的內在原因;
設計方案:提出軟體缺陷問題解決方案;
# 修改程式碼:根據設計方案修改程式碼;
驗證和確認:採用審查、分析和測試等技術來確定錯誤是否被排除,是否引入了新的錯誤。
#上述6個步驟不斷迭代進行,直至問題解決。軟體偵錯基本流程如圖1所示: #################################################################################### #######################在這些步驟中,問題定位和查找原因是軟體偵錯的關鍵環節,其工作量約佔總工作量的90 %以上。軟 件調試是一項既耗時又費力,同時又富有技巧性的工 作。目前軟體調試中的問題定位研究的比較多。 ######可以看到,定義一的流程更貼合我們的日常開發測試工作;而定義二的流程更貼合我們測試特別是軟體發布或上線後發現問題的處理相關工作。 ###
更多相關知識,請訪問常見問題欄位!
以上是軟體調試的目的是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!