Integration Testing

Integration Testing

Software Acceptance Testing

Test basis

  • Software and system design
  • Architecture
  • Workflows
  • Use cases

Typical test objects

  • Sub-systems database implementation
  • Infrastructure
  • Interfaces

Configuration data

Integration testing tests interfaces between components, interactions with different parts of a system, such as the operating system, file system and hardware, and interfaces between systems.

There may be more than one level of integration testing and it may be carried out on test objects of varying size as follows:

      1. Component integration testing tests the interactions between software components and is doneafter component testing
      2. System integration testing tests the interactions between different systems or betweenhardware and software and may be done after system testing. In this case, the developing organization may control only one side of the interface. This might be considered as a risk,. Business processes implemented as workflows may involve a series of systems. Cross- platform issues may be significant.

The greater the scope of integration, the more difficult it becomes to isolate failures to a specific component or system, which may lead to increased risk and additional time for troubleshooting.

Systematic integration strategies may be based on the system architecture (such as top-down and bottom-up), functional tasks, transaction processing sequences, or some other aspect of the system or components. In order to ease fault isolation and detect defects early, integration should normally be incremental rather than “big bang”.

Testing of specific non-functional characteristics (e.g., performance) may be included in integration testing as well as functional testing.

At each stage of integration, testers concentrate solely on the integration itself. For example, if they are integrating module A with module B they are interested in testing the communication between the modules, not the functionality of the individual module as that was done during component testing. Both functional and structural approaches may be used.

Ideally, testers should understand the architecture and influence integration planning. If integration tests are planned before components or systems are built, those components can be built in the order required for most efficient testing.