【轉(zhuǎn)】靜態(tài)代碼分析工具清單

轉(zhuǎn)自:https://blog.csdn.net/liwg06/article/details/56349789/旋恼,只限本人個人學習。侵刪统台。


本文是一個靜態(tài)代碼分析工具的清單雕擂。共有8個工具,其中7個是開源工具贱勃,1個有免費使用的版本井赌,都可以用于多種語言。

Codacy

Codacy幾乎包含所有你需要的功能贵扰。比如免安裝版本仇穗、支持多種語言、只關(guān)注提交版本中的新問題戚绕、企業(yè)級安全保障纹坐、發(fā)現(xiàn)新問題時可以收到通知、安全和性能檢查舞丛、配置文件適用于所有項目耘子、提供云或者預置版本、代碼覆蓋率球切、上千條規(guī)則拴还、分析不同分支、靈活定制欧聘、代碼重復率片林、攪拌器/復雜性、忽視不相關(guān)的問題保持分析結(jié)果簡潔、估計修復問題的時間费封、項目統(tǒng)計焕妙、在GH/BB/GL上自動注釋PR、文檔記載每個問題弓摘、管理用戶角色和權(quán)限焚鹊、設(shè)置目標幫助修復技術(shù)債務(wù)。

通常Codacy官方支持語言版本都支持靜態(tài)分析韧献、代碼重復率末患、代碼復雜性和測試覆蓋率。現(xiàn)在支持如下語言:Scala锤窑、Java璧针、JavaScript、Python渊啰、Ruby探橱、PHP。

社區(qū)支持的語言是那些被用戶加入Codacy的語言绘证。當支持這些語言的版本可以完美的工作時隧膏,它可能只限于靜態(tài)分析功能。包括CoffeeScript嚷那、CSS胞枕、C/C++、Dockerfile魏宽、SASS曲稼、Shell Scrip、Swift和TypeScript湖员。

官網(wǎng):https://www.codacy.com/

GitHub:https://github.com/codacy


Moose

Moose屬于BSD/MIT,是一個基于Pharo環(huán)境的軟件和數(shù)據(jù)分析開源平臺瑞驱。它提供多種服務(wù)娘摔,范圍從導入和分析數(shù)據(jù)到模型化,再到測量唤反、查詢凳寺、挖掘和構(gòu)建交互式可視化分析工具。目前支持的語言是C彤侍,C++肠缨,Java,Smalltalk盏阶,.NET晒奕,也許以后會添加更多。

最新版本:6.1

官網(wǎng):http://www.moosetechnology.org/

GitHub:https://github.com/moose/Moose

Humane assessment:http://humane-assessment.com/

Agile visualization:http://agilevisualization.com/


Copy/Paste Detector(CPD)

PMD是一個源代碼分析器。它尋找常見的編程缺陷脑慧,例如未使用的變量魄眉、空的catch塊、多余的對象創(chuàng)建等等闷袒。支持Java坑律、JavaScript、Salesforce.com Apex囊骤、PLSQL晃择、Apache Velocity、XML也物、XSL宫屠。

另外,它包含CPD(copy-paste-detector)焦除,一個復制粘貼檢測器激况。CPD尋找重復的代碼,支持Java膘魄、C乌逐、C++、C#创葡、Groovy浙踢、PHP、Ruby灿渴、Fortran洛波、JavaScript、PLSQL骚露、Apache Velocity蹬挤、Scala、Objective C棘幸,Matlab焰扳,Python,Go误续,Swift和Salesforce.com Apex吨悍。


最新版本:5.5.2

發(fā)布日期:2016年11月5日

官網(wǎng):https://pmd.github.io/

GitHub:https://github.com/pmd


Pretty Diff

Pretty Diff聯(lián)合多個語言解析器為當前流行的網(wǎng)絡(luò)語言比較工具創(chuàng)造了一個能夠識別語言差異的工具。它可以立刻比較簡化的代碼和它對應的開發(fā)環(huán)境蹋嵌。

因為這個工具包含多個語言解析器執(zhí)行美化操作育瓜,所以有大量的可用功能和更多的可能。

最新版本:2.1.15

發(fā)布日期:2016年12月4日

官網(wǎng):http://prettydiff.com/

GitHub:https://github.com/prettydiff/prettydiff


SonarQube

主要功能:

1. 編寫干凈的代碼:SonarQube提供一份關(guān)于源代碼整體健康情況的概述栽烂。更重要的是躏仇,它將在新代碼中發(fā)現(xiàn)的問題高亮顯示恋脚。使用項目中的質(zhì)量門設(shè)置,你將可以輕易的修復漏洞钙态,機械的改善代碼慧起。

2. 檢測錯誤:代碼分析器配備強大的路徑敏感數(shù)據(jù)流引擎,可以嚴格檢測錯誤册倒。比如空指針引用蚓挤、邏輯錯誤、資源泄漏等等驻子。

3. 多語言:超過20個代碼分析器可以使用灿意,SonarQube為每個主流編程語言提供一個代碼分析器:C/C++、JavaScript崇呵、C#缤剧、Java、COBOL域慷、PL/SQL荒辕、PHP、ABAP犹褒、VB.NET抵窒、Python、RPG叠骑、Flex李皇、Objective-C、Swift宙枷、Web等等掉房。每個分析器提供大量的規(guī)則以便定位普遍的和特定語言的質(zhì)量問題。應用程序經(jīng)常一次使用幾種編程語言慰丛,例如[C#卓囚,C++和JavaScript]或者[Java,JavaScript和HTML]诅病。SonarQube自動檢測這些語言哪亿,調(diào)用對應的分析器。

