Dieses Repository listet statische Analysetools für alle Programmiersprachen, Build-Tools, Konfigurationsdateien und mehr auf. Der Fokus liegt auf Tools zur Verbesserung der Codequalität wie Linters und Formatter. Die offizielle Website „analysis-tools.dev“ basiert auf diesem Repository und fügt Rankings, Benutzerkommentare und zusätzliche Ressourcen wie Videos für jedes Tool hinzu.
Ohne die großzügige Unterstützung unserer Sponsoren wäre dieses Projekt nicht möglich.
Wenn auch Sie dieses Projekt unterstützen möchten, besuchen Sie unsere Github-Sponsorenseite.
Pull-Anfragen sind herzlich willkommen!
Schauen Sie sich auch das Schwesterprojekt awesome-dynamic-analysis an.
abaplint – Linter für ABAP, geschrieben in TypeScript.
abapOpenChecks – Erweitert den SAP Code Inspector um neue und anpassbare Prüfungen.
Codepeer ©️ – Erkennt Laufzeit- und Logikfehler.
Polyspace für Ada ©️ – Bietet Codeüberprüfung, die das Fehlen von Überlauf, Division durch Null, Array-Zugriff außerhalb der Grenzen und bestimmten anderen Laufzeitfehlern im Quellcode nachweist.
SPARK ©️ – Toolset für statische Analyse und formale Verifizierung für Ada.
Astrée ©️ – Astrée weist automatisch nach, dass in C/C++-Anwendungen keine Laufzeitfehler und ungültiges gleichzeitiges Verhalten vorliegen. Es ist gut für Gleitkommaberechnungen geeignet, sehr schnell und außergewöhnlich präzise. Der Analysator prüft außerdem auf MISRA/CERT/CWE/Adaptive Autosar-Kodierungsregeln und unterstützt die Qualifizierung für ISO 26262, DO-178C Level A und andere Sicherheitsstandards. Jenkins- und Eclipse-Plugins sind verfügbar.
CBMC – Begrenzter Modellprüfer für C-Programme, benutzerdefinierte Behauptungen, Standard-Behauptungen, verschiedene Coverage-Metrik-Analysen.
clang-tidy – Clang-basiertes C++-Linter-Tool mit der (begrenzten) Fähigkeit, auch Probleme zu beheben.
clazy – Qt-orientierter statischer Code-Analysator basierend auf dem Clang-Framework. clazy ist ein Compiler-Plugin, das es Clang ermöglicht, die Qt-Semantik zu verstehen. Sie erhalten mehr als 50 Qt-bezogene Compiler-Warnungen, die von unnötiger Speicherzuweisung bis hin zum Missbrauch der API reichen, einschließlich Fix-its für automatisches Refactoring.
CMetrics – Misst Größe und Komplexität von C-Dateien.
CPAchecker – Ein Tool zur konfigurierbaren Softwareüberprüfung von C-Programmen. Der Name CPAchecker wurde gewählt, um zum Ausdruck zu bringen, dass das Tool auf den CPA-Konzepten basiert und zur Überprüfung von Softwareprogrammen verwendet wird.
cppcheck – Statische Analyse von C/C++-Code.
CppDepend ©️ – Messen, Abfragen und Visualisieren Ihres Codes und vermeiden Sie unerwartete Probleme, technische Schulden und Komplexität.
cpplint – Automatisierter C++-Checker, der dem Styleguide von Google folgt.
cqmetrics – Qualitätsmetriken für C-Code.
CScout – Komplexitäts- und Qualitätsmetriken für C- und C-Präprozessorcode.
ENRE-cpp – ENRE (ENtity Relationship Extractor) ist ein Tool zum Extrahieren von Code-Entitätsabhängigkeiten oder -Beziehungen aus Quellcode. ENRE-cpp ist ein ENtity Relationship Extractor für C/C++ basierend auf @eclipse/CDT. (In Entwicklung)
ESBMC – ESBMC ist ein kontextgebundener Open-Source-Modellprüfer mit freizügiger Lizenz, der auf Erfüllbarkeits-Modulo-Theorien für die Verifizierung von Single- und Multithread-C/C++-Programmen basiert.
Fehlerfinder
Feuerstein++
Frama-C – Ein solider und erweiterbarer statischer Analysator für C-Code.
GCC – Der GCC-Compiler verfügt seit Version 10 über statische Analysefunktionen. Diese Option ist nur verfügbar, wenn GCC mit aktivierter Analyseunterstützung konfiguriert wurde. Es kann seine Diagnose auch in eine JSON-Datei im SARIF-Format ausgeben (ab v13).
Goblint – Ein statischer Analysator für die Analyse von Multithread-C-Programmen. Sein Hauptaugenmerk liegt auf der Erkennung von Datenwettläufen, es werden aber auch andere Laufzeitfehler wie Pufferüberläufe und Nullzeiger-Dereferenzierungen gemeldet.
Helix QAC ©️ – Statische Analyse der Enterprise-Klasse für eingebettete Software. Unterstützt die Codierungsstandards MISRA, CERT und AUTOSAR.
IKOS – Ein solider statischer Analysator für C/C++-Code basierend auf LLVM.
Joern – Open-Source-Code-Analyseplattform für C/C++ basierend auf Code-Eigenschaftsdiagrammen
KLEE – Eine dynamische symbolische Ausführungs-Engine, die auf der LLVM-Compiler-Infrastruktur aufbaut. Es kann Testfälle für Programme automatisch generieren, sodass die Testfälle so viel wie möglich vom Programm ausführen.
LDRA ©️ – Eine Tool-Suite einschließlich statischer Analyse (TBVISION) nach verschiedenen Standards, einschließlich MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ und benutzerdefinierten Regeln.
KUMPEL
PC-lint ©️ – Statische Analyse für C/C++. Läuft nativ unter Windows/Linux/MacOS. Analysiert Code für praktisch jede Plattform und unterstützt C11/C18 und C++17.
Phasar – Ein LLVM-basiertes statisches Analyse-Framework, das über eine Taint- und Typzustandsanalyse verfügt.
Polyspace Bug Finder ©️ – Identifiziert Laufzeitfehler, Parallelitätsprobleme, Sicherheitslücken und andere Mängel in eingebetteter C- und C++-Software.
Polyspace Code Prover ©️ – Bietet Codeüberprüfung, die das Fehlen von Überlauf, Division durch Null, Array-Zugriff außerhalb der Grenzen und bestimmten anderen Laufzeitfehlern im C- und C++-Quellcode nachweist.
scan-build – Frontend zum Ansteuern des in Clang integrierten Clang Static Analyzer über einen regulären Build.
splint – Annotationsgestützter statischer Programmprüfer.
SVF – Ein statisches Tool, das eine skalierbare und präzise interprozedurale Abhängigkeitsanalyse für C- und C++-Programme ermöglicht.
TrustInSoft Analyzer ©️ – Umfassende Erkennung von Codierungsfehlern und den damit verbundenen Sicherheitslücken. Dies umfasst eine solide Erkennung undefinierten Verhaltens (Pufferüberläufe, Array-Zugriffe außerhalb der Grenzen, Nullzeiger-Dereferenzierungen, Verwendung nach Frei, Division durch Nullen, nicht initialisierte Speicherzugriffe, vorzeichenbehaftete Überläufe, ungültige Zeigerarithmetik usw.). , Datenfluss- und Kontrollflussverifizierung sowie vollständige funktionale Verifizierung formaler Spezifikationen. Alle Versionen von C bis C18 und C++ bis C++20 werden unterstützt. TrustInSoft Analyzer wird im zweiten Quartal 2023 die ISO 26262-Qualifizierung erwerben (TCL3). Ein MISRA-C-Checker ist ebenfalls im Lieferumfang enthalten.
vera++
.NET-Analysatoren – Eine Organisation für die Entwicklung von Analysatoren (Diagnose und Codekorrekturen) unter Verwendung der .NET-Compiler-Plattform.
ArchUnitNET – AC#-Architekturtestbibliothek zum Spezifizieren und Durchsetzen von Architekturregeln in C# für automatisierte Tests.
Code-Cracker – Eine Analysebibliothek für C# und VB, die Roslyn verwendet, um Refactorings, Code-Analysen und andere Feinheiten zu erstellen.
CSharpEssentials
Designite ©️ – Designite unterstützt die Erkennung verschiedener Architektur-, Design- und Implementierungsgerüche, die Berechnung verschiedener Codequalitätsmetriken und die Trendanalyse.
Gendarme – Gendarme inspiziert Programme und Bibliotheken, die Code im ECMA-CIL-Format (Mono und .NET) enthalten.
Schließen#
Meziantou.Analyzer – Ein Roslyn-Analysator zur Durchsetzung einiger bewährter Methoden in C# in Bezug auf Design, Verwendung, Sicherheit, Leistung und Stil.
NDepend ©️ – Messen, Abfragen und Visualisieren Ihres Codes und vermeiden Sie unerwartete Probleme, technische Schulden und Komplexität.
Puma Scan – Puma Scan bietet sichere Echtzeit-Codeanalyse für häufige Schwachstellen (XSS, SQLi, CSRF, LDAPi, Krypto, Deserialisierung usw.), während Entwicklungsteams Code in Visual Studio schreiben.
Roslynator – Eine Sammlung von über 190 Analysatoren und über 190 Refactorings für C#, bereitgestellt von Roslyn.
SonarAnalyzer.CSharp – Mit diesen Roslyn-Analysatoren können Sie sauberen Code erstellen, der sicher, zuverlässig und wartbar ist, indem sie Ihnen dabei helfen, Fehler, Schwachstellen und Code-Gerüche in Ihrer Codebasis zu finden und zu beheben.
VSDiagnostics
Wintellect.Analyzers – Diagnoseanalysatoren und Codekorrekturen für die .NET Compiler Platform („Roslyn“).
Astrée ©️ – Astrée weist automatisch nach, dass in C/C++-Anwendungen keine Laufzeitfehler und ungültiges gleichzeitiges Verhalten vorliegen. Es ist gut für Gleitkommaberechnungen geeignet, sehr schnell und außergewöhnlich präzise. Der Analysator prüft außerdem auf MISRA/CERT/CWE/Adaptive Autosar-Kodierungsregeln und unterstützt die Qualifizierung für ISO 26262, DO-178C Level A und andere Sicherheitsstandards. Jenkins- und Eclipse-Plugins sind verfügbar.
CBMC – Begrenzter Modellprüfer für C-Programme, benutzerdefinierte Behauptungen, Standard-Behauptungen, verschiedene Coverage-Metrik-Analysen.
clang-tidy – Clang-basiertes C++-Linter-Tool mit der (begrenzten) Fähigkeit, auch Probleme zu beheben.
clazy – Qt-orientierter statischer Code-Analysator basierend auf dem Clang-Framework. clazy ist ein Compiler-Plugin, das es Clang ermöglicht, die Qt-Semantik zu verstehen. Sie erhalten mehr als 50 Qt-bezogene Compiler-Warnungen, die von unnötiger Speicherzuweisung bis hin zum Missbrauch der API reichen, einschließlich Fix-its für automatisches Refactoring.
CMetrics – Misst Größe und Komplexität von C-Dateien.
cppcheck – Statische Analyse von C/C++-Code.
CppDepend ©️ – Messen, Abfragen und Visualisieren Ihres Codes und vermeiden Sie unerwartete Probleme, technische Schulden und Komplexität.
cpplint – Automatisierter C++-Checker, der dem Styleguide von Google folgt.
cqmetrics – Qualitätsmetriken für C-Code.
CScout – Komplexitäts- und Qualitätsmetriken für C- und C-Präprozessorcode.
ENRE-cpp – ENRE (ENtity Relationship Extractor) ist ein Tool zum Extrahieren von Code-Entitätsabhängigkeiten oder -Beziehungen aus Quellcode. ENRE-cpp ist ein ENtity Relationship Extractor für C/C++ basierend auf @eclipse/CDT. (In Entwicklung)
ESBMC – ESBMC ist ein kontextgebundener Open-Source-Modellprüfer mit freizügiger Lizenz, der auf Erfüllbarkeits-Modulo-Theorien für die Verifizierung von Single- und Multithread-C/C++-Programmen basiert.
Fehlerfinder
Feuerstein++
Frama-C – Ein solider und erweiterbarer statischer Analysator für C-Code.
Helix QAC ©️ – Statische Analyse der Enterprise-Klasse für eingebettete Software. Unterstützt die Codierungsstandards MISRA, CERT und AUTOSAR.
IKOS – Ein solider statischer Analysator für C/C++-Code basierend auf LLVM.
Joern – Open-Source-Code-Analyseplattform für C/C++ basierend auf Code-Eigenschaftsdiagrammen
KLEE – Eine dynamische symbolische Ausführungs-Engine, die auf der LLVM-Compiler-Infrastruktur aufbaut. Es kann Testfälle für Programme automatisch generieren, sodass die Testfälle so viel wie möglich vom Programm ausführen.
LDRA ©️ – Eine Tool-Suite einschließlich statischer Analyse (TBVISION) nach verschiedenen Standards, einschließlich MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ und benutzerdefinierten Regeln.
KUMPEL
PC-lint ©️ – Statische Analyse für C/C++. Läuft nativ unter Windows/Linux/MacOS. Analysiert Code für praktisch jede Plattform und unterstützt C11/C18 und C++17.
Phasar – Ein LLVM-basiertes statisches Analyse-Framework, das über eine Taint- und Typzustandsanalyse verfügt.
Polyspace Bug Finder ©️ – Identifiziert Laufzeitfehler, Parallelitätsprobleme, Sicherheitslücken und andere Mängel in eingebetteter C- und C++-Software.
Polyspace Code Prover ©️ – Bietet Codeüberprüfung, die das Fehlen von Überlauf, Division durch Null, Array-Zugriff außerhalb der Grenzen und bestimmten anderen Laufzeitfehlern im C- und C++-Quellcode nachweist.
scan-build – Frontend zum Ansteuern des in Clang integrierten Clang Static Analyzer über einen regulären Build.
splint – Annotationsgestützter statischer Programmprüfer.
SVF – Ein statisches Tool, das eine skalierbare und präzise interprozedurale Abhängigkeitsanalyse für C- und C++-Programme ermöglicht.
TrustInSoft Analyzer ©️ – Umfassende Erkennung von Codierungsfehlern und den damit verbundenen Sicherheitslücken. Dies umfasst eine solide Erkennung undefinierten Verhaltens (Pufferüberläufe, Array-Zugriffe außerhalb der Grenzen, Nullzeiger-Dereferenzierungen, Verwendung nach Frei, Division durch Nullen, nicht initialisierte Speicherzugriffe, vorzeichenbehaftete Überläufe, ungültige Zeigerarithmetik usw.). , Datenfluss- und Kontrollflussverifizierung sowie vollständige funktionale Verifizierung formaler Spezifikationen. Alle Versionen von C bis C18 und C++ bis C++20 werden unterstützt. TrustInSoft Analyzer wird im zweiten Quartal 2023 die ISO 26262-Qualifizierung erwerben (TCL3). Ein MISRA-C-Checker ist ebenfalls im Lieferumfang enthalten.
vera++
ameba – Ein statisches Code-Analysetool für Crystal.
crystal – Der Crystal-Compiler verfügt über eine integrierte Linting-Funktionalität.
Dart-Code-Metriken
Effective_dart – Linter-Regeln, die den Richtlinien in Effective Dart entsprechen
Fussel
Linter für Dart – Stil-Linter für Dart.
DelphiLint – Ein Delphi-IDE-Paket, das On-the-Fly-Codeanalyse und Linting ermöglicht, unterstützt von SonarDelphi.
Fix Insight ©️ – Ein kostenloses IDE-Plugin für die statische Code-Analyse. Eine Pro- Edition enthält ein Befehlszeilentool für Automatisierungszwecke.
Pascal Analyzer ©️ – Ein statisches Code-Analysetool mit zahlreichen Berichten. Es ist eine kostenlose Lite- Version mit eingeschränkter Berichterstellung verfügbar.
Pascal Expert ©️ – IDE-Plugin zur Code-Analyse. Enthält eine Teilmenge der Pascal Analyzer-Berichtsfunktionen und ist für Delphi-Versionen 2007 und höher verfügbar.
SonarDelphi – Statischer Delphi-Analysator für die Codequalitätsplattform SonarQube.
Credo – Ein statisches Code-Analysetool mit Schwerpunkt auf Codekonsistenz und -lehre.
dialyxir – Mischen Sie Aufgaben, um die Verwendung von Dialyzer in Elixir-Projekten zu vereinfachen.
sobelow – Sicherheitsorientierte statische Analyse für das Phoenix Framework.
Ulme-Analyse
elm-review – Analysiert ganze Elm-Projekte, mit Schwerpunkt auf gemeinsam nutzbaren und benutzerdefinierten Regeln, die in Elm geschrieben wurden und Garantien hinzufügen, die Ihnen der Elm-Compiler nicht gibt.
dialyzer – Der DIALYZER, ein DISkrepanzanaLYZER für ERlang-Programme. Dialyzer ist ein statisches Analysetool, das Software-Diskrepanzen wie eindeutige Typfehler, Code, der aufgrund von Programmierfehlern tot oder nicht mehr erreichbar ist, und unnötige Tests in einzelnen Erlang-Modulen oder ganzen (Gruppen von) Anwendungen identifiziert. Dialyzer beginnt seine Analyse entweder mit debugkompiliertem BEAM-Bytecode oder mit Erlang-Quellcode. Die Datei- und Zeilennummer einer Diskrepanz wird zusammen mit einem Hinweis darauf, worum es bei der Diskrepanz geht, gemeldet. Dialyzer basiert seine Analyse auf dem Konzept der Erfolgstypisierung, das akustische Warnungen (keine Fehlalarme) ermöglicht.
elvis – Erlang Style Reviewer.
Primitive Erlang Security Tool (PEST) – Ein Tool zum Durchführen eines einfachen Scans des Erlang-Quellcodes und zum Melden aller Funktionsaufrufe, die dazu führen können, dass der Erlang-Quellcode unsicher ist.
Fantomas – F#-Quellcode-Formatierer.
FSharpLint – Lint-Tool für F#.
ionide-analyzers – Eine Sammlung von F#-Analysatoren, erstellt mit dem FSharp.Analyzers.SDK.
fprettify – Automatischer Formatierer für modernen Fortran-Quellcode, geschrieben in Python. Fprettify ist ein Tool, das eine konsistente Leerzeichen-, Einrückungs- und Trennzeichenausrichtung im Code bietet, einschließlich der Möglichkeit, die Groß-/Kleinschreibung zu ändern und Präprozessoranweisungen zu verarbeiten, während der Revisionsverlauf erhalten bleibt und die Integration in den Editor getestet wird.
i-Code CNES für Fortran – Ein Open-Source-Tool zur statischen Codeanalyse für Fortran 77, Fortran 90 und Shell.
aligncheck – Ineffizient gepackte Strukturen finden.
bodyclose – Prüft, ob der HTTP-Antworttext geschlossen ist.
deadcode – Findet ungenutzten Code.
Dingo-Jäger
Hundeschlitten – Findet Zuweisungen/Deklarationen mit zu vielen leeren Bezeichnern.
dupl
errcheck – Überprüfen Sie, ob Fehlerrückgabewerte verwendet werden.
errwrap – Go-Fehler umschließen und beheben mit der neuen Verb-Direktive %w. Dieses Tool analysiert fmt.Errorf()-Aufrufe und meldet Aufrufe, die eine Verb-Direktive enthalten, die sich von der neuen %w-Verb-Direktive unterscheidet, die in Go v1.13 eingeführt wurde. Es ist auch in der Lage, Aufrufe umzuschreiben, um die neue %w-Wrap-Verb-Direktive zu verwenden.
flen – Informieren Sie sich über die Länge der Funktionen in einem Go-Paket.
Gehen Sie Meta Lintergolangci-lint
für neue Projekte.
go tool vet --shadow – Meldet Variablen, die möglicherweise unbeabsichtigt geschattet wurden.
go vet – Untersucht den Go-Quellcode und meldet Verdächtige.
go-consistent – Analysator, der Ihnen hilft, Ihre Go-Programme konsistenter zu machen.
go-critic – Go-Quellcode-Linter, der Prüfungen durchführt, die derzeit in anderen Linters nicht implementiert sind.
go/ast – Das Paket ast deklariert die Typen, die zur Darstellung von Syntaxbäumen für Go-Pakete verwendet werden.
Goast
gochecknoglobals
goconst – Findet wiederholte Zeichenfolgen, die durch eine Konstante ersetzt werden könnten.
gocyclo
gofmt -s – Prüft, ob der Code richtig formatiert ist und nicht weiter vereinfacht werden konnte.
gofumpt – Erzwingt ein strengeres Format als gofmt
und ist gleichzeitig abwärtskompatibel. Das heißt, gofumpt
ist mit einer Teilmenge der Formate zufrieden, mit denen gofmt
zufrieden ist. Das Tool ist ein Fork von gofmt
ab Go 1.19 und erfordert Go 1.18 oder höher. Es kann als Ersatz zum Formatieren Ihres Go-Codes verwendet werden, und die Ausführung von gofmt nach gofumpt sollte keine Änderungen bewirken. gofumpt
wird niemals Regeln hinzufügen, die mit gofmt
-Formatierung nicht übereinstimmen. Deshalb erweitern wir gofmt
anstatt mit ihm zu konkurrieren.
goimports – Überprüft fehlende oder nicht referenzierte Paketimporte.
gokart – Golang-Sicherheitsanalyse mit Schwerpunkt auf der Minimierung von Fehlalarmen. Es ist in der Lage, die Quelle von Variablen und Funktionsargumenten zu verfolgen, um festzustellen, ob Eingabequellen sicher sind.
GolangCI-Lint – Alternative zu Go Meta Linter
: GolangCI-Lint ist ein Linters-Aggregator.
golint – Gibt Fehler im Codierungsstil im Go-Quellcode aus.
goreporter – Führt viele Linters gleichzeitig aus und normalisiert ihre Ausgabe in einen Bericht.
goroutine-inspect – Ein interaktives Tool zur Analyse des Golang-Goroutine-Dumps.
gosec (gas) – Überprüft den Quellcode auf Sicherheitsprobleme, indem der Go AST gescannt wird.
gotype – Syntaktische und semantische Analyse ähnlich dem Go-Compiler.
govulncheck – Govulncheck meldet bekannte Schwachstellen, die Go-Code betreffen. Es verwendet eine statische Analyse des Quellcodes oder der Symboltabelle einer Binärdatei, um die Berichte auf diejenigen einzugrenzen, die sich auf die Anwendung auswirken könnten. Standardmäßig sendet govulncheck Anfragen an die Go-Schwachstellendatenbank unter https://vuln.go.dev. Anfragen an die Schwachstellendatenbank enthalten nur Modulpfade, keinen Code oder andere Eigenschaften Ihres Programms.
ineffassign – Erkennen Sie ineffektive Zuweisungen im Go-Code.
Schnittstelle
lll
verleumdet
Fehlbuchstabierung – Findet häufig falsch geschriebene englische Wörter.
nakedret – Findet nackte Renditen.
nargs – Findet nicht verwendete Argumente in Funktionsdeklarationen.
prealloc – Findet Slice-Deklarationen, die möglicherweise vorab zugewiesen werden könnten.
Reviewdog – Ein Tool zum Veröffentlichen von Bewertungskommentaren von jedem Linter in jedem Code-Hosting-Dienst.
revive – Schneller, konfigurierbarer, erweiterbarer, flexibler und schöner Linter für Go. Drop-in-Ersatz für Golint.
SafeSQL
Shisho
staticcheck – Gehen Sie zur statischen Analyse, die sich auf die Suche nach Fehlern, die Vereinfachung von Code und die Verbesserung der Leistung spezialisiert hat.
structcheck – Nicht verwendete Strukturfelder finden.
structslop – Statischer Analysator für Go, der Strukturfeld-Neuanordnungen empfiehlt, um maximale Speicherplatz-/Zuteilungseffizienz zu gewährleisten
test – Zeigt den Ort von Testfehlern aus dem stdlib-Testmodul an.
unkonvertieren
unparam – Nicht verwendete Funktionsparameter finden.
varcheck – Finden Sie nicht verwendete globale Variablen und Konstanten.
wsl – Erzwingt Leerzeilen an den richtigen Stellen.
Bretagne
HLint – HLint ist ein Tool, um mögliche Verbesserungen am Haskell-Code vorzuschlagen.
Liquid Haskell – Liquid Haskell ist ein Verfeinerungstypprüfer für Haskell-Programme.
Stan – Stan ist ein Befehlszeilentool zur Analyse von Haskell-Projekten und zur hilfreichen Ausgabe entdeckter Schwachstellen mit möglichen Lösungen für erkannte Probleme.
Weeder – Ein Tool zum Erkennen toter Exporte oder Paketimporte im Haskell-Code.
Checker Framework – Pluggable Typprüfung für Java. Dabei handelt es sich nicht nur um einen Fehlerfinder, sondern um ein Verifizierungstool, das die Korrektheit garantiert. Es enthält 27 vorgefertigte Typsysteme und ermöglicht Benutzern die Definition ihres eigenen Typsystems. Das Handbuch listet über 30 vom Benutzer beigesteuerte Typsysteme auf.
checkstyle – Überprüfung des Java-Quellcodes auf Einhaltung eines Codestandards oder einer Reihe von Validierungsregeln (Best Practices).
ck – Berechnet objektorientierte Chidamber- und Kemerer-Metriken durch Verarbeitung der Java-Quelldateien.
ckjm – Berechnet objektorientierte Chidamber- und Kemerer-Metriken durch Verarbeitung des Bytecodes kompilierter Java-Dateien.
CogniCrypt – Überprüft Java-Quell- und Bytecode auf falsche Verwendung kryptografischer APIs.
Dataflow Framework – Ein industrietaugliches Datenfluss-Framework für Java. Das Dataflow Framework wird im Checker Framework, in Googles Error Prone, Ubers NullAway, Metas Nullsafe und in anderen Kontexten verwendet. Es wird mit dem Checker Framework verteilt.
DesigniteJava ©️ – DesigniteJava unterstützt die Erkennung verschiedener Architektur-, Design- und Implementierungsgerüche sowie die Berechnung verschiedener Codequalitätsmetriken.
Diffblue ©️ – Diffblue ist ein Softwareunternehmen, das KI-gestützte Codeanalyse- und Testlösungen für Softwareentwicklungsteams bereitstellt. Seine Technologie hilft Entwicklern, Tests zu automatisieren, Fehler zu finden und manuelle Arbeit in ihren Softwareentwicklungsprozessen zu reduzieren. Das Hauptprodukt des Unternehmens, Diffblue Cover, nutzt KI, um Unit-Tests für Java-Code zu generieren und auszuführen und so dabei zu helfen, Fehler zu erkennen und die Codequalität zu verbessern.
Doop – Doop ist ein deklaratives Framework für die statische Analyse von Java-/Android-Programmen, das sich auf Zeigeranalysealgorithmen konzentriert. Doop bietet eine große Vielfalt an Analysen und auch das umgebende Gerüst, um eine End-to-End-Analyse durchzuführen (Faktengenerierung, Verarbeitung, Statistiken usw.).
ENRE-java – ENRE (ENtity Relationship Extractor) ist ein Tool zum Extrahieren von Code-Entitätsabhängigkeiten oder -Beziehungen aus Quellcode. ENRE-java ist ein ENtity Relationship Extractor für Java-Projekte basierend auf @Eclipse JDT/Parser.
Fehleranfällig – Erkennen Sie häufige Java-Fehler als Fehler bei der Kompilierung.
fb-contrib – Ein Plugin für FindBugs mit zusätzlichen Bug-Detektoren.
verbotene-apis – Erkennt und verbietet Aufrufe bestimmter Methoden/Klassen/Felder (z. B. das Lesen aus einem Textstream ohne Zeichensatz). Maven/Gradle/Ant-kompatibel.
google-java-format – Formatiert den Java-Quellcode neu, um dem Google Java-Stil zu entsprechen
HuntBugs
IntelliJ IDEA ©️ – Wird im Paket mit vielen Inspektionen für Java und Kotlin geliefert und enthält Tools für Refactoring, Formatierung und mehr.
JArchitect ©️ – Messen, Abfragen und Visualisieren Ihres Codes und vermeiden Sie unerwartete Probleme, technische Schulden und Komplexität.
JBMC – Begrenzter Modellprüfer für Java (Bytecode), überprüft benutzerdefinierte Behauptungen, Standardaussagen und mehrere Abdeckungsmetrikanalysen.
Mariana Trench – Unser sicherheitsorientiertes statisches Analysetool für Android- und Java-Anwendungen. Mariana Trench analysiert Dalvik-Bytecode und ist für die schnelle Ausführung großer Codebasen (Zehnmillionen Codezeilen) ausgelegt. Es kann Schwachstellen bei Codeänderungen finden, bevor es jemals in Ihrem Repository landet.
NullAway – Typbasierte Nullzeigerprüfung mit geringem Build-Zeit-Overhead; ein fehleranfälliges Plugin.
OWASP-Abhängigkeitsprüfung – Überprüft Abhängigkeiten auf bekannte, öffentlich bekannt gegebene Schwachstellen.
qulice – Kombiniert einige (vorkonfigurierte) statische Analysetools (Checkstyle, PMD, Findbugs, ...).
RefactorFirst – Identifiziert und priorisiert God-Klassen und stark gekoppelte Klassen in Java-Codebasen, die Sie zuerst umgestalten sollten.
Soot – Ein Framework zur Analyse und Transformation von Java- und Android-Anwendungen.
Spoon – Spoon ist eine Metaprogrammierungsbibliothek zur Analyse und Transformation von Java-Quellcode (einschließlich Java 9, 10, 11, 12, 13, 14). Es analysiert Quelldateien, um ein gut gestaltetes AST mit leistungsstarker Analyse- und Transformations-API zu erstellen. Kann in Maven und Gradle integriert werden.
SpotBugs – SpotBugs ist der Nachfolger von FindBugs. Ein Tool zur statischen Analyse, um nach Fehlern im Java-Code zu suchen.
Steady – Analysiert Ihre Java-Anwendungen auf Open-Source-Abhängigkeiten mit bekannten Schwachstellen und verwendet dabei sowohl statische Analysen als auch Tests, um den Codekontext und die Verwendung für eine höhere Genauigkeit zu ermitteln.
Violations Lib – Java-Bibliothek zum Parsen von Berichtsdateien aus der statischen Codeanalyse. Wird von einer Reihe von Jenkins-, Maven- und Gradle-Plugins verwendet.
Äther
Closure Compiler – Ein Compiler-Tool zur Steigerung der Effizienz, Reduzierung der Größe und Bereitstellung von Codewarnungen in JavaScript-Dateien.
VerschlussLinter
Komplexitätsbericht
DeepScan ©️ – Ein Analysator für JavaScript, der auf Laufzeitfehler und Qualitätsprobleme statt auf Codierungskonventionen abzielt.
es6-plato
eskomplex
Esprima
flow – Ein statischer Typprüfer für JavaScript.
hegel – Ein statischer Typprüfer für JavaScript mit Schwerpunkt auf Typinferenz und starken Typsystemen.
jshint – Erkennen Sie Fehler und potenzielle Probleme im JavaScript-Code und setzen Sie die Codierungskonventionen Ihres Teams durch.
JSLint – Das JavaScript-Code-Qualitätstool.
JSPrime
NodeJSScan – Ein statischer Sicherheitscode-Scanner für Node.js-Anwendungen, der auf libsast und semgrep basiert und auf dem njsscan-CLI-Tool aufbaut. Es verfügt über eine Benutzeroberfläche mit verschiedenen Dashboards zum Sicherheitsstatus einer Anwendung.
Plato
Polymer-Analyzer – Ein statisches Analyse-Framework für Webkomponenten.
retire.js – Scanner, der die Verwendung von JavaScript-Bibliotheken mit bekannten Schwachstellen erkennt.
RSLint
Standard – Ein npm-Modul, das nach Javascript-Styleguide-Problemen sucht.
tern – Ein JavaScript-Code-Analysator für umfassende, editorübergreifende Sprachunterstützung.
TypL
xo – Meinungsvoller, aber konfigurierbarer ESLint-Wrapper mit vielen Extras. Erzwingt strengen und lesbaren Code.
Maßstab
JET – Statisches Typinferenzsystem zur Erkennung von Fehlern und Typinstabilitäten.
StaticLint – Statische Codeanalyse für Julia
detekt – Statische Code-Analyse für Kotlin-Code.
diktat – Strenger Codierungsstandard für Kotlin und ein Linter, der Code-Gerüche erkennt und automatisch behebt.
ktfmt – Ein Programm, das Kotlin-Quellcode neu formatiert, um dem gemeinsamen Community-Standard für Kotlin-Codekonventionen zu entsprechen. Ein ktfmt IntelliJ-Plugin ist im Plugin-Repository verfügbar. Um es zu installieren, gehen Sie zu den Einstellungen Ihrer IDE und wählen Sie die Kategorie „Plugins“ aus. Klicken Sie auf die Registerkarte „Marktplatz“, suchen Sie nach dem ktfmt-Plugin und klicken Sie auf die Schaltfläche „Installieren“.
ktlint – Ein Anti-Bikeshedding-Kotlin-Linter mit integriertem Formatierer.
luacheck – Ein Tool für Linting und statische Analyse von Lua-Code.
lualint – lualint führt eine Luac-basierte statische Analyse der Verwendung globaler Variablen im Lua-Quellcode durch.
Luanalyse
DrNim – DrNim kombiniert das Nim-Frontend mit der Z3-Proof-Engine, um die Verifizierung/Validierung von in Nim geschriebener Software zu ermöglichen.
nimfmt – Nim-Codeformatierer/Linter/Stilprüfer
Sys – Ein statisches/symbolisches Tool zum Auffinden von Fehlern im (Browser-)Code. Es verwendet den LLVM AST, um Fehler wie nicht initialisierten Speicherzugriff zu finden.
Verifast-Ein Instrument zur modularen formalen Überprüfung der Korrektheit der Eigenschaften von Einzel- und Multithreaden-C- und Java-Programmen, die mit Voraussetzungen und Postkonditionen in der Trennungslogik geschrieben sind. Um umfangreiche Spezifikationen auszudrücken, kann der Programmierer induktive Datentypen, primitive rekursive reine Funktionen über diese Datentypen und die strakten Trennungslogik -Prädikate definieren.
CakeFuzzer-Web-Anwendungs-Sicherheitstest-Tool für CakePhp-basierte Webanwendungen. CakeFuzzer verwendet eine vordefinierte Reihe von Angriffen, die vor der Ausführung zufällig modifiziert werden. Der Kuchenfuzzer nutzt das tiefe Verständnis des PHP -Rahmens für Kuchen und startet Angriffe auf alle potenziellen Einstiegspunkte für Anwendungen.
Churn-Php-hilft, gute Kandidaten für das Refactoring zu entdecken.
Komponist-Abhängigkeit-Analyseer-schnelle Erkennung von Problemen der Komponistenabhängigkeit.
Dephpend - Abhängigkeitsanalyse -Tool.
Abschaltungsdetektor-Findet Gebrauch von veralteten (Symfony) Code.
Deptrac - Durchsetzen von Regeln für Abhängigkeiten zwischen Softwareschichten.
DesignPatternDetektor - Erkennung von Entwurfsmustern im PHP -Code.
EasyCodingSpandard-Kombinieren Sie PHP_CODESNIFER und PHP-CS-FIXER.
ENLIGHTN - Ein statisches und dynamisches Analyse -Tool für Laravel -Anwendungen, das Empfehlungen zur Verbesserung der Leistung, Sicherheit und Code von Laravel -Apps bietet. Enthält 120 automatisierte Schecks.
EXAKAT - Eine automatisierte Code -Überprüfung der Engine für PHP.
Grumpphp - Überprüft den Code in jedem Commit.
Larastan - Fügt eine statische Analyse der Produktivität und der Codequalität von Laravel zu verbessern. Es ist ein Wrapper um Phpstan.
Mondrian
NITPICK CI © euen - Automatisierte PHP -Codeüberprüfung.
Parallel-Lint-Dieses Tool überprüft die Syntax von PHP-Dateien schneller als die serielle Prüfung mit einer schickeren Ausgabe.
Analysieren - ein statischer Sicherheitsscanner.
PDEPEND - Berechnet Software -Metriken wie die zyklomatische Komplexität für PHP -Code.
PHAN - Ein moderner statischer Analysator von Etsy.
PHP -Architektur -Tester - Einfach zu verwendende Architektur -Testwerkzeug für PHP.
PHP -Annahmen - Überprüft auf schwache Annahmen.
PHP-Codierungsstandards Fixierer-Behebt Ihren Code nach Standards wie PSR-1, PSR-2 und dem Symfony Standard.
PHP -Erkenntnisse - Sofortige PHP -Qualitätsprüfungen aus Ihrer Konsole. Analyse der Codequalität und des Codierungsstils sowie des Überblicks über die Codearchitektur und deren Komplexität.
PHP -Inspektionen (EA Extended) - Ein statischer Codeanalysator für PHP.
PHP Refactoring Browser - Refactoring -Helfer.
PHP Semantic Versioning Checker
PHP-Parser-Ein PHP-Parser, der in PHP geschrieben wurde.
PHP-Speller-PHP-Zauberprüfung Bibliothek.
PHP-TOOKE-Refektion
Php7cc
Php7mar
PHP_CODESNIFFER - Erkennt Verstöße gegen einen definierten Satz von Codierungsstandards.
PHPARKICTECT - PhparkItEct hilft Ihnen, Ihre PHP -Codebasis kohärent und solide zu halten, indem Sie Ihrem Workflow eine architektonische Einschränkungsprüfung hinzufügen. Sie können die Einschränkung ausdrücken, die Sie in einfachem und lesbarem PHP -Code durchsetzen möchten.
PHPCA
PHPCPD
PHPDCD
PhpDependencyanalysis
PHPDePrecationDetektor - Analysator des PHP -Code, um Probleme mit veralteten Funktionen in neueren Interpreter -Versionen zu durchsuchen. Es findet entfernte Objekte (Funktionen, Variablen, Konstanten und INI-Direktive), veraltete Funktionsfunktionen und Verwendung verbotener Namen oder Tricks (z. B. reservierte Kennungen in neueren Versionen).
Phpdoc-to-Type
PHPDocumentor - Analysiert den PHP -Quellcode, um eine Dokumentation zu generieren.
PHPLOC - Ein Werkzeug zur schnellen Messung der Größe und zur Analyse der Struktur eines PHP -Projekts.
PHPMD - Findet mögliche Fehler in Ihrem Code.
PHPMetrics - berechnet und visualisiert verschiedene Metriken zur Codequalität.
PhpMnd - hilft, magische Zahlen zu erkennen.
Phpqa
PHPQA - JAKZAL - Viele Werkzeuge für die statische PHP -Analyse in einem Behälter.
PHPQA-JMOLIVAS-PHPQA All-in-One-Analysator CLI-Tool.
PHPSA
PHPSTAN - PHP Static Analysis Tool - Entdecken Sie Fehler in Ihrem Code, ohne ihn auszuführen!
Progpilot - Ein statisches Analysetool für Sicherheitszwecke.
Psalm - Statische Analyse -Tool zum Auffinden von Typ -Fehlern in PHP -Anwendungen.
Qafoo Quality Analyzer
Rektor - Sofortige Upgrades und automatisiertes Refactoring eines PHP 5.3+ -Codes. Es aktualisiert Ihren Code für PHP 7.4, 8.0 und darüber hinaus. Rektor verspricht eine niedrige falsch positive Rate, da es nach eng definierten AST-Mustern (abstrakter Syntaxbaum) sucht. Die Hauptnutzungsnutzung ist die Bekämpfung der technischen Schulden in Ihrem Legacy-Code und das Entfernen von toten Code. Rektor bietet eine Reihe von Sonderregeln für Symfony, Doctrine, Phpunit und vieles mehr.
Reflexion - Reflexionsbibliothek zur statischen Analyse für PHP -Projekte
Symfony Insight © euen - Sicherheitsrisiken erkennen, Fehler suchen und umsetzbare Metriken für PHP -Projekte bereitstellen.
Tuli - Ein statischer Analysemotor.
Twig-Lint-Twig-Lint ist ein Lint-Tool für Ihre Zweigdateien.
WAP - Tool zur Erkennung und Korrektur von Schwachstellen der Eingabevalidierung in PHP (4,0 oder höher) Webanwendungen und prognostiziert Fehlalarme durch Kombination statischer Analyse und Data -Mining.
Perl :: Analyzer-Perl-Analyzer ist eine Reihe von Programmen und Modulen, mit denen Benutzer Perl-Codebasen analysieren und visualisieren können als Aufrufe von Methoden von übergeordneten Paketen über Super.
Perl :: Kritiker-Kritik-Perl-Quellcode für Best-Practices.
Perltidy - Perltidy ist ein Perl -Skript, das Perl -Skripte einnimmt, um sie leichter zu lesen. Die Formatierung kann mit Befehlszeilenparametern gesteuert werden. Die Standardparametereinstellungen folgen ungefähr den Vorschlägen im Perl -Stilhandbuch. Perltidy kann neben der neu formatierenden Skripten eine große Hilfe bei der Aufspürung von Fehlern mit fehlenden oder zusätzlichen Zahnspangen, Klammern und Quadratklammern sein, da es sehr gut darin ist, Fehler zu lokalisieren.
ZARN - Ein Tool für leichte statische Sicherheitsanalyse für moderne Perl -Apps
Autoflake - Autoflake entfernt nicht verwendete Importe und nicht verwendete Variablen aus dem Python -Code.
AUTOPEP8 - Ein Tool, das den Python -Code automatisch formatiert, um dem Pep 8 -Style -Handbuch zu entsprechen. Es verwendet das Pycodestyle -Dienstprogramm, um zu bestimmen, welche Teile des Codes formatiert werden müssen.
Bandit - Ein Tool, um gemeinsame Sicherheitsprobleme im Python -Code zu finden.
BellyButton-Ein Linkermotor, der benutzerdefinierte projektspezifische Regeln unterstützt.
Schwarz - Die kompromisslose Python -Code -Formatiererin.
Bowler - Safer Code Refactoring für moderne Python. Bowler ist ein Refactoring -Werkzeug zum Manipulieren von Python auf Syntaxbaumebene. Es ermöglicht sichere Änderungen des Code mit großen Maßstäben und garantiert gleichzeitig, dass der resultierende Code kompiliert und ausgeführt wird. Es bietet sowohl eine einfache Befehlszeilenschnittstelle als auch eine fließende API in Python, um komplexe Code -Modifikationen im Code zu generieren.
Ciocheckpep8
, pydocstyle
, flake8
und pylint
.
Zusammenhalt
Deal - Design nach Vertrag für Python. Schreiben Sie fehlerfreien Code. Wenn Sie Ihrem Code ein paar Dekorateure hinzufügen, erhalten Sie kostenlose Tests, statische Analysen, formale Überprüfung und vieles mehr.
DLINT - Ein Werkzeug zur Sicherstellung, dass Python -Code sicher ist.
Dodgy - Dodgy ist ein sehr grundlegendes Tool, das Sie gegen Ihre Codebasis ausführen können, um nach "zwielichtig" -Schooks zu suchen. Es handelt sich um eine Reihe einfacher regulärer Ausdrücke, mit denen Dinge wie versehentliche SCM -Diff -Checkins oder Passwörter oder geheime Schlüssel in Dateien erfasst werden sollen.
Enre-py
Fixit-Ein Framework zum Erstellen von Fusselregeln und entsprechenden Autofixen für den Quellcode.
FLAKE8 - Eine Wrapper um pyflakes
, pycodestyle
und mccabe
.
FLAKEHEAVEN - Flakheaven ist ein Python -Linter, der um Flake8 herum gebaut wurde, um die vererbbare und komplexe TOML -Konfiguration zu ermöglichen.
Griffe - Unterschriften für ganze Python -Programme. Extrahieren Sie die Struktur, den Rahmen, das Skelett Ihres Projekts, um API -Dokumentation zu erstellen oder Bruchänderungen in Ihrer API zu finden.
Inspectortiger
Jedi - Automobile/Statische Analysebibliothek für Python.
Linty Fresh - analysieren Sie FINT -Fehler und melden Sie sie als Kommentare zu einer Pull -Anfrage an GitHub.
McCabe - Überprüfen Sie die Komplexität der McCabe.
Multilintflake8
, isort
und modernize
.
MYPY - Ein statischer Schacher, der darauf abzielt, die Vorteile der Enten -Typisierung und der statischen Typisierung zu kombinieren, die häufig mit MonkeyType verwendet werden.
Prospector - Eine Wrapper um pylint
, pep8
, mccabe
und andere.
Py-Find-Injektion
Pyanalyze - Ein Werkzeug zum programmgesteuerten Erkennen häufiger Fehler im Python -Code, z. B. Verweise auf undefinierte Variablen und Typfehler. Es kann erweitert werden, um zusätzliche Regeln hinzuzufügen und Überprüfungen für bestimmte Funktionen durchzuführen.
Pycodequal © euen - Pycodequal gibt Ihnen Einblicke in Komplexität und Fehlerrisiken. Es fügt Ihren Pull -Anfragen automatische Bewertungen hinzu.
Pycodestyle - (früher pep8
) Python Code gegen einige der Stilkonventionen in Pep 8 überprüfen.
Pydocstyle
Pyflakes - Python -Quelldateien auf Fehler überprüfen.
PyRINT - sucht nach Programmierfehlern und hilft, einen Codierungsstandard durchzusetzen und ein paar Codegerüche zu schnüffeln. Darüber hinaus enthält es pyreverse
(ein UML -Diagrammgenerator) und symilar
(ein Ähnlichkeitsprüfer).
Pylyzers - Ein statischer Code -Analysator / Sprachserver für Python, der in Rost geschrieben wurde und sich auf Typprüfung und lesbare Ausgabe konzentriert.
Pyre-Check-Ein schneller, skalierbarer Typ Checker für große Python-Codebasen.
Pyright - statischer Typ -Checker für Python, erstellt, um Lücken in vorhandenen Tools wie MyPy anzusprechen.
Pyroma
PYSA-Ein Tool, das auf dem Pyre-Check von Facebook basiert, um potenzielle Sicherheitsprobleme im Python-Code zu identifizieren, das mit der Meldeanalyse identifiziert wurde.
Pyt - Python Taint
PYTYPE - Ein statischer Analysator für Python -Code.
PyUpgrade-Ein Tool (und ein Vor-Commit-Haken), um die Syntax für neuere Versionen der Sprache automatisch zu aktualisieren.
QuantifiedCode
Radon - Ein Python -Tool, das verschiedene Metriken aus dem Quellcode berechnet.
Renovierung - Ein Werkzeug zur Sanierung und Modernisierung von Python -Codebasen. Die Renovierung ist stark von Clippy inspiriert, dem eingebauten Rostabschnitt.
RUFF - Schneller Python -Strubter, in Rost geschrieben. 10-100x schneller als vorhandene Linter. Kompatibel mit Python 3.10. Unterstützt Dateibeobachter.
Unimport - ein Linter, Formatierer zum Auffinden und Entfernen von nicht verwendeten Importanweisungen.
Geier - Finden Sie ungenutzte Klassen, Funktionen und Variablen im Python -Code.
Wemake-Python-Stil-der strengste und am stärksten aufmerksamste Python-Linter aller Zeiten.
schlau