A contemporary of traditional software development model is ‘V-Model’. ‘V’ stands for verification and validation and is an extension of the Waterfall model.
The crux of V model establishes an association between each phase of testing with that of development. The phases of testing are categorised as "Validation Phase" and that of development as "Verification Phase". Therefore for each phase of development there’s a corresponding test activity planned in advance.
Architecture of V Model
Phases Of V Model:
Verification Phases:
Requirement Analysis:
The preliminary step in software development is to gather requirements. Requirements comprise of business requirements that are to be met during the process of software development.
Business requirement analysis is to understand an aspect from a customer’s perspective by stepping into their shoes to completely analyse the functionality of an application from a user’s point of view. Henceforth an acceptance criteria layout is prepared to correlate the tasks done during the development process with the final outcome of the overall effort.
System Design:
It comprises of creating a layout of the system/application design that is to be developed. System design is aimed at writing a detailed hardware and software specification.
System design is further segregated into sub categories as follows:
Architectural Design:Architectural design is concerned with drafting the technical methodologies to be adopted with regard to completion of software development objectives. Architectural design is often termed as ‘high-level design’ which is aimed at providing an overview of solution, platform, system, product and service.
Module Design: Module design is known as ‘low-level design’ which is aimed at defining the logic upon which the system shall be built. In this stage we try to depict the relation between the modules and the order in which they interact.
Validation Phases:
Unit Testing Phase:
Unit tests are supposed to verify singles modules and remove bug, if it exists. A unit test is simply executing a piece of code to verify whether it delivers the desired functionality.
Integration Testing:
The term ‘integration testing’ refers to collaborate pieces of code together to verify that they perform as a single entity.
System Testing:System Testing is performed when the complete system is ready, the application is then run on the target environment in which it must operate, and a conclusion is drawn to figure out whether the system is capable of performing efficiently with least response time.
User Acceptance Testing:
The user acceptance test plan is prepared during the requirement analysis phase because when the software is ready to be delivered, it is tested against a set of tests that must be met in order to certify that the product has achieved the target it was intended to.
Demerits of V-Model:
In spite of the various types of merits V model has to offer, enabling testers and developers to have a more refined approach towards improving things thereby paving a path for an efficient process for software development, it has few drawbacks that may often cause a hindrance.
Following are few highlights of the same.
Lacks flexibility when it comes to making slight modifications in any of the phases, as the activities are planned and occur in a sequence
Code is written in the implementation phase after preliminary steps for finalising that phase is over. Hence there isn’t any prototype ready prior the implementation stage.
On the event of any change, it has to be update in both test and requirements document
Summary:
V model is an easy and simple approach for a successful software development and testing.
Planning forms the baseline of V model.
As there is a simultaneous test process along with the sequence of steps towards development, defect tracking becomes quite efficient.