V-model stands to verification and validation models and is a software development model. V-model was introduced with the intent to implement testing right from the requirement phase. In other software development models like Waterfall model testing of the product starts after completion of the development process and since it starts at the end of development, it becomes very costly and challenging to fix bugs in later stage. This lead to the introduction of V-model which is most widely used software development process. V-model is a sequential execution of process in which each phase must be completed before starting the next. In V-model testing is done parallel with the corresponding development phase. Lets understand difference between Verification and Validation first:- Verification is a static analysis process where testing is done without executing code like Inspection, Walkthrough. Validation is a dynamic analysis process where testing is done by executing the code like functional testing.
BRS(Business Requirement Specification) and SRS(System Requirement Specification) are the phases where requirements are gathered, analysed and studied. Here how the system is implement is not important but what the system is supposed to do is important. Here System Test plan is created which focuses on functionalities specified in requirement specification documents.
HLD(High level design) focuses on System architecture and design like modules, their relationships and dependencies, database tables, technology details are all finalized in this phase. Also Integration Test plan is created in this phase which tests ability of modules to work together.
LLD(Low level design) focuses on actual design of components/modules and every module or component is designed individually. Interfaces, Classes, methods and data types all are finalized in this phase. Component Tests are created in this phase.
Coding is the last phase of the V-model where all designed modules are converted code by developers.Unit Test is done in this phase.
Advantages of V-model:- 1) It is simple and easy to use. 2) Testing activities like test planning and test cases are done in early stage(before coding) which reduces the time and efforts. 3) Defects are found at earl stage. 3) It works well for small projects where requirements are easy to understand.
V-model can be used when requirements are clear and not ambiguous, user acceptance is well clear and project is of small to medium size.