Java代碼質量工具
以及更有意義的思維導圖:

但是,我認為我需要更深入地探討這一主題。 這篇博客文章應該像是在此方向上進行進一步調查的起點。
1. CodePro Analytix
這是提高軟件質量的出色??工具(Eclipse插件)。 它具有下一個關鍵功能:代碼分析,JUnit測試生成,JUnit測試編輯器,類似代碼分析,度量,代碼覆蓋率和依賴性分析。 2. PMD 它掃描Java源代碼并查找潛在的問題:可能的錯誤,死代碼,次優代碼,表達式過于復雜和重復代碼。 3. FindBugs 它查找Java程序中的錯誤。 它可以檢測各種常見的編碼錯誤,包括線程同步問題,濫用API方法等。 4.科貝圖拉 這是一個免費的Java工具,可以計算測試訪問的代碼的百分比。 它可以用來識別Java程序的哪些部分缺少測試覆蓋范圍。 它基于jcoverage。 5.艾瑪 它是基于字節碼檢測的快速Java代碼覆蓋工具。 它與現有工具的不同之處在于,它可以對大型企業軟件項目進行覆蓋范圍分析,同時強調快速的個人開發。 6. Checkstyle 它是一種開發工具,可幫助程序員編寫遵守編碼標準的Java代碼。 7. JBoss Tattletale JBoss Tattletale是一個工具,可以幫助您大致了解您正在從事的項目或您所依賴的產品。 該工具將遞歸掃描目錄中的JAR文件,并生成鏈接和格式化HTML報告。 8. UCDetector UCDetector(必需代碼檢測器)是一個開源eclipse插件工具,用于查找不必要的(死)java代碼。 它還嘗試使代碼最終,受保護或私有。 UCDetector還發現類之間的循環依賴關系。 9.聲納 Sonar是用于Java應用程序的連續質量控制工具。 其生活的基本目的是加入您現有的持續集成工具,以將所有開發項目置于質量控制之下。 10. XRadar XRadar是一個開放的,可擴展的代碼報告工具,該工具可以生成有關系統當前狀態和開發情況HTML / SVG報告。 使用DependencyFinder,JDepend,PMD,PMD-CPD,JavaNCSS,Cobertura,Checkstyle,XSource,JUnit,Java2HTML,ant和maven。 11. QALab QALab合并來自Checkstyle,PMD,FindBugs和Simian的數據,并將其顯示在一個合并的視圖中。 QALab跟蹤隨時間變化的情況,從而使您可以查看隨時間變化的趨勢。 您可以告訴天氣違反次數增加或減少的情況-在每個文件或整個項目中。 它還繪制了該數據的圖表。 QALab可以插入Maven或ant。 12. Clirr Clirr是用于檢查Java庫與舊版本的二進制和源兼容性的工具。 基本上,您給它提供了兩組jar文件,Clirr會轉儲出公共api中的更改列表。 可以將Clirr Ant任務配置為在檢測到不兼容的api更改時中斷構建。 在連續集成過程中,Clirr可以自動防止意外引入二進制或源兼容性問題。 13. JDiff JDiff是一個Javadoc doclet,當比較兩個API時,它會生成所有以任何方式刪除,添加或更改的所有程序包,類,構造函數,方法和字段(包括其文檔)HTML報告。 這對于準確描述產品的兩個版本之間發生了什么變化非常有用。 僅比較每個版本的API(應用程序編程接口)。 它不比較源代碼在執行時的功能。 14.吉林特 它通過執行數據流分析和構建鎖圖來檢查您的Java代碼并查找錯誤,不一致和同步問題。 15. JDepend JDepend遍歷Java類文件目錄,并為每個Java包生成設計質量指標。 JDepend允許您根據其可擴展性,可重用性和可維護性自動衡量設計的質量,以有效地管理和控制軟件包的依賴性。 16. cloc cloc計算許多編程語言中源代碼的空行,注釋行和物理行。 17. Dependometer Dependometer對軟件系統中的物理依賴關系進行靜態分析。 Dependometer根據邏輯體系結構驗證依賴關系,這些邏輯體系結構將系統分為類,包,子系統,垂直切片和層,并檢測這些結構元素之間的循環。 此外,它在不同的抽象層上計算許多質量指標,并報告違反所配置閾值的情況。 18. Hammurapi Hammurapi是一個開放源代碼檢查工具。 它的發行版中包含100多個檢查員,他們檢查代碼的不同方面:符合EJB規范,線程問題,編碼標準等等。 19. JavaNCSS JavaNCSS是一個簡單的命令行實用程序,它測量Java編程語言的兩個標準源代碼指標。 針對每個類和/或每個功能,全局收集度量。 20. DCD DCD在Java應用程序中找到無效代碼。 21.甲級 Classycle的分析器分析Java應用程序或庫中的靜態類和包依賴性。 這對于查找類或包之間的循環依賴關系特別有用。 Classycle與JDepend相似,后者也進行依賴關系分析,但僅在程序包級別。 22. ckjm 程序ckjm通過處理已編譯的Java文件的字節碼來計算Chidamber和Kemerer的面向對象的度量。 該程序為每個班級計算Chidamber和Kemerer提出的以下六個指標。 23. Jameleon Jameleon是一個自動化測試框架,技術用戶和非技術用戶都可以輕松使用。 Jameleon背后的主要概念之一是創建一組代表應用程序不同屏幕的關鍵字或標簽。 可以使用Java定義自動執行每個特定屏幕所需的所有邏輯,并將其映射到這些關鍵字。 然后,可以使用不同的數據集來組織關鍵字以形成測試腳本,而無需深入了解應用程序的工作方式。 然后,將測試腳本用于自動化測試并生成手動測試用例文檔。 24. DoctorJ DoctorJ在以下功能區域中分析Java代碼:文檔驗證,統計信息生成和語法分析。 25.麥克 Macker是Java開發人員的構建時體系結構規則檢查實用程序。 它旨在對程序員始終夢dream以求的項目的構架理想進行建模,然后打破-這有助于保持代碼的清潔和一致。 您可以定制規則文件以適合特定項目的結構,或者為代碼編寫一些通用的“良好實踐”規則。 Macker不會試圖將別人的規矩推到您的喉嚨上。 它非常靈活,并且編寫規則文件是每個唯一項目的開發過程的一部分。 26.魷魚 Squale是一個質量分析平臺,可以分析多語言軟件應用程序,以清晰,全面地顯示其質量:高級經理的高級要素和開發團隊的實用指標。 27. SourceMonitor 免費軟件程序SourceMonitor可讓您查看軟件源代碼的內部,以查明您擁有多少代碼并確定模塊的相對復雜性。 例如,您可以使用SourceMonitor來識別最有可能包含缺陷的代碼,因此需要進行正式審查。 28. Panopticon Panopticode項目提供了一組開源工具,用于收集,關聯和顯示代碼指標。 29. Eclipse Metrics插件 提供用于Eclipse平臺的指標計算和依賴性分析器插件。 用平均值和標準偏差測量各種指標,并檢測包裝和類型相關性中的周期并對其進行圖形化。 30. QJ-Pro QJ-Pro是針對軟件開發人員的全面軟件檢查工具。 開發人員可以在編寫程序時自動檢查其Java源代碼并提高Java編程技能。 QJ-Pro提供了描述性Java模式,解釋了易于出錯的代碼構造并為其提供了解決方案。 31.輪回 Byecycle是Eclipse的自動安排依賴性分析插件。 它的目標是使您在看到錯誤的代碼時感到惡心,并在看到良好的代碼時感到高興。 32.科夸 Coqua測量5種不同的Java代碼質量指標,為管理人員提供概述和歷史記錄,并為開發人員提供從代碼到細節的詳細視圖。 可以為每個團隊定義指標。 是大中型和/或海上項目的理想選擇。 33.依賴查找器 從大多數Java編譯器生成的Java類文件中提取依賴關系和OO度量。 34.Jalopy Jalopy是一種易于配置的源代碼格式化程序,可以檢測和修復Java代碼中可能出現的許多代碼約定缺陷。 Jalopy更像是代碼修復程序,而不是代碼檢查程序。 Jalopy插件適用于大多數IDE,并且在大多數情況下,它們可以與IDE無縫銜接。 35. JarAnalyzer JarAnalyzer是用于.jar文件的依賴項管理工具。 JarAnalyzer將分析給定目錄中的所有.jar,并確定每個之間的依賴關系。 輸出格式包括xml(包含用于將其轉換為html的樣式表)和GraphViz DOT,使您可以生成直觀的組件圖,以顯示.jar文件之間的關系。 xml輸出包括重要的設計指標,例如傳入和傳出耦合,抽象性,不穩定性和距離。 還有一個可用的Ant任務,允許您將JarAnalyzer包含在構建腳本中。 36.冷凝器 冷凝器是用于查找和刪除重復的Java代碼的工具。 與僅查找重復代碼的工具不同,Condenser的目的是在安全的地方自動刪除重復的代碼。 37.救濟 Relief對Java項目提供了新的外觀。 依靠我們通過檢查真實對象的形狀,大小或在空間中的相對位置來處理真實對象的能力,它對Java包,類型和字段及其關系提供了“物理”視圖,從而使它們更易于處理。 讓我們快速討論一下我們如何解釋物理屬性以及它如何幫助我們掌握項目特征。 38.股份公司 JCSC是一種功能強大的工具,可以根據高度定義的編碼標準和潛在的不良代碼來檢查源代碼。 該標準涵蓋了類,接口,字段,參數等的命名約定。 還可以定義類型(類/接口)的結構布局。 就像在方法之前或之后以及以什么順序放置字段一樣。 可以通過可見性或類型(實例,類,常量)定義順序。 方法同樣適用。 這些規則中的每一個都是高度可定制的。 通過定義在代碼中的空白處以及何時使用花括號,可以增強可讀性。 正確的JavaDoc的存在可以被強制執行,并且可以達到各種級別。 除此之外,它還會發現代碼中的弱點-潛在的錯誤-例如空的catch / finally塊,無默認切換,拋出“ Exception”類型,慢速代碼。 39.湯匙 Spoon是一個完全支持Java 5的Java程序處理器。它提供了完整且細粒度的Java元模型,可以在其中讀取和修改任何程序元素(類,方法,字段,語句,表達式等)。 通過使用純Java模板引擎,可以將Spoon用于驗證目的,以確保您的程序遵守某些編程約定或準則,或者用于程序轉換。 40. Lint4j Lint4j(“ Lint for Java”)是靜態Java源代碼和字節碼分析器,它檢測鎖定和線程問題,性能和可伸縮性問題,并通過執行類型,數據流和鎖定圖分析來檢查復雜的合同,例如Java序列化。 41. Crap4j Crap4j是CRAP(變更風險分析和預測)軟件度量標準的Java實現,這是一種輕度冒犯的度量標準名稱,有助于保護您免受真正冒犯的代碼的侵害。 42.路徑查找器 Java PathFinder(JPF)是用于驗證可執行Java字節碼程序的系統。 它的基本形式是一個Java虛擬機(JVM),用作顯式狀態軟件模型檢查器,系統地探索程序的所有潛在執行路徑,以發現違反諸如死鎖或未處理異常之類的屬性的情況。 與傳統的調試器不同,JPF報告導致缺陷的整個執行路徑。 JPF特別適合在多線程程序中發現難以測試的并發缺陷 43.煙灰 Soot可以用作優化或檢查類文件的獨立工具,也可以用作在Java字節碼上開發優化或轉換的框架。 44. ESC / Java2 Java版本2的擴展靜態檢查器(ESC / Java2)是一種編程工具,它通過對程序代碼及其形式注釋進行靜態分析,嘗試在帶有JML注釋的Java程序中查找常見的運行時錯誤。 用戶可以通過用特殊格式的注釋(稱為pragmas)注釋程序來控制ESC / Java2執行的檢查的數量和種類。
該列表包括開源和免費工具。 我故意排除了商業工具。 我確定還有更多工具。 如果您知道其中一些未在此處列出的信息,請在此帖子中添加評論。
別忘了分享!
參考: Java代碼質量工具-我們的JCG合作伙伴 Orest Ivasiv的概述 ,摘自Knowledge Is Everything博客。
翻譯自: https://www.javacodegeeks.com/2012/10/java-code-quality-tools-overview.html