Levels of Testing
Software Testing Principles
To remove as many defects as possible
before test since the quality
improvement potential of testing is
limited
What are the Types of
Software Tests
Unit Testing (White Box)
Integration Testing
System Test
Acceptance Test
Unit Testing
Individual components are tested.
It is a path test.
To catch the defects that occurs at the
early stage of software development.
To focus on a relatively small segment
of code and aim to exercise a high
percentage of the internal path
Unit Testing
Independent units are tested using
functional or structural testing.
A unit may not be completely
independent. It may be calling few units
and also called by one or more units.
We have to additional code to execute.
Stub, driver and both combined are
called scaffolding.
White Box Testing is applicable at
unit Testing.
Disadvantage: the tester may be
biased by previous experience.
And the test value may not cover
all possible values.
Example: password check
Integration Testing
Evaluating the functioning of software
when two or more units are combined.
Share some relationship. It is represented
by an interface. It is called coupling.
Benefits
Validates the data flow between different
systems
Provides additional reliability & stability.
Two Approaches
Top-down Integration Test
Bottom-up Integration Test
Top-down Integration Test
The control program is tested first.
Modules are integrated one at a time.
Emphasize on interface testing
Advantages: No test drivers needed
Interface errors are discovered early
Modular features aid debugging
Disadvantages: Test stubs are needed
Errors in critical modules at low levels are
found late.
Top-down Testing
T1
T1 A
A
T2
T2 B
B T3
T3 C
T4
Bottom-up Integration Test
Allow early testing aimed at proving
feasibility
Emphasize on module functionality and
performance
Advantages: No test stubs are needed
Errors in critical modules are found early
Disadvantages: Test drivers are needed
Interface errors are discovered late
Bottom-up
testing
Test Test Test
Drivers Drivers Drivers
Level N Level N Level N
Test Test
Drivers Drivers
Level N-1 Level N-1
System Testing
After completing Unit & Integration testing
development team release an .exe file to
perform black box testing.
Check the overall functionality of the S/W.
Purpose is, check if the system meets the
requirements from the end user.
Efficiently identifies the errors and bugs
may not be identified before UT & IT.
Acceptance Testing
Extension of system testing.
Last testing stage before the product
release.
Clients are directly involved in the testing
process.
Purpose of this testing,
To ensure that the application meets the
business and user requirements.