測試程式要很簡單


在寫測試程式時, 常常遇到的問題, 就是維護的代價很高.

原因有很多, 有時候是因為受測程式常常修改, 或者是因為需求有變動, 但有更多時候是因為測試程式自己有 bug, 因為只要是人寫的程式都會有 bug.

再加上我們求好心切, 想把程式寫得更有彈性, 好讓我們能夠更方便測試. 或是想把程式寫的功能更想大, 可以讓我們能測試的狀況更多. 因此我們花在維護程式的花費上, 比我們想像的還多得多. 因此到最後, 我們一聽到要寫測試程式時, 便會退避三舍.

最近看到 the art of unit testing 的一段話, 讓我對測試程式有了新的認識.

他提到測試程式裡, 要避免有 logic 出現. 也就是在你的測試程式中要避免有:
1. switch, if 或是 else 的敘述
2. foreach, for 或是 while 迴圈

若是你在測試程式中包含了這些項目, 代表你想測試的東西不只一個. 這將會容易產生以下問題:
1. 這個測試程式不容易被閱讀和了解
2. 測試的狀況不容被重現 (想像在一個有 multi-thread, 或是有randome number 的測試程式中, 你很難確保每次都出現相同的狀況)
3. 測試程式可能會有 bug. 或是可能測錯想要測的狀況
4. 測試程式很難命名, 因為你想測的狀況太多, 有時候很難給個好名稱來表達你要做的事

因此, 作者建議測試程式要越簡單越好, 重點是在測試, 而不是在寫程式或是修 bug.
 

arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()