導航:首頁 > 編程語言 > javafindbugs

javafindbugs

發布時間:2024-03-25 01:48:12

Ⅰ 靜態代碼掃描工具 哪個好 java

1、 Checkstyle
Checkstyle 是SourceForge的開源項目,通過檢查對代碼編碼格式,命名約定,Javadoc,類設計等方面進行代碼規范和風格的檢查,從而有效約束開發人員更好地遵循代碼編寫規范。Checkstyle 提供了支持大多數常見IDE的插件。

2、FindBugs
FindBugs 是由馬里蘭大學提供的一款開源 Java 靜態代碼分析工具。FindBugs 通過檢查類文件或 JAR 文件,將位元組碼與一組缺陷模式進行對比從而發現代碼缺陷,完成靜態代碼分析。FindBugs 既提供可視化 UI 界面,同時也可以作為 Eclipse 插件使用。

3、PMD
PMD 是由 DARPA 在 SourceForge 上發布的開源 Java 代碼靜態分析工具。PMD 通過其內置的編碼規則對 Java 代碼進行靜態檢查,主要包括對潛在的 bug,未使用的代碼,重復的代碼,循環體創建新對象等問題的檢驗。PMD 提供了和多種 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。

4、Jtest
Jtest 是Parasoft 公司推出的一款針對Java語言的自動化代碼優化和測試工具,Jtest 的靜態代碼分析功能能夠按照其內置的超過800條的 Java 編碼規范自動檢查並糾正這些隱蔽且難以修復的編碼錯誤。同時,還支持用戶自定義編碼規則,幫助用戶預防一些特殊用法的錯誤。

Ⅱ 做靜態代碼分析都是用那個軟體的

本文首先介紹了靜態代碼分析的基本概念及主要技術,隨後分別介紹了現有 4 種主流 Java 靜態代碼分析工具 (Checkstyle,FindBugs,PMD,Jtest),最後從功能、特性等方面對它們進行分析和比較,希望能夠幫助 Java 軟體開發人員了解靜態代碼分析工具,並選擇合適的工具應用到軟體開發中。


引言

在 Java 軟體開發過程中,開發團隊往往要花費大量的時間和精力發現並修改代碼缺陷。Java 靜態代碼分析(static code analysis)工具能夠在代碼構建過程中幫助開發人員快速、有效的定位代碼缺陷並及時糾正這些問題,從而極大地提高軟體可靠性並節省軟體開發和測試成 本。目前市場上的 Java 靜態代碼分析工具種類繁多且各有千秋,因此本文將分別介紹現有 4 種主流 Java 靜態代碼分析工具 (Checkstyle,FindBugs,PMD,Jtest),並從功能、特性等方面對它們進行分析和比較,希望能夠幫助 Java 軟體開發人員了解靜態代碼分析工具,並選擇合適的工具應用到軟體開發中。

靜態代碼分析工具簡介

什麼是靜態代碼分析

靜態代碼分析是指無需運行被測代碼,僅通過分析或檢查源程序的語法、結構、過程、介面等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷,如參數不匹配,有歧義的嵌套語句,錯誤的遞歸,非法計算,可能出現的空指針引用等等。

在軟體開發過程中,靜態代碼分析往往先於動態測試之前進行,同時也可以作為制定動態測試用例的參考。統計證明,在整個軟體開發生命周期中,30% 至 70% 的代碼邏輯設計和編碼缺陷是可以通過靜態代碼分析來發現和修復的。

但是,由於靜態代碼分析往往要求大量的時間消耗和相關知識的積累,因此對於軟體開發團隊來說,使用靜態代碼分析工具自動化執行代碼檢查和分析,能夠極大地提高軟體可靠性並節省軟體開發和測試成本。

靜態代碼分析工具的優勢

1. 幫助程序開發人員自動執行靜態代碼分析,快速定位代碼隱藏錯誤和缺陷。

2. 幫助代碼設計人員更專注於分析和解決代碼設計缺陷。

3. 顯著減少在代碼逐行檢查上花費的時間,提高軟體可靠性並節省軟體開發和測試成本。


Java 靜態代碼分析理論基礎和主要技術

Ⅲ 如何更好地利用Pmd,Findbugs和CheckStyle分析結果

