|
Notes > Software Analysis / Testing > Integration Testing
|
Integration testing is a typically incremental process which involves testing whether individual modules within a system interact correctly. Integration testing can be applied to non-object-oriented systems as well as object-oriented systems. Different approaches are required for each.
Non-object-oriented hierarchy based systems can have the following integration testing techniques applied to them:
- Top-down Integration Testing
- Bottom-up Integration Testing
- Sandwich Integration Testing
Object-oriented systems do not typically have a hierarchical structure therefore the above integration testing techniques are not appropriate. Object-oriented systems can be tested using:
- Use-based Testing
- Thread-based Testing
Stubs and Drivers
Stubs and Drivers are an essential part of integration testing. They enable parts of a system which have not yet been developed to be simulated.
A Test Driver is a specially designed user interface which enables test data to be inputted and passed to a sub-system which is being tested. A test driver is only used in testing and does not have any place in the final system.
A Stub replaces a module which has not been fully implemented. A stub mimics the behaviour required by another module (the sub-system which is being tested). The cost of developing stubs and drivers can be quite high if they are complex.
Top-down Integration Testing
Top-down integration testing involves starting at the stop of a system hierarchy at the user interface and using stubs to test from the top down until the entire system has been implemented. There is no need for test drivers as the user interface provides the means to enter test data. Using Top-down integration testing means that there is a visible system with a certain level of functionality early on. This can prove useful for the customers / users of the system as they will be able to see what it looks like from an early stage.
Bottom-up Integration Testing
Bottom-up integration testing is the opposite of Top-down integration testing. Sub-systems are initially formed at the bottom of the system hierarchy. These are then tested and added to the modules above them to form larger sub-systems which are then tested. Bottom-up integration testing requires the heavy use of drivers instead of stubs.
Sandwich Integration Testing
Sandwich integration testing involves both bottom-up and top-down integration testing techniques. It involves starting at the bottom and top of the system hierarchy, meeting halfway down the hierarchy. Sandwich integration testing uses both stubs and drivers.
Use-based Testing
Use-based testing involves looking at the most basic classes first of all. These classes, which do not access many external methods, are used to form sub-systems which are tested in the first stage of integration testing. Next, the classes that are linked to these sub-systems are then included to make slightly larger sub-systems which are then tested.
Thread-based Testing
Thread-based testing involves integrating and testing a set of classes which interact to provide some specific input/output behaviour. No stubs or drivers are required for this form of testing.
Search for "Integration Testing" on:
Google |
Kelkoo |
Amazon |
eBay (UK) |
eBay (US)
Search for "Integration Testing" on the rest of Computing Students: Integration Testing
|
|
|