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

看板Soft_Job作者 (夜想者)時間14年前 (2011/05/17 23:30), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串6/8 (看更多)
※ 引述《deanh (夜想者)》之銘言: : 推 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。 也許你可以貼上程式片段讓大家討論一下。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.227.62 ※ 編輯: deanh 來自: 118.166.227.62 (05/17 23:49)

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

05/18 01:13, , 2F
但這畢竟不是最佳解
05/18 01:13, 2F

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

05/19 01:25, , 4F
可以先專注把 public method 的 test coverage 提高再說...
05/19 01:25, 4F
文章代碼(AID): #1DqfIOIC (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 8 篇):
文章代碼(AID): #1DqfIOIC (Soft_Job)