Because object-oriented software does not have a
hierarchical control structure, conventional top-down and
bottom-up integration strategies have little meaning. In
addition, integrating operations one at a time into a class (the
conventional incremental integration approach) is often
impossible because of the “direct and indirect interactions of
the components that make up the class”.
There are two different strategies for integration testing
of OO systems:
1) The first, thread-based testing, integrates the set of
classes required to respond to one input or event for the
system. Each thread is integrated and tested individually.
Regression testing is applied to ensure that no side effects
occur.
2) The second integration approach, use-based testing,
begins the construction of the system by testing those
classes (called independent classes) that use very few (if
any) of server classes. After the independent classes are
tested, the next layer of classes, called dependent classes,
that use the independent classes are tested. This sequence of
testing layers of dependent classes continues until the entire
system is constructed. Unlike conventional integration, the
use of drivers and stubs as replacement operations is to be
avoided, when possible.