Manual Testing – Part5
© Naveen Karne
08/28/2025
2 Agenda:
Levels Of Testing
© Naveen Karne 08/28/2025
3 Levels of Testing
Tests are grouped together based on where they are added in SDLC or
the by the level of detailing they contain.
The purpose of Levels of testing is to make software testing systematic
and easily identify all possible test cases at a particular level.
In general, the following are the different levels of testing:
Unit Testing
Integration Testing
System Testing
User Acceptance Testing
© Naveen Karne 08/28/2025
4 Levels of Testing
© Naveen Karne 08/28/2025
5 Levels of Testing
© Naveen Karne 08/28/2025
6 Unit Testing
checks if software components are fulfilling functionalities or not.
A Unit is a smallest testable portion of system or application which can
be compiled, liked, loaded, and executed. This kind of testing helps to
test each module separately.
The aim is to test each part of the software by separating it. It checks
that component are fulfilling functionalities or not. This kind of testing is
performed by developers.
Unit Testing is done during the development (coding phase) of an
application by the developers
© Naveen Karne 08/28/2025
7 Unit Testing Techniques
Statement Coverage
Decision Coverage
Branch Coverage
Condition Coverage
© Naveen Karne 08/28/2025
8 Pros of Unit Testing
Developers looking to learn what functionality is provided by a unit and
how to use it can look at the unit tests to gain a basic understanding of
the unit API.
Unit testing allows the programmer to refactor code at a later date, and
make sure the module still works correctly (i.e. Regression testing). The
procedure is to write test cases for all functions and methods so that
whenever a change causes a fault, it can be quickly identified and fixed.
Due to the modular nature of the unit testing, we can test parts of the
project without waiting for others to be completed.
© Naveen Karne 08/28/2025
9 Cons of Unit Testing
Unit testing can't be expected to catch every error in a program. It is not
possible to evaluate all execution paths even in the most trivial
programs
Unit testing by its very nature focuses on a unit of code. Hence it can't
catch integration errors or broad system level errors.
Note : It's recommended unit testing be used in conjunction with other
testing activities.
© Naveen Karne 08/28/2025
10 Unit Testing Best Practices
Unit Test cases should be independent. In case of any enhancements or
change in requirements, unit test cases should not be affected.
Test only one code at a time.
Follow clear and consistent naming conventions for your unit tests
In case of a change in code in any module, ensure there is a
corresponding unit Test Case for the module, and the module passes the
tests before changing the implementation
Bugs identified during unit testing must be fixed before proceeding to
the next phase in SDLC
Adopt a "test as your code" approach. The more code you write without
testing, the more paths you have to check for errors.
© Naveen Karne 08/28/2025
11 Integration Testing
checks the data flow from one module to other modules.
software modules are integrated logically and tested as a group.
A typical software project consists of multiple software modules, coded
by different programmers.
The purpose of this level of testing is to expose defects in the
interaction between these software modules when they are integrated
Integration Testing focuses on checking data communication amongst
these modules. Hence it is also termed as 'I & T' (Integration and
Testing), 'String Testing' and sometimes 'Thread Testing'.
© Naveen Karne 08/28/2025
12 Integration Testing
© Naveen Karne 08/28/2025
13 Example
Integration Test Case differs from other test cases in the sense
it focuses mainly on the interfaces & flow of data/information
between the modules.
Here priority is to be given for the integrating links rather than the
unit functions which are already tested.
Sample Integration Test Cases for the following scenario: Application has
3 modules say 'Login Page', 'Mailbox' and 'Delete emails' and each of
them is integrated logically.
Here do not concentrate much on the Login Page testing as it's already
been done in Unit Testing. But check how it's linked to the Mail Box Page.
© Naveen Karne 08/28/2025
14 Example
Similarly Mail Box: Check its integration to the Delete Mails Module.
© Naveen Karne 08/28/2025
15 Why do Integration Testing?
Although each software module is unit tested, defects still exist for various
reasons like
A Module, in general, is designed by an individual software developer
whose understanding and programming logic may differ from other
programmers. Integration Testing becomes necessary to verify the
software modules work in unity
At the time of module development, there are wide chances of change in
requirements by the clients. These new requirements may not be unit
tested and hence system integration Testing becomes necessary.
Interfaces of the software modules with the database could be
erroneous
External Hardware interfaces, if any, could be erroneous
Inadequate exception handling could cause issues.
© Naveen Karne 08/28/2025
16 Approaches to Integration Testing
© Naveen Karne 08/28/2025
17 Big-Bang
Big Bang Testing is an Integration testing approach in which all the
components or modules are integrated together at once and then tested as a
unit.
This combined set of components is considered as an entity while testing. If all
of the components in the unit are not completed, the integration process will not
execute.
Pros:
Convenient for small systems.
Cons:
Fault Localization is difficult.
Since the Integration testing can commence only after "all" the modules are
designed, the testing team will have less time for execution in the testing
phase.
Since all modules are tested at once, high-risk critical modules are not isolated
and tested on priority. Peripheral modules which deal with user interfaces are
also not isolated and tested on priority.
© Naveen Karne 08/28/2025
18 Stubs and Drivers
Stubs and Drivers are the dummy programs in Integration testing
used to facilitate the software testing activity.
These programs act as a substitutes for the missing models in the
testing.
They do not implement the entire programming logic of the software
module but they simulate data communication with the calling module
while testing.
Stub: Is called by the Module under Test.
Driver: Calls the Module to be tested.
© Naveen Karne 08/28/2025
19 Top-down Integration Testing
Top Down Integration Testing is a method in which integration
testing takes place from top to bottom following the control flow of
software system.
The higher level modules are tested first and then lower level modules
are tested and integrated in order to check the software functionality.
Stubs are used for testing if some modules are not ready.
© Naveen Karne 08/28/2025
20 Top-down Integration Testing
© Naveen Karne 08/28/2025
21 Pros & Cons of Top-down Integration
Testing
Pros:
Fault Localization is easier.
Possibility to obtain an early prototype.
Critical Modules are tested on priority; major design flaws could be
found and fixed first
Cons:
Needs many Stubs.
Modules at a lower level are tested inadequately.
© Naveen Karne 08/28/2025
22 Bottom-up Integration Testing
Bottom-up Integration Testing is a strategy in which the lower level
modules are tested first.
These tested modules are then further used to facilitate the testing of
higher level modules.
The process continues until all modules at top level are tested.
Once the lower level modules are tested and integrated, then the next
level of modules are formed.
© Naveen Karne 08/28/2025
23 Bottom-up Integration Testing
© Naveen Karne 08/28/2025
24 Pros & Cons of Bottom-up Integration
Testing
Pros:
Fault localization is easier.
No time is wasted waiting for all modules to be developed unlike Big-
bang approach
Cons:
Critical modules (at the top level of software architecture) which control
the flow of application are tested last and may be prone to defects.
An early prototype is not possible
© Naveen Karne 08/28/2025
25 Sandwich Integration Testing
Sandwich Testing is a strategy in which top level modules are tested
with lower level modules at the same time lower modules are integrated
with top modules and tested as a system.
It is a combination of Top-down and Bottom-up approaches therefore it is
called Hybrid Integration Testing.
It makes use of both stubs as well as drivers.
© Naveen Karne 08/28/2025
26 Sandwich Integration Testing
© Naveen Karne 08/28/2025
27 Entry Criteria
Unit Tested Components/Modules
All High prioritized bugs fixed and closed
All Modules to be code completed and integrated successfully.
Integration tests Plan, test case, scenarios to be signed off and
documented.
Required Test Environment to be set up for Integration testing
© Naveen Karne 08/28/2025
28 Exit Criteria:
Successful Testing of Integrated Application.
Executed Test Cases are documented
All High prioritized bugs fixed and closed
Technical documents to be submitted followed by release Notes.
© Naveen Karne 08/28/2025
29 Best Practices for Integration Testing
First, determine the Integration Test Strategy that could be adopted and
later prepare the test cases and test data accordingly.
Study the Architecture design of the Application and identify the Critical
Modules. These need to be tested on priority.
Obtain the interface designs from the Architectural team and create test
cases to verify all of the interfaces in detail.
Interface to database/external hardware/software application must be
tested in detail.
After the test cases, it's the test data which plays the critical role.
Always have the mock data prepared, prior to executing. Do not select
test data while executing the test cases.
© Naveen Karne 08/28/2025
30 System Testing
Evaluates both functional and non-functional needs for the testing.
SYSTEM TESTING is a level of testing that validates the complete and
fully integrated software product.
The purpose of a system test is to evaluate the end-to-end system
specifications.
© Naveen Karne 08/28/2025
31 Why System Testing?
System Testing involves testing the software code for following
Testing the fully integrated applications including external peripherals in
order to check how components interact with one another and with the
system as a whole. This is also called End to End testing scenario.
Verify thorough testing of every input in the application to check for
desired outputs.
Testing of the user's experience with the application.
© Naveen Karne 08/28/2025
32 Types of System Testing
© Naveen Karne 08/28/2025
33 Types of System Testing
There are more than 50 types of System Testing.
However, have listed types of system testing a large software
development company would typically use
Usability Testing : mainly focuses on the user's ease to use the application,
flexibility in handling controls and ability of the system to meet its objectives
Load Testing : is necessary to know that a software solution will perform
under real-life loads.
Regression Testing : involves testing done to make sure none of the
changes made over the course of the development process have caused new
bugs. It also makes sure no old bugs appear from the addition of new software
modules over time.
Smoke Testing : Testing technique which examines all the basic components
of a software system to ensure that they work properly. Typically, smoke
testing is conducted by the testing team, immediately after a software build is
made.
© Naveen Karne 08/28/2025
34 Types of System Testing
Stability Testing : Testing technique which attempts to determine if an
application will crash. It is usually conducted by the performance engineer.
Functional Testing : Also known as functional completeness
testing, Functional Testing involves trying to think of any possible missing
functions. Testers might make a list of additional functionalities that a product
could have to improve it during functional testing.
Migration testing : is done to ensure that the software can be moved from
older system infrastructures to current system infrastructures without any
issues.
Recovery testing : is done to demonstrate a software solution is reliable,
trustworthy and can successfully recoup from possible crashes.
Hardware/Software Testing : IBM refers to Hardware/Software testing as
"HW/SW Testing". This is when the tester focuses his/her attention on the
interactions between the hardware and software during system testing.
© Naveen Karne 08/28/2025
35 User Acceptance Testing
Checks the requirements of a specification or contract are met as per its
delivery.
Acceptance testing is a test conducted to find if the requirements of a
specification or contract are met as per its delivery.
Acceptance testing is basically done by the user or customer.
However, other stockholders can be involved in this process.
© Naveen Karne 08/28/2025
Thank You
36
© Naveen Karne 08/28/2025