Integration testing is a part of software testing in which individual units are combined together and then tested as a group. It is usually done after unit testing. Integration testing is usually done to rectify the faults occurred in interfaces and integrated units. Test drivers and test stubs can be used to assist integration testing.
Method of Integration Testing:
Black box testing, white box testing and gray box testing methods can be used for integration testing.
Black box testing is also known as behavioral testing. In this design, internal structure and implementation of item being tested is not known to the tester. Such tests can be functional or non-functional. Functional testing is the most used one.
White box testing also known as transparent box testing, code-based testing, structural testing, open box testing, clear box testing or glass box testing. In this method, design, internal structure and implementation of item being tested is known to the tester.
Gray box testing is a type of software testing which is a combination of black box testing and white box testing.
Read Also: Popular Software Testing Misconceptions
Approaches in Integration Testing Services:
Big Bang Approach
In this approach, all the units are combined together and tested at one go.It is usually done when the testing team receives the software as a bundle. Big Bang integration testing tests only the faults in interaction between the units.
It is usually done when the testing team receives the software as a bundle. Big Bang integration testing tests only the faults in interaction between the units.
More convenient for small systems
It is difficult for fault localization
Some interface link can be easily neglected
Testing team will get only less time for execution
As all modules are tested together, there will be no separate priority given for highly risky critical modules and peripheral modules
2. Incremental Approaches
Logically related two or more modules are joined together and tested.
Incremental approach can be done in two methods:
a. top down
b. bottom up
a. Top Down Approach
In this approach, top level units are tested first and then lower level units are tested step by step. In order to stimulate lower level units test stubs can be added. Test stubs may not be available during the initial phases.
Easier fault localization
Prototype can be obtained early
Design flaws of critical modules can be found and fixed
Need for several stubs
Lower level modules are tested badly
b. Bottom up approach
Here bottom levels are tested first and then top levels are tested step by step. Here testers stimulate higher level units which may not be available during the initial phases.
Easier fault localization
No time wasted for unnecessary testing of all modules
Higher probability for defect as they test critical modules at the very last moment
No possibility for early prototype
3. Sandwich or Hybrid Approach
This approach is an integration of bottom-up and top-down approach. Hence the advantages of top-down and bottom-up approach can be applied here also.
You May also Like: 6 Automation Tools for iOS App Testing
Procedures to be followed for integration testing:
a. Develop the integration test plan
b. Cases, scripts and test scenarios are to be designed
c. Test cases are executed and reporting the defects
d. Defects are tracked and re-tested
e. Repeat step 3 and step 4 after the successful completion of integration testing services
Best practices for integration testing services:
Determine an acceptable integration test strategy and develop test cases and accordingly test data
Analyze the application’s architecture design and identify the critical module.
Interface design can be obtained from architectural team and you can create test cases to verify all of the interfaces. Interface to external hardware, software application and interface to application must be tested thoroughly.
After completing test case, the next task is to test data
While executing test cases, it is advisable not to select test data
Integration testing is one of the easiest type of software testing and is one of the crucial step in software development life cycle.