l

2015年2月27日 星期五

測試案例壞味道(1):三種分類

Feb. 25 15:20~16:32

螢幕截圖 2015-02-24 22.18.58

Eiffel:要挑哪一本書好勒!

Teddy:書中自有小貓咪,我比較想要黃金屋啊XD。

 

自從領養Eiffel,想學小王子和狐狸建立馴養關係,因此花了不少時間陪牠。加上最近偷懶沒看什麼新書,部落格又快斷炊了。只好使出老招,把書出來抄…嗯嗯,是介紹才對。有一陣子沒寫測試的文章,就來介紹《xUnit Test Patterns: Refactoring Test Code》書中提到的幾個關於測試案例的壞味道,應該可以擋一陣子先

書中把壞味道分成三大類,每個分類各有若干個壞味道:

  1. Code Smells
    • Obscure Test
    • Conditional Test Logic
    • Hard-to-Test Code
    • Test Code Duplication
    • Test Logic in Production
  2. Behavior Smells
    • Assertion Roulette
    • Erratic Test
    • Fragile Test
    • Frequent Debugging
    • Manual Intervention
    • Slow Tests
  3. 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(開發人員不寫測試案例)當然也是很嚴重的問題。

***

知道三個分類的意義之後,就可以進一步逐一來認識每一個測試壞味道的。

***

友藏內心獨白:知道定義是很重要滴。

沒有留言:

張貼留言