• V-Shaped model

    In this model we follow the sequential path of process which is similar to waterfall model with more emphasis on testing by making it a stage in parallel with coding. The benefits of this model are easy to understood, specific deliverables in each phase, more suitable for smaller project.

    V- Model is a Software Development process which can be considered as an extension to Waterfall model. Instead of moving down linearly as in water fall model, here after coding phase the process is bent upwards to form a V- Shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.

    V-Model consists of two main types of activities verification activities and validation activities. In the Verification activities, all the requirements are verified along with the reviews, processes and walkthroughs while in the validation activities, all development is validated though different types of testing.

    The below diagram shows the typical V-Model


    The V-model consists of a number of phases. The Verification Phases are on the left hand side of the V, the Coding Phase is at the bottom of the V and the Validation Phases are on the right hand side of the V.

    1. Verification phases of V-model

    Verification phase in a v-model consist of following phases

    • Requirement analysis
    • Functional specification
    • High-level design
    • Detailed design/ Program specification

    Requirement analysis

    In requirement analysis phase, the requirements of the proposed system are collected by analyzing the needs of the users. These requirements can be Functional as well as non- functional requirements. It is one which the business analysts use to communicate their understanding of the system back to the users

    Functional Requirements: These specify the functions that a system or system component must be able to perform.

    Non Functional Requirements: Non-functional requirements specify system’s quality characteristics/attributes like performance/security/availability etc.

    In this stage User Acceptance Test Plan is created by the testing team.

    Functional specification

    System designers review the user requirements document and understand the proposed system requirements and its intended functions.

    During this phase, all the possibilities and the techniques are finalized to build the product or the software. Here all the functional issues are pointed out and proper resolutions are finalized.

    The functional specification document contains general system information, data flows, system diagrams and sample design.

    At the same time, testing team work on the System Test Plan to validate the same.

    High-level design

    High-Level design is the stage of the life cycle when a logical view of the solution to the customer requirements is arrived at. It gives the solution arrived at with a high level of abstraction.

    During this phase, testing team prepares the Integration Test Plan based on the high level design documents.

    Detailed design/ Program specification

    During detailed design, all the code, module level designs are completed along with the necessary codes and algorithms.

    Once each of the module is defined specifically the programmer starts with the coding activities. Here all the dependencies, data related specifications, interfaces, reuse components and tools are specified.

    At the same time, testing team prepares the Unit Test Plan.

    2. Validation phases of V-model

    Validation phases of a V- model consist of following phases.

    • Unit testing
    • Integration testing
    • System testing
    • User acceptance testing

    Unit testing

    In Low level design or detail design an entire module is broken down in to smaller units or module. Unit testing is done on each and every code and module to check their functionalities.

    The planning for the same happens during the low level design phase and the test cases will be derived out of the program specifications.

    In the V-model of software development, unit testing implies the first stage of dynamic testing process.

    This phase involves analyzing of the written code with the intention of elimination errors. The programmer should also make sure he follows the intended coding standards. The type of testing done during this phase is white box testing. It is done using the Unit test design prepared during the module design phase. This may be carried out by software developers.

    Integration testing

    Once unit testing is done on individual modules all modules are integrated/combined together to develop the final product. After that the combined final product is tested.

    Here all the data transfer between individual modules will be tested and end to end process will be covered. Dummy modules like stubs and drivers are used in order to integration testing when a part of unit tested module is not ready.

    Integration testing is carried out based on Integration test plan prepared during high level design.

    System testing

    System test is carried out to validate the software system against the all the functional specifications specified in the requirement document.

    Test team can start with the system test planning while the development team is working on the functional specification. During this, testing team compares the system specifications against the actual system and note all the deviations if any. It is carried on an integrated system and end to end testing is carried out.

    This type of testing is a black box testing

    User acceptance testing

    Acceptance testing is one of the last phases of testing which is typically done the customer or the end-users of the software. They check the system responses for all the requirements and confirm the acceptability of the software. User Acceptance Testing is done after the System testing.

    Advantages of Using V-Model in a project

    Following are the advantages of using V-Model methodology in a software development process.

    1. This model helps in identifying the discrepancies earlier in life cycle.

    2. Reduces cost of fix due to earlier detection of errors

    3. In this model, development and testing procedures slowly converge from start to finish, which indicates that as the development team attempts to implement a solution, the test team concurrently develops a process to eliminate or minimize the risk.

    4. Testing and development teams work closely to reduce the chances of errors and increase the acceptability of the end product.

Leave a Reply

Your email address will not be published. Required fields are marked *