Re: [轉錄] 開發人員的測試悖論(The Developer Tes …

看板 Soft_Job
作者 deanh (夜想者)
時間 2011-05-17 23:30:29
留言 4則留言 (1推 0噓 3→)

: 推 lunastorm:我最近也碰到這個問題,的確碰到db這段就是在整合測試了 05/17 10:24 : 推 Ting1024:我也碰到這問題... 05/17 20:05 : → newjoy:好吧, 那換個問法 有辦法不讓這些整合測試作廢嗎 05/17 22:07 有,就是把這些整合測試變成單元測試。 如果你的整合環境是變動大的,無法預測的,每次都有不同的驚喜的, 那我建議你不要做自動化整合測試。如果你連手動測試都沒有辦法每次 都產生一致性的結果,你應該回去看看你的Production Code有沒有問題 。 你需要去計算撰寫整合測試的投資報酬率,我有朋友告訴我,如果你的自動化整合測試 不能夠在沒有修改的狀況下使用17個Release,那麼這個自動化整合測試可能就沒有進行 的價值,因為你最終還是必須要進行手動測試,你無法相信自動化測試的結果。(雖然我 不知道這個數字是哪裡來的) 你必須先問問你自己,有沒有先做單元測試。沒有單元測試就做整合測試的話,會讓 整合測試的Case變很多,而出錯的機率也會提高很多,出錯以後,沒有單元測試的幫 忙,你必須回去看自己的單元有沒有錯。進而加長了除錯的時間。 你現在要做的,是回去把單元測試給做好,而不是投入在自動化整合測試上面。 你可以使用Test Framework裡面的Stub物件或是Mock物件去取代資料庫物件的行為 ,比如說,你不需要知道資料庫插入的結果是不是在資料庫多了一行,而是要確認 當資料庫回傳True的時候,你的程式會正確往下做,而當資料庫回傳False的時候 ,你的程式碼能夠抓到這個錯誤,並且做出適當的回應。 Unit Test Focus在白箱測試,希望每個判斷、迴圈跟程式碼都被執行過一遍,如果 你覺得你的Unit Test Code很難跟資料庫切開,表示你的Product Code沒寫好, 跟外部資源過度耦合,你首先要做的是Refactory你的Production Code,提高它的 Testability。 也許你可以貼上程式片段讓大家討論一下。 -- ◆ From: 118.166.227.62
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1305646232.A.48C.html

newjoy:我想問 private的method要怎麼測才好? 有看到寫程protected 05/18 01:13

newjoy:但這畢竟不是最佳解 05/18 01:13

wawawa:private method 要不要測有兩派說法 我個人是覺得不用測 05/19 01:25

wawawa:可以先專注把 public method 的 test coverage 提高再說... 05/19 01:25

您可能感興趣