4. 開發(fā)運營一體化:SonarQube希望成為開發(fā)運營生態(tài)系統(tǒng)的一部分睬隶,因此使用網(wǎng)勾或廣泛的數(shù)據(jù)接口將它集成入CI引擎、提升渠道等页徐。

5. 集中控制質(zhì)量:為開發(fā)者苏潜、技術(shù)領(lǐng)導、管理者和負責幾個或者幾千個項目的決策層提供一個代碼質(zhì)量共享的愿景变勇。


最新版本:6.2

發(fā)布日期:2016年12月14日

官網(wǎng):https://www.sonarqube.org/

GitHub:https://github.com/SonarSource/sonarqube


SourceMeter

SourceMeter是一個創(chuàng)新的精確靜態(tài)源代碼分析工具恤左,可用于C/C++贴唇,Java,C#飞袋,Python語言和RPG項目戳气。這個工具使在開發(fā)時僅從源代碼中尋找系統(tǒng)薄弱點成為可能,不需要模擬生存條件巧鸭。

這個工具還集成了最好的免費可用的靜態(tài)檢查器工具(Cppcheck瓶您,PMD,F(xiàn)indBugs纲仍,F(xiàn)xCop呀袱,Pylint),并且以統(tǒng)一的方式呈現(xiàn)它們的結(jié)果郑叠。

使用這些分析結(jié)果夜赵,被分析的源代碼質(zhì)量在短期和長期都可以直接改善和開發(fā)。

功能有限的免費版本可用于所有編程語言乡革。

官網(wǎng):https://www.sourcemeter.com/


Squale多語言

Squale(Software QUALity Enhancement)幫助處理軟件的開發(fā)質(zhì)量寇僧,項目主要關(guān)注兩個方面:

開發(fā)增強質(zhì)量模型:

受已存在的標準(ISO-9126)和方法(GQM,McCall)啟發(fā)沸版;

被著名的科研人員驗證和改進嘁傀,他們是Squale團隊的一部分;

處理技術(shù)和節(jié)約兩方面的質(zhì)量推穷。

開發(fā)一個開源應用去幫助評估軟件質(zhì)量并隨著時間提高它:

基于第三方技術(shù)(商業(yè)的或者開源的)產(chǎn)生原始質(zhì)量信息(例如度量標準)心包;

使用質(zhì)量模型將這些原始信息合成為高層級的質(zhì)量因素;

所有這些都面向不同的語言馒铃,包括Java蟹腾,C/C++,.NET区宇,Cobol等娃殖。

最新版本:7.1

發(fā)布日期:20011年5月26日

官網(wǎng):http://www.squale.org/

GitHub:https://github.com/bellingard/squale


Yasca

Yasca是一個2007年開始開發(fā)的源代碼分析工具。它被稱之為一個美化的正則表達式腳本加上一個其他開源工具集合器议谷。

Yasca可以掃描檢查很多語言的源代碼炉爆、比如Java、C/C++卧晓、HTML芬首、JavaScript、ASP逼裆、ColdFusion郁稍、PHP、COBOL胜宇、.NET和其他一些語言耀怜。Yasca很容易和其他工具集成恢着、包括FindBugs、PMD财破、JLint掰派、JavaScript Lint、PHPLint左痢、CppCheck靡羡、ClamAV、RATS和Pixy抖锥。

Yasca設(shè)計的非常靈活亿眠,并且容易擴展。實際上磅废,編寫一個新的規(guī)則是很容易的纳像,和想出一個正則表達式、它適用的文件擴展名或這個規(guī)則的名字一樣簡單拯勉。將那些信息放在插件目錄下的一個文本文件中就可以運行Yasca了竟趾。

最新版本:2.21

發(fā)布日期:2010年11月1日

官網(wǎng):http://www.scovetta.com/yasca.html

GitHub:https://github.com/scovetta/yasca

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宫峦,隨后出現(xiàn)的幾起案子岔帽,更是在濱河造成了極大的恐慌,老刑警劉巖导绷,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犀勒,死亡現(xiàn)場離奇詭異,居然都是意外死亡妥曲,警方通過查閱死者的電腦和手機贾费,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來檐盟,“玉大人褂萧,你說我怎么就攤上這事】” “怎么了导犹?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長羡忘。 經(jīng)常有香客問我谎痢,道長,這世上最難降的妖魔是什么卷雕? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任节猿,我火速辦了婚禮,結(jié)果婚禮上爽蝴,老公的妹妹穿的比我還像新娘沐批。我一直安慰自己,他們只是感情好蝎亚,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布九孩。 她就那樣靜靜地躺著,像睡著了一般发框。 火紅的嫁衣襯著肌膚如雪躺彬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天梅惯,我揣著相機與錄音宪拥,去河邊找鬼。 笑死铣减,一個胖子當著我的面吹牛她君,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葫哗,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缔刹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了劣针?” 一聲冷哼從身側(cè)響起校镐,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捺典,沒想到半個月后鸟廓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡襟己,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年引谜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稀蟋。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡煌张,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出退客,到底是詐尸還是另有隱情骏融,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布萌狂,位于F島的核電站档玻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茫藏。R本人自食惡果不足惜误趴,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望务傲。 院中可真熱鬧凉当,春花似錦枣申、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至楼雹,卻和暖如春模孩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贮缅。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工榨咐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谴供。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓块茁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桂肌。 傳聞我的和親對象是個殘疾皇子龟劲,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容