Before starting V Model, I would recommend you to check this post “Software Development Life Cycle”
I would also recommend you to read about Software Testing Life Cycle
Let’s see what is V Model and it’s advantages and disadvantages in detail.
V-model is also known as Verification and Validation (V&V) model. In this each phase of SDLC must be completed before the next phase starts. It follows a sequential design process same like waterfall model.
Don’t you think that why do we use this V Model, if it is same as Waterfall Model. 🙂
Let me mention the next point on why do we need this Verification and Validation Model.
It overcomes the disadvantages of waterfall model. In the waterfall model, we have seen that testers involve in the project only at the last phase of the development process.
If you didn’t go through the waterfall model, click here.
In this, test team involves in the early phases of SDLC. Testing starts in early stages of product development which avoids downward flow of defects which in turns reduces lot of rework. Both teams (test and development) work in parallel. The test team works on various activities like preparing test strategy, test plan and test cases/scripts while the development team works on SRS, Design and Coding.
Once the requirements were received, both the development and test team start their activities.
Deliverables are parallel in this model. Whilst, developers are working on SRS (System Requirement Specification), testers work on BRS (Business Requirement Specification) and prepare ATP(Acceptance Test Plan) and ATC (Acceptance Test Cases) and so on.
Testers will be ready with all the required artifacts (such as Test Plan, Test Cases) by the time developers release the finished product. It saves lots of time.
Let’s see the how the development team and test team involves in each phase of SDLC in V Model.
1. Once client sends BRS, both the teams (test and development) start their activities. The developers translate the BRS to SRS. The test team involves in reviewing the BRS to find the missing or wrong requirements and writes acceptance test plan and acceptance test cases.
2. In the next stage, the development team sends the SRS the testing team for review and the developers start building the HLD (High Level Design Document) of the product. The test team involves in reviewing the SRS against the BRS and writes system test plan and test cases.
3. In the next stage, the development team starts building the LLD (Low Level Design) of the product. The test team involves in reviewing the HLD (High Level Design) and writes Integration test plan and integration test cases.
4. In the next stage, the development team starts with the coding of the product. The test team involves in reviewing the LLD and writes functional test plan and functional test cases.
5. In the next stage, the development team releases the build to the test team once the unit testing was done. The test team carries out functional testing, integration testing, system testing and acceptance testing on the release build step by step.
- Testing starts in early stages of product development which avoids downward flow of defects and helps to find the defects in the early stages
- Test team will be ready with the test cases by the time developers release the software which in turns saves a lot of time
- Testing is involved in every stage of product development. It gives a quality product.
- Total investment is less due to less or no rework.
- Initial investment is more because test team involves right from the early stage.
- Whenever there is change in requirement, the same procedure continues. It leads more documentation work.
Long term projects, complex applications, When customer is expecting a very high quality product with in stipulated time frame because every stage is tested and developers & testers are working in parallel