Static analysis of a software piece is performed without executing the code. There are several advantages to software analysis over testing:
- During testing, errors can hide other errors. This situation does not happen with static analysis, because it is not concerned with interactions between errors.
- Incomplete versions of a system can be statically analyzed without additional cost. In testing, if a program is incomplete, test harnesses have to be developed.
- Static analysis can consider broader quality attributes of a software system, such as compliance with standards, portability, and maintainability.
There are different methods that can be identified as static analysis:
- Inspection (first proposed by Michael Fagan in 1976) ...