What is Sandwich testing all about?
Also known by the name of mixed testing, sandwich testing is a testing methodology that combines the working methodologies of both top down and bottom up integration testing. Beauty of this testing is that the advantages of both the methodologies is worked in unison to get the most out of the verification of product for flaws. It is popularly known by the name of hybrid integration testing.
How Does Sandwich Testing Work?
Since the working strategy involves the incorporation of two different forms of testing, the system/product to be tested is viewed as having three layers.
- A target layer in the middle.
- A layer above the target called as the top layer.
- A layer below the target called as the bottom layer.
Execution of the Testing Strategy in Sandwich Testing:
- The bottom up aspect of the testing initiates from the middle or target layer and goes upward towards the upper levels in the application.
- The top down aspect of the testing starts from the middle layer and proceeds downwards towards the lower levels in the software product under test.
- The user interface is tested in isolation with the use of stubs and the functions related to the lower levels are verified using drivers. However the point to be noted in the midst of all this is the fact that test stubs and drivers are not necessary for the topmost and the bottommost level.
- With the successful test coverage of the entire software application from both the directions, only the middle one or the target layer is left for the performance of the final set of tests.
The traditional sandwich testing based model has been somewhat modified to suit the requirements of testing the latest features in products of recent times. Following is a brief outline of some of the changes:-
- The three layers of the original sandwich model are tested individually before their coming together for incremental testing with one another.
- The individual tests is composed of taking action on the subdivided top layer(use of stubs), bottom layer(use of drivers), and the target layer incorporating a combined action of stubs and drivers.
- The combined layer tests are modified in a way that the top layer is substituted by drivers and the bottom most layer replaced with stubs.
What are the benefits of Sandwich Testing?
- Sandwich testing is pretty useful for large scale projects having a number of sub projects.
- When the software product under test has modules, the size of which, is comparable with that of the main product itself, then also sandwich testing has been found to be extremely handy.
What are the demerits of Sandwich Testing?
- With the incorporation of two completely different strategies in top down and bottom up, the size incurred with this form of testing is high.
- Sandwich testing is not recommended for situations where in the system or the product there is inter-dependence between the different modules.
- One of the biggest drawbacks of this form of testing is that the individual modules or systems which form sub divisions in the product are not tested in the entirety before integration.