Feb. 25 15:20~16:32
Eiffel:要挑哪一本書好勒!
Teddy:書中自有小貓咪,我比較想要黃金屋啊XD。
自從領養Eiffel,想學小王子和狐狸建立馴養關係,因此花了不少時間陪牠。加上最近偷懶沒看什麼新書,部落格又快斷炊了。只好使出老招,把書出來抄…嗯嗯,是介紹才對。有一陣子沒寫測試的文章,就來介紹《xUnit Test Patterns: Refactoring Test Code》書中提到的幾個關於測試案例的壞味道,應該可以擋一陣子先。
書中把壞味道分成三大類,每個分類各有若干個壞味道:
- Code Smells:
- Obscure Test
- Conditional Test Logic
- Hard-to-Test Code
- Test Code Duplication
- Test Logic in Production
- Behavior Smells:
- Assertion Roulette
- Erratic Test
- Fragile Test
- Frequent Debugging
- Manual Intervention
- Slow Tests
- Project Smells:
- Buggy Tests
- Developers Not Writing Tests
- High Test Maintenance Cost
- Production Bugs
***
這15個壞味道,有些看名字就大概可以猜出內容是什麼。日後會逐一介紹每一個壞味道,今天要先談這三個分類的意義。首先,Code Smells是指必須透過閱讀程式碼(測試案例)來判斷的壞味道,例如Conditional Test Logic(條件式測試邏輯)顧名思義就是測試程式中出現了條件判斷式,又例如Test Logic in Production指的是在production code裡面出現測試邏輯。這些壞味道都和測試程式碼的結構直接相關。
Behavior Smells是指影響測試案例執行結果的壞味道,例如Slow Tests一看就知道是跑得很慢的測試案例,Manual Intervention則是需要人工介入的測試案例。這兩種情況都是鄉民們在撰寫自動化測試案例不希望看到的結果。
Project Smells用來表示專案整體健康狀況,不用看測試程式碼甚至不用執行它也可以發現這些壞味道。例如有著Buggy Tests(有臭蟲的測試案例)的專案不用說一定是不健康的專案,還有Developers Not Writing Tests(開發人員不寫測試案例)當然也是很嚴重的問題。
***
知道三個分類的意義之後,就可以進一步逐一來認識每一個測試壞味道的。
***
友藏內心獨白:知道定義是很重要滴。