看板 Soft_Job 關於我們 聯絡資訊
※ 引述《prag222 (prag)》之銘言: : 坦白說unit test直覺上就是增加開發成本 : 我第一次寫unit test覺得是在幫老闆燒錢 : 我個人是覺得unit test不見得不需要每個功能都實作 : 把一些重要的功能邏輯,或有機會異動的程式碼 做unit test會比較好吧 : 不然只做新增修查delete,這種操作應該不用寫unit test : 小弟不懂~覺得沒啥用處,是因為遇到太多人只會嘴 : 用過後真的體會到它的好處的人不知道有多少 : 不然只會遇到一堆嘴上功夫而已 Unit Test跟其他自動化測試需不需要,先得看你是什麼專案 如果是那種完全不在乎品質,交貨後的維護也不干你們的事 連手動測試都沒在做或隨便做做的那種專案,寫一堆爛code會動能收錢就好 那還真的沒什麼做的必要 不過這種專案應該不是太多,而且有志往軟體技術深耕的人應該也不會太想待這種專案 如果是那種後續維護都要你們負責,或是做產品的,出去就要賣好幾年,改很多版的 那你多半需要做Unit Test跟其他自動化測試 Unit Test的主要目的並不是在"當下"找出問題 雖然你多多少少會透過它在當下找到問題 但它主要目的是在之後無數次的變更中,告訴你你的新code有沒有把原本的功能搞爛 如果沒有它,這件事就是手動做 而一個有規模的專案,手動做一次至少是好幾個人X好幾天,甚至幾星期 又或者是不做,然後燒香拜佛祈求不要出包 而這會造成一個延伸的效應,就是案子愈久愈沒有人敢去大幅度的改code或是refactor 大家改變愈做愈小,最後都是在那邊治標不治本,久了就愈來愈難維護 而從開發者角度,其實最大的好處是幫助我把code架構寫得更好 因為如果code的藕合度太高,會非常難unit test 所以寫unit test會自然讓人寫出比較低藕合的code 當然也可以寫高藕合的code然後用一堆mock,但是用太多mock本身就是不好的做法了 Unit Test跟其他自動化測試主要是幫你把測試的成本降低,還有提升品質 所以如果你的成本算法是"開發+測試+解bug",那麼做這些是有用的 但如果你的成本算法是"開發"然後沒了,那或許就沒用了 之所以會有它增加成本的錯覺,是因為他增加開發這段的時間 但是它增加的時間會在後面的測試還有解bug加倍還回來 只是一般比較差的團隊,都只有估開發時間 後面的雖然都有做,但是都不估的,好像不用時間一樣 所以估算一出來當然就覺得好像增加了成本 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.211.111 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1478253735.A.29D.html ※ 編輯: Wolfken (1.164.211.111), 11/04/2016 18:04:34
GameGyu: 把單元測試改成程式註解 就知道答案了 11/04 18:11
Csongs: 寫的不錯,卻沒人推 11/10 08:43
kd0074hit: 推,測試的重要也只有經歷過才能深刻感受了 11/16 20:09