Software Integration Testing
Software Integration Testing is the incremental Integration Testing of two or more integrated software components on a single platform to produce failures caused by interface defects. Software Integration Testing can test failures involving the interactions of the integrated software components when running on a single platform. To Report these failures to the software development team so that the underlying defects can be indentified and fixed. Software Integration testing also can help the software development team to stabilize the software so that it can be successfully distributed prior to system testing. Software Integration testing involves several testing tasks: test planning, test reuse, test design, test implementation, test execution, and test reporting.
Software integration testing can be performed in several different ways based on where you start testing and in which direction you are progressing:
- Big bang Software Integration testing - In big bang Software integration testing, individual modules of the programs are not integrated until everything is ready. This approach is seen mostly in inexperienced programmers who rely on 'Run it and see' approach. In this approach, the program is integrated without any formal Software integration testing, and then run to ensures that all the components are working properly.
- Top down Software integration testing - Top down Software Integration Testing is an incremental Integration Testing technique which begins by testing the top level module and progressively adds in lower level module one by one. Lower level modules are normally simulated by stubs which mimic functionality of lower level modules. As you add lower level code, you will replace stubs with the actual components.
- Bottom up Software Integration Testing - In bottom up Software Integration Testing, module at the lowest level are developed first and other modules which go towards the 'main' program are integrated and tested one at a time. Bottom up integration also uses test drivers to drive and pass appropriate data to the lower level modules. As and when code for other module gets ready, these drivers are replaced with the actual module.
Software Integration Testing is the most crucial step in Software Development Life Cycle. Different components are integrated together and tested. This can be a daunting task in enterprise applications where diverse teams build different modules and components.