What is Integration Testing? A Complete Guide to Integration Testing (2025)

Integration testing is a key level of testing to find defects where software components and system interface together. Testing functions in isolation is important, but falls short of testing software behavior in ways it will actually be used in conjunction with other items.

In software testing, a productive strategy is to look for defects and failures where they may be most likely to occur. One thing we have learned over the years, supported by credible research, is that software failures are much more likely to manifest where interactions occur.

However, once we start to design and perform tests based on integration, the complexity that arises from many points of integration can increase the number of possible tests to massive numbers.

Furthermore, integration testing can be seen in many ways which also increases the challenge. Some may see integration testing as only part of continuous integration (CI) in a build process, others may perform integration at a component level as various software components are created or changed, while others may have a wider scope of integration testing in a system testing, acceptance testing, or a systems-of-systems context.

In this article, we explore the various levels of integration testing, as well as the difference between integration and interoperability testing. You will also learn how to design tests that can deal with the high levels of complexity often seen in highly integrated system architectures.

Table Of Contents

  • What is integration testing? A basic definition
  • Interoperability Testing vs Integration Testing
  • Why do we need integration testing?
  • What are the different types of integration testing?
  • Using a test plan for integration testing
  • How to do integration testing?
  • The Role of API Integration Testing
  • The Role of Integration Testing Tools
  • Integration Testing Example with PractiTest
  • More Integration Testing Examples With Interoperability Testing
  • Conclusion

What is integration testing? A basic definition

Integration testing is defined as:

“A test level that focuses on interactions between components or systems.” (ISTQB Glossary)

Interoperability testing is defined as:

“The ability of two or more systems or components to exchange information and to use the information that has been exchanged." (IEEE)

Interoperability Testing vs Integration Testing

When comparing these two terms, we need to understand that integration testing is a level of testing, while interoperability testing is a type of testing. This is important to understand because both integration and interoperability testing are typically needed to fully validate how software behaves when a transfer of data or control occurs. In addition, types of testing can be performed at multiple levels of testing as seen in Figure 1.

What is Integration Testing? A Complete Guide to Integration Testing (2)
Figure 1 – Levels and Types of Testing

As an example, integration testing can show what happens when data is sent from one component to another. Interoperability testing can show what happens when someone uses the data that has been exchanged to perform some type of further action.

Integration testing can validate that two or more systems or components can exchange data or control correctly. There are two major levels of integration testing, component integration testing (sometimes called low-level integration testing) as seen in Figure 2 and system integration testing (sometimes called high-level integration testing) seen in Figure 3.

What is Integration Testing? A Complete Guide to Integration Testing (3)
Figure 2 – Component Integration Testing

What is Integration Testing? A Complete Guide to Integration Testing (4)
Figure 3 – System Integration Testing

The main difference is the level at which integration is tested. As we will see later in this article, the complexity increases greatly at the system integration level.

However, interoperability testing is needed to show that the true user need can be achieved in an operational context. Both integration and interoperability testing are typically needed to verify and validate how well software components and systems work together.

Why do we need integration testing?

Research in software testing interactions goes back at least 35 years when some of the first papers were published on the topic of using combinatorial techniques for software testing. At least thirty-eight papers and presentations have been published since that date.

Early methods were based in Latin squares which is another name for orthogonal arrays. The point of the combinatorial techniques for integration testing is to deal with extremely high numbers of possible combinations of test conditions.

This problem is often seen when integration is present between related functions, components, and/or systems, and when the combined test conditions would yield far too many possible test cases to realistically implement and perform.

An example of this need for integration testing is in the domain of medical devices. Obviously, this is a domain where safety criticality is a very high concern and complexity can be very high due to the high number of configuration parameters.

In a research paper published in 2001 by Delores Wallace and Richard Kuhn of the National Institute of Standards and Technology1, over 15 years of medical device recall report data was analyzed. One of the most interesting findings was that “… of the 109 reports that are detailed, 98% showed that the problem could have been detected by testing the device with all pairs of parameter settings.”

