l

2015年4月9日 星期四

測試案例壞味道(14):Developers Not Writing Tests

March 20 07:09~07:50

image

 

開發人員不寫自動化測試案例,這是非常普遍的測試壞味道,尤其是在台灣。沒有測試案例,如何知道修改後的系統行為依然運作正常?長此以往,開發人員將越來越不敢修改系統,因為隨便動一個地方就有可能產生很多bug,而且當下自已還不知道。這會造成日後長時間的debug,一種痛不欲生的軟體開發經驗挑眉質疑

***

開發人員不願意寫測試案例的原因很多,《xUnit Test Patterns: Refactoring Test Code》書中提到幾點因素:

  • Not Enough Time:「沒時間,我沒時間」,這是開發人員最常使用的藉口或理由。寫production code的時間都沒有了,哪輪的到測試案例啊。這種現象可能來自於傳統waterfall開發模式所養成的習慣:分析、設計、實作…耶,專案時間用完了,還沒測試怎麼辦!?管它的,產品先上市再說,請客戶幫我們測就好了啊。

「理論上」採用敏捷開發方法應該可以減少這個現象,如果採取TDD,因為先寫測試案例再寫production code的步驟,所以「沒時間寫測試案例」的情況會減少很多。就算不用TDD,將開發時成切割成若干個iteration,也有助於避免將測試階段延後到專案晚期才執行的問題。

  • Hard-to-Test Code:為什麼不寫測試?因為不知道要怎麼寫啊。待測程式一大坨,要怎麼測? 如果production code結構不良,或是程式碼寫得讓人難以理解,會導致測試案例也難以撰寫。
  • Wrong Test Automation Strategy:採用錯誤的測試自動化策略也會導致開發人員不想寫測試案例。例如,跳過單元測試卻要求開發人員透過GUI撰寫大量的自動化驗收測試。此種策略會造成Fragile Test、Frequent Debugging、Slow Tests等壞味道。久而久之開發人員撰寫測試案例的意願就會大幅降低。

***

Teddy覺得不寫測試案例還有一個很重要的原因,就是開發人員根本不會寫測試。許多開發人員並沒有受過撰寫測試案例的訓練,即使有心想寫,也無力動手。所以,要求開發人員撰寫測試案例之前,應當給予適當的教育訓練,以免被冠上「不教而殺」的罪名啊。

***

友藏內心獨白:測試是開發不可分割的一部分啊。

沒有留言:

張貼留言