18.1 查錯的心法:找出會錯的測資
先把整個單元最重要的三句話講完。
¶心法一:不要只盯著程式碼看,要去尋找會錯的測試資料
「程式錯了」永遠是對某一組輸入錯了。找到一組「餵進去、輸出就是不對」的測試資料,你手上就有了鐵證:錯誤從抽象的「總覺得哪裡怪怪的」變成具體的「輸入這個,它就答錯」。反過來說,找不到會錯的測資,你連「程式真的有錯」都還不確定——說不定是你看錯了題目(見心法三)。
¶心法二:拿著錯的測資,模擬自己的程式
有了會錯的測資,下一步是模擬程式碼:順著這組輸入,一步一步走過你的程式——測資小就拿紙筆手動跑,步驟太多就讓程式把中間變數印出來(18.5 的主題)。目標只有一個:找到第一個「實際結果和預期不符」的步驟。錯誤一定藏在那一步;找到它,bug 就無所遁形。