Catalog
concept#Integration#Quality Assurance#Software Engineering

Integration Testing

Verifies interactions between components and services by testing interfaces, data flows, and contracts.

Integration testing verifies interactions between components or services to detect interface defects, data flow problems, and integration risks early.
Established
Medium

Classification

  • Medium
  • Technical
  • Architectural
  • Intermediate

Technical context

CI/CD systems (e.g. Jenkins, GitHub Actions)Container platforms (Docker, Kubernetes)Test frameworks and libraries (e.g. JUnit, Testcontainers)

Principles & goals

Define and version test interfaces explicitly.Integrate automation into the pipeline as early as possible.Use isolated test environments to minimize side effects.
Build
Domain, Team

Use cases & scenarios

Compromises

  • False stability due to excessive mocking of external systems.
  • Lack of maintenance leads to outdated integration suites.
  • High flakiness due to unstable test environments.
  • Use contract tests alongside integration tests.
  • Maintain test data and masking strategies.
  • Prioritize deterministic tests and reduce external dependencies.

I/O & resources

  • API specifications and contracts
  • Test data or masked production data
  • Access to dependent systems or their stubs
  • integration defect reports
  • automated test artifacts for CI
  • recommendations to improve contracts and interfaces

Description

Integration testing verifies interactions between components or services to detect interface defects, data flow problems, and integration risks early. It combines automated and manual tests to validate contracts, dependencies, and external integrations. Used across microservices, APIs, and data pipelines to reduce production failures.

  • Early detection of interface and integration defects.
  • Reduced cost of remediation in production.
  • Improved confidence in dependent systems and contracts.

  • More effort to set up and maintain than pure unit tests.
  • Can become slow and slow down CI pipelines.
  • Limited value if the test environment lacks production parity.

  • integration failure rate

    Share of integration tests that detect failures in a run.

  • average test runtime

    Mean runtime of integration suites in the CI/CD pipeline.

  • flakiness rate

    Proportion of unstable tests that yield inconsistent results.

Bank API integration test

Test of a payment flow across multiple microservices including external account connectors.

Search index update in data pipeline

Verifies that production data changes are correctly propagated through ETL steps into the search index.

OAuth token renewal flow

Validates token renewal across auth service and consuming APIs with simulated network failures.

1

Define integration boundaries and contracts to verify.

2

Set up isolated test environments (containers/sandbox).

3

Automate integration suites and integrate them into CI.

4

Measure runtimes and flakiness, and optimize critical tests.

⚠️ Technical debt & bottlenecks

  • Outdated test data sets and missing masking.
  • Legacy stubs and brittle mocks without documentation.
  • Insufficient test infrastructure scaling under load.
slow test executionunstable test environmentlack of data parity
  • Relying on integration tests instead of unit tests for business logic.
  • Ignoring flaky tests and simply silencing failures.
  • Building huge monolithic integration suites without prioritization.
  • Insufficient isolation leads to non-reproducible failures.
  • Missing metrics prevent targeted optimization.
  • Integration suites run too late in the pipeline slow development.
test architecture and strategyknowledge of CI/CD and containerizationAPI design and contract testing
Interface specifications (contracts)Test environment parity with productionFast feedback cycles in CI/CD
  • Limited test access to third-party sandboxes
  • Restrictions on sensitive production data
  • Infrastructure costs for realistic integration environments