2

我正在嘗試爲我的團隊代碼實現極限編程環境。雖然我認爲極好的編程有很多方面的優點(配對編程,集體代碼所有權,持續集成是最受歡迎的),但我最感興趣的就是測試驅動的環境。在Java中執行極限編程測試

雖然我積極鼓勵使用單元/集成測試編寫新的開發,但有很多遺留代碼沒有爲其編寫測試。目前,我們正在基於如果發現錯誤,爲正確的行爲編寫測試用例並修復錯誤。不過,我想對此稍微系統一點。

有,我會很感興趣的兩種方法:

  1. 手段,以編程方式確定整個項目中所有未測試(公衆)的方法。我完全不確定這在實踐中會是什麼樣子 - 可能是一個maven插件?
  2. 一種手段要求抽象類的接口或擴展的所有實現都具有將測試特定方法(來自接口或抽象類)的測試類。

此外,我很想知道人們在轉向測試驅動環境時發現的其他任何方法。 (我明白有些人可能會說,做這種遷移是浪費時間,轉換應該隨着時間的推移進行,我們會高度重視來自具有經過良好測試的代碼的信心另外,如果我可以實現(1),那麼添加測試可以是一個額外的工作,可以在其他方面進行工作。)

回答

2

您需要一個代碼覆蓋工具;最後我記得Clover在Java中是一個很好的例子。 http://www.atlassian.com/software/clover/

你也應該閱讀:http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052

+1

三葉草是商業。對於免費代碼覆蓋範圍,請使用Cobertura或Emma。兩者都有Maven和IDE集成。我使用Cobertura。 –

+0

我知道我忘記了一個。我也喜歡Cobertura。 – Mikeb

+0

您可以使用聲納(http://www.sonarsource.com/)。 – SirVaulterScoff

1

退房Sonar。 Sonar將幫助您用各種插件管理代碼的質量。此外,它還內置了代碼覆蓋插件。除了代碼覆蓋率外,它還會提供許多其他指標,這將有助於您清理代碼或重構代碼。它有findbugs,pmd和其他插件內置。

0

另一個(免費的,開源的)代碼覆蓋工具是Emma