I recently sat a test, and got the wrong answer on a question, which made me question my knowledge on the V-model. The answer was a true/false and here is the statement relating to the V-model.

'Each stage of the SDLC has a corresponding verification and validation stage.'

Initially, I answered true, but it got me thinking 'Hmm, what about the development stage', I switched to false and got it wrong. Apparently the answer is true.

However, I don't understand why still. The following image provides the confusion.

First google image of V-model

Can someone explain to me why the Development (Coding) stage in the V-model structure would be considered to have a corresponding verfication/ validation stage? As I can't see/define what either these stages would be.


  • This V model diagram is wrong. Why is the left side labeled "verification phases"? Design is not verification. Verification is that you built the thing right, according to the specifications that you have. Validation is that you build the right thing, something that satisfies user needs. Both occur on the right side of the V.
    – Thomas Owens
    Jul 18, 2019 at 13:27
  • @ThomasOwens no, verification can be (should be) done at design stage. If you have a model of your design, you verify it against the design rules and perform static analysis on it. Similarly with a model of your code, you verify against a formal model of your specification. You don't wait until the software is on a flying spacecraft to verify it. Jul 18, 2019 at 15:06
  • 1
    @PeteKirkham I do agree that verification can and should be done at design stage. That's absolutely right. However, the left side of the V model shows work and the right side shows the quality activities associated with it. Module designs are verified by unit tests. Architecture is verified by integration tests. The system design is verified by system tests. Acceptance tests are used to verify the requirements and to validate the system. Considering the V model to show time (performing the stuff on the right after the left side is done) is risky and invites failure.
    – Thomas Owens
    Jul 18, 2019 at 15:11

1 Answer 1


I can understand your confusion. To be honest, I think I would have gone for false as well.

I mean you could argue, that the code should be verified by the developer(s), throughout the implementation (code reviews would be an example). However, this is not mentioned specifically in the V-model.

You could also argue that the code is verified in the unit testing, which is deffinitely a smart thing to do. However, this still wouldn't be a corresponding verification, as the unit test (in the model) belongs to the module design.

My understanding of the V-model, is that it is primarily about design from the top and down. When you implement, you implement from the bottom and up. And that if a test fails, you go back to the corresponding design phase. Even if I could answer the question from your test, I doubt it would contribute a whole lot, to the way I use the model.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.