This post explains the various phases involved in the Software Development Life Cycle(SDLC) - V-Model of software testing. It is also called as Verification and Validation Model. The V-Model is popular and used to develop applications in a controlled way where requirements are clearly specified and the project budget allows to involve technical resources having a good experience. The test planning starts parallel to development phases in order to reduce the time and to detect defects at early stages.
V-Model is a sequential model i.e. the next phase starts only when the currently active phase completes and the exit criteria of the current phase and entry criteria of next phase meets.
This post shows the various test planning activities during the verification phases which might vary according to the project requirements e.g. there might need to start integration planning a little early based on system modules division and understanding.
The important terms involved in V-Model are as explained below.
Definition: Are we building the product right
Verification is a process which ensures that the software is developed in the right way and meets the specifications. The software being built is checked to identify the early defects in it. The various phases involved in verification are as listed below.
The business requirements will be gathered during this phase. The outcome of this phase is Business Requirement Specification(BRS) having high-level specifications of the software application.
Acceptance tests will be planned parallel to this phase.
Requirement Specification Design
The software requirements will be generated in the form of Software Requirement Specification(SRS) during this phase. This document will form the basis of further development of the actual application.
The test scenario designing will be done parallel to this phase. The scenario document lists all the scenarios covering the complete specification document to meet functional testing aspects.
The system designing involving high-level designing will be done during this phase. The modules will be planned on high-level during this phase. The High-Level Design(HLD) documents will be generated which further forms the basis to derive the functional test cases.
The functional test cases will be written parallel using the scenario designing done in the previous phase. It also involves integration test designing using the planned modules.
The module designing involving low-level designing will be done during this phase. The Low-Level Design(LLD) documents will be generated.
The functional test scenarios and test cases will be further updated during this phase. It also involves unit test designing.
The actual coding will be done during this phase. The software application will be developed using the HLD and LLD documents.
Definition: Is the product being built is right
Validation is a process to confirm that the actual requirements of the software are covered and the specifications meet the requirements. It ensures that the product being built is right. The actual testing will be done during the validation phases. The various phases involved in validation are as listed below.
Unit tests planned during the module designing will be developed and executed. The unit testing will be done by developers to find out any bug in the code and modules developed by them.
Integration testing will be done during this phase to ensure that all the planned modules work together. It ensures that the modules are integrated together and the defects specific to modules integrity will be identified during this phase.
The test planning done during the development phases will be used to perform functional testing. All the planned test cases will be executed and defects will be raised using appropriate defect tracker tool. The developers fix the identified defects during this phase.
The functionality of the application will be validated against the specification specified during verification phases.
User Acceptance Testing
The UAT planning done during the requirements gathering phase will be done to ensure that the software application meets all user specifications. There might be involvement of 3rd-party testers or actual end users to perform the User Acceptance Testing. UAT might further reveal the bugs which remain hidden during the development and other testing phases.