Static Testing

Static testing is testing, which checks the application without executing the code. It is a verification process. Some of the essential activities are done under static testing such as business requirement review, design review, code walkthroughs, and the test documentation review.

Static testing is performed in the white box testing phase, where the programmer checks every line of the code before handling over to the Test Engineer.

Static testing can be done manually or with the help of tools to improve the quality of the application by finding the error at the early stage of development; that why it is also called the verification process.

The documents review, high and low-level design review, code walkthrough take place in the verification process.

Dynamic Testing

Dynamic testing is testing, which is done when the code is executed at the run time environment. It is a validation process where functional testing [unit, integration, and system testing] and non-functional testing [user acceptance testing] are performed.

We will perform the dynamic testing to check whether the application or software is working fine during and after the installation of the application without any error.


Difference between Static testing and Dynamic Testing

Static testing

Dynamic testing

In static testing, we will check the code or the application without executing the code.

In dynamic testing, we will check the code/application by executing the code.

Static testing includes activities like code Review, Walkthrough, etc.

Dynamic testing includes activities like functional and non-functional testing such as UT (usability testing), IT (integration testing), ST (System testing) & UAT (user acceptance testing).

Static testing is a Verification Process.

Dynamic testing is a Validation Process.

Static testing is used to prevent defects.

Dynamic testing is used to find and fix the defects.

Static testing is a more cost-effective process.

Dynamic testing is a less cost-effective process.

This type of testing can be performed before the compilation of code.

Dynamic testing can be done only after the executables are prepared.

Under static testing, we can perform the statement coverage testing and structural testing.

Equivalence Partitioning and Boundary Value Analysis technique are performed under dynamic testing.

It involves the checklist and process which has been followed by the test engineer.

This type of testing required the test case for the execution of the code.