天使與魔鬼對於 Unit Test 的影響
Unit Test |
當我們還沒變成一流的軟體工程師之前,難免寫了程式會有缺陷,未來勢必需要做重構 Refactoring,而想要 Refactoring 既有功能,又不希望因為改了這邊,不小心害到別的部份,所以最重要的,想要做 Refactoring 之前,先寫好 Unit Test 單元測試。
過去我寫過 Java 的 JUnit,現在也開始在寫 Objective-C 的 OCUnit,對於 Unit Test 整體對於使用者在開發上的心態影響,有些開發經驗與心得。
讓程式設計師寫和維護 Unit Test 的動力有:
- Test driven development 是個良好的開發模式。運用在開發上了,先寫測試程式,測出了錯誤,開始實作主要程式,主要程式寫完,再跑測試調整到對即可。
- 透過先從測試程式,了解了測試邏輯,才知道寫的程式有何意義。沒有意義的就不寫。將開發範圍先敲定。
- 如果寫的測試程式和主要程式都好了,可以把測試程式給別的合作程式設計師看,教導溝通主要程式是如何使用。
- Unit Test 是一種投資,越早投資越好。當之後每開發寫好一組,還可以連帶之前的一起包裝成測試套件,全部都測過一遍,確保程式都以穩定。
- 單元測試是自動化測試的基礎,如果搭配了程式涵蓋率,可以知道哪邊還沒測試到,盡量補上它。
- 覺得寫完程式測一測,log 插一插,畫面按一按看到結果就好了,反正老闆只看系統表面、客戶也只是操作不要有 Bug 就好。
- 規格總是愛改,從上游規格設計就不健康了,朝夕令改,我下游的開發人員幹嘛那麼辛苦,寫完程式又寫完測試程式,才又跟我說要加什麼需求,要變更什麼需求。
- 時間根本不夠用了,不夠我開發,時程都追殺我了,我哪有時間寫測試程式。臨時收到需求變更,我改好程式對就好,之前寫的測試程式不論誰寫的,先不管。
圖是你畫的嗎?
ReplyDelete喔對呀,用 iPhone 上一個叫做 Whiteboard ,可以調整筆的粗細切換顏色畫的。
ReplyDelete