This is more like an academic question. Although, common perception is that dynamic analysis is testing itself, most of advanced sources (but AFAIK also the ISTQB) distinct between:

  • dynamic testing (excercising the program) and
  • dynamic analysis (analysis of memory leaks, pointer exceptions etc. during runtime) by special tools.

Of course it is not perfect classification because:

  • ISTQB, having adapted IEEE, says analysis = testing
  • but on the other hand it distincts between dynamic analysis and dynamic testing.

Needless to say, ISTQB uses a static testing term which is not used by most of the other authoritative resources, they call it static analysis.

Well, the question would be: How should I classify dynamic analysis and dynamic testing relation in terms of taxonomy in my thesis?

If DA is not testing, I cannot simply call it dynamic testing technique. So how should I resolve it?

A Quote from Advanced Software Testing - Vol. 2: Guide to the ISTQB Advanced ...:

Dynamic analysis tools provide runtime information of the state of the executing software. They can be used to pinpoint a number of problems that are hard to find in static analysis and dynamic testing.

So it is clear that this is correctly saying DA is not dynamic testing (Wikipedia does not agree but that is not trusted source).

Another source: Guide to Advanced Software Testing:

Dynamic analysis cannot be done without tool support.... provides information as a by-product of dynamic testing (...) Dynamic testing can be used when the test object is executable. We can also use dynamic analysis, especially during component testing.

  • Can you link sources of those definitions? F or both ISTQB and other authoritative resources (IEEE, etc.).
    – dzieciou
    Nov 15, 2012 at 14:03
  • Whatever reference you choose for the terms and taxonomy, remember to refer or cite their definitions. That will clarifies them, even if the terms itself are ambiguous.
    – dzieciou
    Nov 15, 2012 at 14:05

2 Answers 2


My thoughts are that this is more about the differences between static and dynamic than analysis and testing.

My own personal definitions are:

Static testing = Testing of requirements, designs, specifications, log files, configuration files etc.

Dynamic testing = Testing of the application whilst it is running.


Static analysis = Analysis of application source code to find errors, inconsistencies and areas of high complexity, etc.

Dynamic analysis = Analysis of the application whilst it is running, to find memory leaks, performance issues etc.

So back to your original question, my personal view, would be that you could have analysis as part of your testing, however testing != analysis.


To perform dynamic analysis (memory leaks...) you have to execute the program, so I should try to provide a clear description when defining "dynamic testing" as a different aspect than "dynamic analysis" (and not just in a way of "exercising the program").

Usually, the test cases executions (from unit testing to regression system/function test) are used in order to produce the dynamic analysis reports. Not necessary, but let's say a "real world" relationship between them.

Maybe you should try to find a definition that focus on the objetives (results). "Static/dynamic code analysis" are mainly focused on the code violations/pitfalls no matter what functionality is implemented. "Dynamic testing" take care of how functionality (requirements) are implemented.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.