Most people think verification and validation are exactly the same thing, but only different words. However, these two is not the same thing. I would like discuss both of them, especially the distinction between them.
Difference between Verification and Validation
-
Verification [Process-related]: a static practice of checking documents, design code and program
-
validation [Product-related]: a dynamic practice of validating and testing the actual product
- validation will be done by testing
In simple terms, software verification is: “[From the developer’s perspective] Assuming we should build X, does our software achieve its goals without any bugs or gaps?” On the other hand, software validation is: “[From the end user’s perspective] Was X what we should have built? Does X meet the high level requirements?”
Narrow scope for the different between verification
and validation
When it is defined more strictly, verification
is equivalent only to static testing and it is intended to be applied to artifacts. And, validation
(of the whole software product) would be equivalent to dynamic testing and intended to be applied to the running software product (not its artifacts, except requirements). Notice that requirements validation can be performed statically and dynamically
Program verification
aims at proving the correctness of programs by showing that it contains no errors. This is very different from testing that aims at uncovering errors in a program.
Difference between verification
and testing
Verification
promises to verify that a program is free from errors, while testing
is not a perfect technique in that a program might contain errors despite the success of a set of tests.
Program verification and testing are best considered as complementary techniques. In practice, program verification is often avoided, and the focus is on testing.
Reference
-
MIT 16.842 Fundamentals of Systems Engineering Verification and Validation- https://www.youtube.com/watch?v=-63JXElqPaY
-
https://en.wikipedia.org/wiki/Software_verification_and_validation
-
http://toolsqa.com/software-testing/difference-between-verification-and-validation/
-
https://www.testbytes.net/blog/verification-validation-software-testing/
-
https://www.softwaretestinghelp.com/difference-between-verification-vs-validation/