Hopefully my last thread about V&V as I found the B.Boehm is text which I just do not understand well (likely my technical English is not that good).
http://csse.usc.edu/csse/TECHRPTS/1979/usccse79-501/usccse79-501.pdf
Basically he says that verification is about checking that products derived from requirements baseline must correspond to it and that deviation leads only to changes in these derived products (design, code). But he says it begins with design and ends with acceptance tests (you can check the V model inside).
The thing is, I have accepted ISO12207 in terms of all testing is validation, yet it does not make any sense here. In order to be sure the product complies with requirements (acceptance test) I need to test it. Also it says that validation problems means that requirements are bad and needs to be changed – which does not happen with testing that testers do, who just checks correspondence with requirements.
1
To add some more confusion, ISO 12207:2008 does say that all testing activities are actually the validation.
IMHO it does not comply with this text as it states that validation problems are these when the specification needs to be changed.
I would disagree that verification is an acceptance test or maybe I misunderstood the article.
To sum it up:
- If you follow the ISO, then you verify requirements are reflected in design, code or other documents. You validate it by actual testing to see if it does what is needed.
- If you follow this document, then verification would be checking that all requirement refinements are corrects, and IMHO it would include testing as the acceptance test is explicitly mentioned.
Hope someone will correct me..
According to Wikipedia,
It is sometimes said that validation can be expressed by the query “Are you building the right thing?” and verification by “Are you building it right?”
This means that validation is concerned with making sure that what you build is what the requirements describe, and verification is concerned with making sure that what you build is correct, robust, and possesses other nice “ilities”.
Acceptance testing, therefore, is usually good to check for validation, but not verification. On the other hand, unit testing and integration testing, for example, are good to check for verification but usually not for validation.
2