Dynamic Testing is a type of testing when an application needs to be tested for varied sets of inputs (like Test Data or Rules or configurations) or changing criteria. So you change certain inputs into an application and see how the application now performs. Most part of what we perform as software test engineers is Dynamic Testing.

A good example: If you are testing for an application like a stock market or insurance calculators or weather based wesbsites. You could perform this type of testing using manual steps or automation steps too.

Static Testing is more standard where you are testing parts of an application that are fairly constant and do not change. This includes Documentation reviews (Functional/Technical specification documents), Code level testing (white-box testing), architecture level testing.