Liste von Werkzeugen zur statischen Codeanalyse

Vorlage:Cleanup-list

This is a list of significant tools for static code analysis.

Portal: Software Testing – Übersicht zu Wikipedia-Inhalten zum Thema Software Testing

Historical products

  • Lint — the original static code analyzer of C code.

Open-source or Noncommercial products

.NET (C#, VB.NET and all .NET compatible languages)

Java

  • Bandera — analyzer for Java
  • Checkstyle — analyze Java and apply coding standard
  • Classycle — analyze Java class cycles and class and package dependencies (Layers)
  • FindBugs — an open-source static bytecode analyzer for Java (based on Jakarta BCEL).
  • Jlint — for Java
  • PMD (software) — a static ruleset based Java source code analyzer that identifies potential problems.
  • SCL — A Java program analysis tool that is programmable with SCL (Structural Constraint Language).
  • Soot — A Java program analysis and compiler optimization framework
  • Hammurapi — Customizable static code analysis tool for java (based on coding standards) that can also generate metrics report
  • UCDetector — Unnecessary Code Detector: Eclipse PlugIn to find unnecessary (dead) public java code

C

  • CQual — A tool for adding type qualifiers in C.
  • SNav — Red Hat Source Navigator.
  • Sparse — a tool designed to find faults in the Linux kernel.
  • Splint — an open source evolved version of Lint (C language).
  • Frama-C — Frama-C is a suite of tools dedicated to the analysis of the source code of software written in C.
  • Astrée - A tool for proving the absence of runtime errors (overflows, failed assertions, etc.), taylored to critical embedded control code (was applied to Airbus A340 and A380 avionics code)
  • Deputy - Deputy is a C compiler that is capable of preventing common C programming errors, including out-of-bounds memory accesses as well as many other common type-safety errors.
  • CCured - CCured is a source-to-source translator for C. It analyzes the C program to determine the smallest number of run-time checks that must be inserted in the program to prevent all memory safety violations.
  • RATS - RATS is a tool for scanning C, C++, Perl, PHP and Python source code and flagging common security related programming errors such as buffer overflows and TOCTOU (Time Of Check, Time Of Use) race conditions.
  • LLVM/Clang Static Analyzer - standalone tool that find bugs in C and Objective-C programs.
  • MOPS - MOPS is a tool for finding security bugs in C programs and for verifying conformance to rules of defensive programming.
  • BOON - BOON is a tool for automatically finding buffer overrun vulnerabilities in C source code.
  • BLAST - BLAST is a software model checker for C programs.

C++

  • Flawfinder — open source programming tool that examines C or C++ source code for security weaknesses.
  • Oink — collaboration of C++ static analysis tools, based on the research of CQual [1]
  • Dehydra - A scriptable static analysis tool based on GCC. Developed by Mozilla.
  • EDoc++ - Examines C++ code to identify problems with C++ exception propagation and usage.
  • c++check - Checks C/C++ code for simple mistakes.

Fortran

  • ftnchek — static analyzer for Fortran 77 programs
  • g95-xml — code parser toolkit for Fortran 95

JavaScript

  • JsLint - online analyzer for JavaScript

Perl

  • Perl::Critic - a static code analysis tool for Perl
  • RATS - RATS is a tool for scanning C, C++, Perl, PHP and Python source code and flagging common security related programming errors such as buffer overflows and TOCTOU (Time Of Check, Time Of Use) race conditions.
  • countperl command from Perl::Metrics::Simple module - code metrics include Cyclomatic complexity
  • B::Xref module is used to generate a cross reference listing of all definitions and uses of variables, subroutines and formats in a Perl program.
  • B::Fathom - a module to evaluate the readability of Perl code
  • perltidy - script which indents and reformats Perl scripts to make them easier to read

PHP

  • Pixy — a PHP 4 source code scanner for detection of XSS and SQL injection vulnerabilities.
  • smarty-lint - a lint implementation for the popular templating engine, Smarty.

Python

  • PyChecker - The original static code analyser for Python.
  • pylint - A static code analyser for Python. Works as a plugin to PyDev for the Eclipse IDE.
  • Pyflakes - A lint-like tool for Python, whose primary advantage is being faster than PyChecker

Visual Basic

  • MZTools - MZTools 3.0 - Free Static Code Analysis & productivity enhancement tool for VB6, & VBA.

Multiple languages

  • RATS — Rough Auditing Tool for Security, which can scan C, C++, Perl, PHP and Python source code.

Commercial products

.NET

  • CodeIt.Right - combines Static Code Analysis and automatic Refactoring to best practices in one product. CodeIt.Right will automatically correct code errors and violations. C# and VB.NET
  • CHECKMARX CxSuite - a Source Code Analysis suite of products allowing developers and auditors identify software security vulnerabilities.

C/C++/C#

  • CHECKMARX CxSuite - a Source Code Analysis suite of products allowing developers and auditors identify software security vulnerabilities.
  • Static Analysis tool SPARROW A state-of-the-art Static Analysis tool (2008)
  • CodeIt.Right - combines Static Code Analysis and automatic Refactoring to best practices in one product. CodeIt.Right will automatically correct code errors and violations. C# and VB.NET
  • ClockSharp - checks C# code against the Philips C# coding standard.
  • CMT++ code metrics tool for C/C++ (also for Java).
  • StyleCop - Free source code style and consistency tool for C#, integrated into Microsoft Visual Studio.
  • Complexity Analyzer - for .NET
  • Compuware DevPartner - static code analyzer for .NET (C#, ASP.NET) with Visual Studio 2005 integration
  • Gimpel Software FlexeLint and PC-Lint - Multi-platform static code analysis tools for C and C++ code.
  • Green Hills Software DoubleCheck - static analysis for C and C++ code.
  • HP Code Advisor - A static analysis tool for C and C++ programs
  • LDRA Testbed - A software analysis and testing tool suite for C & C++.
  • Microsoft Visual Studio - Visual Studio Team System includes a static code analyzer.
  • NStatic - deep static analysis of C# code.
  • PREfast – A Microsoft tool which identifies defects in C/C++ source code.
  • QA-C - deep static analysis of C for quality assurance and guideline enforcement.
  • QA-C++ - deep static analysis of C++ for quality assurance and guideline enforcement.
  • ReSharper - Add-on for Visual Studio 2003/2005 from the creators of IntelliJ IDEA, which also provides static code analysis for C#.
  • Viva64 — analyzes C, C++ code for detect 64-bit portability issues.
  • ABRAXAS Software codeCheck — programmable C/C++ Standards Checking Tool .

Java

  • CHECKMARX CxSuite - a Source Code Analysis suite of products allowing developers and auditors identify software security vulnerabilities.
  • checKing - monitors the quality of software development process, including violations of coding rules for Java, JSP, Javascript, XML and HTML.
  • CodePro Analytix - Static code analysis for Java, integrated with Eclipse.
  • Enerjy Software - Metrics expert system and extendable static code analyzer Eclipse plugin for Java - compares code quality against Open Source projects
  • SonarJ - Architecture management solution for Java, comes with Eclipse-Plugin
  • IntelliJ IDEA — IDE for Java that also provides static code analysis.
  • QAValidator - Checking Java code against a defined software architecture
  • STAN — Structure Analysis for Java. Eclipse integrated visual dependency analysis, quality metrics and reporting.
  • Swat4j — a model based, goal oriented source code auditing tool for Java. Comes as an Eclipse plug-in.
  • TorqueWrench - A static Java bytecode analysis tool by StackFrame, LLC.
  • Coverity Software Readiness Manager for Java - tool of Coverity checks code quality, risk, code coverage, complexity, architectural integrity, and more

Visual Basic

  • CodeIt.Right - combines Static Code Analysis and automatic Refactoring to best practices in one product. CodeIt.Right will automatically correct code errors and violations. C# and VB.NET
  • Aivosto Oy's - Project Analyzer - Static code analysis tool for VBA, and VB6/VB.net
  • MZTools - MZTools 6.0 - Static Code Analysis & productivity enhancement tool for VB.net, VB6, & VBA.

Fortran

  • ForCheck — analyzes of FORTRAN 66, FORTRAN 77, FORTRAN 90, HPF, FORTRAN 95

SQL

Scripting languages

Multi-language

  • CHECKMARX - CxSuite - a suite of software which helps developers and auditors identify software security vulnerabilities.
  • Armorize Technologies CodeSecure - source code scanning (PHP, J2EE, ASP, etc.)
  • Axivion Bauhaus Suite — a tool for C, C++, Java and Ada code that comprises various analyses such as architecture checking, interface analyses, and clone detection.
  • CAST — provides a tool with 25+ language / product analyzers, defect detection as well as architectural and build-over-build trend analysis.
  • Xpediter/DevEnterprise from Compuware — COBOL and PL/I analysis at system and program level. Uses the source code as input and provides graphical representations and tabulated output. Delivers impact analysis capabilities based on specific program variables.
  • Coverity Prevent — analyzes C, C++ and Java code.
  • DMS Software Reengineering Toolkit — supports custom analysis of C, C++, Java, COBOL, and many other languages.
  • Fortify — helps developers identify software security vulnerabilities in C/C++, .NET, Java, JSP, ASP.NET, ColdFusion, "Classic" ASP, PHP, VB6, VBScript, JavaScript, PL/SQL, T-SQL and COBOL as well as configuration files.
  • GrammaTech - GrammaTech offers products for analyzing code written in C/C++ (CodeSurfer and CodeSonar) and Ada (Ada-ASSURED and Ada-Utilities)
  • Klocwork Insight and Klocwork Developer for Java — provides security vulnerability and defect detection as well as architectural and build-over-build trend analysis for C, C++ and Java
  • Lattix, Inc. LDM - Architecture and dependency analysis tool for Ada, C/C++, Java, .NET software systems.
  • LDRA Testbed - A software analysis and testing tool suite for C, C++, Ada83, Ada95 and Assembler (Intel, Freescale, Texas Instruments).
  • M Squared Technologies Resource Standard Metrics - source code analysis and metrics (C, Ansi C, C++, Ansi C++, C#, Java, Javascript, etc.)
  • Metrixware Code & Architecture quality analysis & dashboards (Java, Cobol, JSP, Javascript, Pacbase, C#, SAP/Abap, etc.)
  • Optimyth Software Own analyzers for Policy Enforcement, Dependency Mappings and Metrics Calculation for multiple languajes, such us Cobol, SAP ABAP IV, Java, HTML, JSP, XML, PL/SQL, C#, among others. Repository and Web Dashboards based on ISO 9126 with connectors to the main tools (open and commercial) used to develop and test applications.
  • Ounce Labs — automated source code analysis that enables organizations to identify and eliminate software security vulnerabilities in languages including Java, JSP, C/C++, C#, ASP.NET, and VB.Net.
  • Parasoft Application Security Solutions - Static analysis for detection and remeditation of security vulnerabilities in Java, C/C++, and .NET. OWASP and PCI DSS 6 support, as well as policy enforcement. Integrated with Eclipse and Visual Studio.
  • Parasoft Application Development Quality Solutions- Java, C/C++, .NET - Static analysis for Java (including JSP, XML configuration files and property files), C/C++ (including JSF and MISRA), and .Net (IL, C#, VB.NET). Integrated with Eclipse and Visual Studio.
  • PolySpace code verifiers by The MathWorks - Software verification for C, C++ and Ada
  • Metrixware System Code - Static code analyzer and quality dashboard for C, C++, C#, Java, JSP, PHP and JavaScript.
  • SofCheck Inspector — provides static detection of logic errors, race conditions, and redundant code for Java and Ada.
  • Sotoarc/Sotograph - Architecture and quality in-depth analysis and monitoring for Java, C#, C and C++
  • Telelogic Logiscope RuleChecker (coding standards checking) and Audit (metrics measurement and ISO 9126-based quality modeling) for C, C++, Ada, Java.
  • Understand — analyzes C,C++, Java, Ada, Fortran, Jovial, Delphi — reverse engineering of source, code navigation, and metrics tool.
  • Veracode SecurityReview — an on-demand application security testing and remediation, C, C++, Java, .Net and other languages.

Uncategorized

  • DevMetrics — commercial
  • HP DevInspect - simplifies security during development by automatically finding and fixing application vulnerabilities in ASP.NET and Java based web applications.
  • NDepend — A comprehensive analysis and reporting tool.
  • PLC Checker — A coding rules verification tools for PLC programs.
  • Reasoning, Inc. offers a defect-finding service using an internal tool, which found defects in Apache Tomcat missed by an earlier version of FindBugs. [1]
  • SemmleCode — object oriented code queries for static program analysis.
  • Structure101 - For understanding, analyzing, measuring and controlling the quality of your Software Architecture as it evolves over time.
  • Structure101g - A generic version of Structure101 - build your own flavor to support any programming language or dependency data.

Formal methods tools

Tools that use a formal methods approach to static analysis (e.g., using program assertions):

See also

References

Vorlage:Reflist

  1. “Finding More Null Pointer Bugs, But Not Too Many,” David Hovemeyer & William Pugh, http://findbugs.cs.umd.edu/papers/MoreNullPointerBugs07.pdf