One of the concepts that must be learned if you are preparing to earn your ISEB / ISTQB software testing certification (specifically, the ISEB Foundation / ISTQB Foundation level) is integration testing. This is a logical expansion of unit testing and involves the act of combining individual software modules together so they can be tested as a group.
It is typically executed before system testing but after unit testing, essentially grouping together individual unit-tested modules as the testing inputs or entry criteria. Test cases are created to explicitly test the interfaces between the various modules or components. The objective is to ensure that the interaction of multiple dependant components satisfies the requirements surrounding performance, reliability, and functionality. The process is said to be complete when all the interfaces function as expected.
Integration testing can be conducted using a big bang, top down, or bottom up approach. In the big bang method, most or all of the modules are grouped together to create the complete system. This has the benefit of saving time in the testing process, but relies on the accurate recording of test cases and results. In the top down approach, the highest level components are integrated and tested first, thereby allowing the top level rules and logic to be validated early in the overall process. This helps to reduce the need for drivers, but the necessity of stubs tends to complicate matters. The bottom up approach is the opposite of this; specifically, the lowest level components are integrated and tested first. The benefit is that the need for stubs is reduced, but on the downside this approach relies on drivers which can complicate the process.
In summary, integration testing is useful for testing complex systems with components or modules that interface together at various levels. The process of validating these interfaces and dependencies helps ensure that defects are identified and fixed before the program or application is released into the market.
Filed Under: Software Testing