Static Testing vs Dynamic Testing
What is Static Testing?
Static testing is done without executing the AUT code( application under test ). It manually checks the code, requirement documents, and design documents to find errors. Hence, the name “static”.
The main objective of this testing is to improve the quality of software artifacts.It finds errors in early stages of the development cycle. This testing is also called as Non-execution technique or verification testing.
The basic classification of testing w.r.t static vs dynamic is as shown below:
Static testing involves manual or automated reviews of the documents. This review, is done during initial phase of testing to catch defect early in STLC. It examines work documents and provides review comments. Checks in code review , requirement documents, and design documents to find errors are examples of Static Testing.
Static Testing is done to find errors in early stage of the development cycle.Technical Reviews,Walk through,Static code Review comes under this category of testing.
This can be done either formally in a meeting or informally by two or more development/QA engineers. Static Code Analysis testing is a white box testing technique where the developer test their code without executing it.
What is Dynamic Testing?
In Dynamic Testing application under test code is executed. The main objective of this testing is to confirm that the product works in conformance with the requirements.
This testing is also called as validation testing.Dynamic testing executes the software and validates the output with the expected outcome.
It is performed at all levels of testing and it can be either black or white box testing.It checks for functional behavior of software system and overall performance of the system.
All Functional and Non Functional Testing comes under this category of testing.Example are Integration Testing, System Testing, Functional Testing ,Acceptance Testing, Load Testing etc.
Differences between Static and Dynamic Testing are:
#Static Testing is done without executing the AUT code whereas Dynamic Testing is done by executing the AUT code.
# Dynamic Testing is about finding or fixing the defects in system whereas Static Testing is about prevention of defects
#Static testing is more cost effective than dynamic testing and its performed earlier in the life cycle.