Skip to main content

Failure after acceptance testing; integration testing

Short answer

Acceptance testing covers limited scenarios, so real environments, data volumes, non-functional requirements, changing requirements, integration, and training can still cause failure. Integration testing combines tested modules to find interface and interaction errors using big-bang, top-down, bottom-up, or sandwich approaches.

Why does software project fail after it has passed through acceptance testing? Explain integration testing.

Why software fails after passing acceptance testing

Acceptance testing only shows that the system passed the tests that were run, in the conditions that were set up. A project can still fail in operation because:

  • Limited test cases: acceptance tests cover the main scenarios with test data, not all real data and usage.
  • Different operating environment: real hardware, network, data volume and number of users differ from the test environment, so performance or reliability problems appear.
  • Non-functional requirements not tested: security, scalability, load and long-run reliability are often not checked fully.
  • Changing or misunderstood requirements: users' needs change, or the requirements were wrong from the start.
  • Unrepresentative testers: customer staff who accept the system may not be its daily users.
  • Integration and data migration problems with other live systems.
  • Poor training, user resistance and weak maintenance support.

Integration testing

Integration testing is the testing of combined components or modules to find errors in their interfaces and interactions, after each unit has been tested. Approaches:

  • Big bang: all modules combined at once; errors are hard to locate.
  • Top-down: start from the main module, using stubs for lower modules.
  • Bottom-up: start from the lowest modules, using drivers; clusters are combined upward.
  • Sandwich: a mix of top-down and bottom-up.

Typical errors found: wrong parameters, misunderstood interfaces, shared data problems and timing errors between modules.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Software Engineering chapter 8 questions →