Whilst you will find variations on the definitions of those two terms, within the broad software QA and testing fields, there is general consensus that verification identifies correctness whilst validation identifies the worth of the final product.
Applying these general definitions to software testing, we see that the practical differences apply to the context and goals of the testing, rather than any difference in software testing methods or tools. 안전놀이터 The context and goals of ‘validating’ software is the end user or customer context whilst the context of software verification is ‘meets the specification’ ;.Indeed many software products are designed correctly, that is they meet standards and specifications, but they fail to generally meet the true end user (i.e. customer) requirements.
Ultimately validation is the focus of what the client is investing in and whoever does validation represents the voice of the client (or end user in the case of software applications developed for internal use). In practical terms what this means is separating the application quality control teams (i.e. test teams) into two broad groups, one that’s intimate familiarity with the client context of the finished product and another group that’s strong familiarity with how a computer software product must be produced.
Through example consider an accounting application that records general ledger bookings. The business requirements will be produced which outline the business (accounting) rules to be followed. From the business requirements a technical specification will be produced which would document the behavior (i.e. program specification) of the ‘to be’ delivered software.
In the above example software validation would include the initial walkthrough of the business requirements, with the business representatives, to ‘validate’ that certain requirements do in fact reflect what the application is needed to do for the business. When the final application has been developed any testing against the business requirements can also be a validation activity. The walkthrough of the technical specification to be sure it includes most of the functionality of the business requirements is really a verification activity. Also the testing of the delivered software against the technical specification can also be a verification activity.
Essentially validation can just only be performed by people who have familiarity with how the delivered software will be utilized whilst verification can be done by anyone who are able to read a specification (or standard) and determine when it is correct. Although we use the phrase ‘only’, this is not to demean the worth of the verification team but alternatively to convey the fact strictly speaking the act of verification only requires familiarity with standards and specifications.
In practical terms their education of complexity of the business requirements will determine if a specialized software validation team needs to exist. If you have considerable complexity and effort in understanding the business requirements then your business analyst would typically undertake the role of software validation. In cases of high business complexity the analyst would specialize in given business areas to be able to breakdown the situation domain.
Given a small business facing team, to perform validation, a supporting team of software testers could possibly be formed to perform verification. The benefits of splitting off the verification team, for big complicated projects, are worried with efficiency (cost) and effectiveness (on communicating the business requirements to developers).