1. Validation ensures software complies with intended usage at the end of development. Verification determines if each development phase meets requirements from the previous phase.
2. A software fault is a static defect, error is an incorrect internal state from a fault, and failure is incorrect external behavior against requirements.
3. Testing evaluates software execution, and a test failure occurs during incorrect execution. Debugging finds faults from failures.