Loading

Bottom Up Approach In Testing


An amalgamation of several software development and testing activities, Software Development Life Cycle (SDLC) is a well-defined structured sequence of stages in software engineering, which are used by software engineers to develop the intended software product. Software Development Life Cycle (SDLC) provides a series of steps, such as communication, requirement gathering, system analysis, software design, coding, testing, integration and more, which are followed to design and develop a product efficiently. With the assistance of these activities and steps software engineers are able to develop a product with exceptional quality, performance, functionality, scalability and more.

Software testing is one of the most crucial step of Software Development Life Cycle (SDLC) and it is only by implementing it in every stage of development process that a tester can ensure the quality of the software and its features. Software testing is a process of identifying bugs, errors and other discrepancies and faults in the software, which if left unresolved and undetected become a hurdle smooth development of the product as well as make the process time consuming and expensive. Bottom-Up approach is a type of software testing, which is executed to analyse the risks in the software. The biggest advantage of this approach is that it is user friendly and provides high deployment coverage in early phases of software development. Therefore, to provide you a better understanding of this approach, here is a detailed discussion of the same.

Bottom-Up Approach at a Glance:

A type of integration testing, bottom-up approach is a testing strategy in which the modules at the lower level are tested with higher modules until all the modules and aspects of the software are tested properly. This approach is also known as inductive reasoning, and in many cases is used as a synonym of synthesis. Bottom-Up approach is an immensely beneficial approach, used more often than its counterpart and the well-known testing technique, top down approach. This approach of integration testing is utilized when off-the-shelf or existing components are selected and integrated into the product. Moreover, bottom-up approach has high success rates, with tangible and long lasting results. Even the execution time in faster compared to traditional top-down approach used by testers all around the world. With the assistance of bottom-up integration testing software testers test software without any difficulty and get best results. Additionally, in bottom-up testing components at lower hierarchy are tested individually and then the components that rely upon these components are tested. Though top level components are most important, yet they are tested last using this strategy of integration testing.

What is Integration testing?

Bottom- Up is an approach used in integration testing, which is a level of software testing where individual units are combined and tested as groups. Integration testing is performed by software testers once unit testing is completed and before the inception of system testing. The main purpose of this level of testing is to expose faults in the interactions between integrated units. To assist testers in integration testing, test drivers and test stubs are used. Integration testing is defined by International Software Qualifications Board (ISQB) as process of testing performed to expose defects in the interfaces and in the interactions between integrated components or systems. During the process of software testing, integration testing is executed for various reasons, some of which are mentioned below:

  • Integration testing becomes necessary to validate that various software modules are working in unity. .
  • At the time of module development, there can be a change in client’s requirements. If these requirements have not gone through unit testing, integration testing becomes compulsory for them.
  • Interfaces of software modules with database can contain errors, which can be resolved through integration testing.
  • As inadequate exception handling could cause issues and hence require integration testing.

Top-Down VS Bottom-Up Approach of Software Testing:

Top-down approach is the most commonly used integration testing type. It is an integration testing technique that is used in order to simulate the behaviour of the lower-level modules that are not yet integrated. Integration testing is a process of breaking a system down to gain insight into its compositional sub-systems in a reverse engineering fashion. Hence, to clearly understand the difference between bottom-up and top-down integration testing approach, following is a comparison of these two approaches, which will allow testers to make informed decision regarding the type of integration testing approach they want to opt for.

  • Top-down approach analyses the risk by aggregating the impact of internal operational failures, while bottom-up approach analyses the risks in individual process using models.
  • Top-down approach does not differentiate between higher frequency, low severity and low frequency, high severity, which are treated differently in bottom-up approach of integration testing.
  • The former approach is simple and not data intensive, whereas the latter is complex as well as data intensive.
  • Top-down approaches are backward looking, while bottom-up approaches are forward looking.

Advantages of Using Bottom-Up Approach:

From the above discussion we can conclude that there are several advantages of using bottom-up approach of integration testing. As suggested by its name, Bottom-Up integration testing starts from the lowest or innermost unit of the application and gradually moves up. This integration testing continues till all the modules of the software are integrated and the entire application is tested as a single unit. In short, this approach first tests those components of the software that are usually tested quickly at the end of testing process and do not get proper attention of software testers. The other advantages of bottom-up approach are:

  • It is appropriate for applications where bottom-up design methodology is used.
  • Test conditions can be created easily.
  • If the low level modules and their combined functions are often invoked by other modules, then it is more useful to test them first so that meaningful effective integration of other modules can be done.’
  • Always starting at the bottom of the hierarchy again means that the critical modules are generally built and tested first and therefore any errors or mistakes in these forms of modules are identified early in the process.
  • Advantageous if major flaws occur towards the bottom of the program.

Disadvantages of Bottom-Up Approach of Software Testing:

Every testing technique, methodology and more, has some or other disadvantage that effects the performance as well as the effectiveness of the software. Similarly, there are few drawbacks and disadvantages of using bottom-up approach, which if not taken care of can become a hurdle in getting expected results. Even though this approach provides numerous advantages to its users, it is important to know all of its disadvantages, which will help testers and developers in getting high quality and bug free software and applications. Hence, the disadvantages of Bottom-Up approach are:

  • Test engineers cannot observe system level functions from a partly integrated system.
  • They cannot observe the system level functions until the top level test driver is in place.
  • The program as an entity does not exist until the last module is added.
  • One big disadvantage of bottom up strategy is that, in this sort of testing no working model can be represented as far as several modules have been built.
  • This approach is driven by the existing infrastructure instead of the business processes.

Conclusion:

Bottom-Up approach is one of the best way to test each and every major as well as minor component of the software. It is a type of integration testing in which system integration begins with the integration of the lowest level modules. Bottom up integration testing uses test drivers to drive and pass appropriate data to the lower level modules and as and when the code for the other module gets ready, these drivers are replaced with the actual module. The advantages of this approach of integration testing is immense as it provides high deployment coverage in early phases, earlier return on investment, high visibility of organizational changes, and has a higher impact on the organization’s success. Bottom-Up approach is executed to analyse the risks in the software and it is extremely user friendly. Moreover, as Bottom-Up integration testing starts from the lowest or innermost unit of the application and gradually moves up, it is able to test all those components of the software that are usually tested quickly or are not tested at all, because of time constraint and other such reasons. Furthermore, with the assistance of this approach one can ensure that all the defects and errors detected in the later stages of Software Development Life Cycle (SDLC) are resolved and removed before the final product is released for the use of the clients and end users.