我一直在想「測試?我不需要任何怪異的測試!我沒有它就好!」如果我已經有一個沒有任何測試的龐大代碼庫,如何開始編寫測試?
然後我的代碼變長了。
現在我明白爲什麼編寫測試很重要。我總是害怕一點點改變就會導致某些事情發生。我真的想開始寫測試。但是代碼庫變得非常龐大,我真的不知所措。我不知道從哪裏開始。其中大部分我甚至不記得我爲什麼要這樣編寫代碼,所以如果我開始回去寫測試,它將會持續下去。
如果我已經有一個大的代碼庫,有人可以提供關於如何開始編寫測試的建議嗎?
我一直在想「測試?我不需要任何怪異的測試!我沒有它就好!」如果我已經有一個沒有任何測試的龐大代碼庫,如何開始編寫測試?
然後我的代碼變長了。
現在我明白爲什麼編寫測試很重要。我總是害怕一點點改變就會導致某些事情發生。我真的想開始寫測試。但是代碼庫變得非常龐大,我真的不知所措。我不知道從哪裏開始。其中大部分我甚至不記得我爲什麼要這樣編寫代碼,所以如果我開始回去寫測試,它將會持續下去。
如果我已經有一個大的代碼庫,有人可以提供關於如何開始編寫測試的建議嗎?
首先,我會推薦閱讀the WELC book,這應該在您的情況下真的派上用場。
開始下次您觸摸代碼時,下一次您需要更改代碼中的某些內容時,請先爲其編寫一個測試,然後繼續編寫有關必須更改,更新和修復所有內容的測試,或添加。這樣一來,隨着時間的推移,您將爲所有正在改變的領域添加測試,並且在爲其餘代碼編寫測試看起來並不那麼令人難以接受的時候,測試會得到一個點。
但是,我會重申一下,我將這本書鏈接到遺留代碼將會非常有用的方面,因爲它涉及瞭解決此問題方法的大量細節。
編寫測試,特別是好的需要花費很多時間,有時它可能需要50%的開發時間/成本,有時甚至更多。我將首先爲所有函數編寫單元測試,並嘗試儘可能多地獲取語句覆蓋範圍。如果你不知道一個方法是如何工作的,那麼它可能沒有很好的文檔記錄和/或寫法,並且無論如何你會更好地重寫它。
這不是一個直接的問題的答案,但有一點忠告: 你真的應該花時間,現在來修復和清理你的代碼,否則它會繼續失控。通過編寫更多的代碼,代碼不會變得更好,它只會變得更糟,如果你希望它變得更好,你必須返回並重寫它。
你在傳統的代碼陣營。請參閱WELC書籍,通過測試進行小小的安全更改,保持承諾並希望最好。但它不會在任何地方接近TDD從起跑線的場景。 – Gishu 2012-04-13 06:43:53
重複? http://stackoverflow.com/questions/6713645/building-a-test-suite-in-a-large-existing-java-code-base – Mathias 2012-04-13 17:49:30