Difference Between Verification And Validation

What is Verification?

Verification is the process of checking or verifying the credentials, data or information to confirm their credibility and accuracy.In the field of software engineering, software verification is defined as the process of evaluating software product, to ensure that the development phase is being carried out accurately, to build the desired software product.

It is performed during the ongoing phase of software development, to ensure the detection of defects and faults in the early stage of the development life cycle and to determine whether it satisfies the requirements of the customer.

Characteristics of Verification

  • Performed during the early stages of the software development process to determine whether the software meets the specified requirements.
  • Verification denotes precision of the end or final product.
  • It conducts software review, walk through, inspection, and evaluates documents, plans, requirements, and specifications.
  • It demonstrates the consistency, completeness, and correctness of the software during each stage of the software development life cycle.
  • Software verification can be termed as the first stage of the software testing life cycle (STLC).

What is Validation?

Software Validation is a process of evaluating software product, so as to ensure that the software meets the pre-defined and specified business requirements as well as the end users/customers’ demands and expectations.

It is basically, performed with the intent to check that whether the developed software is built as per pre-decided software requirement specifications (SRS) and if it caters to fulfil the customers’ actual needs in the real environment.

Characteristics of Validation

  • Basically, checks that the developed software, follows all requirements and specifications.
  • Usually, performed at the end of software development. However, it may also be carried out during the software development.
  • Responsible for software’s acceptance by the user.
  • A type of actual testing performed by the team on the actual software product.
  • Validation is done after Verification.
  • It is a high-level testing that is performed after software verification.
  • Testing Team is responsible for carrying out the validation process.
  • Errors located during validation process prove to more costly than those, caught during verification.
  • It is a dynamic mechanism of validating and testing the software system.

Also Read: Difference Between Functional And Non-functional Testing

Verification vs Validation

Description Validation is the process of checking whether the specification captures the customer’s requirements. Verification is the process of checking that the software meets specifications.
Entails It entails checking documents, design codes and programs.   It entails testing and certifying the actual product.
Sequence Verification is carried out before the validation. Validation activity is carried out just after the Verification.  
Performer Verification is carried out by Quality assurance team. Validation is executed on software code with the help of testing team.
Execution of Code It does not include the execution of the code. It includes the execution of the code.
Methods Methods used in verification are reviews, walkthroughs, inspections and desk-checking. Method used in validation are Black Box Testing, White Box Testing and Non-functional testing.
Role It checks whether the software conforms to specifications or not. It checks whether the software meets the requirements and expectations of a customer or not.
Importance It can detect bugs in early stage of the development process. It can only find the bugs that could not be found by the verification process.
Process It is performed by human.   It is performed by computer.  
Nature Verification is a static testing.   Validation is a dynamic testing.

What you need to know about verification and validation

  • Verification process includes checking of documents, design, code and program whereas Validation process includes testing and validation of the actual product.
  • Verification does not involve code execution while Validation involves code execution.
  • Verification uses methods like reviews, walkthroughs, inspections and desk-checking whereas Validation uses methods like black box testing, white box testing and non-functional testing.
  • Verification checks whether the software confirms a specification whereas Validation checks whether the software meets the requirements and expectations.

Also Read: Difference Between Testing And Debugging