Sandwich Testing is the combination of the bottom-up approach and top-down approach, so it uses the advantage of both the bottom-up approach and top-down approach. Initially, it uses the stubs and drivers where stubs simulate the behavior of a missing component. It is also known as Hybrid Integration Testing.
Prerequisite – Software Testing | Basics, Types of Software Testing
Strategy used in Sandwich Testing:
- It combines both top-down and bottom-up strategies.
- Sandwich testing is basically viewed as 3 layers:
- (i) Main target layer
- (ii) A layer above the target layer
- (iii) A layer below the target layer
- In sandwich testing, testing is mainly focused for main target layer. This testing is selected on the basis of system characteristics and structure code.
- It tries to minimize the number of hubs and drivers when there are more than 3 layers.
How to perform Sandwich Testing?
There are 3 simple steps to perform sandwich testing which are given below.
- Test the user interface in isolation using stubs.
- Test the very lowest-level functions by using drivers.
- When the complete system is integrated only main target (middle) layer remains for final test.
For example:
Advantages of Sandwich Testing:
- Sandwich Testing approach is used in very large projects having sub projects.
- It allows parallel testing.
- It is time saving approach.
- Itperforms more coverage with same stubs.
- Itcan be used to test both the functional and non-functional aspects of a system.
- It can be used to test systems with complex dependencies.
- It can be used to test systems with complex data structures.
- It can be used to test systems with complex algorithms.
- It is an effective way to test both the functionality and the performance of an application.
- It is a well-defined process that can be easily repeated and documented.
- It can be used to test applications of all sizes and complexity.
- It is an efficient way to test applications that have a lot of functionality.
Disadvantages of Sandwich Testing:
- Sandwich Testing can not be used for such systems which have a lot of interdependence between different modules.
- In sandwich testing the need of stubs and drivers is very high.
- It is expensive to set up and maintain the necessary infrastructure.
- here is a risk that the test environment may not be representative of the production environment, which could lead to inaccurate results.
- There is a potential for human error when manually transferring data between the two environments.