Integration testing is an intermediate stage between modular testing and system check-up. In the process of software testing are arranged and studied in complex. As a rule, smaller modules are integrated into bigger ones. The purpose of such integration of several modules into one group is to check whether these units meet functional and acceptance criteria. The testing itself is done with the help of the so-called “Black box” method when there’s no access to product’s source code.
Pretty often, integration testing is compared to modular testing which helps to assess the correct performance of separate modules of product’s code. The difference between modular and integration testing lies in their goals, and, as a result, in the methods they’re carried out with.
Thus, when we do integration testing, the emphasis is made on the analysis of interaction among interface objects. Such integration testing is done on two levels: component and system ones. The first level, component level, assesses system components behavior by the results of component testing. Accordingly, on a system level a testing specialist checks interaction among the systems by the results of system testing. As a rule, two ways of merging modules in groups are singled out:
- Monolithic (when all system modules are merged simultaneously);
- Incremental (when system modules are merged step by step).
Incremental way has two approaches to modules merging:
- Descending testing: at the first stage, modules of higher level are checked. After that, they are gradually merged with low-level ones. In the process of testing low-level modules are replaced with the so-called plugs with the same functionality. Later, these plugs are replaced with real low-level modules.
- Ascending testing: low-level modules are analyzed. This method is considered to be more effective when all modules are low-level. At this stage of testing it is possible to assess the level of readiness of the product under testing.
The results of integration testing can show mistakes in the process of module merging. In order to avoid them, a test plan if testing separate modules is made. After testing separate modules, they can be merged based on the peculiarities of their testing.