Software testers have crossed swords over the definitions of verification and validation. There has been a lot of confusions around these two most important concepts of software testing. You can find many books, articles, and even blogs dedicated to differentiating these terms.
I have come with a different approach. Let’s go back to the very origins of these terms. The word ‘validation’ is a derivative of the adjective ‘valid’ which stems from ‘valide’ from French and ‘validus’ from Latin. Both means ‘strong’. Whereas the word ‘verification’ is derived from ‘verify’ which stems from ‘verus’ meaning ‘true’. Thus semantically, verification is proving that something is true and validation is proving that something is strong. Simple!
However, things are not that simple when it comes to software development life cycle. People tend to argue over which technique should be used first and which used last.
Barry Boehm, an American software engineer, has differentiated these term succinctly. According to Boehm, verification answers the question of “Are we building the right product?” and validation answers to “Are we building the product right?”
The V Model
The V-Model is a unique, linear development methodology used during a software development life cycle (SDLC). The V-Model focuses on a fairly typical waterfall-esque method that follows step-by-step stages. While initial stages are broad design stages, progress proceeds down through more and more granular stages, leading into implementation and coding, and finally back through all testing stages prior to completion of the project.
Much like the traditional waterfall model, the V-shaped model specifies a series of linear stages that should occur across the life cycle, one at a time, until the project is complete. For this reason V-Model is not considered an agile development method, and due to the sheer volume of stages and their integration, understanding the model in detail can be challenging for everyone on the team, let alone clients or users. So, we need an agile version of the V-Model to adopt it with modern development style.
The Agile V Model
The agile V Model is a circular representation of the traditional V-shaped model. It emphasizes on the execution of each testing activity in accordance with the each development activity.
To conclude, both verification and validation are extremely important in assuring the quality of software and thus should be performed simultaneously.