V-Model (Sequential Development Model)

Profile picture for user devraj

There were several problems with the traditional waterfall approach like defects found late in cycle, testing team involved late, risk, uncertainty, not flexible to change. The V-model was developed to address some of problems with Waterfall model.

There are variety of activities that need to be performed before the end of the coding phase and which should be carried out in parallel with development activities.

Tester needs to work with business analysts and development team. A good practice is to involve testers earlier in Software life cycle.

The V-model illustrates how testing activities can be integrated into each phase of the life cycle. The V-model shows that testing activities are as valuable as development and programming. In practice, there exist several variants of V-Model. A common V-model uses 4 test levels. These test levels are:

  1. Component Testing: Verify functionality of Software Component like modules, programs, classes or objects.
  2. Integration Testing: Test interface between components. Integration with hardware, file system, hardware or other systems.
  3. System Testing: To test system as a whole defined by the scope of development project or product. 
  4. Acceptance Testing: Validation testing with respect to user needs.

There are 2 branches of V-model, left branch represents the development process and right branch represents the integration and testing process.

The Left Branch

  1. Requirement Definition: Here we gather, specify and approve needs and requirements of customer.
  2. Functional System Design: Maps requirement onto functions and dialogues.
  3. Technical System Design: Define and decompose system into smaller subsystems and develop each system independently.
  4. Component Specification: Define each subsystem, including task, behaviour, inner structure and interface to other system.
  5. Programming: Each component is coded in a programming language.

The Right Branch 

  1. Component Test: Verify each software component correctly fullfils its specification.
  2. Integration Test: Verify if groups of components interact in desired way.
  3. System Test: Verify whole system meets specification.
  4. Acceptance Test: Check system meets customer requirements.

Validation is the process of checking whether the specification captures the customer's needs. Verification is the process of checking that the software meets the specification.