Verification vs. Validation

In QA work these terms are often user interchangeably. This is a bad practice for a number of reasons. A better approach is to define each term as the team should understand and use it. Below are the definitions I use.

verification: proving that a product meets the requirements specified throughout the development life cycle

validation: proving that the product meets the expectations of the users and the executable system performs as expected

Therefore, when writing test cases, using the above definitions, validate statements should be written to assert the true or false state of the test case. Verification is handled in the Agile process by communication and team activities (i.e. effective grooming) and therefore should be considered separate from validation (testing) efforts.