Integration Testing: What is, Types with Example (2022)

ByThomas HamiltonUpdated

What is Integration Testing?

Integration Testing is defined as a type of testing where 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’.

Why do Integration Testing?

Integration Testing: What is, Types with Example (2)

(Video) What is Integration Testing and it's types?

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.

Click here if the video is not accessible

Example of Integration Test Case

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.

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

Test Case IDTest Case ObjectiveTest Case DescriptionExpected Result
1Check the interface link between the Login and Mailbox moduleEnter login credentials and click on the Login buttonTo be directed to the Mail Box
2Check the interface link between the Mailbox and Delete Mails ModuleFrom Mailbox select the email and click a delete buttonSelected email should appear in the Deleted/Trash folder

Types 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.

(Video) What is Integration Testing? Software Testing Tutorial

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.

(Video) What is Integration Testing? | Software Testing Tutorial for Beginners | Edureka

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:

Integration Testing: What is, Types with Example (3)

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:

Integration Testing: What is, Types with Example (4)

(Video) Integration Testing with examples | Software Engineering

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.

Integration Testing: What is, Types with Example (5)

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 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 Like:

  • Boundary Value Analysis and Equivalence Partitioning Testing
  • Agile Test Automation Framework
  • What is Defect Density? Formula to calculate with Example
  • What is Configuration Testing? Example Test Cases
  • SDLC vs STLC – Difference Between Them
(Video) Difference between System Testing and Integration Testing

FAQs

What is integration testing explain its types with example? ›

Integration testing is the second level of the software testing process comes after unit testing. In this testing, units or individual components of the software are tested in a group. The focus of the integration testing level is to expose defects at the time of interaction between integrated components or units.

What are the types of integrating testing? ›

Some different types of integration testing are big-bang, mixed (sandwich), risky-hardest, top-down, and bottom-up. Other Integration Patterns are: collaboration integration, backbone integration, layer integration, client-server integration, distributed services integration and high-frequency integration.

What is integration testing with real time example? ›

This type of testing follows the natural control flow hierarchy, i.e., top to bottom. For example, you have a fitness app with four modules – A login page, a profile page, a workout page, and a payment page. The testing of the application will start from the crucial top-level module.

What are the types of testing with examples? ›

Let's explore these types of functional tests with examples:
  • Unit testing.
  • Component testing.
  • Smoke testing.
  • Sanity testing.
  • Regression testing.
  • Integration testing.
  • API testing.
  • UI testing.
25 May 2021

What are the 2 types of incremental integration testing? ›

Incremental Testing Methodologies
  • Top down Integration - This type of integration testing takes place from top to bottom. ...
  • Bottom Up Integration - This type of integration testing takes place from bottom to top.

What is main purpose of integration testing? ›

The purpose of integration testing is to expose faults in the interaction between integrated units. Once all the modules have been unit tested, integration testing is performed.

What is integration testing in SDLC? ›

Integration testing is a software testing methodology used to test individual software components or units of code to verify interaction between various software components and detect interface defects. Components are tested as a single group or organized in an iterative manner.

What is difference between smoke and sanity testing? ›

Smoke testing is a group of tests that are executed to verify if the basic functionalities of a particular build are working fine as expected or not, and Sanity testing is a shallow and quick solution to figure out if it is reasonable to go ahead with further testing stages or not.

What is meant by integration testing? ›

Integration testing -- also known as integration and testing (I&T) -- is a type of software testing in which the different units, modules or components of a software application are tested as a combined entity.

What is functional testing example? ›

Difference Between Functional and Non-Functional test
Functional TestsNon-Functional Tests
Example: Verify the 'Place Order' functionalityExample: Easy to navigate to 'Place Order' button and 100 number of people should be able to place order concurrently irrespective of OS/browser/device configurations
6 more rows
29 Jul 2022

Is integration testing white box testing? ›

Unit Testing is a kind of white box testing, whereas Integration Testing is a kind of black-box testing.

What are the 3 types of testing? ›

The different types of tests
  • Unit tests. Unit tests are very low level and close to the source of an application. ...
  • Integration tests. ...
  • Functional tests. ...
  • End-to-end tests. ...
  • Acceptance testing. ...
  • Performance testing. ...
  • Smoke testing.

Is integration testing functional testing? ›

Functional testing is performed to validate all functionalities of an application, while integration testing is performed to validate the interaction across modules and verify that they work well when compiled.

What are the 7 principles of testing? ›

The seven principles of testing
  • Testing shows the presence of defects, not their absence. ...
  • Exhaustive testing is impossible. ...
  • Early testing saves time and money. ...
  • Defects cluster together. ...
  • Beware of the pesticide paradox. ...
  • Testing is context dependent. ...
  • Absence-of-errors is a fallacy.