Pmd 它是一個基於靜態規則集的Java源碼分析器,它可以識別出潛在的如下問題:

– 可能的bug——空的try/catch/finally/switch塊。

– 無用代碼(Dead code):無用的本地變數,方法參數和私有方法。

– 空的if/while語句。

– 過度復雜的表達式——不必要的if語句,本來可以用while循環但是卻用了for循環。

– 可優化的代碼:浪費性能的String/StringBuffer的使用。


FindBugs 它用來查找Java代碼中存在的bug。它使用靜態分析方法標識出Java程序中上百種潛在的不同類型的錯誤。


Checkstyle 它定義了一系列可用的模塊,每一個模塊提供了嚴格程度(強制的,可選的…)可配置的檢查規則。規則可以觸發通知(notification),警告(warning)和錯誤(error)。


現在有很多查看這些工具的處理結果的方式:


XML格式:這些工具都可以產生XML文件,這些XML文件能用來產生HTML報表或者是被別的工具用來瀏覽分析的結果。

HTML格式:HTML格式是最受歡迎的產生報表和團隊間分享的的方式,你也可以用xsl表格創建你自己的報表。

IDE插件:幾乎所有叫得上名字的IDE都給這些工具提供了插件,這使得發現源碼中存在的所有問題幾乎變成可能。

代碼質量工具的一個問題是,它們有時候會給開發者提示很多不是錯誤的錯誤-也叫做假陽性(false positives)。當這種情況發生的時候,開發者可以學著忽略工具的輸出信息,或者是把這些輸出全部拋棄掉。


為了更好的利用這些工具的輸出結果,給開發者一個更有用的視圖,最好是有一種只關注我們想要的東西的方式。本文中,我們將找出其他有趣的方式來更好的利用所有這些有名的Java靜態分析工具的輸出結果,然後可以像查詢資料庫那樣查詢這些結果。


JArchitect和CQLinq


JArchitect是另一個靜態分析工具,它彌補了其他工具(的不足),它是使用一種基於Linq(CQLinq)的代碼查詢語言像查詢資料庫那樣來查詢代碼。


JArchitect3的以前版本,只能查詢從JArchitect提取出來的分析數據,但是從JArchitect4開始,可以把許多其他靜態分析工具的輸出結果包含進來,然後使用CQLinq做查詢。


讓我們以PDT核心(eclipse的Php插件)的源碼為例來說明如何在JArchitect中利用好這些靜態工具的分析結果。


在查詢分析結果以前,要遵守以下幾個步驟:


第一步:

用PMD,CPD,FindBugs和CheckStyle分析項目工程,生成包含分析結果的XML文件。


第二步:

用JArchitect分析項目工程。


第三步:

在JArchitect點擊菜單「插件(Plugins)」->「導入插件結果文件(Import Plugins Result Files)」把所有的XML文件導入到JArchitect中。


JArchitect默認給這些工具提供了許多有用的查詢,並且這些查詢都是可以很簡單的進行定製的。

閱讀全文

與javafindbugs相關的資料

熱點內容
瑞銀3887win10 瀏覽:833
學網路編程哪個好 瀏覽:805
手機vmos導入的文件在哪裡 瀏覽:115
蘋果手機可以把文件傳到華為嗎 瀏覽:63
海川化工下載的文件默認到哪裡 瀏覽:343
學唱粵語歌app 瀏覽:975
qq游戲生死狙擊玩不了 瀏覽:120
win10郵件不顯示圖片 瀏覽:922
口袋妖怪所有版本下載 瀏覽:504
我們身邊都有哪些大數據例子 瀏覽:25
震旦adc307掃描的文件在哪裡 瀏覽:999
圖片打開變成文件 瀏覽:194
松下微單電腦傳文件軟體 瀏覽:574
蘋果藍牙鍵盤surface 瀏覽:170
mindmaplinux 瀏覽:733
oppo手機怎麼連接電腦傳輸數據 瀏覽:624
word刪除章節附註分隔符 瀏覽:773
公告質疑需要哪些文件 瀏覽:608
資料庫模型是干什麼的 瀏覽:404
win10的驅動怎麼安裝驅動 瀏覽:320

友情鏈接