摘自《調試九法-軟硬件錯誤的排查之道》
規則1:理解系統
規則2:製造失敗
規則3:不要想,而要看
規則4:分而治之
規則5:一次只改動一個地方
規則6:保持審計跟蹤
規則7:檢查插頭
規則8:獲取全新觀點
規則9:如果你不修改bug,它將依然存在
1、理解系統
- 閱讀手冊
- 仔細閱讀每個細節
- 掌握基礎知識
- 瞭解工作流程
- 瞭解工具
- 查閱細節
墨菲定律:事情如果有變壞的可能,不管這種可能性有多小,它總會發生。
1、製造失敗
- 製造失敗
- 從頭開始
- 引發失敗
- 但不要模擬失敗
- 查找不受你控制的條件(正是它導致了間隙性失敗)
- 記錄每一件事情,並找到間隙性bug的特徵
- 不要過於相信統計數據
- 要認識到“那”是可能會發生的
- 永遠不要丟掉一個調試工具
3、不要想,而要看
- 觀察失敗
- 查看細節
- 植入插裝工具
- 添加外部插裝工具
- 不要害怕深入研究
- 注意海森堡效應
- 猜測只是爲了確定搜索的重點
4、分而治之
- 通過逐次逼近縮小搜索範圍
- 確定範圍
- 確定你位於bug的哪一側
- 使用易於查看的測試模式
- 從有問題的一端開始搜索
- 修復已知bug。bug互相保護,互相隱藏
- 首先消除噪聲干擾
在查找問題時,“分而治之”是第一條需要使用的原則
5、一次只改一個地方
- 隔離關鍵因素
- 一次只改一個測試
- 與正常情況進行比較
- 確定自從上一次正常工作以來你改變了什麼地方
6、保持審計跟蹤
- 把你的操作、操作的順序和結果全部記錄下來。
- 要知道,任何細節都可能是重要的。
- 把事件關聯到一起
- 用於設計的審計跟蹤在測試中也非常有用
- 把事情記錄下來
7、檢查插頭
- 置疑你的假設
- 從頭開始
- 對工具進行測試
8、獲取全新觀點
- 徵求別人的意見
- 獲取專業知識
- 聽取別人的經驗
- 幫助無處不在
- 放下面子
- 報告症狀,二不要講你的理論
- 你提出的問題不必十分肯定
9、如果你不修復bug,它將依然存在
- 查證問題確實已被修復
- 查證確實是你的修復措施解決了問題
- 要知道,bug從來不會自己消失
- 從根本上解決問題
- 對過程進行修復