這是findbugs插件下載,是一個靜態(tài)分析工具,它檢查類或者 JAR 文件,將字節(jié)碼與一組缺陷模式進行對比以發(fā)現(xiàn)可能的問題。有了靜態(tài)分析工具,就可以在不實際運行程序的情況對軟件進行分析。不是通過分析類文件的形式或結構來確定程序的意圖,而是通常使用 Visitor 模式。
findbugs插件是找出的bug有3中顏色,黑色的臭蟲標志是分類,紅色的臭蟲表示嚴重bug發(fā)現(xiàn)后必須修改代碼,橘黃色的臭蟲表示潛在警告性bug盡量修改。(附錄是各種bug的解釋及修改方案,請大家按附表參考修改)
雙擊bug項目就可以在右邊編輯窗口自動打開相關代碼文件并連接到代碼片段。點擊行號旁邊的小臭蟲圖標后再eclipse下方輸出區(qū)將提供詳細的bug描述,以及修改建議等信息。我們可以根據(jù)此信息進行修改。
findbugs插件是一款EcliPSe插件,能夠發(fā)現(xiàn)java代碼中的bug,針對各種問題,它并且提供了簡單的修改意見供我們重構時進行參考; 通過使用它,可以一定程度上降低我們code review的工作量,并且會提高review效率。 通過findbugs找到bug,再由我們自己重構代碼,可以培養(yǎng)我們的編碼意識及水平,形成好的習慣提高開發(fā)編碼能力。
開發(fā)階段
當Developer完成了某一部分功能模塊開發(fā)的時候(這通常是指代碼撰寫完成,并已 deb
ug通過之后),可藉由FindBugs對該模塊涉及的java文件進行一次掃描,以發(fā)現(xiàn)一些不易察覺的bug或是效能問題。交付新版的時候,開發(fā)團隊可以跑一下FindBugs,除掉一些隱藏的Bug。FindBugs得出的報告可以作為該版本的一個參考文檔一并交付給測試團隊留檔待查。
在開發(fā)階段使用FindBugs,一方面開發(fā)人員可以對新版的品質更有信心,另一方面,測試人員藉此可以把更多的精力放在業(yè)務邏輯的確認上面,而不是花大量精力去進一些要在特殊狀況下才可能出現(xiàn)的BUG(典型的如Null Pointer Dereference)。從而可以提高測試的效率。
維護階段
這里指的是系統(tǒng)已經(jīng)上線,卻發(fā)現(xiàn)因為代碼中的某一個bug導致系統(tǒng)崩潰。在除掉這個已暴露的 bug之后,為了快速的找出類似的但還未暴露的 bug,可以使用FindBugs對該版的代碼進行掃描。當然,在維護階段使用FindBugs往往是無奈之舉,且時間緊迫。此外,如果本來在新版交付的時候就使用過FindBugs的話,往往意味著這種bug是FindBugs還無法檢測出的。這也是FindBugs局限的地方。
FindBugs不能發(fā)現(xiàn)非java的Bug。對于非java撰寫的代碼,如 javascript,SQL等等,要找出其中可能的bug,F(xiàn)indBugs是無能為力的。當然,javascript中的bug似乎還不至于使系統(tǒng)崩潰,而SQL中的bug往往又跟業(yè)務邏輯相關,只要測試仔細一些應該是可以發(fā)現(xiàn)的。
FindBugs不過是一個工具。作為開發(fā)人員,當然首先要在編程的時候努力避免引入bug,而不要依賴于某個工具來為自己把關。不過由于代碼的復雜性,一些隱藏的bug確實很難靠咱們的肉眼發(fā)現(xiàn)。這時,應用一些好的工具或許就可以幫你發(fā)現(xiàn)這樣的 bug。這便是FingBug存在的價值。