本發(fā)明涉及代碼檢測,特別涉及一種可進行多維度檢測的質量評估平臺。
背景技術:
目前市場有眾多類別的代碼質量檢測工具,主要是通過對靜態(tài)代碼進行質量檢測和管理,無需運行被測代碼,通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷,如參數不匹配,有歧義的嵌套語句,錯誤的遞歸,非法計算,可能出現的空指針引用等。靜態(tài)代碼分析工具能夠幫助開發(fā)人員快速、有效的定位代碼缺陷并及時糾正這些問題,從而極大地提高軟件可靠性、節(jié)省開發(fā)成本和測試成本。
目前市場上有一款廣泛應用的代碼質量檢測工具為findbugs。findbugs是一個靜態(tài)分析工具,它檢查類或者jar文件,將字節(jié)碼與一組缺陷模式進行對比以發(fā)現可能的問題。findbugs不注重樣式或者格式,它只尋找真正的缺陷或者潛在的性能問題。它主要包括3種使用方式:findbugs+jenkinsci集成運行方式、findbugsui運行方式和ide增加findbugsplugin方式。
技術實現要素:
本發(fā)明的目的是提供一種可進行多維度檢測的質量評估平臺,能夠整合第三方插件或利用自身分析工具,通過對幾個維度進行代碼質量檢測分析,輸出量化結果。
為了實現以上目的,本發(fā)明是通過以下技術方案實現的:
一個可進行多維度檢測的質量評估平臺,其特點是,包含:
構建工具,用于構建項目并觸發(fā)分析請求;
分析模塊,用于讀入源代碼,并對所述的源代碼依靠不同的代碼規(guī)范進行代碼質量評測;
數據庫,用于存入代碼質量評測結果;
圖像生成模塊,用于加工代碼質量評測結果數據,并以圖像界面形式呈現給用戶。
所述的分析模塊包含:分析工具和通過api接口接入的第三方分析插件。
所述的分析工具用于發(fā)現源代碼存在的缺陷和壞味道,其包含:
掃描器,用于掃描源代碼;
語言定義單元,用于定義源代碼對應的編程語言;
規(guī)則定義單元,用于定義規(guī)則對應的語言、規(guī)則的標簽、規(guī)則容器、觸犯規(guī)則的嚴重程度和規(guī)則的狀態(tài)信息;
profile用戶配置文件定義單元,用于定義分析工具的配置信息,并包括對語言和規(guī)則集的關聯。
所述的第三方分析插件,用于發(fā)現源代碼存在的缺陷和壞味道,其包含:pmd工具、checkstyle工具和findbugs工具的一種或幾種。
所述的圖像生成模塊具體用于根據數據庫存入代碼質量評測結果生成對應的代碼質量圖像。
所述的數據庫還存有項目基本信息、測試指標、測試標準集和分析快照。
所述的分析模塊對潛在bug、重復代碼、復雜分布代碼、糟糕設計和不遵循代碼標準進行代碼質量評測。
本發(fā)明與現有技術相比,具有以下優(yōu)點:
1、增加了代碼質量、包與包,類與類之間的依賴情況、代碼耦合情況的檢測;并關注文件的復雜度、代碼的重復度等代碼整體的健康情況。
2、對傳統(tǒng)的代碼靜態(tài)檢測如pmd、findbugs等工具進行整合。
3、能夠發(fā)現除靜態(tài)代碼外其他潛在代碼健康性問題。
4、能夠對java以外的其他編程語言提供支持,對國際化以及報告文檔化也有良好的支持。設置靈活的插件支持對編程語言的拓展;
5、能夠對分析結果進行再加工處理,通過量化的方式度量代碼質量的變化。
附圖說明
圖1為本發(fā)明一種可進行多維度檢測的質量評估平臺的模塊圖;
圖2為本發(fā)明的第三方分析插件的集成模塊圖。
具體實施方式
以下結合附圖,通過詳細說明一個較佳的具體實施例,對本發(fā)明做進一步闡述。
如圖1所示,一個可進行多維度檢測的質量評估平臺,包含:構建工具1,用于構建項目并觸發(fā)分析請求;分析模塊2,用于讀入源代碼,并對所述的源代碼依靠不同的代碼規(guī)范進行代碼質量評測;數據庫3,用于存入代碼質量評測結果;圖像生成模塊4,用于根據數據庫存入代碼質量評測結果生成對應的代碼質量圖像,以量化的方式來衡量代碼質量,以圖像界面形式呈現給用戶,從而方便地對不同規(guī)模和種類的工程進行相應的代碼質量管理。
上述的構建工具包含:ant或maven或gradle。
分析模塊2將質量評測結果生成xml格式的報告,并讀取到數據庫中。
所述的分析模塊2,用于發(fā)現源代碼存在的缺陷和壞味道,其包含:分析工具21和通過api接口接入的第三方分析插件22,分析模塊對潛在bug、重復代碼、復雜分布代碼、糟糕設計和不遵循代碼標準進行代碼質量評測,該分析工具21可以為平臺自有的。
上述的分析工具包含:掃描器,用于掃描源代碼;語言定義單元,用于定義源代碼對應的編程語言;規(guī)則定義單元,用于定義規(guī)則對應的語言、規(guī)則的標簽(如缺陷、壞味道、重復等)、規(guī)則容器、觸犯規(guī)則的嚴重程度(緊急、嚴重、較高級、較低級、低級);用戶配置文件(profile)定義單元,用于定義分析工具的配置信息,包括對語言和規(guī)則集的關聯。
如圖2所示,上述的第三方分析插件22,用于發(fā)現源代碼存在的缺陷和壞味道,其包含:pmd工具、checkstyle工具和findbugs工具的一種或幾種,及其他符合接口要求的插件,每個第三方分析插件也同樣包含:掃描器,用于掃描源代碼;語言定義單元,用于定義源代碼對應的編程語言;規(guī)則定義單元,用于定義規(guī)則對應的語言、規(guī)則的標簽(如缺陷、壞味道、重復等)、規(guī)則容器、觸犯規(guī)則的嚴重程度(緊急、嚴重、較高級、較低級、低級);用戶配置文件(profile)定義單元,用于定義第三方分析插件的配置信息,包括對語言和規(guī)則集的關聯。
所述的數據庫還存有項目基本信息、測試指標、測試標準集和分析快照,在分析過程中根據設置好的工作流執(zhí)行分析任務,并把分析數據存在數據庫或緩存中。當分析結果大于某個指定閾值后,即認為需要報警。通過分析模塊分別對潛在bug、重復代碼、復雜分布代碼、糟糕設計、不遵循代碼標準幾個維度進行代碼質量檢測分析。最后對結果進行再加工處理,通過量化的方式度量代碼質量的變化。
綜上所述,本發(fā)明一種可進行多維度檢測的質量評估平臺,能夠整合第三方插件或利用自身分析工具通過對幾個維度進行代碼質量檢測分析,輸出量化結果。
盡管本發(fā)明的內容已經通過上述優(yōu)選實施例作了詳細介紹,但應當認識到上述的描述不應被認為是對本發(fā)明的限制。在本領域技術人員閱讀了上述內容后,對于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護范圍應由所附的權利要求來限定。