Static testing: It is the process of testing an application with out executing it. Static testing includes reviewing the documents needed for the development and testing of an application like Software Requirement Specification (SRS), Test Plan, Test case, Use case etc. Static testing comes under verification.
For example: Walkthroughs, Inspections and Reviews.
Importance of Static Testing
Static testing is carried out in the intial phase of a software project. Static testing begins as soon as the requirement documents are ready in order to improve the quality of the software by detecting the errors in the early stage of development itself. Static testing should be completed before the implementation of project. Detecting the maximum number of errors in the requirement phase will save the time and cost of organisation.
Dynamic Testing: It is the process of testing the application by running it. The application is tested by executing the testcases and validates the output with the expected result. Dynamic testing comes under validation.
For example: System Testing, Regression Testing etc.
Importance of Dynamic Testing
Dynamic testing is carried out only after the application is build and ready for running. It includes all types of testing to ensure the over all functionality and performance of the application.
Hence static testing and dynamic testing are important in a software project for ensuring the quality of the software.