The V-model is an SDLC model, where execution of processes happens in a sequential manner in a V-shape. It is also known asÂ Verification and Validation model. Among the many available testing models, theÂ V model in software testing is the most widely used applied and accepted one. This model allows for a better-quality analysis with less discretionary errors. To overcome the cost and time issue of other software testing systems, v model has been developed.
What is V model software testing?
V model is also known as verification and validation software model is an SDLC (System Development Life Cycle) and STLC (System Testing Life Cycle) based where main execution process takes place in a sequential manner of v shape. V model is nothing but the extension of the waterfall model which is based on the association of the development phase and each of the corresponding testing phases. That means there is a direct link between the testing cycle and the development cycle. V model of software testing is highly specific model and movement to next only occur after completion of the first cycle.
In the V model, the testing phase and development phase are designed in such a way that they are planned parallel to each other. if we take alphabet V there is validation on one end and verification on the other end and the joining point of the both is the coding phase.
Difference between Verification and Validation:
- Verification is a static practice of verifying documents, design, code and program.
- It does not involve executing the code.
- It is human based checking of documents and files.
- VerificationÂ uses methods like inspections, reviews, walkthroughs, and Desk-checking etc.
- VerificationÂ is to check whether the software conforms to specifications.
- It can catch errors that validation cannot catch. It is low level exercise.
- Verification is done by QA team to ensure that the software is as per the specifications in the SRS document.
- Validation is a dynamic mechanism of validating and testing the actual product.
- It always involves executing the code.
- It is computer-based execution of program.
- ValidationÂ uses methods like black box (functional) testing, gray box testing, and white box (structural) testing etc.
- ValidationÂ is to check whether software meets the customer expectations and requirement
- It can catch errors that verification cannot catch. It is High Level Exercise.
- ValidationÂ is carried out with the involvement of testing team.
Principles of V-Model:
1. Large to Small:
In V-Model, testing is done in a hierarchical perspective, For example, requirements identified by the project team, create High-Level Design, and Detailed Design phases of the project. As each of these phases is completed the requirements, they are defining become more and more refined and detailed.
2. Data/Process integrity:
This principle states that the successful design of any project requires the incorporation and cohesion of both data and processes. Process elements must be identified at each and every requirement.
This principle states that the V-Model concept has the flexibility to accommodate any IT project irrespective of its size, complexity or duration.
4. Cross referencing:
Direct correlation between requirements and corresponding testing activity is known as cross-referencing.
5. Tangible Documentation:
This principle states that every project needs to create a document. This documentation is required and applied by both the project development team and the support team. Documentation is used to maintaining the application once it is available in a production environment.
Feature of V model in software testing:
1. Information gathering stage:
Have a word with the client and gather as much information as possible. Try to figure out the specifications and details of the software desired to be tested.
Work on the language script like java or.net and database like Oracle. Try to choose high-level functions which will be the technicality of the project and suits the corresponding software testing well.
3. Build stage:
After design selections build the coding of the software to be tested, this step is also known as the coding.
4. Test stage:
Now next test the software to verify that all the requirements are fulfilled.
5. Development stage:
Place the application within the respective environment
Change the code as per the customer.
The testing phase of the V model may include;
1. Unit testing:
It is developed in the model designing phase, to eliminate any bug if present.
2. Integration testing:
It is performed after completion of unit testing and in this module are integrated into the system to be tested. This verifies the communication aspect.
3. System testing:
It looks after the functional and non-functional requirements.
4. User Acceptance testing(UAT):
It is performed in the user environment that simply resembles the production unit, in this step it is made sure that the software is ready to be used in the real world.
Advantages of the V model:
- Easy to understand and apply, with its flexibility it is easier to manage.
- It is a highly discipline-based model and can be used in specific industries like health.
- As each step is designed in a very rigid and fixed manner so it is much easier to do the review process.
- It is useful in smaller projects where requirements are less and well known.
- V model is an easy and simple approach for a successful software development and testing.
- As there is a simultaneous test process along with the sequence of steps towards development, defect tracking becomes quite efficient.
- An ideal choice for small scale projects.
Limitations of the V model:
- High risk and uncertainty.
- It is not a good for complex and object-oriented projects.
- It is not suitable for projects where requirements are not clear and contains high risk of changing.
- This model does not support iteration of phases.
- It does not easily handle concurrent events.
Significance of the V model:
As we all know that the V model is a direct extension of the waterfall model, waterfall model has many drawbacks like
- Testing only starts after implementation is already done.
- It is difficult to work on large projects as key details are subject to being missed out.
- Architectural defect in the designing and defect introduction.
- Cost of fixing a defect is way too high.
To finish off we can say that there are numerous developmental life cycle models present in the software testing. Selection of the most appropriate model is purely based on the requirement goal and vision of the project.one must remember that testing is no a single entity but it has several layers within it, that has to adapt with each project cycle chosen according to the requirement. Also, in any model one should perform testing at all the levels right from the requirement to maintenance.