Today's Offer - QA Certification Training - Enroll at Flat 10% Off.

- QA Testing Blogs -

Integration Testing Tutorial Guide for Beginner

What is Integration Testing?

Integration Testing is the type of testing when modules are integrated logically and tested in a group. A typical software project consists of multiple modules that are managed by different programmers. This testing allows you to focus on data communication between these modules. Hence it is also named as I & T (Integration & Testing), String Testing, and Thread Testing.

If you want to test the interaction between multiple integration components, then it is termed as the component integration testing. If you want to test the interaction among integrated systems, then it is named as the system integration testing. component integration testing

Topics to be covered in the integration testing tutorial:

  • What is Integration Testing?
  • The significance of Integration Testing
  • Integration Test Case Examples
  • Strategies/Approaches/Methodologies of Integration Testing
  • How to do Integration Testing?
  • Entry and Exit Criteria for integration testing
  • Best practices for integration testing
  • Challenges with integration testing
  • Steps to kick off the integration testing
  • How to compare system integration testing and integration testing?
  • How to compare unit testing and integration testing?
  • Integration Testing Tools
  • Tips for integration testing
  • Conclusion

The Importance of Integration Testing

Although each unit is tested independently, still defects may arise during integration because of the following reasons:

  • A different programmer designs each unit, so their understanding and coding skills could be different. This is the reason to verify them once they are integrated.
  • The client requirements frequently change at different stages of a project. These new requirements may not be tested earlier, so integration testing becomes necessary.
  • Interfaces of software modules with databases could be erroneous. Integration testing makes sure either interface work correctly as desired or not.
  • If there are external hardware interfaces, they could be erroneous.
  • The inadequate handling of exceptions may cause issues.

QA curriculum

Integration Test Case Examples

Integration testing majorly focuses on interfaces and the flow of information between software modules. So, priority is given to integrated links instead of unit functions that are tested in advance. Here is the sample integration test case for the following scenario:

For example, there is one application with three modules, Login Page, Mailbox, and Delete emails. All these modules are integrated logically by programmers. You don’t have to focus on the testing of Login Page as it is done already in the Unit Testing. You should focus on its interface link with the Mail Box Page.  In the same way, check the interface link of Mail Box and the Delete Mails Module.

Test Case ID Test Case Objectives Test Case Description Expected Outcome
A Test the interface link between Login Page and the Mail Box Page Add the login details and click on the Login button to connect with It should be redirected to the mailbox page
B Check the interface link between Mail Box and the Delete Mails Module. From the mailbox page, select one mail and click on Delete button. It should delete the selected mail, and deleted emails should appear in the Trash Folder.

Let us consider one more example where an IT developer is asked to develop an online shopping website that sells camping gear. Once requirements are gathered, analyzed, and processed, the developer is asked to develop different modules one by one. The major modules for this website are given below.

  • User Registration Module
  • Product Catalogue
  • Billing Module
  • Shopping Cart
  • Payment Gateway Integration
  • Shipping & Package Tracking etc.

These modules are assigned to different programmers, and they start coding on their machines. They will deploy modules on their own machines to check what is working and where improvements are required. Once development is complete, each of the modules is unit tested and found some defects. They are fixed and closed by developers themselves at the earlier stage.

The QA manager will integrate and test these modules later. He ensures that all integrated modules are working best together. When they are deployed on an individual machine, their functionality is not complete. Once they are integrated, they become complete and more meaningful. In this way, integration testing helps to fix issues and ensures that the application is working amazing as a whole.

Read: ETL Testing Interview Questions and Answers

Strategies/Approaches/Methodologies of Integration Testing

Moving ahead, let us learn how these testing strategies are executed, their benefits, and drawbacks. Methodologies of Integration Testing

Big Bang Approach:

In this testing approach, all components are integrated once and tested together. The major benefit of this approach is that it is suitable for small systems. Here are some limitations of the approach as given below.

  • The fault localization is tough in Big-Bang approach.
  • There are plenty of interfaces that need to be tested in this approach, and some interface links are missed out easily.
  • This testing is possible only when all modules are integrated, so the quality team has a limited time for execution.
  • When all modules are tested together, critical issues are not resolved on priority. You need an integrated approach where you may define priority for each module and test them one by one.

Incremental Approach

This testing is performed by connecting two or modules together that are logically related. Here, more modules are added and tested for proper functioning one by one. The process will continue until all modules are integrated and tested successfully.

This approach can be completed in two different modes, either top down or bottom up incremental approaches. When these two techniques are used together for a project, it is called the sandwich approach.

Stubs and Drivers

The incremental testing approach is usually carried out by a dummy program called Stubs and Drivers. They don’t implement the entire program logic but stimulates the data communication for the calling module. A Stub is a module under test and Driver calls the module that needs to be tested.

