Integration strategy stands for HOW individual modules will be combined together during Integration testing.
The individual modules can be combined together in one go or they can be joined one by one. A decision on how to put the pieces together is called the Integration Strategy.
There are 3 strategies – Big Bang, Top Down Integration & Bottom Up Integration.
If the modules are all integrated together in one shot, it is called Big Bang. Big Bang is not preferred because it is difficult to find out which module interfaces caused the errors.
So, the modules can be put together in two other typical ways, they can integrated from the top to bottom or bottom to top.
In Top Down Integration, the main program or the calling program is written first. Then this calls the components below. If a component below is yet to be developed, it is replaced by a passive(temporary) component called Stub.
In Bottom Up Integration, we move from the bottom to top i.e. the components below are first written and these are integrated first. The integration happens from bottom to top. If the calling component is yet to be developed, it is replaced by a specially written component called a Driver.
To illustrate this with a live example, let us consider the Yahoo.com page.
From the Yahoo homepage or main page, a User can click on Mail, News, Shopping or Finance links.
When he clicks on Mail, he is taken to the Yahoo mail page, from where on a successful login, he sees his Inbox, Sent Items, Contacts etc.
Each of these is represented as a module or component below. (Disclaimer: this is just for sample purposes)
In Big Bang, all components are put together at the same time, there is no order, except all are integrated at the same time.
In Top Down Integration, the order of integration could be:
1. Yahoo Homepage with Mail
2. Yahoo Homepage with News
3. Yahoo Homepage with Shopping
4. Yahoo Homepage with Finance
5. Mail with Inbox
6. Mail with Sent
7. Mail with Contacts
If News module is not fully coded, it is replaced by a skeletal implementation of the component called a STUB. For eg. a static page with this a message this Page is still under construction. A Stub is called by other components.
In Bottom-Up Integration, the order of Integration could be:
1. Contacts with Mail
2. Sent with Mail
3. Inbox with Mail
4. Mail with Yahoo Homepage
5. News with Yahoo Homepage
6. Finance with Yahoo Homepage
7. Shopping with Yahoo Homepage
Opposite of top-down integration, the components here are integrated in a bottom-up order. If the ‘Yahoo Homepage’ is yet to be fully built, special components called ‘DRIVERS’ are used to test the integration. The Drivers are later replaced by the full code. As we can see, Drivers are more complicated than stubs.