What is sanity testing? ›

What is Sanity Testing. Definition: Sanity testing is a subset of regression testing. After receiving the software build, sanity testing is performed to ensure that the code changes introduced are working as expected . This testing is a checkpoint to determine if testing for the build can proceed or not.

What is validation testing? ›

Validation testing is confirmation that a product meets its intended use and the needs of its users. Following successful verification, development teams should employ validation testing with the initial production product and in the actual (or simulated) use environment.

What is top-down integration testing? ›

Top-down testing is a type of incremental integration testing approach in which testing is done by integrating or joining two or more modules by moving down from top to bottom through control flow of architecture structure. In these, high-level modules are tested first, and then low-level modules are tested.

What is end to end testing? ›

End-to-end testing, also known as E2E testing, is a methodology used for ensuring that applications behave as expected and that the flow of data is maintained for all kinds of user tasks and processes. This type of testing approach starts from the end user's perspective and simulates a real-world scenario.

What is incremental integration testing? ›

However, incremental integration testing is a method of testing often used in Agile projects where a module is tested, then integrated with another module. That integration is tested, and then another module or component is added.

Who is doing integration testing? ›

Who will perform integration testing depends on a company's practices and preferences. In most organizations, component integration testing is the responsibility of the developer. However, in organizations that have implemented test-driven development, testers may be involved.

What is unit testing example? ›

A Real-world Example

The above unit test “asserts” that 5 + 10 is equal to 15. If the Add function returns anything else Assert. IsEqual result in error and the test case will fail. After you write your test cases, you will run them to verify that everything is working correctly.

What is difference between integration testing and system testing? ›

System testing is a testing level in which tests are performed to know if a complete build aligns with functional and nonfunctional requirements made for it. In contrast, Integration testing is a testing stage where two or more software units are joined and tested simultaneously.

What is performance testing? ›

Performance testing is a non-functional software testing technique that determines how the stability, speed, scalability, and responsiveness of an application holds up under a given workload.

What is the integration phase? ›

Integration Phase means the period of time commencing with effect from the completion of the Business Combination and ending on the date that is the third anniversary thereof; Sample 1.

What is API testing in manual testing? ›

API testing is a type of software testing that analyzes an application program interface (API) to verify it fulfills its expected functionality, security, performance and reliability. The tests are performed either directly on the API or as part of integration testing.

What is sanity testing with examples? ›

Example of Sanity Testing:

There is a defect in the login page when the password field accepts less than four alpha numeric characters and the requirement mentions that this password field should not be below eight characters. Hence, the defect is reported by the testing team to the development team to resolve it.

What is positive and negative testing? ›

Positive testing determines that your application works as expected. If an error is encountered during positive testing, the test fails. Negative testing ensures that your application can gracefully handle invalid input or unexpected user behavior.

What is regression testing? ›

Regression testing is a software testing practice that ensures an application still functions as expected after any code changes, updates, or improvements. Regression testing is responsible for the overall stability and functionality of the existing features.

What is integration with examples? ›

That is, if a function is the product of two other functions, f and one that can be recognized as the derivative of some function g, then the original problem can be solved if one can integrate the product gDf. For example, if f = x, and Dg = cos x, then ∫x·cos x = x·sin x − ∫sin x = x·sin x − cos x + C.

How do you write an integration test? ›

How to Do Integration Testing?
  1. Write a test plan.
  2. Create test cases and use cases.
  3. Run tests after unit integration.
  4. Detect errors.
  5. Retest the functionality after bug fixing.
  6. Repeat the testing cycle until all bugs are fixed.
16 Jul 2020

Is integration a function? ›

What is integration? The integration is the process of finding the antiderivative of a function. It is a similar way to add the slices to make it whole. The integration is the inverse process of differentiation.

What is difference between functional and non-functional testing? ›

Difference Between Functional and Non-Functional Testing

Functional testing is done based on the business requirement. Non- functional testing is done based on the customer expectation and Performance requirement. It tests whether the actual result is working according to the expected result.

What is Selenium tool? ›

Selenium is an open-source tool that automates web browsers. It provides a single interface that lets you write test scripts in programming languages like Ruby, Java, NodeJS, PHP, Perl, Python, and C#, among others.

What is type of white box testing? ›

The different techniques used in white box testing are- path testing, data flow testing, control flow testing, coverage, etc.

What is black box testing types? ›

Black box testing can be applied to three main types of tests: functional, non-functional, and regression testing.

What are the 3 techniques of regression testing? ›

