A group of dependent components are tested together to ensure their quantity of their integration unit.
The objective is to take unit tested components and build a program structure that has been dictated by software design. The focus of integration testing is to uncover errors in design and construction of software architecture, Integrated functions or operations at subsystem level, Interfaces and interactions between them and resource integration or environment integration.
The integration testing can be carried out using two approaches. They are non-incremental integration and incremental integration.
The non incremental integration is given by the big bang approach. All component are combined in advance. The entire program is tested as a whole. A set of error is tested as a whole. Correction is difficult because isolation of causes is complicated by the size of the entire program. Once these errors are corrected new ones appear. This process continues infinitely
Advantages of big-bang: This approach is simple.
Disadvantages: It is hard to debug. It is not easy to isolate errors while testing. It this approach it is not easy to validate test results. After performing testing, it is impossible to form an integrated system.
An incremental construction strategy includes:
- Top down integration
- Bottom up integration
- Regression testing
Top down testing is an incremental approach in which modules are integrated by moving down through the control structure. Modules subordinate to the main control module are incorporated into the system in either a depth first or breadth first manner.
Integration process can be performed using following steps: The main control module is used as a test driver and the stubs are substituted for all modules directly subordinate to the main control module. Subordinate stubs are replaced one at a time with actual modules using either depth first or breadth first method. Test are conducted as each module is integrated. On completion of each set of tests, another stub is replaced with the real module. Regression testing is conducted to prevent the introduction of new errors.
In top down integration if the depth first approach is adopted then we will start integration from module m1 then we will integrate m2 then m3, m4, m5, m6 and then m7.
If breadth first approach is adopted then we will integrate module m1 first then m2, m6. Then we will integrate module m3, m4, m5 and finally m7.
Bottom Up Integration Testing:
In bottom up integration the modules at the lowest levels are integrated at first, then integration is done by moving upward through the control structure.
The bottom up integration process can be carried out using following steps: Low level modules are combined into clusters that program perform a specific software sub function. A driver program is written to co-ordinate test case input and output. The whole cluster is tested. Drivers are removed and clusters are combined moving upward in the program structure.
First components are collected together to form cluster 1 and cluster 2. Then each cluster is tested using a driver program. The clusters subordinate the driver module. After testing the driver is removed and clusters are directly interfaced to the modules.
Regression Testing:
Regression testing is used to check for defects propagated to other modules by changes made to existing program. Thus regression testing is used to reduce the side effect of the changes.
There are three different classes to text cases involved in regression testing they are representative sample of existing test cases is used to exercise all software functions. Additional test cases focusing software functions likely to be affected by the change. Tests cases that focus on the changed software components.
After product had been deployed, regression testing would be necessary because after a change has been made to the product an error that can be discovered and it should be corrected. Similarly for deployed product addition of new feature may be requested and implemented. For that reason regression testing is essential.
First components are collected together to form cluster 1 and cluster 2. Then each cluster is tested using a driver program. The clusters subordinate the driver module. After testing the driver is removed and clusters are directly interfaced to the modules.
Regression Testing:
Regression testing is used to check for defects propagated to other modules by changes made to existing program. Thus regression testing is used to reduce the side effect of the changes.
There are three different classes to text cases involved in regression testing they are representative sample of existing test cases is used to exercise all software functions. Additional test cases focusing software functions likely to be affected by the change. Tests cases that focus on the changed software components.
After product had been deployed, regression testing would be necessary because after a change has been made to the product an error that can be discovered and it should be corrected. Similarly for deployed product addition of new feature may be requested and implemented. For that reason regression testing is essential.
Post Your comments,Views and thoughts Here, Give Us Time To Respond Your Queries