Whilst there are variations on the definitions of these two terms, within the broad software QA and testing fields, there is general consensus that 먹튀검증 refers to correctness whilst validation refers to the value 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 built correctly, that is they meet standards and specifications, but they fail to meet the real end user (i.e. customer) requirements.
Ultimately validation is the focus of what the customer is paying for and whoever does validation represents the voice of the customer (or end user in the case of software applications developed for internal use). In practical terms this means separating the software quality control teams (i.e. test teams) into two broad groups, one that has intimate knowledge of the customer context of the finished product and another group that has strong knowledge of how a software product should be produced.
By way of example consider an accounting application that records general ledger bookings. The business requirements would be produced which outline the business (accounting) rules to be followed. From the business requirements a technical specification would 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 the requirements do in fact reflect what the application is required to do for the business. When the final application has been developed any testing against the business requirements is also a validation activity. The walkthrough of the technical specification to make sure it contains all the functionality of the business requirements is a verification activity. Also the testing of the delivered software against the technical specification is also a verification activity.
In essence validation can only be done by people with knowledge of how the delivered software is going to be used whilst verification can be done by anyone who can read a specification (or standard) and determine if it is correct. Although we use the phrase ‘only’, this is not to demean the value of the verification team but rather to convey the fact that strictly speaking the act of verification only requires knowledge of standards and specifications.
In practical terms the degree of complexity of the business requirements will determine whether or not a specialized software validation team needs to exist. If there is considerable complexity and effort in understanding the business requirements then the business analyst would typically take on the role of software validation. In instances of high business complexity the analyst would specialize in given business areas in order to breakdown the problem domain.
Given a business facing team, to perform validation, a supporting team of software testers could be formed to perform verification. The advantages of splitting off the verification team, for large complicated projects, are concerned with efficiency (cost) and effectiveness (on communicating the business requirements to developers).
Many organizations will offshore the verification of a software application but keep the validation onshore (e. g. in the US) as this arrangement optimizes cost whilst respecting the value of communicating the true voice of the customer.
Regardless of how a QA team is organized, identifying validation and verification activities (together with skills and resources to optimally perform them) will yield higher degrees of productivity in the development of software that is truly fit for the intended purpose.