Here is a display of the common types of regression testing techniques.
  • Corrective Regression Testing. ...
  • Retest-all Regression Testing. ...
  • Selective Regression Testing. ...
  • Progressive Regression Testing. ...
  • Complete Regression Testing. ...
  • Partial Regression Testing. ...
  • Unit Regression Testing. ...
  • Use Automation Tools.
5 Oct 2021

What is integration in testing? ›

Integration testing -- also known as integration and testing (I&T) -- is a type of software testing in which the different units, modules or components of a software application are tested as a combined entity.

What is smoke testing with example? ›

Smoke testing is sometimes called "build verification testing". When applied to web applications, smoke tests verify that the most important functionality is working. For example, smoke tests on Netflix might include signing in and playing a video. By design, smoke tests do not cover every permutation and edge case.

What is acceptance testing with example? ›

Alpha and beta testing are examples of acceptance testing. Alpha tests are internal and aim to spot any glaring defects, while beta testing is an external pilot-test of a product before it goes into commercial production.

What is software testing explain with example? ›

Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving performance. Test management plan.

What is integration with examples? ›

That is, if a function is the product of two other functions, f and one that can be recognized as the derivative of some function g, then the original problem can be solved if one can integrate the product gDf. For example, if f = x, and Dg = cos x, then ∫x·cos x = x·sin x − ∫sin x = x·sin x − cos x + C.

What is main purpose of integration testing? ›

The purpose of integration testing is to expose faults in the interaction between integrated units. Once all the modules have been unit tested, integration testing is performed.

What is integration testing in agile? ›

Integration testing is one of the agile methodologies of software testing where individual components or units of code are tested to validate interactions among different software system modules. In this process, these system components are either tested as a single group or organized iteratively.

What is sanity test cases? ›

Definition: Sanity testing is a subset of regression testing. After receiving the software build, sanity testing is performed to ensure that the code changes introduced are working as expected . This testing is a checkpoint to determine if testing for the build can proceed or not.

What is sanity vs smoke? ›

Important differences: Smoke vs Sanity testing

Smoke Testing is performed to ascertain that the critical functionalities of the program are working fine. Sanity testing is done at random to verify that each functionality is working as expected. Smoke testing exercises the entire system from end to end.

What is validation testing? ›

Validation testing is confirmation that a product meets its intended use and the needs of its users. Following successful verification, development teams should employ validation testing with the initial production product and in the actual (or simulated) use environment.

What is bug leakage? ›

A bug leakage results when a bug is detected which should have been detected in earlier builds/versions of the application. A defect which exists during testing yet unfound by the tester which is eventually found by the tester/end-user is also called bug leakage.

What is SIT and UAT? ›

SIT (System Integration Testing) and UAT (User Acceptance Testing) are the parts of the testing process where SIT is responsible for testing the interfaces between the components and interactions to various parts of the systems like hardware, software (operating system and file system) and interfaces among systems.

What is load testing? ›

Load testing is the process of putting simulated demand on software, an application or website in a way that tests or demonstrates it's behavior under various conditions.

What are the 3 types of testing? ›

The different types of tests
  • Unit tests. Unit tests are very low level and close to the source of an application. ...
  • Integration tests. ...
  • Functional tests. ...
  • End-to-end tests. ...
  • Acceptance testing. ...
  • Performance testing. ...
  • Smoke testing.

What are testing tools? ›

Testing Tools:

Tools from a software testing context can be defined as a product that supports one or more test activities right from planning, requirements, creating a build, test execution, defect logging and test analysis.

What are basics of testing? ›

A method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied to virtually every level of software testing: unit, integration, system and acceptance. See basic testing.

Videos

1. What Is Integration Testing
(LevelUpTuts)
2. Software Testing Tutorial #13 - What is Integration Testing
(Software Testing Mentor)
3. integration testing with real time example | testingshala | interview questions | types of testing
(Testing Shala)
4. unit testing and integration testing in software engineering | 10 differences | testing types
(Testing Shala)
5. integration testing | part -1/3 |software engineering
(Education 4u)
6. What is integration testing in software testing? - software testing course
(Fun Doo Testers)

Top Articles

You might also like

Latest Posts

Article information

Author: Catherine Tremblay

Last Updated: 09/07/2022

Views: 5913

Rating: 4.7 / 5 (47 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Catherine Tremblay

Birthday: 1999-09-23

Address: Suite 461 73643 Sherril Loaf, Dickinsonland, AZ 47941-2379

Phone: +2678139151039

Job: International Administration Supervisor

Hobby: Dowsing, Snowboarding, Rowing, Beekeeping, Calligraphy, Shooting, Air sports

Introduction: My name is Catherine Tremblay, I am a precious, perfect, tasty, enthusiastic, inexpensive, vast, kind person who loves writing and wants to share my knowledge and understanding with you.