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