在這種情況下,運行測試提醒您它雖然跳過了測試,但是它不會使您失望。實際上,它給您評為 Pass-Fail-Incomplete。
您能夠找到很多可以為您自動編寫測試的工具。然而,這些工具生成的測試往往相當瑣碎和基本,例如方法是否能夠處理傳遞來的 null 參數。這種工具不能真正了解每個類和方法應有的功能。所以,您需要人類的智能。
處理失效代碼
在這一階段很可能會令您吃驚的是,您的代碼中有多少是您實際上并不需要的。遺留代碼基礎往往具有很多殘留代碼,這些代碼現在已經不需要了,盡管在當時是必需的。越老的遺留代碼,您會找到越多的殘留代碼。有時候,這些代碼是明顯不可達的(未調用的私有方法以及未讀入的本地變量,等等)。這種類型的殘留代碼也可以通過靜態代碼分析工具如 PMD 和 FindBugs 找到。有時失效代碼看起來并不是那么明顯,只有為了測試試圖到達它時才能發現實際上的殘留程度。
不管您用何種辦法找到這種殘留代碼或者無論任何理由 它原來被放在這里,都將它去掉。您需要維護的代碼越少越好。
探索性測試
進入一個遺留系統,您常常對哪里進行檢查有好的想法:您對于某個特定的模塊、程序包或者是環境設置有問題,這些問題驅使您進行測試。在這種情況下,盡一些辦法使您的測試集中在那個區域。
有時會發現非常清楚和明顯的 bug。修復它之前,首先編寫一個測試。然后運行這個測試證實測試失敗。然而,經常令人吃驚的是,關于這個 bug 的第一直覺并不正確,測試通過了。測試失敗與否,都不要把它丟掉。它對于將來的開發仍然是有價值的。把它放在您的測試套件中,繼續編寫其他的測試。重復進行,直到找到一個真正失敗的測試,從而找到造成 bug 的真正原因。
結束語
不要過分追求完美。即使您有一個大規模的未經測試的遺留代碼基礎,現在就開始為它編寫測試吧。不要為達到獲得百分之百的覆蓋率過多擔心。您所編寫的每個測試都會增加您對代碼的信心、排除 bug 并且為將來的開發提供更多的靈活性。需要增加一個特性?編寫一個測試。找到一個 bug?編寫另外一個測試。遺留程序員也可以很靈活。
文章來源于領測軟件測試網 http://www.kjueaiud.com/