測試自動化有關於專案中不好的味道(Project Smells)

在xUnit Test Pattern一書中, 提到測試自動化有三類型的smells: Code Smells, Behaviors Smells 和 Project Smells. 其中 Project Smells 是指從專案角度來看, 有問題的部分.

Project Smells 大致上有以下幾種

1. Buggy Tests
顧名思義, 也就是測試自動化常常發現有問題. 通常這些問題跟 Code Smells 和 Behaviors Smells 有關. 像是 Fragile Test, Obscure Test, 和Hard-to-Test Code 這些都是常見的原因.

在思考要如何解決時, 當然是可以參考 Code Smells 和 Behaviors Smells的解決方法. 但是在Project Smells 中, 需要從專案的角度來著手, 看專案經理能對團隊做些甚麼.

例如對於開發人員, 在規劃時程時要安排時間, 讓他們可以進行以下事情: 學習寫一個好的自動化測試; 可以 refactor legacy code, 讓測試自動化比較好寫和穩定; 以及可以嘗試使用 TDD 等等.

2. Developers Not Writing Tests
開發人員沒有寫測試自動化. 這是一個在台灣很常見的事情.

原因不外乎是沒有時間, 受測程式碼很難被測試自動化, 以及錯誤的測試自動化策略等等.

經理需要和開發人員討論, 在他們提出解法時, 經理需要給於支持, 不要因為短期看不到成果, 就取消改進方案.

3. High Test Maintenance Cost
當你需要花很多時間來維護測試程式時, 這時候你就會開始覺得 ROI 不高. 等到痛苦一段時間後, 你便會選擇放棄測是自動化.

尤其是當你要增加新的測試會很困難時, 這便是這類 Smell 的警訊.

4. Production Bugs
當你發現很多 bugs 是在正式測試或是上了 production 才發現時, 這也是代表測是自動化有問題.

可能原因有幾種:
(1) 沒有經常去執行測試自動化. 因為不常執行, 所以受測程式有改變時, 往往不知道. 等到知道時, 那些變動已經讓你無力承受
(2) 自動化測試的測試個案越來越少. 也就是有些測試個案已經無法執行, 或是忘記執行.
(3) 缺乏單元測試的測試程式. 沒有撰寫單元測試, 因此底層的運作邏輯無法及早發現到.
(4) 沒有測試到的程式碼. 沒有測到, 自然容易在之後會有問題.
(5) 沒有測試的需求
(6) 從來就不會失敗的測試. 有些測試因撰寫的有問題, 不管受測程式怎樣有問題, 它都不會執行失敗.

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(5) 人氣()