This is a significant finding because it suggests that if we could at least test all the pairs of related conditions, we could test where many of the integration defects reside. If testing only pairs of conditions leaves more to be desired, “n-wise” testing can test 3-wise, 4-wise and higher.

This is not an isolated finding and it gives support to the idea of testing related functions, such as in the case of integration testing, with techniques such as pairwise testing to help manage the very high number of possible interactions that could possibly be tested.

NIST has a free tool called ACTS (Automated Combinatorial Testing for Software) that generates test cases based on n-wise testing.

Other domains which also have the need for integration testing which reach almost impossible levels of test condition combinations include automotive (especially with emerging autonomous vehicle technologies), avionics, financial and the Internet of Things (IoT).

While combinatorial testing is helpful and promising, it does have limitations in that it can be somewhat random how the condition combinations are derived. In fact, some important test conditions may be missed altogether. This leaves the need to include other techniques which we explore in this article.

What are the different types of integration testing?

There are some key ways to achieve integration in computing systems. Some are more reliable than others. In Figure 4 we see how these levels of integration can be achieved in a pyramid-like approach.

What is Integration Testing? A Complete Guide to Integration Testing (5)
Figure 4 – Integration Approaches

Point-to-point

This is where integration points are defined one at a time. If there are a significant number of interfaces, the integration can become messy and confusing. Complexity levels can skyrocket, which also increase the likelihood of defects

Testing point-to-point integration can be very tedious, with a potentially large number of tests. This is a context where combinatorial methods, such as pairwise testing, are helpful to reduce the number of tests.

Standards-based

In this approach, the idea is that if you follow a particular standard followed by others, you will achieve integration. This is better than point-to-point integration in terms of complexity, but it relies upon all parties following the standard. This may not be a valid assumption. Integration testing is based on following the standard, but can also test in a negative way to see where the standard may not be followed.

Architecture-based

In this approach, integration occurs when all the components are in the same architectural domain. An example of this is a service-oriented architecture. To be in the architecture, components must follow the same rules for integration.

Therefore, if a service or other component complies with the architecture, integration is assumed. Integration testing is designed and performed at an architectural level. This can be very helpful to also validate interoperability within the architecture.

Using a test plan for integration testing

The process proposed below is based on the concept of test planning. While test planning may be out of style in some organizations, there is still a strong need for such planning especially where integration is concerned.

One of the defining features of integration testing is that of coordination of effort between all parties impacted. For example, in testing the integration between systems that may span organizations, you may need to ensure the people on both sides of the interfaces are available and able to verify the test results.

How to do integration testing?

The process described here is somewhat sequential, but is also iterative and evolving since new information will likely emerge throughout the life cycle of an application.

  1. Assess Applications, Risk and Environments – This involves taking an inventory of applications and functions to be tested (including COTS applications), inventorying interfaces, defining application profiles and listing known application compatibilities and incompatibilities, and performing a risk assessment.
  2. Test Planning – In this activity, the scope of testing is defined, as well as responsibilities and schedule. Also, test and operational environments are defined and the needed test tools are acquired and implemented. It is in this activity that testing efforts are coordinated with affected parties.
  3. Test Design – This is the activity where tests are designed and implemented, including prioritizing tests based on risk and identifying workflow scenarios that cover integration points.
  4. Test Implementation – This is where you create test cases and procedures, along with the test data to support the tests.
  5. Test Execution – In this activity you conduct and evaluate tests along with reporting incidents as failures are seen.
  6. Test Reporting – This is where test findings are reported, including test status reports and the final test report.
  7. Follow-up Testing – This is where follow-up testing such as confirmation testing and regression testing are performed as changes are made to the components and systems.

The Role of API Integration Testing

One of the primary ways integration is achieved today is through Application Programming Interfaces (APIs). While many people mainly think of APIs in a web-based or mobile application context, APIs are also used to interface with operating systems and other system components and applications.

API testing may appear to be straightforward, but it can be rather challenging due to inadequate documentation of the interface. In addition, too often people test only that data can traverse the API, failing to test APIs in negative ways by trying to pass invalid data through the interface, or testing data that has been encoded in a way the receiver doesn’t expect.

