Re: [問題] 沒有明確的結果,如何寫UnitTest?

作者: littleshan (我要加入劍道社!)   2014-11-26 22:57:27
※ 引述《lovesnake (LoyalDog)》之銘言:
: 重新問好了,發現這樣的東西似乎不適合提到演算法。
: 我現在的程式有三個步驟 , 其中 1 2 3 各個步驟接會有一個資料輸出。
: 但只有三個步驟皆完成後,產出的資料才有辦法自動化判斷正確與否。
: 其餘1 2 3 步驟各別的輸出,都一定需要人工判別,現在沒辦法自動化的東西有很多,倒
: 沒什麼爭議。
: 那請問,針對 1 2 3各個步驟的個別輸出,需要寫UnitTest嗎?
: 還是我的Unit的範圍要擴大到整個系統呢?
: 因為個別的步驟的子系統也滿大的,所以會想要針對各個子系統皆做UnitTest,
: 但又發現個別的輸出無法自動化判別,這種情況會怎麼做呢?
我認為 unit test 是手段,而不是目的。
也就是寫出明顯bug時,你可以在很短的時間內發現它,
自動化的 unit test 可以很有效率地解決這個問題,
但是當你的 test 沒辦法、或是很難自動化時,
你的目標應該轉移到「如何縮短測試時間」。
也就是說,人工判別是 ok 的,但你可以試圖讓這個判斷過程變得更有效率。
最好的情況就是你按下 build test,測試程式會馬上把中間步驟的結果秀在螢幕上。
當然,資料量增加時你會需要更有技巧的測試,
比如說適度處理輸出讓出錯的地方可以更明顯被肉眼看到、
或是把人工判斷為正確的資料 cache 下來,只顯示有差異的部份等等。
當然這些方法適不適用是 case by case,
但有技巧的測試就可以讓你的開發效率比完全不做測試、或暴力測試要好很多。

Links booklink

Contact Us: admin [ a t ] ucptt.com