Here is what I understand:
Dynamic testing is testing that is performed when the system is running. Static testing is performed when the system is not running.
Black-Box testing focuses on functionality and is performed without knowing the internal workings of the program. White-Box testing looks for problems within the code itself.
What I am wondering is, Is it fair to say that all Black-Box testing is static? Is it also fair to say that some White-Box testing is static (for example, inspection of source code) and some is dynamic (branch/path testing)?
Some black-box testing is dynamic, as you can test a system while it is running without any knowledge of its internals (e.g., when using the end-user interface or public API).