FindBugs(靜態(tài)分析Eclipse插件) v3.0.7

2024-04-09發(fā)布者:zhangliang大?。?/span> 下載:0

文件大小:

軟件介紹

FindBugs是款可以幫助用戶快速查找出Java軟件中隱藏bug的靜態(tài)分析eclipse插件工具,支持命名、未使用的代碼、嵌套、導(dǎo)入語句、字符串、括號、代碼尺寸、終結(jié)函數(shù)、克隆、異常、日志檢查等,找出hash equals不匹配,還可以可以構(gòu)建自己的規(guī)則集。

軟件特色

1 、找出hash equals不匹配

找與equals()和hashCode()的實現(xiàn)相關(guān)的幾個問題。這兩個方法非常重要,因為幾乎所有基于集合的類---List、Map、Set等都調(diào)用它們。

2、檢測:忽略方法返回值

這個檢測器查找代碼中忽略了不應(yīng)該忽略的方法返回值的地方。這種情況的一個常見例子是在調(diào)用String方法時。

這個錯誤很常見。在第2行,程序員認(rèn)為他已經(jīng)用p替換了字符串中的所有b。確實是這樣,但是他忘記了字符串是不可變的。所有這類方法都返回一個新字符串,而從來不會改變消息的接收者。

3、檢測:Null指針對null的解引用(dereference)和冗余比較

這個檢測器查找兩類問題。它查找代碼路徑將會或者可能造成null指針異常的情況,它還查找對null的冗余比較的情況。例如,如果兩個比較值都為null,那么它們就是冗余的并可能表明代碼錯誤。FindBugs在可以確定一個值為null而另一個值不為null時,檢測類似的錯誤。

4、檢測:初始化之前讀取字段

這個檢測器尋找在構(gòu)造函數(shù)中初始化之前被讀取的字段。這個錯誤通常是由使用字段名而不是構(gòu)造函數(shù)參數(shù)引起的,例如在構(gòu)造函數(shù)中讀取未初始化的字段。

5、命名檢查

對標(biāo)準(zhǔn)Java命令規(guī)范的測試:變量名稱不應(yīng)太短;方法名稱不應(yīng)過長;類名稱應(yīng)當(dāng)以小寫字母開頭;方法和字段名應(yīng)當(dāng)以小寫字母開頭,等等。

6、未使用的代碼檢查

查找從未使用的私有字段和本地變量、執(zhí)行不到的語句、從未調(diào)用的私有方法,等等。

7、嵌套檢查

例如:switch語句應(yīng)當(dāng)有default塊,應(yīng)當(dāng)避免深度嵌套的if塊,不應(yīng)當(dāng)給參數(shù)重新賦值,不應(yīng)該對double值進行相等比較。

8、導(dǎo)入語句檢查

檢查import語句的問題,比如同一個類被導(dǎo)入兩次或者被導(dǎo)入java.lang的類中。

9、JUnit測試檢查

查找測試用例和測試方法的特定問題,例如方法名稱的正確拼寫,以及suite()方法是不是static和public。

10、字符串檢查

找出處理字符串時遇到的常見問題,例如重復(fù)的字符串標(biāo)量,調(diào)用String構(gòu)造函數(shù),對String變量調(diào)用toString()方法。

11、括號檢查

檢查for、if、while和else語句是否使用了括號。

12、代碼尺寸檢查

測試過長的方法、有太多方法的類以及重構(gòu)方面的類似問題。

13、終結(jié)函數(shù)檢查

因為在Java語言中,finalize()方法不是那么普遍,它們的使用規(guī)則雖然很詳細(xì),但是人們對它們相對不是很熟悉。這類檢查查找finalize()方法的各種問題,例如空的終結(jié)函數(shù),調(diào)用其他方法的finalize()方法,對finalize()的顯式調(diào)用,等等。

14、克隆檢查

用于clone()方法的新規(guī)則。凡是重寫clone()方法的類都必須實現(xiàn)Cloneable,clone()方法應(yīng)該調(diào)用super.clone(),而clone()方法應(yīng)該聲明拋出CloneNotSupportedException異常,即使實際上沒有拋出異常,也要如此。

15、耦合檢查

查找類之間過度耦合的跡象,比如導(dǎo)入內(nèi)容太多;在超類型或接口就已經(jīng)夠用的時候使用子類的類型;類中的字段、變量和返回類型過多等。

16、異常檢查

針對異常的檢查:不應(yīng)該聲明該方法而拋出java.lang.Exception異常,不應(yīng)當(dāng)將異常用于流控制,不應(yīng)該捕獲Throwable,等等。

17、日志檢查

查找java.util.logging.Logger的不當(dāng)使用,包括非終狀態(tài)(nonfinal)、非靜態(tài)的記錄器,以及在一個類中有多個記錄器。

18、Open—Close檢查

檢查文件或通訊方面,是否忘記Close的情況。

19、其它檢查

其它缺陷清單可參見:缺陷清單。

20、構(gòu)建自己的規(guī)則集

可以構(gòu)建自己的規(guī)則集。

使用方法

下載之后,把解壓后的文件拷貝到 $ECLIPSE_HOME/plugins/目錄下,重新啟動eclipse即完成安裝。

1、插件的設(shè)置:

安裝好之后,可以通過 Projects > Property > FindBugs標(biāo)簽對其進行設(shè)置。設(shè)置方法可以根據(jù)自己的需要進行調(diào)整。

另外在 問題(Proplems)列表窗口(Windows > 視圖 > 問題)的Filter設(shè)置里,把FindBugs的有關(guān)選項都check上。

2、插件的執(zhí)行:

選中 所在項目,鼠標(biāo)右鍵 > Find Bugs > Find Bugs執(zhí)行

軟件測評

能夠查找Java軟件中可能出現(xiàn)的bug

幫助java工程師提高代碼質(zhì)量以及排除隱含的缺陷

直接查找可能存在的空的引用、多余的變量等錯誤

image.png

發(fā)表評論(共0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評論內(nèi)容只代表網(wǎng)友觀點,發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對任何資源負(fù)法律責(zé)任,所有資源請在下載后24小時內(nèi)刪除。

3 若有關(guān)在線投稿、無法下載等問題,請與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請立刻聯(lián)系我們并具體說明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部