Stubs Drivers
They are used in the top-down approach. They are used in the bottom-up approach.
They are used to test top modules on priority. Here, lower modules are tested first.
They are stimulating the lower level of components. They are stimulating the higher level of components.
This is a dummy program for low-level components. This is a dummy program for high-level components.

Bottom Up Incremental Approach:

In this approach, each module at the lower level is tested with higher levels until all modules are not completed. This testing is usually completed with the help of drivers. The major benefits of the approach are easy fault localization, and modules can be tested incrementally not together that saves time. Here is the quick diagrammatic representation of the approach for your reference. Bottom Up Incremental Approach The drawbacks are an early prototype for this approach is not possible. The critical modules at the top level of software architecture are tested at the end that is highly prone to defects.

Top Down Incremental Approach

In the top-down approach, the testing takes place from top to down following the control flow of the software system. This testing is usually performed with the help of stubs. The major benefits of this approach are easy fault localization, an early prototype can be designed, critical modules are tested on priority, and major design flaws can be found first and fixed immediately. Top Down Incremental Approach The drawbacks of this approach are modules at the lower level are not tested adequately, and the approach needs many stubs to complete the testing process. Here is the quick diagrammatic representation of the approach for your reference.

Sandwich/Hybrid Incremental Approach

It is the combination of top-down and bottoms up incremental approaches. Here, top modules are tested with lower modules and lower modules are integrated with higher-level modules and tested. This strategy uses stubs and drivers together. Here is the quick diagrammatic representation of the approach for your reference.

Hybrid Incremental Approach How to do Integration Testing?

Here is the procedure for integration testing on how to perform it:

Read: Automation Testing Tutorial Guide for Beginner
  • First, you should prepare the integration test plan.
  • Design the test cases, test scenarios, test scripts etc.
  • Now execute the test cases followed by reporting of defects.
  • Track and re-test defects as soon as they arise.
  • Follow the third and fourth steps again and again until the integration is complete.

Here is the brief description of the integrated test plan for your reference:

  • An integrated test plan includes attributes like methods, strategies as discussed earlier.
  • It defines the scope of integration testing
  • It defines roles and responsibilities.
  • It gives you an idea of pre-requisites for integration testing.
  • It explains about the testing environment, risks and mitigation plans.

What is the Entry and Exit Criteria of Integration Testing?

Entry Criteria:

  • The components should be unit tested before you perform the integration testing.
  • All high priority bugs are closed and fixed in advance.
  • Modules are coded and integrated successfully.
  • Integrated test plans, test case scenarios, and test scripts to be signed off and documented well.
  • The testing environment should be set up in advance for integration testing.

Exit Criteria:

  • All integrated modules are tested successfully.
  • Each executed test case is documented well.
  • All high priority bugs are closed and fixed.
  • There are technical documents to be submitted followed by release notes.

QA Quiz

What are the Best Practices for Integration Testing?

  • First, you should check which testing strategy can be adopted and prepare the test data and test plan accordingly.
  • Now focus on the architecture design of an application and identify the critical modules. They should be tested on priority.
  • Get the interface design for the application from the architecture team and generate test plans to verify interfaces in detail. Each of the interfaces to database, external hardware, or any other software application should be tested in detail.
  • Test data plays a critical role after the test cases for integration testing.
  • Keep mock data handy before the execution of test cases. Don’t decide on the test data while executing test cases.

Challenges with Integration Testing

  • Integration testing means two or more systems are integrated to ensure that the system is working properly. Not only the integration links to be tested, but exhaustive testing related to the environment should be performed. It ensures that all integrated system components are working properly. There are different paths and permutations to apply for testing the integrated systems.
  • It is tough managing integration testing sometimes because of various factors involvement like database, platforms, environment, etc.
  • Whenever a new system is integrated with the legacy system, it needs a lot of testing efforts and changes. Same should be applied when integrating two legacy systems.
  • When you are integration two systems developed by two different companies, it is a big challenge for programmers. No one is sure how one system will affect the working of another system. To minimize this impact, several considerations should be kept in mind to make this integration successful.

Steps to kick off integration testing

  • Focus on the architecture of application first.
  • Identify each module one be one and how it works.
  • Check how data is communicated among modules.
  • Segregate the application to understand the testing requirements.
  • Identify and create multiple test conditions.
  • Focus on one test condition at one time and write down the test cases.

Integration Testing: Is it a White Box or Black Box Technique?

The integration testing technique comes under both categories either white boxes or black boxes. In the black box technique, there is no need that a tester should have the internal knowledge of the system that is coding skills are not required while white box technique demands the internal knowledge of an application.

When performing integration testing, it is integrated with web services to fetch the data from the database and provide the data as required. This web service functionality for an application can be tested using white box technique while a new feature on the website is tested using the black box technique.

So, it is not yet clear either Integration Testing is a block box or white box technique. It completely depends on the situation and the current testing environment.

Difference between System Integration Testing and Integration Testing

