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)?
Under Static Testing code is not executed. Rather it manually checks the code, requirement documents, and design documents to find errors. Hence, the name "static". Under Dynamic Testing code is executed. It checks for functional behavior of software system , memory/cpu usage and overall performance of the system. Hence the name "Dynamic".
Black box testing is a testing technique that ignores the internal mechanism of the system and focuses on the output generated against any input and execution of the system. White box testing is a testing technique that takes into account the internal mechanism of a system.
Black box testing and White box testing are testing methods used for software testing.Dynamic testing can be black box or white box testing.
Ex: Unit testing is a type of dynamic testing(Functional testing type) and it falls under the class of white box testing.
System testing is a type of dynamic testing(Functional testing type) and it falls under the class of black box testing.
Integration testing is a type of dynamic testing(Functional testing type) and it may falls both white box testing and black box testing.
see this: https://www.codeproject.com/Tips/351122/What-is-software-testing-What-are-the-different-ty