Verification vs Validation in Software
Software testing is a process of examining the functionality and behavior of the software through verification and validation.
- Verification is a process of determining if the software is designed and developed as per the specified requirements.
- Validation is the process of checking if the software (end product) has met the client’s true needs and expectations.
Verification
Verification is a static practice of verifying documents, design, code and program. It includes all the activities associated with producing high quality software: inspection, design analysis and specification analysis. It is a relatively objective process.
Verification will help to determine whether the software is of high quality, but it will not ensure that the system is useful. Verification is concerned with whether the system is well-engineered and error-free.
The main advantages of the verification are:
- It acts as a quality gateway at every stage of the software development process.
- It enables software teams to develop products that meet design specifications and customer needs.
- It saves time by detecting the defects at the early stage of software development.
- It reduces or eliminates defects that may arise at the later stage of the software development process.
Methods of Verification is Static Testing
- Walkthrough
- Inspection
- Review
Methods of Verification :
1. Review
The informal way of reviewing the documents or the programs/software for the purpose of finding out the faults. In this method, we give the document or software programs to others and ask them to review those documents or software programs where we expect their views about the quality of our product and also expect them to find the faults in the program/document. The activities that are involved in this method may include SRS(Software Requirements Specification) document verification, SDD(Software Design Specification) verification, and program verification. In this method, the reviewers may also prepare a short report on their observations or findings.
Advantages:
- You can expect some good results without spending any significant resources.
- It is very efficient and significant in its nature.
Disadvantages:
- Lead to bad results if the reviewer doesn’t have sufficient knowledge.
2. Walk-through
Walk-throughs are the formal and very systematic type of verification method as compared to Review. In a walkthrough, the author of the software document presents the document to other persons which can range from 2 to 7. Participants are not expected to prepare anything. The presenter is responsible for preparing the meeting. The document(s) is/are distributed to all participants. At the time of the meeting of the walk-through, the author introduces the content in order to make them familiar with it and all the participants are free to ask their doubts.
Advantages:
- It may help us to find potential faults.
- It may also be used for sharing documents with others.
Disadvantages:
- The author may hide some critical areas and unnecessarily emphasize some specific areas of his / her interest.
3. Inspections
Inspections are the most structured and most formal type of verification method and are commonly known as inspections. A team of three to six participants is constituted which is led by an impartial moderator. Every person in the group participates openly, actively, and follows the rules about how such a review is to be conducted. Everyone may get time to express their views, potential faults, and critical areas. After the meeting, a final report is prepared after incorporating necessary suggestions by the moderator.
Advantages:
- It can be very effective for finding potential faults or problems in the documents like SRS, and SDD.
- The critical inspections may also help in finding faults and improve these documents which can in preventing the propagation of a fault in the software development life cycle process.
Disadvantages:
- They take time and require discipline.
- It requires more cost and also needs skilled testers.
Validation
Validation is the process of evaluating the final product to check whether the software meets the customer expectations and requirements. It is a dynamic mechanism of validating and testing the actual product.
Validation is a one-time process that starts only after verifications are completed. Software teams often use a wide range of validation methods, including White Box Testing (non-functional testing or structural/design testing) and Black Box Testing (functional testing).
White Box Testing is a method that helps validate the software application using a predefined series of inputs and data. Here, testers just compare the output values against the input values to verify if the application is producing output as specified by the requirements.
There are three vital variables in the Black Box Testing method (input values, output values, and expected output values). This method is used to verify if the actual output of the software meets the anticipated or expected output.
The main advantages of validation processes are:
- It ensures that the expectations of all stakeholders are fulfilled.
- It enables software teams to take corrective action if there is a mismatch between the actual product and the anticipated product.
- It improves the reliability of the end-product.
Methods of Validation is Dynamic Testing
- Testing
- End Users
Difference between Verification and Validation
Verification | Validation | |
Definition | The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. | The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. |
Coding requirement | It does not involve executing the code. | It always involves executing the code. |
Activities include | A few activities involved in verification testing are requirements verification, design verification, and code verification. | The commonly-used validation activities in software testing are usability testing, performance testing, system testing, security testing, and functionality testing. |
Target | Target is requirements specification, application and software architecture, high level, complete design, and database design etc. | Target is actual product-a unit, a module, a bent of integrated modules, and effective final product. |
Types of testing methods | A few verification methods are inspection, code review, desk-checking, and walkthroughs. | A few widely-used validation methods are black-box testing, white box testing, integration testing, and acceptance testing. |
Level Exercise | It is Low Level exercise. It can catch errors that validation cannot catch. | It is High Level Exercise. It can catch errors that verification cannot catch. |
Teams or persons involved | Verification is done by QA team to ensure that the software is as per the specifications in the SRS document. | Validation is carried out with the involvement of testing team. |
Join the discussion at Everything_QA