Test Level
|
Details
|
It includes…
|
Component
Testing
(Unit/Module/Program Testing)
|
Component Testing
verifies the functioning of software (e.g. modules, programs, objects,
classes, etc.) that are separately testable.
Stubs &
Drivers are used to replace the missing software and simulate the interface
between the software components.
Stub – Stub is called from the
software component to be tested / Stub is called program.
Driver – Driver calls a component
to be tested / Driver is caller program.
Test–First
Approach or Test–Driven Development is used in Component Testing.
|
Component
Testing includes
|
Integration
Testing
|
Integration Testing
tests interfaces between components, and interfaces between systems.
Component
Integration
Testing tests the interactions between software components and is done after
component testing.
System
Integration
Testing tests the interactions between different systems and may be done
after system testing.
Approaches to
Integration Testing –
1. Big-bang Integration Testing –
All components
or systems are integrated simultaneously and after that everything is tested
as a whole.
All programs
are integrated one by one, and a test is carried out after each step.
Integration
testing may be carried out by the developers or by a separate team of
specialist integration testers.
|
Integration Testing includes
|
System
Testing
|
System Testing
is concerned with the behavior of the whole system/product as defined by the
scope of a development project or product.
System testing requires a controlled test environment and it should correspond to the final target or production environment as much as possible in order to minimize the risk of environment-specific failures not being found by testing. |
System Testing includes
|
Acceptance
Testing
|
The goal of
acceptance testing is to establish confidence in the system.
It is focused
on a validation type of testing, whereby we are trying to determine whether
the system is fit for purpose.
Finding defects
should not be the main focus in acceptance testing.
The execution
of the acceptance test requires a test environment that is for most aspects,
representative of the production environment.
Acceptance
testing may occur at more than just a single level.
User
Acceptance Test
– It focuses mainly on the functionality thereby validating the
fitness-for-use of the system by the business user. User acceptance test is performed by the
users and application managers.
Operational
Acceptance Test
(Production Acceptance Test) – It validates
whether the system meets the requirements for operation. System administration will perform the
operational acceptance test shortly before the system is released. The
operational acceptance test may include testing of backup/restore, disaster
recovery, maintenance tasks and periodic check of security vulnerabilities.
Contract
Acceptance Testing
– It is performed against a contract's acceptance criteria for producing
custom-developed software.
Compliance
Acceptance Testing
– Compliance acceptance testing or regulation acceptance testing is performed
against the regulations which must be adhered to, such as governmental, legal
or safety regulations.
Alpha
Testing – It
takes place at the developer’s site. A cross-section of potential users and
members of the developer's organization are invited to use the system.
Developers observe the users and note problems. Alpha testing may also be
carried out by an independent test team.
Beta
Testing –
Beta testing, or field testing, sends the system to a cross-section of users
who install it and use it under real-world working conditions. The users send
records of incidents with the system to the development organization where
the defects are repaired.
|
Acceptance Testing includes
|