
Before
在上課之前, 其實前同事曾經在開發團隊中導入一些測試和TDD的概念. 大部分導入的原因不外乎是因為在開發的過程當中, 時常會遇到自己左腳踩右腳的改A壞B, 改A壞B, 改A壞B (以發生的頻率來看大概重複7次都不誇張), 或者是使用者回報的問題不曉得應該被歸類在有bug還是之前沒談到的需求等等的狀況. 工程師們的另一部分時間, 可能是要維護同事們寫的code, 包含解bug或者是基於前人的code繼續開發等等的情境, 也是會遇上一些沒有註解又不知道改了會不會壞了別的功能的尷尬處境(又是改A壞B), 在邊抱怨前人沒留下文件邊開發的時候, 即便有心維護, bug解好功能寫好後, 可能又要趕下一次要上版的班車, 於是自己也成為產出legacy code的伙伴之一.
關於測試的學習, 一開始覺得有點害怕. 過去對於物件的抽換和Design Pattern的使用還不是那麼樣的熟悉, 如果要把自己的code全部都變得可測, 勢必要和過去自己寫的code來一場大刀闊斧的對決. 想到就覺得不如敷個臉休息好了. 在我們的團隊, 從前一次的導入測試到現在, 其實並沒有非常確實的被執行, 測試的覆蓋率也不高.