Nothing Special   »   [go: up one dir, main page]

Integration Testing

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Integration testing

Integration testing tests integration or interfaces between components, interactions


to different parts of the system such as an operating system, file system and
hardware or interfaces between systems.

Also after integrating two different components together we do the integration


testing. As displayed in the image below when two different modules ‘Module A’
and ‘Module B’ are integrated then the integration testing is done.

Upon completion of unit testing, the units or modules are to be integrated which
gives raise to integration testing. The purpose of integration testing is to verify the
functional, performance, and reliability between the modules that are integrated.

Integration Testing, individual software modules are integrated logically and tested
as a group.

A typical software project consists of multiple software modules, coded by


different programmers. 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'.

Integration testing is done by a specific integration tester or test team.


Below are the integration testing techniques:

1. Big Bang integration testing:

In Big Bang integration testing all components or modules are integrated


simultaneously, after which everything is tested as a whole. As per the below
image all the modules from ‘Module 1’ to ‘Module 6’ are integrated
simultaneously then the testing is carried out.

Advantage: 

 Big Bang testing has the advantage that everything is finished before
integration testing starts.
 Convenient for small systems.

 Disadvantage: 

 The major disadvantage is that in general it is time consuming and difficult


to trace the cause of failures because of this late integration.
 Fault Localization is difficult.
 Here all component are integrated together at once, and then tested.
 Given the sheer number of interfaces that need to be tested in this approach,
some interfaces links to be tested could be missed easily.
 Since the integration testing can commence only after "all" the modules are
designed, 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 Approach:

In this approach, testing is done by joining two or more modules that are logically
related. Then the other related modules are added and tested for the proper
functioning. Process continues until all of the modules are joined and tested
successfully.

This process is carried out by using dummy programs called Stubs and Drivers.
Stubs and Drivers do not implement the entire programming logic of the software
module but just simulate data communication with the calling module.

Stub: Is called by the Module under Test.

Driver: Calls the Module to be tested.

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

Bottom Up

Top Down
Top-down integration testing: 

Testing takes place from top to bottom, following the control flow or architectural
structure (e.g. starting from the GUI or main menu). Components or systems are
substituted by stubs. Below is the diagram of  ‘Top down Approach’:
In Top to down approach, testing takes place from top to down following the
control flow of the software system.

Advantages
 The tested product is very consistent because the integration testing is
basically performed in an environment that almost similar to that of reality.
 Stubs can be written with lesser time because when compared to the
drivers then Stubs are simpler to author.
 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
 Basic functionality is tested at the end of cycle
 Needs many Stubs.
 Modules at lower level are tested inadequately.
 Bottom-up integration testing: 

Testing takes place from the bottom of the control flow upwards. Components or
systems are substituted by drivers. Below is the image of ‘Bottom up approach’:
In the bottom up strategy, each module at lower levels is tested with higher
modules until all modules are tested. It takes help of Drivers for testing

Advantage
 In this approach development and testing can be done together so that the
product or application will be efficient and as per the customer
specifications.
 Fault localization is easier.
 No time is wasted waiting for all modules to be developed unlike Big-bang
approach.
Disadvantages 

 We can catch the Key interface defects at the end of cycle.


 It is required to create the test drivers for modules at all levels except the
top control.
 Critical modules (at the top level of software architecture) which control
the flow of application are tested last and may be prone to defects.
 Early prototype is not possible.
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.

Integration Testing Procedure:


The integration test procedure irrespective of the test strategies
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 successfully.

Brief Description of Integration Test Plans:


It includes following attributes:
 Methods/Approaches to test (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
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 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 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.

You might also like