What is Static Testing and Static Analysis of Software Testing?

Static Testing and Dynamic Testing are two different strategies of testing. Many of us have a perception that Software Testing is performed only by executing the code and finding the defects. Software Testing is not just that. Assuming that a part of the requirement that is there in the requirement document is missed or interpreted in the design document, and then the development is performed followed by testing. Only during the testing, the requirement will be verified and the mismatch will be identified. But by this time, it will be too late for identifying the requirement mismatch and fixing it is going to be very costly. That is where a static testing is highly useful. 

Static testing is a concept where the documents that are prepared in each phase of SDLC are verified and validated to check for the correctness and to track the mismatches if any. Static Testing is performed on the documents prepared and it does not require code execution. Static testing also includes the code walkthrough where in the coding is verified for its correctness and code optimization suggestions are proposed. 

Static testing proposes early verification and static analysis. Static testing insists on inspection of the documents and source code for early identification of defects in a cost effective way.