Monday, April 20, 2009

Explain the difference between static and dynamic testing?

Difference between Static & Dynamic Testing

Two other terms used to describe how software is tested are static testing and dynamic testing. Static testing refers to testing something that's not running—examining and reviewing it. Dynamic testing is what you would normally think of as testing—running and using the software.

The best analogy for these terms is the process you go through when checking out a used car. Kicking the tires, checking the paint, and looking under the hood are static testing techniques. Starting it up, listening to the engine and driving down the road are dynamic testing techniques. [Software Testing by Ron Patton]

With dynamic testing methods, software is executed using a set of input values and its output is then examined and compared to what is expected. During static testing, software work products are examined manually, or with a set of tools, but not executed.

Among the questions that arise are: How can we evaluate or analyze a requirements document, a design document, a test plan, or a user manual? How can we effectively pre-examine the source code before execution? One powerful technique that can be used is static testing, e.g. reviews. In principle all software work products can be tested using review techniques.

Types of defects that are easier to find during static testing are: deviations from standards, missing requirements, design defects, non-maintainable code and inconsistent interface specifications. [Source]

Also See:
Static & Dynamic Testing Techniques