Modules
Beginner⏱ 5 min read

V-Model in Software Testing

sign in to track

The V-Model, also known as the Verification and Validation Model, is a software development life cycle (SDLC) model where development and testing activities are planned together.

It is called the V-Model because the process is often represented in the shape of the letter V. The left side focuses on planning and development activities, while the right side focuses on the corresponding testing activities.

The main idea is that testing should not wait until development is finished. Test activities are planned alongside each development phase so that requirements and designs can be reviewed and validated early.

V-Model Structure

A simplified V-Model looks like this:

Development Side → Testing Side

  • Requirements Analysis → Acceptance Testing

  • System Design → System Testing

  • Architecture / High-Level Design → Integration Testing

  • Detailed / Module Design → Unit Testing

  • Coding → Implementation

Each development stage has a corresponding testing activity.

Example

Imagine a team is developing an online shopping application.

1. Requirements Analysis
The team defines requirements such as:

  • Users should be able to log in.

  • Users should be able to add products to the cart.

  • Users should be able to place an order.

At this stage, testers can review the requirements and prepare acceptance test scenarios.

2. System Design
The team designs how the complete application will work, including its major components.

Testers can plan system testing based on the overall system behavior.

3. Architecture / High-Level Design
The team decides how different components, such as the frontend, backend, payment system, and database, will interact.

Testers can prepare integration testing scenarios to verify communication between these components.

4. Detailed / Module Design
Individual modules and their internal logic are designed.

Testers can prepare unit-level test scenarios for the individual components.

5. Coding
Developers implement the planned functionality.

After the relevant components are developed, the planned testing activities can be executed.

Why Is the V-Model Useful?

The V-Model provides a structured approach where testing is considered from the beginning rather than being treated as a final step.

It helps teams:

  • Identify unclear or missing requirements early.

  • Plan testing activities before development is completed.

  • Maintain a clear relationship between requirements and tests.

  • Detect certain issues earlier in the development process.

  • Define testing activities for different levels of the system.

Simple Example

Suppose a requirement says:

"Users should be able to reset their password using their registered email address."

Instead of waiting until the feature is completely developed, the testing team can think about how this requirement will be tested from the beginning:

  • Does the password reset request work with a registered email?

  • What happens with an unregistered email?

  • Is the reset link sent correctly?

  • Does the link expire?

  • Can the user create a new password successfully?

This demonstrates the main idea of the V-Model: development and testing are planned together, with each development phase having a corresponding testing activity.

◈Key Points

  • Left side of the V: Requirements → System Design → Architecture → Module Design → Coding.
  • Right side of the V mirrors each phase: Acceptance Testing, System Testing, Integration Testing, Unit Testing.
  • Key insight: test plans are written during the corresponding development phase, long before execution.
  • Weakness: rigid and poor at accommodating changing requirements mid-project.
  • Still widely used in safety-critical domains: medical devices, avionics, automotive software.
⚡ Expert Pro Tip

Use the V-Model's discipline of early test planning even in Agile teams — write acceptance criteria before the sprint begins.