
Software Testing - Bottom Up Testing
Software testing is divided into multiple phases namely unit testing, integration testing, system testing, and acceptance testing. The bottom up approach is one of the concepts under integration testing in which verification is done by combining multiple components, and then moving upward to the top from the bottom as per the control flow of the program source code.
What is Software Bottom Up Testing?
The software bottom up testing is one of the categories of integration testing where each component is first tested then they are incrementally combined with other components to form a complicated system until the entire software is tested. The lower level components are verified first followed by the higher level components.
The bottom up testing is a user-friendly testing approach and helps to enhance the software quality. Let us take an example of a car which consists of multiple modules like brakes, engines, wheels, steering wheel, fuel control etc. At first each individual module is tested separately, and then integrated with other modules. For example, the brake system is verified first then combined with the steering wheel. After the integration, the communication, flow, synchronization etc between the two modules are tested. Both of them should be able to work as a single unit. Thus it helps to identify errors early, rather than testing it after the whole car has been manufactured.
Steps to Perform Bottom Up Testing
The steps which are performed to be performed to do a software bottom up testing are listed below −
Step 1 − Groups are created by combining the lower- level components.
Step 2 − Implement a control program for verification. This is known as the driver and it helps to regulate the input and output of the test case.
Step 3 − Testing is performed only on concentrating on the lower level components.
Step 4 − Finally, the driver is removed and the individual clusters are combined by moving upwards from the bottom to the top in the entire program flow.
Example of Bottom Up Testing
The above diagram shows the architecture of bottom up testing −

Here, individual components are combined as shown by the Components 1 and 2. Then each of them have to be verified taking the help of the drivers A, and B. After testing has been completed, both the drivers are removed and components 1, and 2 are integrated with the Module A and we can move upward with other top level modules.
Bottom Up Integration - Flow Diagram
Bottom up testing is represented by the following Flow diagram −

The order of Integration by Bottom-down approach will be −
4,2 5,2 6,3 7,3 2,1 3,1
Testing Approach
+ Firstly, Test 4,5,6,7 individually using drivers. + Test 2 such that it calls 4 and 5 separately. If an error occurs we know that the problem is in one of the modules. + Test 1 such that it calls 3 and If an error occurs we know that the problem is in 3 or in the interface between 1 and 3
Though Top level components are the most important, yet tested last using this strategy. In Bottom-up approach, the Components 2 and 3 are replaced by drivers while testing components 4,5,6,7. They are generally more complex than stubs.
Advantages of Bottom Up Testing
The advantages of bottom up testing are listed below −
- It is a very simple process to design and come up with different test conditions.
- The test results can be concluded very quickly.
- It is not required to have any understanding of interior working of the software.
- The low-level components are thoroughly tested and they become compatible with the object-oriented architecture.
- It helps to detect errors in the early phases of software development life cycle(SDLC).
- It simplifies the testing process by breaking down a complex module into smaller units then verifying them.
- It gives modularity and easy maintenance of the software.
- It enhances the overall quality, and performance of the software.
Disadvantages of Bottom Up Testing
The disadvantages of bottom up testing are listed below −
- At the top level modules, it becomes difficult to conduct bottom up testing.
- It requires a lot of time to complete bottom up testing for complex software, where individual components need to be verified prior to being combined with other components.
- It does not cover testing of system level functionalities of the software since they are ready only once all the components are integrated.
- It requires building of drivers and stubs to complete the bottom up testing.
Why do We Perform the Bottom Up Testing?
The bottom up testing are performed for the reasons listed below −
- It helps to identify the defects at the early stages of the software development lifecycle(SDLC).
- Individual components are tested before integration with other components, hence the bottom up testing helps to implement the efficient debugging.
- It is an incremental approach.
- It identifies the potential risks early in software.
- The incremental and iterative approach of the bottom up testing approach makes it compatible with the Agile approach of development.
Conclusion
This concludes our comprehensive take on the tutorial on Software Bottom Up Testing. Weve started with describing what is a software bottom up testing, what are the steps which are performed to do a software bottom up testing, an example of bottom up testing, what are the advantages of bottom up testing, what are the disadvantages of bottom up testing, and why do we perform the bottom up testing. This equips you with in-depth knowledge of Software Bottom Up Testing. It is wise to keep practicing what youve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.