Integration testing is defined as testing where the software modules are integrated logically and tested as an gaggle. A software project consists of many software modules which are coded by the programmers. The purpose of this level is to expose defects in the interaction between these software modules if they are integrated.
Integration testing focuses on checking the data communication amongst these modules. It is called as I & T, String Testing and Thread testing.
Integration testing Approaches are:
- Big bang approach
- Incremental approach- which has divided into
- Top down approach
- Bottom approach
- Sandwich approach
1. Big bang approach:
Big bang approach is an integration testing procedure in which all components or modules are integrated together at once and then tested as unit. This combined set of components in the unit are not completed, the integration process will not execute.
It is convenient for small systems
1. Fault localisation will be difficult.
2. It is given the sheer number of interfaces that need to be tested in that approach; some interfaces link to be tested can be missed easily.
3. This integration testing can start only after all modules are designed where the testing team will not have not much time for executing the test phases.
2. Incremental approach:
Incremental approach is done by integrating two or more modules that are logically connected to each other and then tested for the proper functioning of the application. The other modules which are related are integrated and tested successfully.
Incremental approach is carried out by two different methods
- Bottom Up
- Top down
Stubs and drivers:
Stubs and drivers are dummy programs in integration testing used to facilitate the software testing. These programs behave as substitutes for missing models in the testing.
Stub – It is called by the module under test.
Driver- Calls the module to be tested.
2.1. Bottom-up approach:
Bottom up approach is a strategy in which the lower level modules are tested first. These tested modules are further used to facilitate the testing of higher level modules. This process continues until all the modules are tested.
Bottom up approach
- In this fault localisation is easier.
- The time is not wasted waiting for all the modules to be developed like big bang approach.
- The critical modules which control the flow of application are tested last and may be encountered to defects.
- The early prototype is not possible.
2.2. Top down approach
In this approach, the integration testing is done from top to bottom which follows the control flow of software system. These higher level system modules are tested first and then lower level modules are tested and integrated in order to check the software functionality. Stubs are used for testing if some modules aren’t ready.
1. Fault localisation will be easier.
2. Possibility to obtain an early prototype.
- Needs much of stubs
- Modules are tested at lower levels .
- Integration testing example
To test this scenario, we have to login to the system. We will see the account summary check with before summary and check with after summary with checking account and savings account. As a tester we have to verify with both checking and savings account. Testers should see that, after the transfer operation the same amount should reflect in the checking account as well as savings account. Here the priority is given to the login page, checking and savings account. Each of the modules is integrated logically.
- The description of integration test plans
- Methods or approaches of testing
- Scopes and also out of scopes products of integration testing.
- Roles and responsibilities
- Testing environment.
- Risk and mitigation plans.