靜態代碼分析工具大全

簡介

本文是一個靜態代碼分析工具的清單,但是爲公司產品,需要付費使用。共有37個公司,有些公司包含多個工具。其中27個公司有多語言工具,2個公司爲.NET工具、1個公司爲Ada工具、4個公司爲C++工具、1個公司爲Java工具、1個公司爲PHP工具、1個公司爲PL/SQL工具。

1 多語言

1.1 Axivion Bauhaus Suite

軟件腐蝕保護解決方案。Axivion Bauhaus Suite爲你提供廣泛的工具完成自動靜態代碼分析。它幫助軟件系統開發者確保他們創造的代碼是高質量的,且易於長期維護,從而主動預防潛在的軟件腐蝕。我們的組件針對編程語言C/C++,C#/.NET,Java和Ada83/Ada95進行優化,可以在標準平臺Microsoft Windows和GNU/Linux上使用。

Axivion Bauhaus Suite無縫集成到你熟悉的開發環境(比如微軟的Visual Studio)、編譯器(例如IAR嵌入式工作臺)和版本控制系統(例如Subversion)中。

同時可以完成各種分析,例如靜態代碼分析、結構驗證,接口分析,MISRA檢查(The Motor Industry Software Reliability Association-汽車工業軟件可靠性聯會,一種工業標準的C編程規範)和克隆檢測等。

 

1.2 BlueOptima

BlueOptima精確的監視軟件開發,提供及時的見解,可以驅動更高質量的發行版本,更快的進入市場。

BlueOptima對於開發者就像是X射線透視能力。

  • 當我的行爲影響團隊中其他人或者當他們的代碼影響我時,主動報警提示我進行自我修正。
  • 從我過去提交的代碼中學習,幫助我提高。
  • 理解我傳入代碼庫中提醒前方障礙的編程工作。

BlueOptima最好的地方是自動化追蹤過程,即相對於我的預估和工作量我現在的進展怎樣。所有這些不需要給我的團隊領導或者項目經理提供一個狀態更新。

 

1.3 CAST Application Intelligence Platform

CAST智能應用平臺(AIP)是一個超過20年在開發上投資超過13億的產物,是一個企業級的軟件測量和質量分析解決方案。用於分析多線程、多功能應用的技術漏洞,堅持架構和代碼標準,通過各種儀表盤提供商業相關信息給IT組織,搭建考慮到最終用戶的產品。

應用分析儀表盤(CAST AAD):爲IT高管提供精確的商業相關分析,以便驅動他們的組織機構。

應用工程儀表盤(CAST AED):爲工程師和QA團隊提供強大的代碼、系統級的結構性缺陷洞察和補救指南。

啓發:向開發者傳遞一個對他們應用結構的強大的深度理解。

架構檢查器:給架構師一個可靠的自動解決方案,迫使架構提供他們關鍵應用程序的穩定性和性能。

CAST潛在的系統層分析技術通過衡量大量的健康因素評估一個應用的健康,同時評估導致性能和穩定性問題的結構和系統層缺陷,並提供真實系統層分析。

 

1.4 Cigital SecureAssist

Cigital現在是新思科技(Synopsys)的一部分,可以提供市場上軟件安全解決方案最全面的產品組合。我們超越傳統的測試服務,可以幫助我們的客戶識別、修復和預防應用程序中的漏洞,推動他們的業務。對於應用程序安全,我們全面的安全應用方法可以在受監管的專業服務和滿足特殊需要的產品定製之間保持平衡。當測試結束時我們也不會停止。我們的專家也會提供修復指導、程序設計服務和訓練,使你構建和維護應用程序的安全。

 

1.5 Coder Gears

本段介紹公司的兩個產品。他們的功能相似,都提供大量的功能讓用戶分析代碼庫,經常被描述爲開發者的瑞士軍刀。14天試用。

 

Cppdepend

 

JArchitect

 

1.6 Compuware Topaz for Program Analysis

康博軟件(Compuware)讓世界上最大的一些公司擅長數字經濟,通過影響它們高價值的大型主機投資。我們通過提供高度創新的解決方案做到這些,即只讓擁有主流技能的IT專家管理主機應用、數據和平臺操作。

Topaz for Program Analysis智能分析大型主機程序,以視覺上直觀的方式顯示分析結果。使用程序結構和邏輯流程圖表,程序分析降低了那些不熟悉大型主機或不熟悉程序結構的程序員的學習曲線。同時對沒有記錄的已經存在20、30甚至40年的程序提供了無價的見解。

 

1.7 ConQAT

ConQAT是一個快速開發和執行軟件質量分析的工具箱。

