Static Testing, a software testing technique in which the software is tested without executing the code. It has two parts as listed below:
Review - Typically used to find and eliminate errors or ambiguities in documents such as requirements, design, test cases, etc.
Static analysis - The code written by developers are analysed (usually by tools) for structural defects that may lead to defects.
The types of reviews can be given by a simple diagram:
Following are the types of defects found by the tools during static analysis:
A variable with an undefined value
Inconsistent interface between modules and components
Variables that are declared but never used
Unreachable code (or) Dead Code
Programming standards violations
Security vulnerabilities
Syntax violations