Static Testing vs Dynamic Testing: What's the Difference?

What is Static Testing?

Static Testing is a type of software testing in which software application is tested without code execution. Manual or automated reviews of code, requirement documents and document design are done in order to find the errors. The main objective of static testing is to improve the quality of software applications by finding errors in early stages of software development process.

Static testing involves manual or automated reviews of the documents. This review is done during an initial phase of testing to catch Defect early in STLC. It examines work documents and provides review comments. It is also called Non-execution testing or verification testing.

Examples of Work documents-

What is Dynamic Testing?

Under Dynamic Testing, a code is executed. It checks for functional behavior of software system, memory/cpu usage and overall performance of the system. Hence the name "Dynamic"

The main objective of this testing is to confirm that the software product works in conformance with the business requirements. This testing is also called an Execution technique or validation testing.

Dynamic testing executes the software and validates the output with the expected outcome. Dynamic testing is performed at all levels of testing and it can be either black or white box testing.

KEY DIFFERENCE

  • Static testing was done without executing the program whereas Dynamic testing is done by executing the program.
  • Static testing checks the code, requirement documents, and design documents to find errors whereas Dynamic testing checks the functional behavior of software system, memory/CPU usage and overall performance of the system.
  • Static testing is about the prevention of defects whereas Dynamic testing is about finding and fixing the defects.
  • Static testing does the verification process while Dynamic testing does the validation process.
  • Static testing is performed before compilation whereas Dynamic testing is performed after compilation.
  • Static testing techniques are structural and statement coverage while Dynamic testing techniques are Boundary Value Analysis & Equivalence Partitioning.

Static Testing Vs Dynamic Testing

Static Testing Techniques:

Dynamic Testing Techniques:

Difference between Static and Dynamic Testing:

Static Testing Vs Dynamic Testing

Static Testing

Dynamic Testing

Testing was done without executing the program Testing is done by executing the program
This testing does the verification process Dynamic testing does the validation process
Static testing is about prevention of defects Dynamic testing is about finding and fixing the defects
Static testing gives an assessment of code and documentation Dynamic testing gives bugs/bottlenecks in the software system.
Static testing involves a checklist and process to be followed Dynamic testing involves test cases for execution
This testing can be performed before compilation Dynamic testing is performed after compilation
Static testing covers the structural and statement coverage testing Dynamic testing techniques are Boundary Value Analysis & Equivalence Partitioning.
Cost of finding defects and fixing is less Cost of finding and fixing defects is high
Return on investment will be high as this process involved at an early stage Return on investment will be low as this process involves after the development phase
More reviews  comments are highly recommended for good quality More defects are highly recommended for good quality.
Requires loads of meetings Comparatively requires lesser meetings

 

YOU MIGHT LIKE: