What is V-Model?
The V-Model is SDLC model where execution of processes happens in a sequential manner in V-shape. It is also known as Verification and Validation Model. V-Model is an extension of the Waterfall Model and is based on association of a testing phase for each corresponding development stage. This means that for every single phase in the development cycle there is a directly associated testing phase. This is a highly disciplined model and next phase starts only after completion of the previous phase.
Image to be Upload Soon*
The left-hand side shows the development activities and the right-hand side shows the testing activities. In the development phase, both verification and validation are performed along with the actual development activities. This demonstrates that testing can be done in all phase of development activities as well.
Phases of V-model
Business Requirement Analysis : In this first phase, the product requirements are understood from the customer perspective. This phase involves detailed communication with the customer to understand their expectations and exact requirement. The users are interviewed and a document called the User Requirements Document is generated. The user requirements document will typically describe the system's functional, interface, performance, data, security and other requirements as expected by the user. The user’s carefully review this document as this document would serve as the guideline for the system designers in the system design phase.
System Design: In the phase, system developers analyze and understand the business of the proposed system by studying the user requirements document. They figure out possibilities and techniques by which the user requirements can be implemented. System design comprises of understanding and detailing the complete hardware and communication setup for the product under development. System test plan is developed based on the system design.
Architecture Design: This is also referred to as High Level Design (HLD). This phase focuses on system architecture and design. It provides overview of solution, platform, system, product and service/process. Usually more than one technical approach is proposed and based on the technical and financial feasibility the final decision is taken. An integration test plan is created in order to test the pieces of the software systems ability to work together.
Module Design: The module design phase can also be referred to as low-level design. In this phase the actual software components are designed. It defines the actual logic for each and every component of the system. The designed system is broken up into smaller units or modules and each of them is explained so that the programmer can start coding directly. It is important that the design is compatible with the other modules in the system architecture and the other external systems.
In the V-Model, each stage of verification phase has a corresponding stage in the validation phase. The following are the typical phases of validation in the V-Model.
Unit Testing: Unit tests designed in the module design phase are executed on the code during this validation phase. Unit testing is the testing at code level and helps eliminate bugs at an early stage. A unit is the smallest entity which can independently exist, e.g. a program module. Unit testing verifies that the smallest entity can function correctly when isolated from the rest of the codes/units.
Integration Testing: Integration testing is associated with the architectural design phase. These tests verify that units created and tested independently can coexist and communicate among themselves within the system.
System Testing: System Tests Plans are developed during System Design Phase. System Test Plans are composed by client’s business team. System Test ensures that expectations from application developed are met. The whole application is tested for its functionality, interdependency and communication. User acceptance testing: Acceptance testing is associated with the business requirement analysis phase and involves testing the product in user environment. UAT verifies that delivered system meets user’s requirement and system is ready for use in real time.
Advantages and Disadvantages of V-Model
- This is a highly disciplined model and Phases are completed one at a time.
- Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.
- Simple and easy to understand and use.
- Testing activities like planning, test designing happens well before coding. This saves a lot of time. Hence higher chance of success over the waterfall model.
- The implementation of testing starts right from the requirement phase, defects are found at early stage.
- Works well for small projects where requirements are easily understood.
- Very rigid and least flexible so adjusting scope is difficult and expensive.
- Software is developed during the implementation phase, so no early prototypes of the software are produced.
- Not suitable for the projects where requirements are at a moderate to high risk of changing.