V-Model is a software development Model which shows software
development life cycle to follow a V shape. V-Model was developed with the
intention to cover some of the problems found in waterfall Model with one of
the main issue as defect uncovered late in the Software development life cycle.
The main purpose of representing in a V is to show the
relationship between each phase of development life cycle with its associated
phase in testing. The execution of processes happens in a sequential manner in
this model. This is also sometimes called as Verification and Validation Model
During the initial stage, i.e.
from requirement to Coding and Implementation are verification phase and then
from Coding and Implementation to User Acceptance testing are Validation phases
in the model.
Before continuing with
understanding the responsibility of testing in various phases of a V-Model, we
must distinguish between Verification and Validation.
Objective of Verification is to ensure the product is being built according to requirement .Walk-through, reviews, inspection are some of the activities, whereas objective of Validation is to ensure the product build meets the user requirement. Whereas Verification activities are mostly done during product building process, Validation is done post product is build
Below are the activities performed
by testing team during various stages of V-Model.
a. Requirement
Analysis
Testing tasks includes preparation of User Acceptance testing plan
to be followed during UAT testing during the first phase of V-Model.
Involvement of testing team early in the requirement help understanding the
requirement and analyzing gaps and refining requirements based on scenarios
identified for User Acceptance testing.
b. System
Design
Once we have the requirement signed off by the customer, the developer
and testers in parallel starts to work on system development design and system
test design respectively.
c. Architecture
Design
In this phase, test and plans related to integration testing of
different modules are created. From development point of view, In this phase,
high level design of the system is created starting from dividing requirement
into different modules based on functionality and the interaction of modules
defined with each other , external world as well as existing modules if the new
functionality is an added functionality in the existing system.
d. Module
Design
This phase from development point of view defines the low level design
of each of the modules. To ensure each
module is working correctly, to test the internal structure of the module, we
need to create unit test cases to test units in the module. Unit testing is
mostly performed by developers as is mostly related to internal structure and
design of modules.
e. Coding
and Implementation
Next Phase in the V-model is implementation of low level
design into code. So in
all the above phases of the V-Model, similar to developers, testing phases
occurs in parallel and does verification and analysis at each phase and
prepares for testing.
f. Unit Testing
Once Coding and Implementation is
completed, we need to execute unit test to verify the designed has been coded
and implemented properly. Units are tested as they are developed. Unit tests
prepared during Module designed are executed to unit test the modules
individually
g. Integration
Testing
Once the modules are unit tested individually, it is the time to test
integration of modules with other modules and external systems. Integration
test prepared during Architecture design are executed in this phase.
h. System
Testing
Once we have tested the modules followed by Integration of modules and
external systems. Next step is to verify whether the system is working properly
and as defined in the requirements
i. Acceptance Testing
Once the system is
tested properly by QA Team, it is passed on to customer to perform User
acceptance test. This can be performed by client or UAT Team designated by client.Please note from step f. on wards, we started in step a.
to e., the necessary test preparation and analysis tasks.
Conclusion On a whole,
V-Model is a much disciplined Model with salient feature including testing
starting as early as possible from requirement phase. Requirements are clear
and properly analyzed by different perspective, i.e. business analysts, testers
and developers. This model has shortcomings in case of some requirement changes
in between the software development life cycle
Written well, thanks. Obviously some changes were made since this was written but the core is still helpful.
ReplyDelete