V Model l Software Development, Testing | Advantages Disadvantages | SDLC All Phases Explained
“V Model is an enhanced version of the classic waterfall model whereby each level of the development life-cycle is verified before moving on to the next level. With this model, software testing explicitly starts at the very beginning”
The V model is an extension of Waterfall model. It is based on the association of a testing phase for each corresponding development stage. In other words, every single phase in development cycle, there is a directly associated testing phase. This is well disciplined model and the next phase starts only after completion of the previous phase. In V model is a model where execution happens in a sequential manner and that is also in V shape.
It involves static analysis technique (review) done without executing code. It is the process of evaluation of the product development phase to find whether specified requirements meet.
It involves dynamic analysis technique (functional, non-functional), testing done by executing code. Validation is the process to evaluate the software after the completion of the development phase to determine whether software meets the customer expectations and requirements.
As shown in above diagram, in V model Verification phases are on one side of ‘V’ and validation phases are on other side. The coding phase joins the two sides of ‘V’.
V model is divided into 3 main phases :
- Verification phase
- Coding Phase
- Validation Phase
Verification phase includes :
- Business requirement analysis
- System design
- Architectural design
- Module design
Validation Phase includes :
- Unit testing
- Integration testing
- System testing
- Acceptance testing
Advantages of V model:
- Simple and easy to understand and use.
- Development and progress is very organized and systematic.
- Works well for smaller to medium sized projects.
Disadvantages of V model:
- Not suitable for bigger and complex projects.
- Not suitable if the requirements are not consistent.
- Poor model for long and ongoing projects.
- Once an application is in the testing stage, it is difficult to go back and change a functionality.