KEMBAR78
ManualTesting Part5 | PDF | Software Testing | Unit Testing
0% found this document useful (0 votes)
8 views36 pages

ManualTesting Part5

The document outlines the levels of software testing, including Unit Testing, Integration Testing, System Testing, and User Acceptance Testing, emphasizing their purpose in the Software Development Life Cycle (SDLC). It details the techniques, pros and cons, and best practices associated with Unit and Integration Testing, while also discussing System Testing types and the importance of User Acceptance Testing. Overall, it serves as a comprehensive guide for understanding and implementing effective testing strategies in software development.

Uploaded by

shaik738521
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views36 pages

ManualTesting Part5

The document outlines the levels of software testing, including Unit Testing, Integration Testing, System Testing, and User Acceptance Testing, emphasizing their purpose in the Software Development Life Cycle (SDLC). It details the techniques, pros and cons, and best practices associated with Unit and Integration Testing, while also discussing System Testing types and the importance of User Acceptance Testing. Overall, it serves as a comprehensive guide for understanding and implementing effective testing strategies in software development.

Uploaded by

shaik738521
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 36

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

You might also like