The Role of Integration Testing Tools

Tools such as Postman and SoapUI can provide a helpful framework for defining and performing API tests, but there is still a need to manage and report API tests. This is where test management tools such as PractiTest are needed.

Integration Testing Example with PractiTest

PractiTest provides a quick and easy way to organize tests by test level, test phase and other categories, including custom categories.

In Figure 5 we see an integration test to validate purchasing a product from an e-commerce web site. The integration is implemented by the use of APIs and spans several functions such as authentication, product selection, shopping cart, checkout, payment authorization, and purchase confirmation.

What is Integration Testing? A Complete Guide to Integration Testing (7)
Figure 5 – Integration Test in PractiTest

More Integration Testing Examples With Interoperability Testing

Many of my clients have faced a common problem, which is the ability to test integration and interoperability in a “system of systems” context. In this context, various systems must interact together correctly to accomplish the desired outcomes.

The problem arises when point-to-point integration is the primary means of integration. In reality, systems integrate at the component level. So, it is actually components that are passing data and control between each other, spanning systems. An example of this is shown in Figure 6.

What is Integration Testing? A Complete Guide to Integration Testing (8)
Figure 6 – “Point to Point” Integration Between Systems

As an example, suppose one component in one system (A) is changed which impacts the data sent to another system (B). System B may in turn call a function in another system (C). Perhaps these interfaces are all known to a tester so they perform the tests and see that integration and interoperability is achieved correctly.

What is Integration Testing? A Complete Guide to Integration Testing (9)
Figure 7 – “Downstream” Integration Failure

However, let’s also consider the situation where the above scenario also triggers a function in a fourth system (D) (Figure 7). At this point, a failure occurs. The integration and interoperability wasn’t tested because no one considered system D was even part of the picture. Much of this is due to a lack of documentation or knowledge about where integration occurs in this point-to-point approach.

These “downstream” failures can be quite frustrating because it seems at times like you can never test enough.

What is Integration Testing? A Complete Guide to Integration Testing (10)
Figure 8 – The Spider Web Emerges

In this example, the integration takes on a spider web appearance (Figure 8), except spider webs have more order to them! The ability to adequately test integration and interoperability depend on the ability to know where the integration exists. However, this knowledge is often missing or limited which leads to untested interfaces and missed defects.

One proven way I deal with this problem is to focus testing on workflow scenarios (Figure 9). In testing the workflows, you automatically cover the integration points and also validate interoperability.

What is Integration Testing? A Complete Guide to Integration Testing (11)
Figure 9 – Focusing testing on workflow scenarios

In essence, this is end-to-end testing that spans systems. This approach can be applied within a single system as well.

You also gain an economy of testing by taking the scenario view. At the component level, there are many conditions to consider which lead to higher numbers of tests. At the scenario level, it might be possible to test the same coverage of interfaces with a fraction of the test cases needed at the detailed level.

Conclusion

Integration testing can be quite challenging due to the high number of possible integration paths that arise from point-to-point integration approaches which tend to be complex and fragile. However, by applying combinatorial approaches and workflow scenarios, it may be possible to lessen the risk of integration failures.

By Randall W. Rice

Published on:

Randall W. Rice, CTAL

Randall W. Rice is a leading author, speaker, consultant and practitioner in the field of software testing and software quality, with over 40 years of experience in building and testing software projects in a variety of domains, including defense, medical, financial and insurance.

You can read more at his website.

What is Integration Testing? A Complete Guide to Integration Testing (12)

1FAILURE MODES IN MEDICAL DEVICE SOFTWARE: AN ANALYSIS OF 15 YEARS OF RECALL DATA DOLORES R. WALLACE1 and D.
RICHARD KUHN Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg, MD 20899
USA - https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=917180

Related resources

Article

Taming the Chaos: How to Manage Testing in Complex & Robust Environments

Read moreWhat is Integration Testing? A Complete Guide to Integration Testing (13)

Ebook

The 2024 State of Testing™ Report is now live!

