這邊我們可以分成兩種情況來看
這有很大的情況是前人留下來的測試,但後面接手的人並沒有好好維護下去。輾轉之下這個專案到了我們團隊的手上。
這時我們有一個問題要先達成共識。這個專案的測試我們要管它嗎?如果大家的共識是不要,那就沒有什麼好講的了,不理它就是了。
如果大家的共識是要維護測試,那接下來我們就面臨一個問題,這些壞掉的測試要怎麼辦?這時我們會有兩個選擇修和不修。
如果我們要修,那我們就必需花時間去修,這是一條很痛苦的過程,尤其是如果前人寫的測試的可讀性不高的情況下,很多時候你會看不懂它在測試什麼,它想驗證的事什麼。
修改起來要花費很多的時間和精力,好處是我們可以更瞭解這個專案。但我們必需要考慮的是,在這個時間點,花這樣的時間和精力去修改這些測試是否值得。這個答案當然是看狀況。
如果我們選擇要維護測試,但我們又不修改壞掉的測試。這會出現一個很有趣的現象假設原本的專案裡面有 100 個測試, 70 個是好的,30 個是壞掉的。
然後我們在修改程式時,我們有好習慣也會跑測試,此時如果出來的結果也是 70 通過, 30 個失敗。這樣的結果是什麼意思?它是否可以說我們沒有改壞任何東西呢?有很大的可能性是這樣,但是否也有可能我其實把一個對的改壞了,然後把一個錯的改對了?一加一減的情況下,數據就是一樣的。我們根本無法知道測試是否有保護到我們所寫的程式碼。
所以我們到底要不要修呢?還是我們有其他的方法呢?先想一想我們明天再繼續。