Bottom Up Approach in Software Engineering

Bottom Up Approach

  • This approach is also known as “inductive reasoning” and the term refers to the synthesis.
  • Bottom-Up Approach is an integration testing in which testing takes place from bottom to up that is lower-level modules are tested first with higher level modules then upper-level modules are tested.
  • This testing takes help of drivers for testing the software which are the temporary module for integration testing.
  • Bottom up approach is opposite of top down approach.
  • It is a type of testing which is used to analyze the risks in the software system or to evaluate that the system works as expected or not.
  • The key point of this testing is that it is user friendly and there is no need of stubs.
  • Bottom up integration testing is a testing process in which low-levels modules are integrated into clusters (builds) then develop the drivers after that build is evaluated. At last, drivers are removed and builds are integrated moving upwards in the program. 
  • In the early phases of software development, this testing provides high deployment coverage.
Bottom Up Approach

Drivers :

Drivers are generally known as “calling program”. Drivers are used in the bottom up approach which is used when the main module is not ready.Drivers are used to test the lower-level modules when the upper-level modules are not yet developed.

The main purpose of drivers is to fulfill the requirements of missing or incomplete modules to evaluate the lower level modules. But drivers are complex than stubs and takes more time to develop.

Advantages of Bottom-Up Approach : 

  • Fault localization is easy in this approach.
  • This testing does not  waste time waiting for all modules to be developed.
  • It is easy to develop test conditions.
  • This is useful if major flaws occurs towards the bottom of the program structure.
  • It provides higher accuracy at the granular level.
  • Bottom up testing starts at the bottom level of hierarchy means testing of critical modules or functionality at an early stage. This helps to find errors earlier. 
  • Interface defects are detected at early stage
  • Observation of test results is easier in this approach.

Disadvantages of Bottom-Up Approach : 

  • An early prototype is not possible
  • Drivers are used in this approach and it is more difficult to write than stubs.
  • Design defects are caught in the later stage.
  • We do not have working application until the last module is developed.
  • Interface errors/defects are caught at the later stage.