Read moreWhat is Integration Testing? A Complete Guide to Integration Testing (14)

Resource center

What is Integration Testing? A Complete Guide to Integration Testing (2025)

FAQs

What is Integration Testing? A Complete Guide to Integration Testing? ›

With integration testing, testers aim to find defects that surface due to code conflicts between software modules when they are integrated with each other. Conflicts between software modules happen for many reasons, such as incompatibility between subsystem versions, data format conflict, or different processing logic.

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 API testing in simple words? ›

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

Is API testing integration testing? ›

API testing is the testing of a set of application programming interfaces (APIs) directly and as part of an integration test to determine if they meet expectations for functionality, reliability, performance, and security.

Who performs integration testing? ›

The integration testing is performed before the system testing and after the unit testing. This specific testing can be executed by QA testers, test engineers, and also developers.

What is a real time example of integration testing? ›

But if different systems are tested in a combined way, then that will be integration testing. For example the fuel system may be tested in collaboration with an exhaust system, and later, these two module's working is tested in collaboration with the working of an engine. Now, this is integration testing.

What are the three types of integration testing? ›

Types Of Integration Testing

Incremental Approach is carried out by 3 different methods: Bottom-up approach. Top-down approach. Sandwich approach.

Does API testing need coding? ›

API testing does require some coding knowledge, as it involves writing test scripts or code snippets to send requests to the API and verify the response.

What tool is API testing? ›

The tool that is most commonly used for API testing is Testim. Testim is a powerful tool for API testing that makes it easy to create and execute automated tests for your API.

Can tester do integration testing? ›

The tester would develop the test scenarios, while the developer would write the script. If they are software developers, testers may be responsible for component integration testing in an Agile or DevOps environment.

Why is integration testing important? ›

Integration testing helps to identify and resolve any issues that may arise when components are combined, such as compatibility issues, performance problems, incorrect communication, or data corruption.

What is the difference between API and integration? ›

What is the difference between API and integration? An API is either an endpoint or a collection of endpoints that allow you to access certain data or functionality from an application; all the while, integration is the process of making independently-designed systems communicate with each other.

What is another name for integration testing? ›

Integration testing, also called integration and testing, abbreviated I&T, is a form of software testing in which multiple parts of a software system are tested as a group. Integration testing describes tests that are run at the integration-level to contrast testing at the unit or system level.

Which tool is used for integration testing? ›

Protractor is widely used for integration testing, as it allows developers to test the interactions between various components of an application and ensure that they work seamlessly together.

How to write test cases for integration testing? ›

Create test cases : Prepare test cases for each scenario and define the input and expected outputs. Set up test environment : Create a test environment that closely mirrors the production environment for better test accuracy. Execute test cases : Run the test cases created and note the test results as (pass/fail/NA)

What is the difference between integration testing and testing? ›

Unit Testing is a kind of white box testing, whereas Integration Testing is a kind of black-box testing. For Unit Testing, accessibility of code is required, as it tests the written code, while for Integration Testing, access to code is not required, since it tests the interactions and interfaces between modules.

What is another name for integration test? ›

Integration testing, also called integration and testing, abbreviated I&T, is a form of software testing in which multiple parts of a software system are tested as a group. Integration testing describes tests that are run at the integration-level to contrast testing at the unit or system level.

What is the difference between integration testing and regression testing? ›

Integration testing verifies how the individual modules work when integrating with other modules. Regression testing checks new changes, and bug fixes can't affect the existing functionalities of a system.

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Lidia Grady

Last Updated:

Views: 5635

Rating: 4.4 / 5 (45 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Lidia Grady

Birthday: 1992-01-22

Address: Suite 493 356 Dale Fall, New Wanda, RI 52485

Phone: +29914464387516

Job: Customer Engineer

Hobby: Cryptography, Writing, Dowsing, Stand-up comedy, Calligraphy, Web surfing, Ghost hunting

Introduction: My name is Lidia Grady, I am a thankful, fine, glamorous, lucky, lively, pleasant, shiny person who loves writing and wants to share my knowledge and understanding with you.