Integration Testing - What Is, Types, Top Down & Bottom Up Example

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

(/)

Integration Testing: What is, Types, Top Down &


Bottom Up Example
› Web Service Testing What is Integration Testing?
› Computer Operating Systems
INTEGRATION TESTING is defined as a type of
› Critical Path Software testing where software modules are
integrated logically and tested as a group. A
› Functional Requirements Document
typical software project consists of multiple
› Web Application Testing software modules, coded by different
› Sample Written Driving Test programmers. The purpose of this level of
testing is to expose defects in the interaction
› CDL Permit Tests
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'.

What is Integration Testing?


Why do Integration Testing?
Example of Integration Test Case
Approaches, Strategies, Methodologies of Integration Testing
Big Bang Approach:
Incremental Approach
What is Stub and Driver?
Bottom-up Integration
Top-down Integration:
Hybrid/ Sandwich Integration
How to do Integration Testing?
Brief Description of Integration Test Plans:
Entry and Exit Criteria of Integration Testing
Best Practices/ Guidelines for Integration Testing

Why do Integration Testing?


(/images/1/Integration-Testing.png)

What is Software
Testing Why Testing is
NOW Important

PLAYING

How to write a TEST


CASE Software Testing
Tutorial

Seven Testing Principles


Software 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.
What is Integration Testing? Software Testing Tutorial

Click here (/faq.html#1) if the video is not accessible

Example of Integration Test Case


Integration Test Case (/test-case.html)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 (/unit-testing-guide.html). But check how it's linked to the Mail Box Page.

Similarly Mail Box: Check its integration to the Delete Mails Module.

Test
Case Test Case Objective Test Case Description Expected Result
ID

Check the interface link Enter login credentials


To be directed to the
1 between the Login and and click on the Login
Mail Box
Mailbox module button
Test
Case Test Case Objective Test Case Description Expected Result
ID

Check the interface link From Mailbox select Selected email should
2 between the Mailbox and the email and click a appear in the
Delete Mails Module delete button Deleted/Trash folder

Approaches, Strategies, Methodologies of Integration Testing


Software Engineering defines variety of strategies to execute Integration testing, viz.

 Big Bang Approach :


 Incremental Approach: which is further divided into the following
 Top Down Approach
 Bottom Up Approach
 Sandwich Approach - Combination of Top Down and Bottom Up

Below are the different strategies, the way they are executed and their limitations as well
advantages.

Big Bang Testing


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.

Advantages:

Convenient for small systems.

Disadvantages:

Fault Localization is difficult.


Given the sheer number of interfaces that need to be tested in this approach, some
interfaces link to be tested could be missed easily.
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.

Incremental Testing
In the Incremental Testing approach, testing is done by integrating two or more modules
that are logically related to each other and then tested for proper functioning of the
application. Then the other related modules are integrated incrementally and the process
continues until all the logically related modules are integrated and tested successfully.

Incremental Approach, in turn, is carried out by two different Methods:

Bottom Up
Top Down

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.

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.

Diagrammatic Representation:
(/images/bottom-up-integration-testing.png)

Advantages:

Fault localization is easier.


No time  is wasted waiting for all modules to be developed unlike Big-bang approach

Disadvantages:

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

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.

Diagrammatic Representation:
(/images/top-down-integration-testing.png)

Advantages:

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.

Disadvantages:

Needs many Stubs.


Modules at a lower level are tested inadequately.

Sandwich 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.
(/images/1/Hybrid-Integration.png)

How to do Integration Testing?


The Integration test procedure irrespective of the Software testing strategies (discussed
above):

1. Prepare the Integration Tests Plan


2. Design the Test Scenarios, Cases, and Scripts.
3. Executing the test Cases followed by reporting the defects.
4. Tracking & re-testing the defects.
5. Steps 3 and 4 are repeated until the completion of Integration is successful.

Brief Description of Integration Test Plans:


It includes the following attributes:

Methods/Approaches to testing (as discussed above).


Scopes and Out of Scopes Items of Integration Testing.
Roles and Responsibilities.
Pre-requisites for Integration testing.
Testing environment.
Risk and Mitigation Plans.

Entry and Exit Criteria of Integration Testing


Entry and Exit Criteria to Integration testing phase in any software development model
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 (/test-environment-software-testing.html)to be set up for
Integration testing

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.

Best Practices/ Guidelines for Integration Testing

First, determine the Integration Test Strategy (/how-to-create-test-strategy-


document.html)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.

 Prev (/unit-testing-guide.html) Report a Bug


Next  (/system-testing.html)

Testing Tutorials
Testing Insurance Applications (/testing-insurance-applications-with-sample-testcases.html)

Testing Telecom Application (/testing-telecom-application-with-sample-testcases.html)

Integration Testing (/integration-testing.html)

Business Intelligence Testing (/business-intelligence-testing-sample-test-cases.html)

White Box Testing (/white box testing html)


White Box Testing (/white-box-testing.html)

 (https://www.facebook.com/guru99com/)
 (https://twitter.com/guru99com) 
(https://www.linkedin.com/company/guru99/)

(https://www.youtube.com/channel/UC19i1XD6k88KqHlET8atqFQ)

(https://forms.aweber.com/form/46/724807646.htm)

About
About Us (/about-us.html)

Advertise with Us (/advertise-us.html)

Write For Us (/become-an-instructor.html)

Contact Us (/contact-us.html)

Career Suggestion
SAP Career Suggestion Tool (/best-sap-module.html)

Software Testing as a Career (/software-testing-career-


complete-guide.html)

Interesting
eBook (/ebook-pdf.html)

Blog (/blog/)

Quiz (/tests.html)

SAP eBook (/sap-ebook-pdf.html)

Execute online
Execute Java Online (/try-java-editor.html)

Execute Javascript (/execute-javascript-online.html)

Execute HTML (/execute-html-online.html)

Execute Python (/execute-python-online.html)

© Copyright - Guru99 2021

        Privacy Policy (/privacy-policy.html)  |  Affiliate


Disclaimer (/affiliate-earning-disclaimer.html)  |  ToS
(/terms-of-service.html)

You might also like