功能:

  • 集成軟件系統多種可視化質量特性;
  • 集成質量狀態的快速預覽質量標準;
  • 靈活創造特定項目的質量儀表板;
  • 支持多種編程語言(例如:Java、C#、C++、ABAP、ADA等);
  • 集成第三方分析工具(例如:PMD、Findbugs,FxCop等);
  • 克隆檢測(檢測由於複製粘貼程序造成的重複代碼);
  • 構造一致性分析(評估符合架構約束);
  • 集成到編譯系統/連續集成工具集的命令行接口(例如:Hudson、CruiseControl);
  • 趨勢分析以便監測隨着時間推移的質量狀態。

 

1.8 Fortify Static Code Analyzer

Fortify Static Code Analyzer在軟件開發生命週期的早期識別源代碼中的安全漏洞,並提供最佳做法,使開發人員可以更安全的編碼。

HPE(Hewlett Packard Enterprise)保證Fortify SCA扮演一個重要的角色,花費較小的努力和時間識別漏洞,幫助創造安全的軟件,維護代碼質量。Fortify SCA檢測廣泛的問題,是其他靜態測試技術無法比擬的。Fortify軟件安全研究小組是一個全球的團隊,被工業界認爲是頂尖的安全組織,監測出現的威脅,他們的知識彙集到Fortify SCA,因此組織可以停留在威脅頂層。

 

1.9 GrammaTech CodeSonar

30天試用。

CodeSonar,GrammaTech公司的王牌靜態分析SAST工具,識別那些可能導致系統崩潰的錯誤、意外行爲和安全漏洞。

CodeSonar被證明可以提供最深層的靜態分析,能夠尋找比市場上其他的靜態分析工具更多的重要缺陷。Code Sonar實現了最好的幾個靜態分析工具基準,尋找靜態內存、資源管理、併發性和其他缺陷。

通過分析源代碼和二進制包,CodeSonar使團隊可以分析完整的應用程序,使你可以控制你的代碼供應鏈,從而在程序開發生命週期早期移除成本最高的最難找的缺陷。

 

1.10 IBM Security AppScan

IBM Security AppS慘增強網站應用和移動應用的安全,提高應用安全程序管理,加強合規性。通過在使用前掃描你的網站和移動應用,AppScan使你可以識別安全漏洞併產生報告和修復建議。

 

1.11 Imagix 4D

使用Imagix 4D,軟件開發者有一個工具可以用來理解、記錄和提高複雜度、第三方或者遺留的源代碼。自動分析控制流和依賴性。檢測數據使用和任務交互中的問題。提高生產率、提高質量和降低風險。適用於C,C++和Java開發者。

主要功能爲:

源代碼分析:逆向工程和可視化軟件可以調高對源代碼的理解。加速學習不熟悉的代碼、變更影響分析、集成開源代碼、代碼重複使用和維護已停產的軟件。

靜態分析和指標:質量檢查識別變量使用、任務交互作用和併發性中的問題。 軟件指標幫助評估代碼質量。提高實時流的核查、代碼審查的準備工作、評估第三方代碼的和追蹤開發過程。

Delta分析:圖表和報告顯示源代碼版本和分支之間的結構差異。這些使對軟件更改的分析變得有意義。專注於測試用例開發、更改影響審查、軟件定製和項目管理。

自動化文獻編制:軟件文檔的產生和圖表的導出包括統一建模圖表以確保精確性、實時性,以及信息設計文件。支持同行代碼審查、傳送設計文檔、問題和影響報告,以及軟件歸檔。

 

 

1.12 JetBrains

超過15年,JetBrains努力成爲地球上最強最高效的開發人員工具。通過自動例行檢查和修正,我們的工具加快生產,使開發人員無阻礙的成長、探索和創造。

JetBrains有很多工具,本文介紹2個。

 

IntelliJIDEA(Java)

IntelliJIDEA分析你的代碼,尋找遍及所有項目文件和語言的符號間的關係。它使用這個信息提供深入的編碼幫助、快速導航、熟練的誤差分析和重構。

IntelliJIDEA的每個部分都考慮了人機工程學。IntelliJIDEA建立在一個原則上,即開發者花費在工作流上的每分鐘都被很好的利用,任何在工作流中打斷開發者的事情都是不好的,應該被避免。

爲了精簡你的工作流,IntelliJIDEA從一開始就提供了一個無與倫比的工具集:逆編譯程序、字節碼查看器、FTP和更多工具。

除了Java,IntelliJIDEA爲高級JVM以及非JVM框架和開箱即用語言提供了一流的支持。

 

 

PyCharm(Python)

試用30天。

Python提供智能代碼完成提示、代碼檢查、即時錯誤突出顯示和快速修復、自動代碼重構和豐富的導航功能。

 

 

1.13 Kiuwan

15天試用,需要郵箱註冊。

我們提供一個端對端的軟件分析平臺獲取你的客觀數據,因此你可以根據價值、工作量、活躍度、質量、可維護性、效率和應用依賴性做出明智的決定。我們使艱難的抉擇變得更容易,這意味着成本降低、風險減輕、客觀測量、軟件技術安全認證和外包協議管理,僅列出幾個平臺帶來的可能性。

我們支持多種應用技術,涵蓋超過20種編程語言。當公司工業化軟件開發生命週期時,當他們想要保護自己的應用不受網絡威脅,儘可能遵循相關IT框架和標準內的所有服務水平協議(Service Level Agreement)時,我們的平臺是至關重要的。

 

 

1.14 LDRA Testbed

30天試用。

LDRA工具套件的核心是LDRA Testbed,它爲主機和嵌入式軟件分析提供靜態和動態分析核心引擎。TBvision是LDRA Testbed的交互式環境,讓你容易的可視化遵循的編碼標準和質量標準,快速的處理在源代碼層識別出來的錯誤。在安全苛求、安全臨界和關鍵業務應用程序方面擁有40年代碼分析的經驗,LDRA Testbed和TBvison提供對你的軟件開發項目徹底的信任。

 

 

1.15 MALPAS

MALPAS是世界上最嚴格最先進的軟件分析和驗證工具集,可以用於所有順序編程語言,自動翻譯那些使用廣泛的語言寫出的程序,例如C、Ada和各種彙編語言。

 

 

1.16 Parasoft

創始於1987年,Parasoft研究開發軟件解決方案,有效的幫助公司發行無缺陷的軟件。通過集成開發測試,API測試和服務可視化,我們減少了時間、工作量和發行安全成本、可靠兼容的軟件。Parasoft公司和嵌入式開發解決方案包括靜態分析、單元測試、覆蓋率測試、需求追蹤、功能和負載測試、開發/測試環境管理等等,是業界最全面的。

 

Parasoft的產品:

 

1.17 PRQA

QA靜態分析器包括QA-C、QA-C++和QA-J,評估軟件可靠性、安全性、符合ISO編碼最佳實踐,同時降低開發時間。

按比例排列數百萬行代碼;

連續檢查源代碼是否符合你選擇的編碼標準;

給你的開發人員實時的上下文語境反饋,幫助他們糾正錯誤並從中學習;

降低由人工代碼審查和緩慢的分析工具和方法導致的瓶頸問題;

分析你的源代碼而不需要執行程序,無論是在C,C++或Java中。

 

 

1.18 PVS-Studio

PVS-Studio是一個用於C,C++和 C#源代碼程序的錯誤檢測工具。可以在Windows和Linux環境下工作。

PVS-Studio實現靜態代碼分析,產生一個報告幫助程序員尋找和修復錯誤。PVS-Studio執行代碼檢查的範圍很廣,還可以搜索印刷錯誤和複製粘貼錯誤。

 

 

1.19 Rogue Wave

Rogue Wave工具橫跨40年,提供從雲端服務到本地平臺應用,再到便攜式軟件庫的一切。他們都有一個共同的唯一的目的:使它易於編寫、測試和運行復雜的代碼。

 

Klocwork

可以試用,需要發送信息。

在程序生成前儘快找到問題,意味着之後更少的測試和較少影響成本和進度。它會繼續持續集成,只有Klocwork支持流行的CI(Continuous Integration)工具,執行分析提交期間的漸進式代碼變化,跟上快速的發佈週期。Klocwork在提交之前、提交期間和提交之後識別開發者眼中的關鍵安全性、可靠性和代碼標準問題。

OpenLogic

掃描源代碼和二進制文件,確認開源代碼和授權,管理開源政策和審批,報告安全漏洞,以及提供開源技術支持。

 

1.20 Semmle

Semmle有兩個產品:Engineering Analytics和Code Exploration。

 

Engineering Analytics

分析代碼行爲,而不是代碼。基於全新的編程語言、數據庫搜索和數據科學,Semmle使軟件工程師團隊從他們創建的代碼中獲得有價值的情報。這些見解幫助軟件領導做出由數據驅動的決定,提高軟件交付、組織發展和效率。

代碼即數據。軟件存儲庫的代碼更改歷史可以充分說明你的團隊開發的軟件怎麼樣。Semmle提供獨特的能力將你的代碼轉換爲一個知識庫,它可以被探討併爲你提供關於組織工作如何的反饋。

Code Exploration

Semmle QL是一個聲明式的面向對象的查詢語言。它是現代數據記錄的變體,對於那些想有無限的能力去詢問他們代碼的問題的人是理想的,並通過詢問QL將開發團隊信息和他們想要的數據庫方式聯繫起來。

幾個使用Semmle QL的例子包括:

  • 尋找安全漏洞的所有實例。
  • 檢查API是否使用正確。
  • 搜索指定庫的使用——它在哪裏被誰使用。
  • 報告標準,例如代碼的行或測試方法的數量等。
  • 完成任何其他搜索或你能想象到的分析。

 

1.21 SideCI

試用14天。

通過自動代碼分析提高團隊的生產率,可用於Ruby,Python,PHP,JavaScript,CoffeeScript和Go。

解決3個開發問題:

  • 代碼審查佔用太多時間。
  • 審查由於工程師間技能差異而出現的不一致。
  • 編碼標準不統一,降低了代碼的可讀性。

 

 

1.22 SLAM project

SLAM是一個微軟研究院的項目,檢查軟件是否滿足它所使用的接口關鍵行爲屬性,幫助軟件工程師設計接口和軟件並確保其可靠和正確運行。靜態驅動程序檢查器是一個Windows 驅動程序開發工具包中的工具,使用SLAM驗證引擎。

 

 

1.23 Sonargraph

包括原來的Sotograph & Sotoarc,現在正在將它的現有客戶轉移到Sonargraph,很快將在更現代的多功能平臺上支持這些產品的所有主要功能。

Sonargraph是一個強大的靜態代碼分析器,允許你監視一個軟件系統的技術質量,在開發過程的所有階段強制執行關於軟件架構、標準和其他方面的規則。Sonargraph平臺支持Java、C#、和C/C++,擁有強大的功能,例如基於腳本引擎的Groovy和描述軟件架構的DSL(domain specific language)。

 

 

1.24 SQUORE

可以試用,需要填寫信息。

Squoring技術專門用於軟件和系統開發項目的評估和監測。SQUORE決策控制面板提高IT項目的質量和性能,它用於所有在成本和安全方面軟件起着核心作用的行業,例如:航空、航天、汽車、鐵路、國防、能源、通信、信息系統。

 

 

1.25 Synopsys

Coverity

可以試用。

靜態代碼分析在源代碼中尋找缺陷和安全漏洞,但是不需要運行代碼。亦稱SAST(Static Application Security Testing)。用於提高許多行業的軟件質量和安全,比如物聯網自動化、汽車工業、醫療、企業、雲、移動通訊、社交、共享經濟、分析工具和關鍵業務的軟件開發生命週期。

支持的語言有安卓安全、C++、Objective-C、C#、Java,JavaScript,PHP、Python、 Node.js、Ruby。

 

Goanna

一個C/C++的軟件分析工具,已經是Synopsys的一部分。

 

Protecode

可以試用。

Protecode是一個自動軟件成分分析工具,使機構可以檢查開源軟件的合規性、第三方代碼中的漏洞、實現管理開源代碼。

 

 

1.26 Understand

使用強大的可視化和規則理解來維護文件記錄不足的遺留代碼。

靜態代碼分析的“瑞士軍刀”。可視化源代碼結構,優化軟件設計。

Understand將一個強大的代碼編輯器和一系列令人印象深刻的靜態分析工具結合在一起,將改變你編寫代碼的方式。

 

 

1.27 Veracode

隨着我們的自動化、過程和速度的合併,Veracode將應用程序安全無縫集成到軟件開發,在成本最低的時候有效的剔除開發/部署鏈中的漏洞。不需要額外的人員或設備,Veracode使用戶迅速的提高,在第一天看到結果,證明價值,並隨着時間的推移不斷進步。

它是過程、技術和安全專家的獨特組合,幫助一個金融服務機構縮放它的程序超過600%,漏洞的修復費用降低75%,減少60%整體漏洞,整體投資回報率爲192%。

 

 

2 .NET

2.1 CodeRush

最新的Roslyn第三方控件CodeRush使用極少的內存,工作更快,讓你啓動Visual Studio更快。它影響Visual Studio解決方案解析數據,這意味着它不再分析解決方案,也不再保留複製的解決方案源代碼樹。它會自動支持新C#和VB語言功能,當它們可以在Visual Studio中使用時。使用CodeRush你將獲得更快更精簡的開發經驗,節省數十秒的解決方案下載時間,釋放數百兆字節的內存。

 

 

2.2 NDepend

試用14天

NDepend僅僅是Visual Studio的擴展,可以告訴開發者在過去一小時中,剛剛寫出的代碼引入的債務,假如價值30分鐘,它將必須在之後償還。知道這一點,開發者甚至可以在提交到源代碼控件之前修復代碼。

NDepend的代碼規則是C# LINQ查詢指令,可以在幾秒鐘後創建和定製。這些查詢指令控制C#公式計算準確的技術債務估計。

默認的規則集提供超過100種編碼規則,檢測大範圍的代碼異味,包括混亂的代碼、死碼、API的破壞性改變和不好的面向對象使用。

 

 

3 Ada

3.1 AdaCore

AdaCore創建於1994年,是Ada語言商業軟件解決方案的一流供應商,是最先進的程序語言,設計爲大型持久的應用,安全、保障和可靠性至關重要。AdaCore的王牌產品是GNAT Pro 開發環境,帶有專家線上支持,並可以用在比Ada技術更多的平臺上。

 

CodePeer

CodePeer是一個Ada源代碼分析器,檢測運行時錯誤和邏輯錯誤。它在程序運行前評估潛在的錯誤,作爲一個自動審閱者,有效的幫助人們在開發生命週期早期尋找錯誤。

 

 

SPARK Toolset

SPARK Pro是一個綜合靜態分析工具套件,通過正規化方法驗證高度完整性的軟件。它支持SPARK 2014語言,提供緊密集成到GNAT程序設計(GPS)和GNATbench集成開發環境的高級驗證工具。

 

 

4 C,C++

4.1 Astree

30天試用

Astree是一個靜態程序分析器,證明在用C語言寫的或生成爲C語言的關鍵安全應用程序中不存在運行時錯誤和無效的併發行爲。

Astree主要針對嵌入式應用,用於航天、地面運輸、醫療器械、核能源和宇宙飛行。然而,它也可以用於分析任何結構的C程序,手寫的或生成的,使用複雜的內存用法、動態內存分配和遞歸。

 

 

4.2 éCLAIR

éCLAIR被設計爲幫助開發和質量保證團隊意識到質量,以及幫助質量控制團隊評估成果。

éCLAIR是一個通用的軟件驗證平臺。應用範圍從編碼規則驗證到自動產生測試用例,再到證明不存在運行時錯誤或產生反例,以及基於語法和語義條件的代碼匹配器和重寫器規範。

 

 

4.3 PC-Lint

PC-lint和FlexeLint是強大的靜態分析工具,它將檢查你的C/C++源代碼,尋找錯誤、小故障、不一致、不可移植的結構、冗餘的代碼等等。它看起來遍及多個模塊,因此,具有你的編譯器沒有的視角。

 

 

4.4 Polyspace

使用Polyspace的靜態分析產品檢測和證明你的源代碼中不存在運行時錯誤。是一個可用於工作流中任意階段的解決方案。使用Polyspace Bug Finder定位缺陷和分流,在開發過程早期修復錯誤。使用Polyspace Code Prover證明C和C++源代碼中不存在運行時錯誤。

 

 

5 Java

5.1 ThreadSafe

在官網填寫相關信息,可以試用14天。

ThreadSafe是一個靜態分析工具,它尋找Java程序中的併發性錯誤和潛在的性能問題。

ThreadSafe分析可以在三種不同的軟件包中使用,以便適合你的環境:

  • Eclipse 插件:在集成開發環境中顯示問題,這是調查和修復錯誤最容易的地方。
  • SonarQube插件:爲你的團隊提供ThreadSafe結果共享的視角。
  • Command Line:創建問題和源代碼交叉引用的HTML報告。

 

 

6 PHP

6.1 RIPS

對於主要由PHP編程語言寫的應用來說,RIPS是一個高級的安全軟件。它自動檢測PHP代碼中的安全漏洞,到目前爲止沒有其他軟件可以識別。詳細的修補程序介紹允許最小化聲譽和數據危險,不需要專業的知識。通過RIPS自動化分析和錯誤警報最小化的方法,它實現了大幅度節約時間和成本。

 

 

7 PL/SQL

7.1 TOAD

TOAD採取積極主動的方式實現數據管理。使你的團隊聚焦在更多戰略計劃,使你的業務朝向當今的數據驅動經濟發展。

通過使數據專業人員實現流程自動化,風險最小化,削減將近一半的項目交付時間線,Toad解決方案使你在數字技術方面的投資最大化。通過降低效率低的代碼對生產效率、未來的開發週期、性能和可用性的影響,從而降低新應用程序的總體持有成本。

  •  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章