What is the difference between verification and validation in testing?
Answer
Verification asks: "Are we building the product right?" — it checks that the software conforms to its specification and design documents. It involves reviews, walkthroughs, inspections, and static analysis — checking the product against requirements without necessarily running it. Validation asks: "Are we building the right product?" — it checks that the software meets the actual needs of the user/stakeholder. It involves dynamic testing (running the software) and user acceptance testing. Barry Boehm's classic distinction: verification = does it meet the spec? validation = does it meet the user's need? Example: a program might be verified (it does exactly what the specification says) but not validated (the specification was wrong about what the user needed). Both are essential — verification catches implementation errors; validation catches requirements errors.