System integration testing is done to check the complete integrated system. In the case of Unit Testing, Modules and components are tested independently before they are integrated. Once all modules or components are tested thoroughly, they are integrated, and the system is tested as a whole.

In the case of Integration Testing, two or more modules are unit tested then integrated to verify their functionality. In system testing, the system is tested as a whole and make sure no issues occur due to integrated modules.

Read: Software QA Tester Resume Sample for Experienced & Fresher

Different between Unit Testing and Integration Testing

Unit Testing:

  • It is done to confirm wither each independent unit is working correctly or not.
  • In the case of unit testing, units are not affected by any external parameter.
  • Developers do it.
  • During the STLC (Software Testing Life Cycle), unit testing is done in the earlier stages of testing.

Integration Testing:

  • It is done to confirm how modules behave when they are integrated.
  • In the case of integrations testing, components or modules may depend on external factors like database, hardware, or any other software application.
  • It is done by the testing team.
  • It is usually done before the system testing and after the unit testing.

Integration Testing Tools

It is always good performing integration tests frequently to make sure that integrated modules are working perfectly. For this purpose, various integration tools are available that assist the organization to create a framework and build integration testing suites. A list of popular Integration Testing tools is given below.

  • VectorCAST/C++
  • VectorCAST/Ada
  • Citrus Integration Testing
  • LDRA
  • SMART INTEGRATION TEST ACCELERATOR (SITA)
  • FitNesse
  • Rational Integration Tester
  • Protractor
  • TESSY
  • Validate MSG
  • Steam
  • Jasmine
  • eZscript
  • Spock for JAVA
  • Pioneerjs

The list of popular integration testing tools doesn’t end here, and their popularity depends on various factors like ease to use, product license, cost of the product, report format, etc. You may choose any of them based on your project requirements and budget.

QA Demo Class

Tips

  • Make sure that you have a detailed design document where interactions between different units are defined clearly. It is not possible performing integration testing without this document.
  • You have to make sure that you have a robust configuration management system in place. Otherwise, you will have a tough time tracking the right version of each unit and how units should be integrated later.
  • Before you start with integration testing, make sure that each unit is tested independently.
  • Try to automate the test cases to the maximum extent especially when you are using the top-down or bottom-up approach. Since regression testing is also important when you integrate a unit and manual regression testing can be efficient here.

Final Words

This is all about the integration testing, its types, examples, strategies, best practices, entry/exit criteria, etc. We tried to explain it with examples for a better understanding of the concept. Integration testing is an important part of the testing cycle that makes it easy finding defects when two or more units are integrated. It helps in finding defects at earlier stages and saves time and efforts. It makes sure that integrated components are working well as expected.

I am sure that this blog on integration testing enriched your knowledge of the concept. To know on software testing types, join QA certification program at JanBask Training and explore an ocean of job opportunities in the testing domain with us.

Read: Top 15 Penetration Testing Tools To Know In 2019

    Janbask Training

    JanBask Training is a leading Global Online Training Provider through Live Sessions. The Live classes provide a blended approach of hands on experience along with theoretical knowledge which is driven by certified professionals.


Trending Courses

AWS

  • AWS & Fundamentals of Linux
  • Amazon Simple Storage Service
  • Elastic Compute Cloud
  • Databases Overview & Amazon Route 53

Upcoming Class

7 days 14 Dec 2019

DevOps

  • Intro to DevOps
  • GIT and Maven
  • Jenkins & Ansible
  • Docker and Cloud Computing

Upcoming Class

8 days 15 Dec 2019

Data Science

  • Data Science Introduction
  • Hadoop and Spark Overview
  • Python & Intro to R Programming
  • Machine Learning

Upcoming Class

8 days 15 Dec 2019

Hadoop

  • Architecture, HDFS & MapReduce
  • Unix Shell & Apache Pig Installation
  • HIVE Installation & User-Defined Functions
  • SQOOP & Hbase Installation

Upcoming Class

-1 day 06 Dec 2019

Salesforce

  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL

Upcoming Class

13 days 20 Dec 2019

Course for testing

  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL

Upcoming Class

17 days 24 Dec 2019

QA

  • Introduction and Software Testing
  • Software Test Life Cycle
  • Automation Testing and API Testing
  • Selenium framework development using Testing

Upcoming Class

2 days 09 Dec 2019

Business Analyst

  • BA & Stakeholders Overview
  • BPMN, Requirement Elicitation
  • BA Tools & Design Documents
  • Enterprise Analysis, Agile & Scrum

Upcoming Class

-1 day 06 Dec 2019

SQL Server

  • Introduction & Database Query
  • Programming, Indexes & System Functions
  • SSIS Package Development Procedures
  • SSRS Report Design

Upcoming Class

2 days 09 Dec 2019

Comments

Search Posts

Reset

Receive Latest Materials and Offers on QA Testing Course

Interviews