In Software Development, the terms verification and validation are used very often. We use these concepts almost every day while we are working in some project. The thing is, that they have different meanings and many people think that this is a synonym. Let’s define each:
- Verification: The evaluation of whether or not a product, service, or system complies with a regulation, requirement, specification, or imposed condition. It is often an internal process. Contrast with validation. Simply “Are we building the system right? Concerned with the team for the customer”
- Validation: The assurance that a product, service, or system meets the needs of the customer and other identified stakeholders. It often involves acceptance and suitability with external customers. Contrast with verification. Simply “Are we building the right system? Concerned with the customer”
How is it used in SDLC phases:
|Requirements Elicitation||The analyst should verify that each requirement is unique and it has a purpose and origin, as well he/she verify that the requirements are doable, in scope, and testable.||The analyst should validate the requirements with the customer to better understand them through different analysis techniques.|
|Architecture & Design||The architect and software designer will verify that the software designs are meeting the non-functional requirements, for example, performance and usability.||If the software has a UI, should be validated with the customer and the analyst to ensure meeting the customers’ requirements and their expectations.|
|Implementation (Coding)||Similarly, during implementation and coding, the developers start doing unit and integration test for their code, and they may have peer review and static code analysis.||During the implementation, the developers may find part of the requirements is not clear or incomplete, they may need to validate that with the customer.|
|Testing||In this phase, testing and quality team should test the requirements and ensure that all test cases have been passed, all functionalities are working fine and there is enough and acceptable code coverage.||The testing team should ensure that the software meets the business requirements and is fit for use by building the user acceptance test cases and validate it with the customers.|
|Deployment||Auditing of installation and configuration of the environment, run smoke tests to ensure everything is working fine with each release.||Making sure that the software is working after installation and configuration.|
|Operational Support||Verify that the software is up without downtime, there are no data issues and logs are clear.||Validating that the software operation is smooth. There are no logical errors or something is broken, evaluate the changes and new requirements.|
International Standard For V&V Regulations
ISO 9001 Quality management systems – Requirements requires verification and validation to be planned and carried out and records kept.
IEEE 1012 – Standard for Software Verification and Validation provides a comprehensive how-to for software V&V planning and execution.
This action includes the commencement, arrangement of reaction, contract, arranging, execution and control, survey and assessment, and conveyance and finish exercises, honesty levels, and so on.