One more definition, another bigger names in testing is Glenford Myers.
In his book he defines the terms this way.
This covers testing to be sure, and actually does a pretty good job of
explaining the difference between verification and validation for testing.
An attempt to find errors by accident program in a test environment
versus Executing it in the real environment.
Now, we would tend to look at this definition as of a little bit
too narrow scope.
Validation is still executing the real environment, but
doesn't necessarily include the user.
And we think that the user is a key component to validation, it being valid.
So here is the correct definition, or well, our definition.
The way we consider verification and validation is like this.
Verification means that it conforms and
performs to its specification, what we wrote down as it will do this.
This is essentially our definition of if it does these things it meets the user
requirements.
Now there's a big transition there between what the user wants and
what we said we're going to do.
So there is some room for error in there but we have to write down what we want so
that we can give it to the developers, the designers, the architects, and
they actually build the system.
So we write that down, and
then we verify that what we built matches what we set out to build.
Are we building the thing right?
According to what we wanted to build, that's verification.
Validation, then, is that it conforms to the user satisfaction,
it's what they wanted.
And it's what they need, which are not necessarily the same thing.
What they say they want, what they say they need, and what they actually want and
need can oftentimes be different things.
So, we have to actually validate on two different levels.
It's, this is what they need, watching them use this supposed solution,
make sure it works the way that we think it will.
And they are actually satisfied with the way it provides what they asked for.
So, it's essentially are we building the right thing?
Not just, did we do what we wanted to do, but does that thing that we built right,
supposedly, actually do good things.
Is it actually good for my usability perspective?
Is it good from a security perspective?
Is it good just in a pure user satisfaction level?
That's validation.