Static program analysis

static code analysisstatic analysiscode analysisstaticstatic testingstatic analyzerstatically checkinganalysisprogram analysisstatic analyses
Static program analysis is the analysis of computer software that is performed without actually executing programs, in contrast with dynamic analysis, which is analysis performed on programs while they are executing.wikipedia
268 Related Articles

List of tools for static code analysis

List of tools for static code analysis, JavaScriptStatic code analysis toolsautomated tool
The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding, program comprehension, or code review.
This is a list of tools for static code analysis.

Dynamic program analysis

dynamic analysisdynamic code analysisdynamic
Static program analysis is the analysis of computer software that is performed without actually executing programs, in contrast with dynamic analysis, which is analysis performed on programs while they are executing.
Dynamic analysis is in contrast to static program analysis.

Program analysis

Program analysis (computer science)analysisanalysis of computer software
Static program analysis is the analysis of computer software that is performed without actually executing programs, in contrast with dynamic analysis, which is analysis performed on programs while they are executing.
Program analysis can be performed without executing the program (static program analysis), during runtime (dynamic program analysis) or in a combination of both.

Code review

code reviewspeer code reviewReviews
The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding, program comprehension, or code review.
The above-mentioned definition of code review delimits it against neighboring but separate software quality assurance techniques: In static code analysis the main checking is performed by an automated program, in self checks only the author checks the code, in testing the execution of the code is an integral part, and pair programming is performed continuously during implementation and not as a separate step.

Software quality

software reliabilitycode qualityquality
The OMG (Object Management Group) published a study regarding the types of software analysis required for software quality measurement and assessment.
Many aspects of structural quality can be evaluated only statically through the analysis of the software inner structure, its source code, at the unit level, the technology level and the system level, which is in effect how its architecture adheres to sound principles of software architecture outlined in a paper on the topic by OMG.

Abstract interpretation

Abstraction
The mathematical techniques used include denotational semantics, axiomatic semantics, operational semantics, and abstract interpretation.

Lint (software)

lintlintinglinter
The uses of the information obtained from the analysis vary from highlighting possible coding errors (e.g., the lint tool) to formal methods that mathematically prove properties about a given program (e.g., its behaviour matches that of its specification).
Lint-like tools generally perform static analysis of source code.

ESC/Java

ESC/Java2
The underlying approach used in ESC/Java is referred to as extended static checking, which is a collective name referring to a range of techniques for statically checking the correctness of various program constraints.

Shape analysis (program analysis)

shape analysisShape analysis (software)
In program analysis, shape analysis is a static code analysis technique that discovers and verifies properties of linked, dynamically allocated data structures in (usually imperative) computer programs.

Documentation generator

documentation generationembedded documentation generatordocument generation

Source code

codesourcesource file
In most cases the analysis is performed on some version of the source code, and in the other cases, some form of the object code.

Object code

objectobject-codeobject files
In most cases the analysis is performed on some version of the source code, and in the other cases, some form of the object code.

Program comprehension

understand programsunderstanding of software systems
The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding, program comprehension, or code review.

Software inspection

inspectionsInspectiondesign inspection
Software inspections and software walkthroughs are also used in the latter case.

Software walkthrough

walkthroughWalkthroughsStructured walkthrough
Software inspections and software walkthroughs are also used in the latter case.

Formal methods

formal methodformalformal analysis
The uses of the information obtained from the analysis vary from highlighting possible coding errors (e.g., the lint tool) to formal methods that mathematically prove properties about a given program (e.g., its behaviour matches that of its specification).

Software metric

software metricsmetricmetrics
Software metrics and reverse engineering can be described as forms of static analysis.

Reverse engineering

reverse engineeredreverse engineerreverse-engineered
Software metrics and reverse engineering can be described as forms of static analysis.

Safety-critical system

safety-criticallife-critical systemsafety critical
A growing commercial use of static analysis is in the verification of properties of software used in safety-critical computer systems and