Labs ICT
โญ Pro Login

Integration Testing Strategies

Top-down, bottom-up, and sandwich integration approaches.

Integration Testing Strategies

Integration testing verifies that different modules work correctly when combined. Choosing the right integration strategy helps find interface defects and interaction problems between components.

Integration Approaches


  +---------------------------------------------------------+
  |           INTEGRATION TESTING STRATEGIES                 |
  +---------------------------------------------------------+
  |                                                         |
  |   TOP-DOWN                                              |
  |   - Start with high-level modules                       |
  |   - Use stubs to simulate lower-level modules           |
  |   - Tests main control flow early                       |
  |                                                         |
  |   BOTTOM-UP                                             |
  |   - Start with low-level utility modules                |
  |   - Use drivers to simulate higher-level modules        |
  |   - Tests utility functions first                       |
  |                                                         |
  |   SANDWICH (HYBRID)                                     |
  |   - Combine top-down and bottom-up                      |
  |   - Test middle layers from both directions             |
  |                                                         |
  |   BIG BANG                                              |
  |   - Integrate all modules at once                       |
  |   - Simple but hard to debug failures                   |
  |                                                         |
  +---------------------------------------------------------+

Stubs and Drivers


  // STUB: Simulates a lower-level module (top-down testing)
  public class PaymentGatewayStub implements PaymentGateway {
      public PaymentResult charge(double amount) {
          return new PaymentResult(true, "stub-response-123");
      }
  }

  // DRIVER: Simulates a higher-level module (bottom-up testing)
  public class PaymentGatewayDriver {
      public static void main(String[] args) {
          PaymentGateway gateway = new RealPaymentGateway();
          PaymentResult result = gateway.charge(100.0);
          assert result.isSuccess();
      }
  }

Interface Testing

Integration defects often occur at module boundaries. Key areas to test include:

  • Data format mismatches between modules
  • Null or missing parameters
  • Incorrect return values
  • Timing and sequencing issues
  • Resource sharing and concurrency

Key Takeaways

  • Top-down testing catches design defects early
  • Bottom-up testing verifies utility modules first
  • Stubs and drivers isolate modules during testing
  • Focus integration testing on module boundaries

๐Ÿงช Quick Quiz

What is the top-down integration testing approach?