Static testing involves verification of software artifacts without executing the code, including reviews, inspections, and walkthroughs. Validation specifically requires running the code to verify behavior, while sanity testing is a subset of dynamic testing.