Static Analysis Vs Dynamic Analysis

Software testing is a wider field, which involves the testing of a software application, at various different levels, such as at unit level, integration level, system level, etc. Early testing of a software product ensures the less likelihood of defects at higher levels and ultimately in the finally developed product.

Code testing may be seen as an example of early stage of testing, where the programming code is examined or analyzed, either dynamically or statically. Both of these methods are very much different to each other as static analysis involves the examination of a code without touching and executing it, whereas dynamic analysis includes the execution of the code, to evaluate it.

A properly set up and well equipped test environment ensures the good productivity of the testing process. Thus, we are listing out some of the important elements, key aspects in the checklist format, which may be considered and used, while setting up the test environment.

Sl.No. Static Analysis Dynamic Analysis
1. Code is studied, reviewed and analysed to reveal errors (if any) in it. Code is made to execute, so as to locate out the bugs in it.
2. Performs in non-runtime environment. Used to evaluate the run-time behaviour of a program, in its operational mode.
3. A way of performing White Box testing. May be seen as a black box testing technique.
4. Useful in revealing issues, like memory leaks, buffer overflow, concurrency issues, Boundary value violation, etc. Reveals outs the error(s) in the code, which is considered under dynamic analysis.
5. Considers all path of execution. Only consider one path of execution, at a particular instant of time.
6. It demands large amount of time and resources. Compare to static analysis, it requires less time and resources.
7. May be seen as a preventive measure. It acts like a corrective action.
8. Code verification process Validates the code.
9. Provides more false picture It ensure less false picture than the static analysis.
10. Needs frequent interaction, collaboration, meetings, etc. Does not requires collaboration, meetings, etc.
11. Static analysis is followed by the Dynamic analysis. Dynamic analysis of a code is preferred after its static.
12. Automation is preferred. May be carried out, either manually or with the help of tools.