Advantages and disadvantages of top down and bottom up integration testing
Show What is Integration Testing?Integration Testing or the Integration & Testing is the process of testing the specific modules where there is a contribution of more than one application as a whole or only the modules from other applications. This testing is used to make certain that the applications are capable of functioning smoothly by assimilating and communicating with one another. This type of testing can be either a black box or white box, depending on the level of contribution from other applications that are involved. To understand what integration testing means, first, we need to understand what software testing means! Software Testing is an activity to check whether the output/result of a test is equivalent to the expected output/result, which means that the software is correctly running. The result which is obtained after a certain software/system is run must match with the result which is expected as the output from the software/system; if it fails to do so, the software needs to be re-written, or certain changes need to be done inside code written. Start Your Free Software Development Course Web development, programming languages, Software testing & others Software testing of a software system is done at different levels. Testing levels are depicted as follows : Chronologically, integration testing is done after the first step, Unit Testing, is done. As the name integration goes, the textual definition of Integration Testing is Individual software modules are combined and tested together, like a group. It means, in software, there are many components. These many components, together when combined, form a software system. This software system is tested together, and the testing level at which it is tested is known as integration testing. So when these modules are combined, the result which is obtained out of it must be equivalent to the result which is expected; thats where integration testing comes into a part. The main purpose of integration testing is to check whether individual modules work together correctly when combined. Also known as I & T (Integration and Testing) can help in the testing of an individual as well as full module testing. It is included in both Black Box and White Box Testing. Most organizations only test their software using Unit Testing and Functional Testing methodologies. Types and ApproachesThere are four types and approaches are mentioned below:
1. Big Bang ApproachThe developed modules/components of the software systems are coupled together. These individual modules are tested together when coupled. After Unit Testing, these modules are tested together, which forms a software system. But some of us may have this question that, how is Software System testing as a whole and Integration testing different? The main thing we understand here is that, in integration testing, the testing is done for the individual modules are combined together, after unit tests are conducted, and in software system testing, the whole system is tested with all the parameters taken into consideration. Popular Course in this category Software Testing Training (9 Courses, 2 Projects)9 Online Courses | 2 Hands-on Projects | 60+ Hours | Verifiable Certificate of Completion | Lifetime Access 4.5 (6,695 ratings) Course Price View Course Related Courses Penetration Testing Training Program (2 Courses)TestNG Training (4 Courses, 2 Project)The following diagram depicts exactly what the Big Bang approach of Integration testing means: With Big Bang Approach, there are some advantages and disadvantages associated: Advantages:
Disadvantages:
2. Bottom-Up ApproachIn this approach, the low-level modules are tested first, together and individually. All the bottom-level modules are integrated which includes, functions and procedures, and everything is coupled and tested. This helps in testing the higher-level modules, as it forms a base for them. This procedure is repeated to all of the modules from the bottom level to the top-level module is tested thoroughly. In simple terms, testing begins from the inner and the most bottommost modules and gradually heads up. Now, as stated in the diagram, the help of a driver is taken while doing so. So what is a Driver, and how does it help? As the flow suggests, the top-level modules cannot be integrated into the system until and unless bottom-level module testing is done and coupled. So the driver here helps in coupling the bottom-level and top-level modules and works as a medium or, in a technical term, as a call function. Advantages:
Disadvantages:
3. Top-Down ApproachThis approach goes exactly the opposite of the bottom-up approach. The top-level module/s are tested initially, and then simultaneously, other lower-level modules are tested. The topmost modules are first tested individually like specialized unit testing is run for the topmost module, and eventually, other modules are taken into consideration and tested. The top-down approach requires a call function just like a bottom-up approach called Stubs. The stubs are shortcode logic statements that are used to accept inputs from the top-level modules and eventually call bottom-level modules for integration and testing. Advantages:
Disadvantages:
4. Hybrid/Sandwich ApproachAlso known as Mixed Integration Testing. Bottom-Up Approach and Top-Down Approach are combined into this approach. Hence known as Hybrid or Sandwich or Mixed Integration testing approach. This approach is being used to cover up the fallouts of both approaches individually. The topmost module is unit tested, and at the same time, bottom-level modules are integrated and tested with the top-level modules. Advantages:
Disadvantages:
Advantages of Integration Testing
Why is Integration Testing used?
Integration Testing CasesConsider we are building one employee management software. This software has three main aspects:
Now, considering the above case, first, the software is developed, and the flow should be Employee registration (Entering the values, ex: employee id, name, phone number, etc.). After the correct inputs, it should redirect to the net page that the employee report page. Now, if here the employee is not directed to the reports page and directly directed to the salary information page, and then it is an error. So, to rectify this, the flow, the sequence of activities, integration testing are done. Another example of integration testing would be: We daily check our emails. All the email service providers provide us with the same functionality. Login-> Inbox->Send / Delete Mail-> Logout Now, here when we log in to their servers, first, the values are checked for correctness, that is, unit testing. So, now after the credentials match, the login page should transfer us to the inbox page. That is the expected result. If it doesnt transfer us to the Inbox page instead transfer us to some junk folder, then it becomes a case of integration testing case. The same goes for sending and deleting emails. Other causes may be:
ConclusionWith so many advancements in the field of IT, day-by-day, and so many developers sitting at different locations working upon the same software, integration testing has become a must. With its approaches, integration testing can be used with small and large software applications alike. Integration testing, being at the middle of the software testing levels and having so many advantages, becomes more and more important for commercial level clients and regular check helps to keep the software intact. Recommended ArticlesThis has been a guide to Integration Testing. Here we discuss the concepts of Integration Testing, types, and approach with their advantages and disadvantages. You can also go through our other suggested articles to learn more
Software Testing Training (9 Courses, 2 Projects) 9 Online Courses 2 Hands-on Projects 60+ Hours Verifiable Certificate of Completion Lifetime Access Learn More 2 Shares Share Tweet Share |