編碼檢查表

2021-04-20 07:58:34 字數 2099 閱讀 8790

使用本表的最好辦法是花兩周時間

評審一下你的設計和編碼實現。先花幾分鐘時間看一看列表,一旦熟悉了這些問題,就可

以靈活自如地按它寫**了。此時,就可以把錶放在一邊了。

一般問題

──

你是否為程式建立了

debug

版本?──

你是否將發現的錯誤及時改正了?

─一你是否堅持徹底測試**.即使耽誤了進度也在所不惜?

──你是否依靠測試組為你測試**?

─一你是否知道編碼的優先順序?

─一你的編譯程式是否有可選的各種警告?

關於將更改歸併到主程式

─一

你是否將編譯程式的警告(包括可選的)都處理了?

──你的**是否未用

lint

─一你的**進行了單元測試嗎?

─一你是否逐步通過了每一條編碼路徑以觀察資料流?

─一你是否逐步通過了組合語言層次上的所有關鍵**?

──是否清理過了任何**?如果是,修改處經過徹底測試了嗎?

─一文件是否指出了使用你的**有危險之處?

──程式維護人員是否能夠理解你的**?

每當實現了乙個函式或子系統之時

─一

是否用斷言證實了函式引數的有效性?

─一**中是否有未定義的或者無意義的**?

─一**能否建立未定義的資料?

─一有沒有難以理解的斷言?對它們作解釋了沒有?

─一你在**中是否作過任何假設?

─一是否使用斷言警告可能出現的非常情況?

─一是否作過防禦性程式設計?**是否隱藏了錯誤?

─一是否用第二個演算法來驗證第乙個演算法?

─一是否有可用於確認**或資料的啟動(

startup

)檢查?

─一**是否包含了隨機行為?能消除這些行為嗎?

──你的**若產生了無用資訊,你是否在

debug

**中也把它們置為無用資訊? ──

**中是否有稀奇古怪的行為?

──若**是子系統的一部分,那麼你是否建立了乙個子系統測試?

──在你的設計和**中是否有任意情況?

──即使程式設計師不感到需要,你也作完整性檢查嗎?

──你是否因為排錯程式太大或太慢,而將有價值的

debug

測試拋置一邊?

──是否使用了不可移植的資料型別?

─一**中是否有變數或表示式產生上溢或下溢?

──是否準確地實現了你的設計?還是非常近似地實現了你的設計?

──**是否不止一次地解同乙個問題?

──是否企圖消除**中的每乙個

if 語句?

──是否用過巢狀?:運算子?

──是否已將專用**孤立出來?

──是否用到了有風險的語言慣用語?

─一是否不必要地將不同型別的運算子混用?

──是否呼叫了返回錯誤的函式?你能消除這種呼叫嗎?

─一是否引用了尚未分配的儲存空間?

─一是否引用已經釋放了的儲存空間?

──是否不必要地多用了輸出緩衝儲存?

──是否向靜態或全域性緩衝區傳送了資料?

──你的函式是否依賴於另乙個函式的內部細節?

──是否使用了怪異的或有疑問的

c 慣用語?

──在**中是否有擠在一行的毛病?

──**有不必要的靈活性嗎?你能消除它們嗎?

─一你的**是經過多次「試著」求解的結果嗎?

─一函式是否小並容易測試?

每當設計了乙個函式或子系統後

─一

此特徵是否符合產品的市場策略?

─一錯誤**是否作為正常返回值的特殊情況而隱藏起來?

─一是否評審了你的介面,它能保證難於出現誤操作嗎?

─一是否具有多用途且面面俱到的函式?

─一你是否有太靈活的(空空洞洞的)函式引數?

─一當你的函式不再需要時,它是否返回乙個錯誤條件?

─一在呼叫點你的函式是出易讀? ─一

你的函式是否有布林量輸入?

修改錯誤之時

──

錯誤無法消失,是否能找到錯誤的根源?

─一是修改了錯誤的真正根源,還是僅僅修改了錯誤的症狀?

使用者介面檢查表

使用者介面檢查表 設計要素 重要性檢查項 適合於檢查結果 合適性非常重要 使用者介面是否與軟體的功能相融洽?使用者介面是否適合使用者的應用環境?解釋 如果否定的話,意味著使用者不能有效的使用這個軟體,是不可原諒的缺陷。這個缺陷是需求分析錯誤造成的。評審 測試 容易理解 非常重要 介面元素有錯別字,或...

使用者介面檢查表

使用者介面檢查表 設計要素 重要性檢查項 適合於檢查結果 合適性非常重要 使用者介面是否與軟體的功能相融洽?使用者介面是否適合使用者的應用環境?解釋 如果否定的話,意味著使用者不能有效的使用這個軟體,是不可原諒的缺陷。這個缺陷是需求分析錯誤造成的。評審測試 容易理解 非常重要 介面元素有錯別字,或者...

Oracle優化檢查表

分類檢查專案 相關檔案或結果 狀態備註 日誌及檔案 oracle alert 日誌 bdump udump下是否存在明顯的報警 listener相關日誌 sql net日誌 引數 引數檔案 listener.ora tnsnames.ora 作業系統 作業系統版本 檢查作業系統補丁 節點名作業系統v...