Integration Testing in Software Testing

       Definition of Integration Testing
In this phase of software testing, individual modules are combined and tested as a group which will form the complete application. Through integration testing we are actually constructing the application and at the same time we are testing the different components of the application.

Integration testing tests below scenarios:
1)  Interface between different components of the application are tested. It is basically how the different components interact together and perform specified functionality.
2)  Interaction between different parts of the system can be identified with help of integration testing.
3)  Integration testing is performed after successful completion of unit testing.
4)  Integration testing tests communication between two modules not the individual module.
5)  Performance testing can be a part of integration testing.

STLC, Integration testing example, web applications
Phases of Sotware Testing 

Who performs Integration Testing ?
Integration testing is performed by software tester. The tester prepares test cases for different scenarios and tests the integrated modules as a whole.

The basic template of integration testing is as follows.
1) Test Case ID – Unique test ID is mentioned.
2) Test Case Objective. – Objective of the test case is given
3) Test Case description – Brief description of the test case
4) Excepted result
5) Observed Result– Pass or Fail

How Integration Testing is performed

There are three approaches to carry out integration testing

A. Big Bang Integration Testing approach:
In this type of integration testing, all the modules are linked together and then testing is done. This type of testing approach has many disadvantages. It is difficult to identify the error in any specific module. There are maximum chances that many of the critical errors can be missed and which may caught at higher level of testing.
The below mentioned two approaches are better approaches to carry out integration testing successfully.

B. Incremental Integration testing approach:
In incremental integration testing approach, modules are added from top or bottom to form a complete system. As the modules are added, simultaneously they are also tested.

         1) Top Down Integration Testing approach
In Top down Integration testing approach, the modules are added from the bottom. First the top modules are tested and once they are tested successfully, other modules are added. Testing is done with help of stub. Stub is a module which is similar to the other bottom modules, but doesn’t contain all the functionalities of bottom modules. There is no requirement of the driver or the main program because testing is done from the starting of the system. (Learn more about drivers and stub in Sotware Testing)

         2) Bottom Up Integration Testing approach
In bottom up approach, the modules which are at the bottom are tested first and then modules which are at the top are added and tested. The requirement of the stub has been eliminated as bottom modules are tested first. The driver or main program has been added, as the top module is tested last.

Benefits of Integration testing

1) Integration testing prevents costly bugs to be caught at higher level of testing like system testing and acceptance testing.
2) Integration testing allows easy debugging of modules of the application.
3) It allows investigation of performance of the application at module level.
4) It makes it easy to locate the error at modular level.
5) Interaction between modules can be analyzed properly and loose ends can be tied up.

Conclusion

Integration testing is a crucial phase of software development (SDLC) as all the modules which are performing different tasks are integrated together and are tested. The overall performance of the application depends on the success or failure of the modules and communication between them.
We have gone through two testing approaches- first is big bang approach and the other is incremental approach. Incremental approach is one of the effective and accurate approaches.
Incremental approach has its own merits and demerits. It is entirely dependent on the software being developed. Some applications need integration testing and there are some which never need it. We can even skip the incremental testing if our system does not require it. However, incremental integration testing is one of the most reliable tests which can help in development of an efficient and error application.

Copyright © ianswer4u.com