2016年5月5日 星期四

[心得] 怎麼不導入單元測試


其實這個問題很久了,也研究了不少東西,更試著在各個專案裡面運行過
一開始傻傻地只想著要做單元測試,卻沒考慮那些重要那些不重要,提了不重要的東西出來還會被笑

弄清楚了優先度,可是時程就是只有兩個禮拜要做完,開發都沒時間了哪有時間寫單元測試??

就算有時間,還是可以找到別的事情讓單元測試不能進行 (插件、請假、別的專案、約會、改BUG、...)

更何況一般的專案進行,沒有寫單元測試還是可以開始做的
邊做邊談、邊談邊改、邊改邊上線、邊上線邊測,但必須要說這是很”有效”的方法
一邊可以處理客戶、一邊可以寫程式、一邊可以談需求、一邊測試,根本就到了平行化的一種極致

再者如果開始有機會開始,沒有經驗可能沒有辦法回答,該怎麼寫測試,該怎麼讓測試可以應付修改
怎麼寫才可以讓程式可以被測試、怎樣才能有效的檢核、UI怎麼測、DAL(Data Access Layer)該測嗎?
程式架構都不一樣怎麼測、需求變了變成要改兩次程式耶、都沒有時間開發了哪有時間寫測試?

不得不說,這些是一直發生在身邊的事情,而且真的是蠻嚴重的問題
----
我們要做的事情是怎麼讓系統的正確性提升,最重要的是明確的知道應有的系統行為是甚麼
在各種使用者的合理操作與不合理操作下,系統該有甚麼回應

這些分析完後就是檢核這些案例,腦子裏面檢核、邊開發邊檢核、開發完檢核、客戶檢核、使用者檢核

那麼多的檢核,如果不是依靠更強力的分析,大概是跳過一些檢核階段先不做,反正還有後面來節省時間 (?!?
----
會想寫這篇是因為
最近在邊開發一些工具,把一些周邊常做的事情半自動化
其實只是把常做的事情,透過一些 script 省下時間

從做工具省時間的角度來看... 突然有了一個合理的說法

完成正確的系統需要的不只是單元測試,而是怎麼讓所有繁瑣的檢核能更加快速度

以應付之前的所有理由,而且不是藉由花更多人力、減少測試、改動時程、減少功能來完成

ps. 工具在手不表示人人都是高手,做這件事情是需要練習的
支持測試更完整,支持善用工具加速測試,進行測試從你我做起

沒有留言:

張貼留言