Dot-Net
單元測試還是功能測試?[關閉]
我最近聽說過功能測試優於單元測試。
我知道單元測試會從最原子的形式測試給定程式碼的每一種可能性。但是功能測試呢?
在我看來,這聽起來像是只測試程式碼是否有效,但它和單元測試一樣可靠嗎?
有人告訴我,這件事有兩種觀點。某些人更喜歡單元測試,其他人更喜歡功能測試。
是否有任何好的資源、連結、書籍、任何參考資料或你們中的任何一個可以解釋和闡明我在這個主題上的道路?
謝謝!
傑森的回答是正確的。不同類型的測試有不同的目的,並且可以分層以獲得最佳結果(良好的設計、符合規範、減少缺陷)。
- 單元測試 = 驅動設計(使用測試驅動開發,或 TDD)
- 集成測試 = 讓所有部分一起工作
- 客戶驗收測試=是否滿足客戶的要求
- 手動測試 = 經常覆蓋 UI;專門的測試人員可以找到自動化遺漏的內容
- 負載測試 = 系統在實際數據量下的表現如何
這些類別之間有一些重疊;例如,單元測試可以指定行為。
還有其他人;對於大多數人想知道的更多資訊,請參閱軟體測試。
人們忽略的一點是單元測試是孤立地測試程式碼片段。例如,好的單元測試不會影響數據庫。這有兩個優點:它使測試執行得更快,因此您將更頻繁地執行它們,並且它迫使您編寫鬆散耦合的類(更好的設計)。
您要求資源;我推薦 Roy Osherove 的書The Art of Unit Testing with Examples in .NET。雖然沒有一本書是完美的,但這本書為編寫好的測試提供了許多極好的指導。
編輯:對於針對現有軟體編寫測試,沒有什麼比 Michael Feathers 的書有效地使用遺留程式碼更好的了。
單元測試與功能測試不是一個
xor,而是一個and. 單元測試是關於孤立地測試單元,而功能測試是關於在集成中測試整體(所有單元是否一起正常工作?)。兩者都是良好軟體工程實踐的必要組成部分。