The V-model is also known as the verification and validation model. The V-model is also known as the verification and validation model. In this, each phase of the SDLC must be completed before the next phase begins. It follows a gradual design process, the same as the waterfall model. This means that for every single phase in the development cycle, there is a directly connected testing phase. The testing phase is also planned in parallel with the development. So, there is the verification phase on one side and the validation phase on the other side. The coding phase connects to both sides of the V-model.

V-Model Verification phases

The V-model has several verification steps, each of which is described in more detail below.

Business Requirement Analysis

This is the first phase of the development cycle, where product requirements are understood from the customer's point of view. This phase involves detailed communication with the customer to understand his preferences and requirements. This is a very important activity and needs to be well managed, as most customers are not sure about what they need. Acceptance test design is planned at this level because business requirements can be used as an input for acceptance testing.

System Design

Once you have clear and detailed product requirements, it is time to design the entire system. System design will have an understanding and description of the entire hardware and communication setup for the product under development. The device test plan is developed based on the system design. Doing this in the first stage leaves more time for actual test execution.

Architecture Design

Architectural features are understood and designed at this stage. More than one technical approach is usually proposed, and a final decision is made based on technical and financial feasibility. System design is further broken down into modules taking different functionality. It is also known as High-Level Design (HLD).

Module Design

In this step, a detailed internal design is specified for all system modules, referred to as low-level design (LLD). The design must be compatible with other modules and other external systems in the system architecture. Unit testing is an essential part of any development process and helps to eliminate maximum faults and errors at a very early stage. These unit testing can be designed at this level based on internal module design.

Coding phase

The actual coding of the system modules designed in the design phase is taken up in the Coding phase. The most appropriate programming language is decided based on the system and architectural requirements.

V-Model Validation phases

The V-model has several validation steps, each of which is described in more detail below.

Unit Testing

In the V-model, a unit test plan (UTP) module is developed during the design phase. They are executed to eliminate errors at the UTP or unit code level. A unit is the smallest building block that can exist independently, for example, a program module. Unit testing verifies that the smallest unit can function correctly if it is different from other codes.

Integration Testing

Integration testing architecture is associated with the design phase. Integration testing is performed to test the coexistence and communication of internal modules within the system.

System Testing

System testing is directly related to the design phase of the system. System tests examine the functionality of the entire system and the communication of the system under development with external systems. Most software and hardware compatibility issues can be exposed during test execution of this system.

Acceptance Testing

Acceptance testing is related to the business needs analysis phase and involves testing the product in a user environment. Acceptance tests highlight compatibility issues with other systems available in user environments. It also explains non-functional issues such as load and performance faults in real user environments.

Advantages of the V-Model

  1. It is a highly-disciplined model, and the steps are completed at once.
  2. Works well for small projects where the requirements are very well understood.
  3. Easy to understand and use.
  4. It is easy to manage due to the rigor of the model.

Disadvantages of the V-Model

  1. This model is not suitable for complex and object-oriented projects.
  2. This model is not appropriate for long and ongoing projects.
  3. Not suitable for projects where there is a high to moderate risk of changing requirements.
  4. Once the software is in the testing phase, it is difficult to go back and make modifications.
  5. No working software is produced late during the life cycle.