2011-09-06 37 views
7

我想知道哪個工具最適合在我的代碼中查找任何類型的錯誤。我知道這可能是一些理論性或永無止境的問題,所以我想根據錯誤報告的效率(包括命名約定)對其進行修改。那麼你可以說哪個工具報告和最大的錯誤,以及在行業中是否有效使用?我聽說findbug真的很好嗎?哪個是在Java代碼中查找錯誤的最佳工具?

+4

使用位於你的耳朵之間的那個,這是最有力的一個,並且不能被任何機牀替換;-) –

+0

@Peter很好的評論......但有時它似乎並不實際,特別是當你只是一個起動器.. 。這些工具將幫助你增加你的工具數據庫,這個工具可以在以後使用。findbug改進了我的編程實踐。 – amod

+3

確實。但是除非你真的瞭解*爲什麼*特定的FindBugs警告已經發布以及如何避免它們,也就是說如何編寫更好的代碼(你必須使用你的大腦),你不會成爲一個更好的開發者,無論代碼有多少您使用的分析工具。 –

回答

9

FindBugs可能是最突出的之一,值得一試。

對於命名約定等,我建議你看看CheckStyle

+0

是的,我用過發現的錯誤,但我們沒有任何風格的錯誤。通過檢查風格,讓我嘗試一下。 – amod

2

Findbugs是相當不錯的。不過,我會建議使用聲吶維持代碼質量。 http://www.sonarsource.org/ 它與maven(聲納:聲納)很好地融合在一起。除此之外,我相信使用maven網站創建checkstyle,pmd,findbugs et-all報告也有助於讓開發者保持腳趾頭。

1

使用編譯器以查找語法「錯誤」

使用測試用例來發現代碼中的可用性「蟲」

使用測試工具找到迴歸問題進行代碼修改。

1

我更喜歡在IntelliJ中使用代碼分析。它不僅發現了許多可能的錯誤和改進,而且對它們進行了快速修復,這使得修復大量代碼變得切實可行。

+0

它是否也顯示標準命名約定? – amod

+1

標準命名轉換以及快速修復。即如果一個'public static final'在camelCase中,它會突出顯示(或者它出現在報告中),並且可以選擇將其重命名爲UPPER_CASE,以更改所有引用(即使在註釋,字符串和文件中) –

2

這取決於你在找什麼。就個人而言,我使用FindBugsPMD的組合來執行Java代碼的靜態分析。不過,我最近發現了一個Eclipse plugin called CodePro Analytix by Google

Java代碼分析有兩種類型 - 源代碼分析和字節代碼分析。 PMD查看源代碼以查找可能的錯誤,未使用的代碼,次優代碼,複雜表達式和重複代碼。 FindBugs查看生成的字節代碼以查找可能的錯誤。分析應用程序時,這兩者都很重要。

但是,當涉及到發現缺陷時,沒有什麼能夠勝過一個好的測試框架和(如果有必要)一個嘲諷庫。我用JUnitMockito取得了不錯的成績。這將使您能夠爲您的模塊編寫單元測試。使用自動化工具或測試程序編寫代碼系統,集成和冒煙測試也很重要,以便您可以涵蓋核心功能並快速查看何時發生故障。