You are on page 1of 14

Chapter 3

Levels of Testing
• Unit testing
• Integration testing - Top-Down, Bottom-up integration
• System Testing - performance, regression, Load/Stress
testing, Security testing, Internationalization testing.
• Acceptance Testing- Alpha, Beta Testing
• Usability and accessibility testing - Configuration,
compatibility testing
1. Unit Testing
• It is a level of the software testing process where individual
units/components of a software/system are tested. The
purpose is to validate that each unit of the software
performs as designed.
• A unit is the smallest testable part of software. It usually
has one or a few inputs and usually a single output.
• Unit Testing is normally performed by software developers
themselves or their peers. In rare cases it may also be
performed by independent software testers.
2. Integration Testing
• It is a level of the software testing process where
individual units are combined and tested as a group.
The purpose of this level of testing is to expose
faults in the interaction between integrated units.
Drivers and stubs are used in integration testing.
• A driver piece of software which calls the software
under test, passing the test data as inputs.
• A stub is temporary or dummy piece of code that is
required by the software under test for it to operate
properly.
• Integration testing is done in two ways :
• Top-Down Testing :
• Components which are at the top layer are tested first and then it is
integrated with the just below components and ten tested it and so
on.
• A top-down approach is essentially the breaking down of a system
to gain insight into its compositional sub-system.
• The importance of top-down testing is design flow is detected,
quality improves, user satisfaction, requirements matches with the
developed software.
• Stubs are used in Top down testing
• Example –
In the top-down integration testing, if depth-first approach is adopted
then we will start integration from module M1. Then we will integrate
M2, then M3, M4, M5, M6, and at last M7.
• Bottom-up Testing :
• The component at the bottom level tested primarily. Afterwards
these lower level components integrated with just above
components to them and then combine testing is done.
• In a bottom-up approach the individual base elements of the system
are first specified in great detail.
• These elements are then linked together to form larger subsystem.
• The drivers are used in Bottom Testing
• Example –
In the last, modules or components are combined together to form cluster
1 and cluster 2. After this, each cluster is tested with the help of a
control program. The cluster is present below the high-level module or
driver. After testing, driver is removed and clusters are combined and
moved upwards with modules.
3. System Testing
• It is a level of the software testing process where a complete,
integrated system/software is tested.
• The purpose of this test is to evaluate the system’s compliance
with the specified requirements.

• Various Testing Types in System Testing


1. Performance Testing : This term is often used interchangeably
with ‘stress’ and ‘load’ testing. Performance Testing is done to check
whether the system meets the performance requirements. Different
performance and load tools are used to do this testing.
2. Regression Testing :
Testing an application as a whole for the modification in any module
is termed as Regression Testing. It is difficult to cover all the system
in Regression Testing, so typically automation testing tools are used
for these types of testing.
3. Load testing :
It is a type of non-functional testing and the objective of Load testing
is to check how much of load a system can handle without any
performance degradation.
Load testing helps to find the maximum capacity of the system under
specific load and any issues that cause the software performance
degradation. Load testing is performed using tools like JMeter,
LoadRunner, WebLoad, Silk performer etc.
4. Stress Testing :
This testing is done when a system is stressed beyond its specifications in
order to check how and when it fails. This is performed under heavy load like
putting large number beyond storage capacity, complex database queries,
continuous input to the system or database load.
5. Security testing :
It is a type of testing performed by a special team of testers. A system can be
penetrated by any hacking way.
• Security Testing is done to check how the software is secure from internal and
external threats. This testing includes how much software is secure from the
malicious program, viruses and how secure and strong the authorization and
authentication processes are.
• It also checks how software behaves for any hackers attack and malicious
programs and how software is maintained for data security after such a
hacker attack.
6. Internationalization Testing :
Internationalization testing is a non-functional testing technique. It
is a process of designing a software application that can be adapted
to various languages and regions without any changes.
Localization, internationalization and globalization are highly
interrelated.
4. Acceptance testing :
• Acceptance testing a testing technique performed to determine
whether or not the software system has met the requirement
specifications. The main purpose of this test is to evaluate the
system's compliance with the business requirements and verify if it
is has met the required criteria for delivery to end users.
a. Alpha testing :
• Alpha testing takes place at the developer's site by the internal
teams, before release to external customers. This testing is
performed without the involvement of the development teams.
b. Beta Testing :
• Beta testing also known as user testing takes place at the end users
site by the end users to validate the usability, functionality,
compatibility, and reliability testing.
• Usability Testing :
It is a type of testing done from an end-user’s perspective to determine if the system is easily
usable.
• Accessibility Testing :
The aim of accessibility testing is to determine whether the software or application is accessible
for disabled people or not. Here disability means deaf, color blind, mentally disabled, blind, old
age and other disabled groups. Various checks are performed such as font size for visually
disabled, color and contrast for color blindness etc. -
• Configuration Testing :
Configuration testing is a method of testing a system under development on multiple machines
that have different combinations or configurations of hardware and software. The performance
of the system or an application is tested against each of the supported hardware & software
configurations.
• Compatibility Testing
It is a testing type in which it validates how software behaves and runs in a different
environment, web servers, hardware, and network environment. Compatibility testing ensures
that software can run on a different configuration, different database, different browsers and
their versions. Compatibility testing is performed by the testing team.

You might also like