Principles, V-Model and Limitations of Software Testing
Principles, V-Model and Limitations of Software Testing
V-Shaped Model:
The V-model is a type of SDLC model where process executes in a
sequential manner in V-shape. It is also known as Verification and
Validation model. It is based on the association of a testing phase for
each corresponding development stage. Development of each step
directly associated with the testing phase. The next phase starts only
after completion of the previous phase i.e. for each development
activity, there is a testing activity corresponding to it.
Verification: It involves static analysis technique (review) done
without executing code. It is the process of evaluation of the product
development phase to find whether specified requirements meet.
Validation: It involves dynamic analysis technique (functional, non-
functional), testing done by executing code. Validation is the process
to evaluate the software after the completion of the development
phase to determine whether software meets the customer
expectations and requirements.
So V-Model contains Verification phases on one side of the Validation
phases on the other side. Verification and Validation phases are joined
by coding phase in V-shape. Thus it is called V-Model.
Design Phase:
Requirement Analysis: This phase contains detailed
communication with the customer to understand their
requirements and expectations. This stage is known as
Requirement Gathering.
System Design: This phase contains the system design and the
complete hardware and communication setup for developing
product.
Architectural Design: System design is broken down further into
modules taking up different functionalities. The data transfer and
communication between the internal modules and with the
outside world (other systems) is clearly understood.
Module Design: In this phase the system breaks dowm into small
modules. The detailed design of modules is specified, also
known as Low-Level Design (LLD).
Testing Phases:
Unit Testing: Unit Test Plans are developed during module
design phase. These Unit Test Plans are executed to eliminate
bugs at code or unit level.
Integration testing: After completion of unit testing Integration
testing is performed. In integration testing, the modules are
integrated and the system is tested. Integration testing is
performed on the Architecture design phase. This test verifies
the communication of modules among themselves.
System Testing: System testing test the complete application
with its functionality, inter dependency, and communication.It
tests the functional and non-functional requirements of the
developed application.
User Acceptance Testing (UAT): UAT is performed in a user
environment that resembles the production environment. UAT
verifies that the delivered system meets user’s requirement and
system is ready for use in real world.
Industrial Challange: As the industry has evolved, the technologies
have become more complex, increasingly faster, and forever changing,
however, there remains a set of basic principles and concepts that are
as applicable today as when IT was in its infancy.
Accurately define and refine user requirements.
Design and build an application according to the authorized user
requirements.
Validate that the application they had built adhered to the
authorized business requirements.
Let’s see the how the development team and test team involves in
each phase of SDLC in V Model:
Steps:
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.
Principles of V-Model:
TESTING LIMITATIONS:
You cannot test a program completely
We can only test against system requirements
– May not detect errors in the requirements.
– Incomplete or ambiguous requirements may lead to
inadequate or incorrect testing.
Exhaustive (total) testing is impossible in present scenario.
Time and budget constraints normally require very careful
planning of the testing effort.
Compromise between thoroughness and budget.
Test results are used to make business decisions for release
dates.
Even if you do find the last bug, you’ll never know it
You will run out of time before you run out of test cases
You cannot test every path
You cannot test every valid input
You cannot test every invalid input