單元測試的對象一般是軟件設計的最小邏輯單元,單元的劃分在面向過程的結構化程序中通常是函數或子過程,在面向對象的程序中能夠是類或類的成員函數。數據結構
進行單元測試,主要是爲了在開發的過程當中發現錯誤,發現錯誤越早,成本就越低,一樣值得考慮的是,在單元測試中發現問題也比較容易,修正問題更容易,將軟件開發的過程當中,發現越晚,修復成本越高;檢查代碼是否符合設計和規範,這有利於未來代碼的維護ide
目標:單元模塊被正確編碼
信息可否正確地流入和流出單元
在單元工做過程當中,其內部數據可否保持其完整性,包括內部數據的形式,內容及相互關係不發生錯誤,全局變量在單元中的處理和影響
爲限制數據加工而設置的邊界處,可否正確工做
單元的運行可否作到知足特定的邏輯覆蓋函數
1).檢查每一條獨立執行路徑的測試,並保證每條語句被至少執行一次:
路經測試也稱爲覆蓋測試。在單元測試中,最主要的測試是針對路徑的測試。測試用例必須可以發現因爲計算錯誤、不正確的斷定或不正常的控制流而產生的錯誤單元測試
1.誤解或用錯了算符優先級 2.混合類型運算 3.變量初值錯誤 4.精度不夠 5.表達式符號錯誤 6.其它
2).檢查局部數據結構完整性:
必須測試其內部的數據可否保持完整性,包括內部數據的內容、形式及相互關係不發生錯誤測試
1.不適合或不相容的類型說明 2.變量無初值 3.變量初始化或默認值有錯 4.不正確的變量名或歷來未被使用過 5.出現上溢或下溢和地址異常 6.其它
3).檢查模塊接口是否正確:
檢查進出程序單元的數據流是否正確。對模塊接口數據流的測試必須在任何其餘測試以前進行,由於若是不能確保數據正確的輸入和輸出的話,全部的測試都是沒有意義的編碼
1.輸入的實際參數與形式參數是否一致(個數、屬性、量綱) 2.調用其餘模塊的實際參數與被調模塊的形參是否一致(個數、屬性、量綱) 3.全程變量的定義在各模塊是否一致 4.外部輸入、輸出 5.文件、緩衝區、錯誤處理 6.其它
4).檢查臨界數據處理的正確性:
目的是檢測在數據邊界處模塊可否正常工做,邊界測試是單元測試的一個關鍵任務設計
1.普通合法數據的處理 2.普通非法數據的處理 3.邊界值內合法邊界數據的處理 4.邊界值外非法邊界數據的處理 5.其它
5).預設的各類出錯處理是否正確有效:
良好的設計應該預先估計到投入運行後可能發生的錯誤,並給出相應的處理措施,使得用戶不至於一籌莫展對象
1.輸出的出錯信息難以理解 2.記錄的錯誤與實際不相符 3.異常處理不當 4.未提供足夠的定位出錯的信息 5.其它
6).內存分析(內存泄漏也會致使系統崩潰)接口
三步曲內存
1.互查 2.走查 3.評審