V Model is a SDLC model which is an extension and enhanced version of a waterfall model. V model is also known as verification and validation model. The life cycle of V model is like a sequential linear path. There are two parts in the V Model, the left part shows the Development phases and the right part shows the Testing activities.
In the procedure of V model “Do-Procedure” is done by Developers and “Check-Procedure” is done by the Testing team. In V model execution process, each phase must be completed before the next phase begins. So the Testing phase Of the V model is planned in parallel with the development phase.So the Testing is performed in each phase of the Testing life cycle. As the V model is known as verification and validation model, there are various verification and validation phases:
The following are the various verification phases of the V model:
1. Requirement Analysis:
Requirement Analysis is the first phase of the verification phase. In this phase the requirements are analyzed and are collected according to the users need. This phase is not concerned with how the system will be designed ,but it is concerned with how the system will function. The users are interviewed and according to the users need the document known as User Requirement Document is generated. There are various ways for gathering the requirements such as Document Analysis, Observation, Interviews etc.
2. System Design:
System Design is the second phase of the verification where the engineer analyzes and understands the user requirement document. They find out the possibilities so that the user requirements can be implemented.
3. Architecture Design:
This phase is also known as high level design as the computer design and architecture design is carried out.
This Architecture phase should list all the number of modules needed and the functionality of each of the module, relationship between the interfaces, database tables, architecture design.
4. Module Design:
This module Design phase is also known as low level design. In this phase the system is divided into smaller units called modules. The detailed functional logic of the module is explained in the low level deign. It states:
i. Database tables with all the elements with their type and size.
ii. Dependency issues
iii. Complete input and output of the module.
V model has verification phase and the corresponding validation phase.The following are the various validation phases of the V model:
1. Unit Testing
2. Integration Testing
3. System Testing
4. User Acceptance Testing.
1. Unit Testing:
In V model, unit tests are developed during the module design phase and are executed on the code during the validation phase. Unit testing helps to eliminate the bugs in the early phases of the V model.
2. Integration Testing:
This phase is associated with the architectural design phase. Integration tests are performed and are used to test whether the units created coexist and communicate with the internal modules.
3. System Testing:
System Testing phase is associated with the system design phase.This System test phase ensures that the application developed mets all the requirements. Entire system functionality is tested and hardware and software compatibility issues are solved in this System Testing phase.
4. User Acceptance Test:
User Acceptance test is associated with the Business requirement analysis phase and it tests the product in the user environment. This phase ensures that the system meets all the requirements given by the user.
When to use this V Model?
- V model is used for small and medium sized projects.
- Requirements are clearly defined by the user and the requirements are clearly documented.
- Ample of resources are available for the development of the project.
Advantages of V model:
- V model works well for the small sized projects where the requirements are clearly defined.
- Each phase is completed before the next phase starts so the testing is done in parallel with the development phase.
- Simple and easy to understand and use.
- Each phase has a specific deliverable.
Disadvantages of the V model:
- Not a good model for large sized projects.
- Once an application is in the testing phase it is difficult to go back and make the changes in the functionality.
- V model is poor model for long and on going projects.
- V model cannot be used where the requirements are at high risk of changing.