V-Model also referred to as the Verification and Validation Model. In this, each phase of SDLC must complete before the next phase starts. It follows a sequential design process same as the waterfall model.
So, the next question is arise that why we need V-Model if it is same as the Waterfall Model. Let me clear the point:
It overcomes the cons of the Waterfall Model. In the Waterfall Model, we have noticed that testers concern in the project only in the last phase of the development process. But in V-Model, test team involves in the early phase of SDLC which avoids the downward flow of defects and reduces a lot of work.
The test team works on several activities like preparing test strategy, test plan, and test cases whereas the development team work on SRS, Design, and Coding. When the requirement received, both the development and test team start their activities.
When Testers is ready with all the required artifacts like Test Plan, Test Cases within the given time then the developers release the finished product. It saves a lot of time.
There are the various phases of Verification Phase of V-model:
1. Business requirement analysis: This is the first step where product requirements understood from the customer's side. This phase contains detailed communication to understand customer's expectations and exact requirements. Most of the customers are not sure about their needs and what they want. So, for the customer this is important.
2. System Design: When you have a clear and detailed requirement, here is the time to design the complete system. In the system design, the developer will have to understand the entire hardware and communication setup for the software under development. The system design is the base to develop the system test plan.
3. Architectural Design: In the next step of verification, the architectural specification understood and designed. Commonly more than one technical view is proposed, and the last decision is taken by technical and financial feasibility. The system design is divided into modules, which is takes different functionality, known as High-Level Design (HLD).
4. Module Design: In the module design phase, the system breaks down into small modules. The detailed design of the modules is specified, which is known as Low-Level Design
5. Coding Phase: After designing, the coding phase is started. Based on the requirements, a suitable programming language is decided. There are some guidelines and standards for coding. Before checking in the repository, the final build is optimized for better performance, and the code goes through many code reviews to check the performance.
There are the various phases of Validation Phase of V-model:
1. Unit Testing: Unit testing is developed during the module design phase. At the code level or unit level, these unit test plans help in execution to reduce the errors. If unit testing is separated from the rest of the code, then every smallest unit can perform well.
2. Integration Testing: Integration testing is related to the architectural design phase. Integration tests are performed to check the presence and communication of internal modules in the middle of the system.
3. System Testing: System testing is directly related to the system design phase. System testing checks the complete system practicality. It also checks the communication of the system under development with external systems. Most of the software system and hardware compatibility problems may uncover throughout this system check execution.
4. Acceptance Testing: Acceptance testing is related to the business requirement analysis part. It includes testing the software product in user atmosphere. Acceptance tests reveal the compatibility problems with the different systems, which is available within the user atmosphere. It conjointly discovers the non-functional problems like load and performance defects within the real user atmosphere.
When To use V-Model?
Advantage(Pros) of V-Model:
Disadvantage(Cons) of V-Model: