Answer1:
Dynamic testing: Required program to be executed
static testing: Does not involve program execution

The program is run on some test cases & results of the program’s performance are examined to check whether the program operated as expected
E.g. Compiler task such as Syntax & type checking, symbolic execution, program proving, data flow analysis, control flow analysis

Answer2:
Static Testing: Verification performed with out executing the system code
Dynamic Testing: Verification and validation performed by executing the
system code