2012-04-12 67 views
2

我一直在想「測試?我不需要任何怪異的測試!我沒有它就好!」如果我已經有一個沒有任何測試的龐大代碼庫,如何開始編寫測試?

然後我的代碼變長了。

現在我明白爲什麼編寫測試很重要。我總是害怕一點點改變就會導致某些事情發生。我真的想開始寫測試。但是代碼庫變得非常龐大,我真的不知所措。我不知道從哪裏開始。其中大部分我甚至不記得我爲什麼要這樣編寫代碼,所以如果我開始回去寫測試,它將會持續下去。

如果我已經有一個大的代碼庫,有人可以提供關於如何開始編寫測試的建議嗎?

+0

你在傳統的代碼陣營。請參閱WELC書籍,通過測試進行小小的安全更改,保持承諾並希望最好。但它不會在任何地方接近TDD從起跑線的場景。 – Gishu 2012-04-13 06:43:53

+0

重複? http://stackoverflow.com/questions/6713645/building-a-test-suite-in-a-large-existing-java-code-base – Mathias 2012-04-13 17:49:30

回答

5

首先,我會推薦閱讀the WELC book,這應該在您的情況下真的派上用場。

開始下次您觸摸代碼時,下一次您需要更改代碼中的某些內容時,請先爲其編寫一個測試,然後繼續編寫有關必須更改,更新和修復所有內容的測試,或添加。這樣一來,隨着時間的推移,您將爲所有正在改變的領域添加測試,並且在爲其餘代碼編寫測試看起來並不那麼令人難以接受的時候,測試會得到一個點。

但是,我會重申一下,我將這本書鏈接到遺留代碼將會非常有用的方面,因爲它涉及瞭解決此問題方法的大量細節。

1

編寫測試,特別是好的需要花費很多時間,有時它可能需要50%的開發時間/成本,有時甚至更多。我將首先爲所有函數編寫單元測試,並嘗試儘可能多地獲取語句覆蓋範圍。如果你不知道一個方法是如何工作的,那麼它可能沒有很好的文檔記錄和/或寫法,並且無論如何你會更好地重寫它。

這不是一個直接的問題的答案,但有一點忠告: 你真的應該花時間,現在來修復和清理你的代碼,否則它會繼續失控。通過編寫更多的代碼,代碼不會變得更好,它只會變得更糟,如果你希望它變得更好,你必須返回並重寫它。

+0

該行的代碼+1通過編寫更多的代碼,代碼不會變得更好」。我希望你不介意,我會借用它。 – Gishu 2012-04-13 06:53:15

+0

當然,我可能從我讀過的書中得到它。隨意引用它,有或沒有歸屬=)。 – drew212 2012-04-13 07:25:55

相關問題