2010-11-16 110 views
5

在我們的JUnit測試套件中,我發現了一些不會提高覆蓋率的測試,因此應該刪除(它們需要時間,但並沒有真正增加測試套件的價值)。刪除多餘的JUnit測試套件測試

我想知道哪些工具可以爲我找出冗餘測試?

回答

6

我認爲這是代碼覆蓋度量的誤用。僅僅因爲測試不會增加度量標準,它不一定是多餘的 - 它可以測試由幾個其他測試一起覆蓋的LOC組成的特定執行路徑,但表示其他測試無法涵蓋的行爲。請記住:代碼行爲受狀態的影響非常大,但是我所知道的測試覆蓋率工具並沒有衡量狀態空間的覆蓋率。

除非測試套件的運行時間是一個嚴重的問題,否則使用時間可以做的事情要比消除可能的多餘測試要好得多。

+0

我傾向於同意你的觀點(可能會濫用覆蓋率指標)。但還有其他一些指標,所以我認爲應該更廣泛地考慮這個問題,並考慮更多的標準指標,例如條件的數量。 – 2010-11-16 10:43:25

2

幾個月前我用Eclipse插件Clover。它可以顯示每行代碼在單元測試後執行和突出顯示的次數。我認爲三葉草在這一點上可以幫到你。

+0

這實際上並不是我的觀點:)在開發過程中,我在Hudson和IntelliJ自己的覆蓋工具上使用了Cobertura。後者還顯示每條線路通過的次數。但不是從哪個測試!我想知道哪些測試不會增加更好的覆蓋率,並且由於我不是自閉症,所以我不記得測試套件通過代碼庫中每行的次數。 – 2010-11-16 09:57:46

+0

瞭解。我希望Clover在這幾個月裏添加了非常新的功能:) – 2010-11-16 10:02:58