March 17 15:30~16:00
如果大部分測試案例需要人工介入來判斷執行失敗的原因,則這些測試案例就有Frequent Debugging這個壞味道。
《xUnit Test Patterns: Refactoring Test Code》書中提到導致這個壞味道的情況主要是因為缺少Defect Localization(缺陷定位):
- 沒有詳細的單元測試來指出物件內部的邏輯錯誤,也就是說單元測試涵蓋率不足。
- 整合測試沒有抓出一組物件之間的互動缺陷。這種情況有可能在我們使用mock object來取代真實的相依物件,但是這些被取代的相依物件的單元測試並沒有依據mock object所期待的行為來做驗證。
***
有些團隊的開發人員並不需要撰寫單元測試,測試的工作是交由QA團隊來完成。雖然QA團隊有能力撰寫自動化功能測試,而這些自動化功能測試的確也會抓到一些bug。但是由於功能測試的粒度很大,抓到bug之後開發人員還是需要花費不少時間來除錯,這也是一種造成Frequent Debugging的情境。
最後,如果測試案例很少執行,也容易造成Frequent Debugging。為什麼?因為開發人員對於久久才執行一次的測試案例已經很陌生了,當測試案例失敗時,自然需要花費比較長的時間來釐清原因。
***
友藏內心獨白:好的測試案例要能夠協助開發人員減少除錯時間。
沒有留言:
張貼留言