使用VisualStudio2005TeamSystem進行單元測試[12] 軟件測試
我編寫什么類型的測試?
一個方法及其相關測試之間很難有一對一關系。編寫自動化單元測試需要開發人員“進行全面思考”,并了解關于對象的所有內容 — 它將如何消耗、使用、處理,以及在任何情況下如何起到積極、消極、非決定性作用。
例如,請考慮一個用于針對數據庫中 Customer 項執行 CRUD(創建、檢索、更新、刪除)功能的典型對象方法。對于該對象的 Load() 方法,要針對以下方案編寫測試:
"
構造函數測試 — 確保對象正確加載,帶有正確的信息。
"
PositiveLoadScalarTest — 測試數據庫中一個 Customer 的成功加載。
"
NegativeLoadScalarTest — 測試一個 Customer 的失敗加載,即該 Customer 不在數據庫中。
"
PositiveLoadTest — 基于已知數據測試 Customer 的成功加載。
"
NegativeLoadTest — 測試數據庫中不存在的 Customer 的失敗加載。
"
NegativeValidationTest — 確保驗證邏輯正確工作。
這些只是自動化單元測試套件許多用法中的一部分。我曾經聽說一個小團隊使用單元測試查看針對其組件的已知安全攻擊。從宏觀的角度來看,單元測試應該明確保證組件的正常使用。具有豐富的測試集將使團隊確信您已經準確實現了既定的目標:編寫有效的軟件。無論自信源自哪里 — 這就是您需要編寫的測試。
您測試什么?
原文轉自:http://www.anti-gravitydesign.com