B08 Debug、測試與證據

B08 Debug、測試與證據

從重現條件與 traceback 找出原因,用測試證明修正。

B08 Debug、測試與證據

Debug 的目的不是讓錯誤訊息消失,而是找出哪個假設不成立。先留下輸入、環境、預期結果與實際結果,才能知道改動是否修到同一個問題。

Traceback 告訴你呼叫經過哪些地方,最後在哪裡出錯。最底下的例外名稱是線索,但原因可能來自更早的輸入或設定。Log 則應記重要事件與識別碼,不需要把密鑰、完整文件和每個變數都印出來。

Unit test 檢查小範圍邏輯,Integration test 檢查元件之間能否配合。單元測試全通過,仍可能因端點或授權配置錯誤而無法提供服務。

從缺欄位案例開始

設備查詢在缺少 temperature_c 時出現 KeyError。先用固定假資料重現,再決定缺欄位應回明確錯誤,還是允許某個有來源的預設值。不能為了避免例外直接填 0,讓後面判斷設備正常。

修正後,原本的失敗輸入應得到約定回應;正常輸入也應維持正確。這兩筆測試比一張成功執行的截圖更能說明改動。

練習

寫下「給定輸入→預期結果→實際結果→原因→修改→重新確認」。再選一個相近但不同的失敗案例,檢查修正有沒有把它混進正常分支。

自我檢查:能把證據連回具體主張。Mock 可證明某段程式邏輯,不等於已驗證真實 API、資料庫或 GPU。

官方閱讀

接著讀

相關筆記