Dies ist eine Liste bemerkenswerter Werkzeuge für die statische Programmanalyse (Programmanalyse ist ein Synonym für Codeanalyse).
Werkzeuge zur statischen Codeanalyse
| Werkzeug | Neueste Version | Kostenlose Software | Unterstützte Sprachen | Anmerkungen | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Ada | C , C++ , C# , Objective-C | JVM | JavaScript , TypeScript | .NET , VB.NET | Python | Andere Sprachen | ||||
| Astrée | 2024-10 (24.10) | Nein; proprietär | — | C, C++ | — | — | — | — | — | Findet alle potenziellen Laufzeitfehler und Datenkonflikte durch abstrakte Interpretation, kann deren Abwesenheit und funktionale Aussagen beweisen; speziell zugeschnitten auf sicherheitskritischen C- und C++-Code (z. B. Avionik und Automobilindustrie); beinhaltet einen MISRA- Checker. |
| Axivion Suite | 19.05.2025 (7.10) | Nein; proprietär | — | C, C++, C# | — | — | — | — | QML, Axivion CUDA | Statische Codeanalyse-Suite für sicherheitskritische und sicherheitsorientierte Softwareentwicklung mit Zertifizierungsunterstützung nach ISO 26262, IEC 61508, IEC 62304, EN 50128 und EN 50657; umfassende Analyse inklusive Prüfung auf Einhaltung von Codierungsstandards (MISRA C/C++, AUTOSAR, CERT, CWE), Klonerkennung, Analyse von totem Code, Architekturprüfung, Zyklenerkennung und Metriküberwachung; inklusive Qualifizierungskit für regulierte Umgebungen wie Automobilindustrie, Luft- und Raumfahrt, Medizintechnik und IT-Sicherheit |
| BLAST (im Ruhestand) | 2015-10-30 (2.7.3) | Ja; ASL 2 | — | C | — | — | — | — | — | Open-Source-Software-Modellprüfer für C-Programme basierend auf Lazy Abstraction (Nachfolgeprojekt ist CPAchecker [ 1 ] ) |
| Klirren | 2026-06-25 (22.1.8) | Ja; ASL 2 mit LLVM-Ausnahmen | — | C, C++, Objective-C | — | — | — | — | — | Open-Source-Compiler mit integriertem statischen Analysator; ab Version 3.2 ist der Analysator in Xcode enthalten [ 2 ] [ 3 ]. |
| Marienkäfer | 2021-09-06 (1.1.1) | Ja; GPLv2 | — | C | — | — | — | — | — | Mustererkennung und -transformation von Open-Source-Quellcode |
| Code Dx (eingestellt 2021) | 15.01.2015 | Nein; proprietär | — | C, C++, C# | Java , JSP , Scala | JavaScript | VB.NET | Python | PHP, Rails, Ruby, XML [ 4 ] | System zur Korrelation und Verwaltung von Schwachstellen in Softwareanwendungen; verwendet mehrere SAST- und DAST- Tools sowie Ergebnisse manueller Code-Reviews; kann die zyklomatische Komplexität berechnen |
| CodePeer | 07.05.2021 (21) | Nein; proprietär | Ada | — | — | — | — | — | — | Fortschrittliches Werkzeug zur statischen Analyse; erkennt potenzielle Laufzeitfehler in Ada-Programmen. |
| CodeScene | 13.10.2023 (6.3.5) | Nein; proprietär | — | C, C++, C#, Objective-C | Java, Groovy , Scala | JavaScript, TypeScript | VB.NET | Python | Swift, Go, PHP, Ruby | Verhaltensanalyse von Code; hilft bei der Identifizierung, Priorisierung und Verwaltung technischer Schulden; misst organisatorische Aspekte von Entwicklerteams; automatisierte Pull-Request-Integrationen |
| CodeQL | 2026-02-05 (CLI: 2.24.1) | Nein; proprietär | — | C, C++, C# | Java, Kotlin | JavaScript, TypeScript | .NETTO | Python | Swift, Go, Ruby, Rust | Code-Suchtool mit Fokus auf das Auffinden von Softwarefehlern; Suchmuster in einer Abfragesprache, die den AST und Graphen (CFG, DFG usw.) unterstützter Sprachen durchsuchen kann; Plugin für Visual Studio Code verfügbar |
| ConQAT (eingestellt) | 01.02.2015 | Ja; ASL 2 | Ada | C#, C++ | Java | JavaScript | — | — | ABAP | Werkzeugkasten für kontinuierliche Qualitätsbewertung; ermöglicht die flexible Konfiguration von Qualitätsanalysen (Architekturkonformität, Klonerkennung, Qualitätsmetriken usw.) und Dashboards |
| Coverity | 2023-04-29 (2022.12) [ 5 ] | Nein; proprietär | — | C, C++, C#, Objective-C | Java | JavaScript, TypeScript | — | Python | Ruby, PHP | Mehrsprachiges Tool für Sicherheits- und Qualitätsfragen; unterstützt Compliance-Standards ( MISRA , ISO 26262 u. a.); kostenlose Nutzung für Open-Source-Projekte |
| ECLAIR | 2025-05-12 (3.14.0) [ 6 ] | Nein; proprietär | — | C, C++ | — | — | — | — | — | Mehrsprachiges Werkzeug zur Softwareverifikation. Die Anwendungsbereiche reichen von der Validierung von Codierungsregeln über die automatische Generierung von Testfällen bis hin zum Nachweis der Fehlerfreiheit zur Laufzeit oder der Generierung von Gegenbeispielen sowie der Spezifikation von Code-Matchern und -Rewritern basierend auf syntaktischen und semantischen Bedingungen. Es unterstützt Konformitätsstandards ( MISRA , Embedded C Coding Standard u. a.). |
| CPAchecker | 2022-01-24 (2.1.1) | Ja; ASL 2 | — | C | — | — | — | — | — | Konfigurierbares Software-Verifizierungstool zur Überprüfung des Ausführungspfads von C |
| Cppcheck | 2025-02-23 (2.17) | Teilweise; das Framework ist unter der GPL v3 lizenziert , enthält aber einige proprietäre Funktionen. | — | C, C++ | — | — | — | — | — | Open-Source-Tool; prüft auf verschiedene Fehlertypen, einschließlich der Verwendung von STL ; MISRA-Unterstützung wird hinzugefügt. |
| Cppdepend | 2023-03-01 (2023.1) [ 7 ] | Nein; proprietär | — | C, C++ | — | — | — | — | — | Vereinfacht die Verwaltung einer komplexen C/C++-Codebasis durch die Analyse und Visualisierung von Codeabhängigkeiten, die Definition von Designregeln, die Durchführung von Wirkungsanalysen und den Vergleich verschiedener Codeversionen. |
| Cpplint | 29.07.2020 | Ja; CC-BY-3.0 [ 8 ] | — | C++ | — | — | — | — | — | Open-Source-Tool; prüft die Einhaltung des Google-Styleguides für C++-Codierung. |
| Schwanken | 2001 | Nein; proprietär | Ada95 | C | — | — | — | — | — | Abstrakter Interpreter zur Validierung numerischer Programmeigenschaften |
| Flüssigkeitsattacken | 07.01.2026 | Nein; proprietär | — | C# | Java, Kotlin, Scala | JavaScript, TypeScript | — | Python | PHP, Dart, Go, HCL, HTML, JSON, Ruby, Swift, XML, YAML | SAST-Tool; unterstützt zahlreiche Programmiersprachen und Frameworks; basiert auf Graphalgorithmen mit Tree-sitter und kann in CI/CD-Pipelines von Docker-fähigen Anbietern integriert werden. |
| Frama-C | 21.06.2022 | Ja; LGPL v2.1 , BSD , QPL | — | C | — | — | — | — | — | Open-Source-Framework für erweiterbare C-Analyse mit mehreren Analysetools und einer gemeinsamen Spezifikationssprache; umfasst Analysen basierend auf abstrakter Interpretation , deduktiver Verifikation und Laufzeitüberwachung. |
| GrammaTech CodeSonar | 2020-06-01 (5.3) | Nein; proprietär | — | C, C++, Objective-C | Java | — | — | — | — | Fehlererkennung (Pufferüberläufe, Speicherlecks usw.), Parallelitäts- und Sicherheitsprüfungen, Architekturvisualisierung, Softwaremetriken |
| GCC | 2023-4-26 (13.1) | Ja; GPLv3+ mit GCC-Laufzeitbibliothek-Ausnahme | — | C | — | — | — | — | — | Durch Kompilieren mit dem Flag -fanalyzer (verfügbar ab GCC 10) wird die Funktionalität des statischen Analysators aktiviert [ 9 ]. |
| HCL Security AppScan Quelle | 2020-12-01 (10.0.3) | Nein; proprietär | — | C, C++ | Java, JSP | JavaScript | .NETTO | Python | ColdFusion, ASP, PHP, Perl, Visual Basic 6, PL/SQL, T-SQL, COBOL | Analysiert Quellcode, um Sicherheitslücken zu identifizieren und integriert Sicherheitstests in Softwareentwicklungsprozesse und -systeme. |
| Helix QAC | 2023-04 (2023.1) | Nein; proprietär | — | C, C++ | — | — | — | — | — | Früher PRQA QA·C und QA·C++, tiefgreifende statische Analyse von C/C++ zur Qualitätssicherung und Durchsetzung von Richtlinien/Codierungsstandards mit MISRA-Unterstützung |
| Infer Static Analyzer | 2026-05-12 (1.3.0) | Ja; MIT | — | C, C++, Objective-C | Java | — | — | — | — | Behebt Probleme mit Nullzeigern, Speicherlecks, Parallelverarbeitungsproblemen und der API-Nutzung in den mobilen Apps von Facebook; ist als Open Source auf GitHub verfügbar; wird manchmal auch Facebook Infer genannt. |
| Imagix 4D | 2020-10-01 (10.1.0) | Nein; proprietär | — | C, C++ | Java | — | — | — | — | Windows- und Linux-Versionen |
| Kiuwan | 22.07.2020 | Nein; proprietär | — | C, C++, C#, Objective-C | Java, JSP | JavaScript | VB.NET | — | ABAP, COBOL, PHP, PL/SQL , T-SQL , SQL, Visual Basic, Android | End-to-End-Plattform für Softwareanalysen zur statischen Codeanalyse und automatisierten Codeüberprüfung; umfasst Fehlererkennung, Anwendungssicherheit und IT-Risikomanagement mit erweiterten Funktionen für Lebenszyklusmanagement und Anwendungsgovernance; unterstützt über 20 Sprachen |
| Klocwork | 04.04.2023 (2023.1) | Nein; proprietär | — | C, C++, C# | Java | JavaScript | — | Python | Kotlin | Bietet Sicherheitslücken, Einhaltung von Standards (MISRA, ISO 26262 u. a.), Fehlererkennung und Trendanalyse über mehrere Builds hinweg. |
| Fussel | 26.07.1978 | Ja; permissive BSD-ähnliche [ 10 ] | — | C | — | — | — | — | — | Der ursprüngliche statische Codeanalysator für C aus dem Jahr 1978. |
| MALPAS | Nein; proprietär | Ada | C | — | — | — | — | Pascal, Assembler (Intel, PowerPC und Motorola) | Software-Statikanalyse-Toolset für viele Programmiersprachen; Hauptanwendungsgebiet ist die Sicherheitskritikalitätsanalyse in der Nuklear- und Luftfahrtindustrie. | |
| MegaLinter | 2026-05-16 (9.5.0) | Ja; AGPLv3 | — | C, C++ | Java, Kotlin, Scala, Groovy | JavaScript, TypeScript | .NET, VB.NET | Python | Go, PHP, Ruby, Rust, Swift, Bash, Dockerfile, YAML, JSON, XML, HTML, CSS, Markdown, Terraform, Ansible, Salesforce, ARM, Bicep, Kubernetes, GraphQL, PowerShell, Perl, Lua, R, Tekton, Snakemake, OpenAPI, Protobuf, Coffee, EditorConfig, ENV, Gherkin, Puppet, RST, SQL | Open-Source-Tool mit über 100 Lintern und Formatierern für Code, Infrastructure as Code (IaC), Konfiguration, Copy-Paste-Erkennung und Rechtschreibprüfung in über 50 Sprachen, Formaten und Tools; läuft als Docker-Container oder in CI/CD-Umgebungen; unterstützt automatische Korrektur, SARIF-Ausgabe und erstellt Berichte für GitHub , GitLab , Azure DevOps , Bitbucket und andere Plattformen. |
| Elch | 2021-01-21 (7.0.3) | Ja; MIT | — | C, C++ | Java | — | .NETTO | — | Smalltalk | Ursprünglich als Softwareanalyseplattform mit zahlreichen Werkzeugen zur Manipulation, Bewertung und Visualisierung von Software gestartet, entwickelte sie sich zu einer allgemeineren Datenanalyseplattform. |
| NDepend | 2022-03-16 (2022.1) [ 11 ] | Nein; proprietär | — | C# | — | — | VB.NET .NET | — | — | Vereinfacht die Verwaltung komplexer .NET-Codebasen durch die Analyse und Visualisierung von Codeabhängigkeiten, die Definition von Designregeln, die Durchführung von Auswirkungsanalysen und den Vergleich verschiedener Versionen; integriert sich in Visual Studio. |
| .NET Compiler Platform ( Roslyn ) | 08.12.2020 (3.8.0) | Ja; MIT | — | C# | — | — | VB.NET | — | — | Das von Microsoft .NET entwickelte Open-Source-Compiler-Framework für C# und Visual Basic (.NET) bietet eine API zur Analyse und Manipulation der Syntax; die FxCop -Regeln wurden in Roslyn implementiert. |
| Parasoft C/C++Test | 03.12.2024 (2024.2) | Nein; proprietär | — | C, C++ | — | — | — | — | — | C/C++-Tool mit KI; führt statische Analysen, Unit-Tests, Code-Reviews und Laufzeitfehlererkennung durch und gewährleistet die Einhaltung von Sicherheitsstandards; Plugins für Visual Studio , Visual Studio Code , Eclipse- basierte IDEs und GitHub verfügbar. |
| Parasoft Jtest | 03.12.2024 (2024.2) | Nein; proprietär | — | — | Java | — | — | — | — | Java-Tool mit KI; führt statische Analysen und Unit-Tests durch, setzt Sicherheitsstandards durch; Plugins für IntelliJ IDEA , Visual Studio Code und Eclipse- basierte IDEs verfügbar, GitHub- Integration |
| PC-lint Plus | 2022-08-02 (2.0 Beta 2) | Nein; proprietär | — | C, C++ | — | — | — | — | — | Statisches Analysetool zur Erkennung einer Vielzahl von Fehlern, Identifizierung verdächtigen Codes, Durchsetzung verschiedener Codierungsstandards (MISRA/AUTOSAR/etc.), Berechnung und Meldung komplexer Metriken sowie Implementierung benutzerdefinierter Prüfungen. |
| PMD | 2025-11-28 (7.19.0) | Ja; BSD-ähnlich | — | C, C++ | Java, Kotlin, Scala, JSP, Apache Velocity Template Language (VTL) | JavaScript | — | — | Apex, ColdFusion , HTML, PHP, PL/SQL, Swift, Visualforce, XML, Maven POM, WSDL, XSL | Duplikatcode- Detektor [ 12 ] |
| Polyspace | 15.09.2022 | Nein; proprietär | Ada | C, C++ | — | — | — | — | — | Verwendet abstrakte Interpretation , um das Fehlen bestimmter Laufzeitfehler und toten Codes im Quellcode zu erkennen und nachzuweisen; wird verwendet, um alle MISRA-Regeln (2004, 2012) (Direktiven, Nicht-Direktiven) zu überprüfen. |
| Ziemlich schwierig | 2019-04-21 (101.0.0) | Ja; CC0 | — | — | — | JavaScript, TypeScript | — | — | Auszeichnungssprachen, Skriptsprachen und Stilsprachen (wie XML, CSS) | Sprachspezifisches Codevergleichstool ; Algorithmen für Funktionsanalyse, Berichterstellung, Code -Minifizierung und -Formatierung |
| PVS-Studio | 16.08.2024 (7,32) | Nein; proprietär | — | C, C++, C++/CLI , C++/CX , C# | Java | — | — | — | — | Software-Analysetool |
| Qodana | 2023-07-23 (2023.2) | Nein; proprietär | — | C# | Java, Kotlin | JavaScript, TypeScript | VB.NET | Python | Go, HTML, PHP, CSS, Android, Vue.js | Tool zur Codequalitätsanalyse; verwendet statische Codeanalyse |
| RIPS | 17.02.2020 (3.4) | Nein; proprietär | — | — | Java | — | — | — | PHP | Statisches Codeanalysetool mit vielen Integrationsmöglichkeiten zur automatisierten Erkennung komplexer Sicherheitslücken |
| Semgrep | 2026-06-24 (1.168.0) | Ja; LGPL v2.1 | — | — | Java | JavaScript, TypeScript | — | Python | Go, JSON , PHP, Ruby, sprachunabhängiger Modus | Werkzeug zur statischen Codeanalyse; hilft bei der Formulierung von Codestandards und der frühzeitigen Erkennung von Fehlern; experimentelle Unterstützung für 11 weitere Sprachen; CI-Dienst und Regelbibliothek verfügbar |
| Sider | 02.02.2021 | Nein; proprietär | — | — | — | JavaScript, CoffeeScript | — | Python | Ruby, PHP, Go | Statische Codeanalyse-basiertes, automatisiertes Code-Review-Tool für GitHub und GitLab; prüft Stil, Qualität, Abhängigkeiten, Sicherheit und Fehler; integriert mehrere Open-Source-Tools zur statischen Codeanalyse. |
| SLAM-Projekt | 14.07.2010 | Nein; proprietär | — | C | — | — | — | — | — | Microsoft-Forschungsprojekt zur Überprüfung, ob Software (Treiber) kritische Verhaltenseigenschaften der verwendeten Schnittstellen erfüllt. |
| SofCheck Inspector , Codepeer | 2020-08-24 (21.x) | Nein; proprietär | Ada | — | Java | — | — | — | — | Statische Erkennung von Logikfehlern, Race Conditions und redundantem Code ; automatische Extraktion von Vor- und Nachbedingungen aus dem Code |
| SonarQube | 05.02.2024 (10.4) | Teilweise; das Framework steht unter der LGPL v3.0 , einige Funktionen können jedoch proprietär sein. | — | C, C#, C++, Objective-C | Java, Kotlin , Scala | JavaScript, TypeScript | VB.NET | Python | ABAP, Apex, CSS, COBOL, Flex, Go, HTML, PHP, PLI, PL/SQL, Ruby, Swift, T-SQL, Visual Basic 6, XML | Eine kontinuierliche Prüf-Engine, die Schwachstellen, Fehler und Code-Smells erkennt und die Code-Komplexität, die Unit-Test-Abdeckung und Duplikation überwacht; bietet Zweiganalyse sowie Unterstützung für C, C++ und Objective-C über kommerzielle Lizenzen. |
| Quellenzähler | 16.12.2016 (8,2) | Nein; proprietär | — | C, C++ | Java | — | — | Python | RPG IV (AS/400) | Plattformübergreifender, statischer Quellcodeanalysator für die Kommandozeile; integriert sich mit PMD und SpotBugs |
| Sourcetrail (eingestellt) | 2021-04 (19.04.2021) | Ja; GPL | — | C, C++ | Java | — | — | Python | Perl | Open-Source-Quellcode-Explorer; bietet interaktive Abhängigkeitsgraphen, unterstützt mehrere Programmiersprachen |
| Spärlich | 2021-09-06 (0.6.4) | Ja; MIT | — | C | — | — | — | — | GCC-Erweiterungen | Open-Source-Tool zur Fehlersuche im Linux- Kernel |
| Schiene | 2007-07-12 (3.1.2) | Ja; GPLv2 | — | C | — | — | — | — | — | Open-Source-Tool zur statischen Überprüfung von C-Programmen auf Sicherheitslücken und Codierungsfehler. |
| StyleCop | 2016-05-02 (2016.1.0) | Yes; Ms-PL | — | C# | — | — | .NET | — | — | Analyzes C# source code to enforce a set of style and consistency rules; can be run from inside of Visual Studio or integrated into an MSBuild project |
| Squore | 2020-11-27 (20.1) | No; proprietary | Ada | C, C++, C#, Objective-C | Java | JavaScript, TypeScript | VB.NET | Python | Fortran, PHP, PL/SQL, Swift, T-SQL, XAML | Multi-purpose and multi-language monitoring tool for software projects; integrates with other scanners |
| Understand | 2023-01-19 (6.3) | No; proprietary | Ada | C, C++, C#, Objective-C | Java | JavaScript | — | Python | FORTRAN, Jovial, Pascal, VHDL, HTML, PHP, XML | Multi-platform tool for code analysis and comprehension of large code bases; recognizes many dialects of C, C++, C# like ANSI, K&R and Objective-C++ |
| Visual Expert | 2021-09-10 | No; proprietary | — | — | — | — | — | — | PowerBuilder, Oracle PL/SQL, SQL Server Transact-SQL (T-SQL) | Continuous code inspecting, reports on quality and security issues, helps understand complex code (cross-references, source code documenting and comparing, code performance analysis) |
| Visual Studio | 2021-10-12 (16.11) | No; proprietary | — | C, C++, C# | — | — | — | — | VB.NET | IDE; provides static code analysis for C/C++ in editor environment and from compiler command line; includes .NET Compiler Platform (Roslyn) which provides C# and VB.NET analysis |
| Yasca (retired) | 2010-11-01 (2.21) | Yes; multiple licenses | — | C, C++ | Java | JavaScript | — | — | ASP, PHP, HTML, CSS, ColdFusion, COBOL | Yet Another Source Code Analyzer; plugin-based framework to scan arbitrary file types, with plugins; integrates with other scanners, including FindBugs, PMD, Pixy |
| Tool | Release | Free software | Languages supported | Notes | ||||||
Languages
- Astree
- Axivion Suite (Bauhaus)
- BLAST
- Clang
- Coccinelle
- Coverity
- CPAchecker
- Cppcheck
- Cppdepend
- Cpplint
- ECLAIR
- Eclipse
- Fluctuat
- Frama-C
- GCC
- Helix QAC
- Facebook Infer
- Klocwork
- Lint
- LDRA Testbed
- Parasoft C/C++test
- PC-lint Plus
- Polyspace
- PVS-Studio
- SLAM project
- Sparse
- SonarQube
- Splint
- Understand
- Visual Studio
- Axivion Suite (Bauhaus)
- Code Dx
- CodeScene
- CodeQL
- Coverity
- Fluid Attacks
- Kiuwan
- Klocwork
- .NET Compiler Platform
- PVS-Studio
- SonarQube
- Sotoarc
- StyleCop
- Squore
- Understand
- Visual Studio
- CODESYS Static Analysis – integrated add-on for CODESYS (application code realized e.g. in ST, FBD, LD)
| Tool | Latest release | Free software | Duplicatecode | Notes |
|---|---|---|---|---|
| Checkstyle | 2020-01-26 | Yes; LGPL | No | Besides some static code analysis, it can be used to show violations of a configured coding standard. Duplicate code detection was removed[13] from Checkstyle. |
| Eclipse | 2017-06-28 | Yes; EPL | No | Cross-platform IDE with own set of several hundred code inspections available for analyzing code on-the-fly in the editor and bulk analysis of the whole project. Plugins for Checkstyle, FindBugs, and PMD. |
| FindBugs | 2015-03-06 | Yes; LGPL | SpotBugs basiert auf Jakarta BCEL der Universität Maryland und ist der geistige Nachfolger von FindBugs. Es führt dessen Arbeit mit Unterstützung der Community fort. | |
| IntelliJ IDEA | 06.04.2021 | Ja; ASL 2 | Ja | Eine führende Java-IDE mit integrierter Codeinspektion und -analyse. Plugins für Checkstyle, FindBugs und PMD. |
| JArchitect | 11.06.2017 | Nein; proprietär | Vereinfacht die Verwaltung einer komplexen Codebasis durch die Analyse und Visualisierung von Codeabhängigkeiten, die Definition von Designregeln, die Durchführung von Wirkungsanalysen und den Vergleich verschiedener Codeversionen. | |
| Jtest | 2024-11-01 (2024.2) | Nein; proprietär | Ja | Produkt für Testen und statische Codeanalyse von Parasoft . |
| Ruß | 28.10.2020 | Ja; LGPL | Ein Framework zur Sprachmanipulation und -optimierung, bestehend aus Zwischensprachen. | |
| PMD | 28.11.2025 | Ja; BSD-Lizenz | Ja | Statischer Codeanalysator mit Unterstützung für Plugins, einschließlich CPD . PMD unterstützt die Überprüfung mehrerer Sprachen. |
| Squale | 26.05.2011 | Ja; LGPL | Eine Plattform zur Verwaltung der Softwarequalität. | |
| ThreadSafe | 28.03.2014 | Nein; proprietär | Ein statisches Analysetool, das sich auf das Auffinden von Parallelitätsfehlern konzentriert. |
- Coverity
- Facebook Infer
- Flüssigkeitsattacken
- Klocwork
- LDRA-Testumgebung
- PMD
- RIPS
- Semgrep
- Quellenzähler
- Verstehen
- ESLint – JavaScript- Syntaxprüfer und -Formatierer.
- Googles Closure Compiler – ein JavaScript-Optimierer, der Code so umschreibt, dass er schneller und kleiner ist, und die Verwendung nativer JavaScript-Funktionen überprüft.
- CodeScene – Verhaltensanalyse von Code.
- Flüssigkeitsattacken
- JSHint – Ein von der Community entwickelter Fork von JSLint.
- JSLint – JavaScript-Syntaxprüfer und -validator.
- Klocwork
- Semgrep – Ein statisches Analysetool, das dabei hilft, Codestandards zu formulieren und Fehler frühzeitig zu erkennen. Ein CI-Dienst und eine Regelbibliothek sind ebenfalls verfügbar.
- Verstehen
Objective-C , Objective-C++
- Clang – Das kostenlose Clang-Projekt beinhaltet einen statischen Codeanalysator. Ab Version 3.2 ist dieser Analysator in Xcode enthalten . [ 14 ]
- Infer – Entwickelt von einem Entwicklerteam bei Facebook unter Mitwirkung von Open-Source-Mitwirkenden. Identifiziert Nullzeiger, Speicherlecks, API-Nutzung und führt weitere Lint-Prüfungen durch. Verfügbar als Open Source auf GitHub.
- Verstehen
Opa
- Opa verfügt über einen eigenen statischen Analysator. Da die Sprache für die Entwicklung von Webanwendungen konzipiert ist, überprüft der stark statisch typisierte Compiler die Gültigkeit von High-Level-Typen für Webdaten und verhindert standardmäßig viele Schwachstellen wie XSS- Angriffe und Datenbank-Code-Injections.
- Lintian – Überprüft Debian-Softwarepakete auf häufige Inkonsistenzen und Fehler.
- Rpmlint – Überprüft RPM-Pakete auf häufige Probleme.
- Perl::Critic – Ein Tool zur Unterstützung der Einhaltung gängiger Best Practices in Perl. Die meisten dieser Best Practices basieren auf Damian Conways Buch „ Perl Best Practices“ .
- PerlTidy – Programm, das als Syntaxprüfer und Tester/Durchsetzer für Codierungspraktiken in Perl fungiert.
- Padre – Eine IDE für Perl, die auch eine statische Codeanalyse bietet, um häufige Anfängerfehler zu erkennen.
- TOAD – Eine PL/SQL-Entwicklungsumgebung mit einer Code xPert-Komponente, die über die allgemeine Codeeffizienz sowie über spezifische Programmierprobleme berichtet.
- Visual Expert – Ein PL/SQL - Codeanalysetool [ 15 ] , das Programmierprobleme meldet und beim Verständnis und der Wartung von komplexem Code hilft ( Auswirkungsanalyse , Quellcodedokumentation , Aufrufbäume , CRUD-Matrix usw.).
PowerBuilder , PowerScript
- Visual Expert – Ein Tool zum Scannen von PowerBuilder-Bibliotheken (PBLs) für Codeinspektion , Auswirkungsanalyse , Quellcodedokumentation , Aufrufbäume und CRUD-Matrix .
- PyCharm – Plattformübergreifende Python-IDE mit Code-Inspektionen zur Analyse von Code direkt im Editor und zur Analyse des gesamten Projekts.
- PyDev – Eclipse-basierte Python-IDE mit Codeanalyse, die entweder direkt im Editor oder beim Speichern verfügbar ist.
- Pylint – Statischer Codeanalysator. Sehr streng; enthält auch viele Stilwarnungen.
- Flüssigkeitsattacken
- Klocwork
- Semgrep – Ein statischer Code-Analysator, der dabei hilft, Code-Standards zu definieren und Fehler frühzeitig zu erkennen. Ein CI-Service und eine Regelbibliothek sind ebenfalls verfügbar.
- Verstehen
- Visual Expert – Ein SQLServer - Codeanalysetool [ 16 ] , das Programmierprobleme meldet und beim Verständnis und der Wartung von komplexem Code hilft (Auswirkungsanalyse, Quellcodedokumentation, Aufrufbäume, CRUD-Matrix usw.).
Tools mit Duplikatcodeerkennung
Werkzeuge für formale Methoden
Werkzeuge, die auf Korrektheit basieren , d. h. ein strenges Modell überapproximieren, verwenden formale Methoden zur statischen Analyse (z. B. mithilfe statischer Programmzusicherungen ). Korrekte Methoden liefern keine falsch-negativen Ergebnisse für fehlerfreie Programme, zumindest nicht im Hinblick auf das idealisierte mathematische Modell, auf dem sie beruhen (es gibt keine „bedingungslose“ Korrektheit). Beachten Sie, dass sie nicht garantieren, alle Fehler in fehlerhaften Programmen zu melden; sie melden jedoch mindestens einen.
- Astrée – findet alle potenziellen Laufzeitfehler durch abstrakte Interpretation , kann die Abwesenheit von Laufzeitfehlern beweisen und funktionale Aussagen beweisen; zugeschnitten auf sicherheitskritischen C-Code (z. B. Avionik).
- CodePeer – Ermittelt und dokumentiert statisch Vor- und Nachbedingungen für Ada- Unterprogramme; prüft statisch die Vorbedingungen an allen Aufrufstellen.
- ECLAIR – Nutzt formale Methoden zur statischen Codeanalyse, wie etwa abstrakte Interpretation und Modellprüfung, kombiniert mit Constraint-Satisfaction -Techniken, um bestimmte Laufzeitfehler im Quellcode zu erkennen oder deren Abwesenheit zu beweisen .
- ESC/Java und ESC/Java2 – Basierend auf der Java Modeling Language , einer erweiterten Version von Java
- Frama-C – Ein Open-Source-Analyseframework für C, basierend auf der ANSI/ISO C Specification Language (ACSL). Zu seinen wichtigsten Techniken gehören abstrakte Interpretation, deduktive Verifikation und Laufzeitüberwachung .
- KeY – Analyseplattform für Java basierend auf Theorembeweisen mit Spezifikationen in der Java Modeling Language; kann Testfälle als Gegenbeispiele generieren; eigenständige GUI oder Eclipse- Integration
- MALPAS – Ein Werkzeug formaler Methoden, das gerichtete Graphen und reguläre Algebra verwendet , um zu beweisen, dass die zu analysierende Software ihre mathematische Spezifikation korrekt erfüllt.
- Polyspace – Nutzt abstrakte Interpretation, eine auf formalen Methoden basierende Technik [ 17 ] , um das Fehlen bestimmter Laufzeitfehler im Quellcode von C/C++ und Ada zu erkennen und zu beweisen.
- SPARK Toolset einschließlich des SPARK Examiner – Basierend auf der SPARK-Sprache, einer Teilmenge von Ada.
Siehe auch
- Automatisierte Codeüberprüfung
- Bewährte Programmierpraktiken
- Liste der Softwareentwicklungsphilosophien
- Dynamische Programmanalyse
- Softwaremetriken
- Integrierte Entwicklungsumgebungen (IDEs) und deren Vergleich . IDEs bieten üblicherweise integrierte Unterstützung für statische Programmanalyse oder die Möglichkeit, diese zu integrieren. Eclipse bietet einen solchen Integrationsmechanismus für die meisten verschiedenen Erweiterungstypen (Plug-ins).
Referenzen
- ^ "CPAchecker" . 08.02.2015.
- ^ „Statische Analyse in Xcode“ . Apple. Archiviert vom Original am 05.09.2009 . Abgerufen am 03.09.2009 .
- ^ „Ausführen des Analysators in Xcode“ . Archiviert vom Original am 5. Dezember 2021. Abgerufen am 14. Januar 2022 .
- ^ „Unterstützte Tools und Sprachen für Anwendungssicherheitstests“ . codedx.com . Abgerufen am 25. April 2017 .
- ^ „Coverity Scan-Website“ . Abgerufen am 23.08.2023 .
- ^ "ECLAIR-Website" . Abgerufen am 07.10.2021 .
- ^ „CppDepend – Was gibt es Neues?“ . cppdepend.com . Abgerufen am 1. März 2023 .
- ^ „Readme.md der Google Style Guides“ . GitHub . Abgerufen am 8. November 2021 .
- ^ Malcolm, David (26.03.2020). „Statische Analyse in GCC 10“ . Red Hat Developer . Abgerufen am 13.04.2022 .
- ^ „UNIX ist kostenlos!“ . lemis.com. 24.01.2002.
- ^ „NDepend – Neuigkeiten“ . ndepend.com . Abgerufen am 15. Juni 2022 .
- ^ „PMD - Browse /pmd/5.0.0“ . SourceForge.net . Abgerufen am 9. Dezember 2012 .
- ^ „Entferne StrictDuplicateCodeCheck und das gesamte Paket · Problem #523 · checkstyle/Checkstyle“ . GitHub .
- ^ „Statische Analyse in Xcode“ . Apple . Abgerufen am 3. September 2009 .
- ^ „Visual Expert für Oracle – PL/SQL-Code-Analysator“ . www.visual-expert.com . 24.08.2017.
- ^ „Visual Expert für SQL Server – Transact SQL Code Analyzer“ . www.visual-expert.com . 24.08.2017.
- ^ Cousot, Patrick (2007). „Die Rolle der abstrakten Interpretation in formalen Methoden“. Fünfte IEEE Internationale Konferenz über Software-Engineering und formale Methoden (SEFM 2007) . IEEE Internationale Konferenz über Software-Engineering und formale Methoden. S. 135–140 . doi : 10.1109/SEFM.2007.42 . ISBN 978-0-7695-2884-7. S2CID 67212 .
Externe Links
- Liste der Tools zur statischen Codeanalyse des Web Application Security Consortiums
- SAMATE-Quellcode-Sicherheitsanalysatoren
- SATE – Erläuterung des Werkzeugs zur statischen Analyse
- „Ein Vergleich von Werkzeugen zur Fehlerfindung in Java“ von Nick Rutar, Christian Almazan und Jeff Foster, Universität Maryland . Vergleicht Bandera, ESC/Java 2, FindBugs , JLint und PMD.
- „Mini-Rezension von Java Bug Finders“ , von Rick Jelliffe, O'Reilly Media .
- "Statischer Codeanalysator"