| Usama Muhammed Ashraf
Methodologies OR Strategies OR Approaches of Integration Testing
Following are the methodologies or strategies or approaches which are used to perform Integration Testing in a more efficient way:
Incremental Approach
Top-Down Approach
In Top down approach as name indicates to test the upper modules or higher modules first and then test the lower modules of the software and integrated in order to check the functionality. In this method integration testing take place from top to bottom following the control flow of software system. In this approach testers first identified the bugs or defects in higher modules at the time of integration, if any of the modules contain bugs or defects then first will fix it then follow the further process to test the lower modules.
Stub
It is a temporary program. It is used at the time of integrating the modules from top to bottom and in case any module is missing then the “STUB” will use in the place of that missing module.
Advantages
- Fault localization is easier
- Possibility to obtain early prototype
- No drivers are required in this approach
Disadvantages
- Stub modules are essential while using this approach
- Test conditions may be difficult to create
- Modules at lower level are tested inadequately
Bottom-Up Approach
In this approach, lower level of module tested first to facilitate the higher modules. The process continues until all lower modules are not tested. Once the lower level modules tested completely then next level of modules formed. In this approach tester identify bugs or defects in lower levels to take better result after the integration of higher modules. If any of the modules contain bugs or defects in lower level then first will fix these bugs then integrate higher modules.
Drivers
It is also a temporary program. It is used at the time of integrating the modules from bottom to top and in case any module is missing from lower level to higher level this temporary program called “Driver” will use in the place of that missing module.
Advantages
- Test conditions are easy to create
- No need to add stubs
- No time wasted to wait for the modules to be developed
Disadvantages
- Driver modules are essential
- An early prototype is not possible
- Critical modules which control the flow on higher level of application are tested last
Sandwich or Hybrid Approach
It is the combination of Top-Down and Bottom-Up approaches. In this strategy or approach lower level modules are tested with top level modules and at the same time top level modules are integrated with lower level modules and tested as a whole system. In this approach STUBS and DRIVERS both are used as temporary programs that’s why we called it Hybrid or Sandwich Approach of integration testing.
Non Incremental Approach
Big Bang Approach
In this approach all modules must be tested on Unit Level, after that all modules are combined and perform integration testing on it. All modules will behave like a single Unit. In Big Bang approach all modules integrated in one go, it does not go for integrating one by one. Practically this approach is using for small systems. If once an error is found during the integration testing, it is very difficult to localize the error as the error may potentially belong to any of the modules being integrated. So, debugging errors reported during big bang integration testing are very expensive to fix.
Advantages
- Used for small systems
- Error identified after integrating the modules
Disadvantages
- Not used in large or complex software or system
- High risk critical modules are not isolated and tested on priority since all modules are tested at once.
- Fault localization is difficult to identify
- Since the Integration testing can commence only after “all” the modules are designed, the testing team will have less time for execution in the testing phase.
Conclusion
Integration testing is important to perform after integrating the individual modules because if modules are working on individual level then we do not verify it after the integration then it causes a lot of problems in the end and it is harder to fix. It plays an important role in software testing process to ensure the functionality of software or application for delivering good quality software at the end according to the client or given requirements.
The above mentioned approaches are using according to the required conditions. Testers or Developers can use these approaches of integration testing to verify the desired functionalities of the application or software. All approaches contain advantages and disadvantages according to their usage, but very useful to identify bugs or defects after integrating different modules.
Join us next time, as we continue our journey of learning canvas apps.Click here to learn more about Imperium's Power Apps Services. We hope this information was useful, and we look forward to sharing more insights into the Power Platform world.