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 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 you need to know more about system integration testing. Hence it is important to have a QA Testing Training & Certification to become an expert in the automation testing domain.
This tutorial is written to learn integration testing with example and we have given a number of examples of integration testing.
The significance 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 works correctly as desired or not.
- If there are external hardware interfaces, they could be erroneous.
- The inadequate handling of exceptions may cause issues.
Get ahead in your career with our QA Training Courses. We offer a variety of courses to help you learn the skills you need to succeed in the quality assurance field. With our program, you'll be able to take your career to the next level. Learn more about our program and sign up today.
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.
If you are learning about testing to prepare for your QA Testing Certification, we recommend you to go through the range of QA-related blogs and training available on the JanBask Training that has been curated to make you industry-ready!
Learn QA Software Testing in the Easiest Way
- Learn from the videos
- Learn anytime anywhere
- Pocket-friendly mode of learning
- Complimentary eBook available
Strategies/Approaches/Methodologies of Integration Testing
Moving ahead, let us learn how these testing strategies are executed, their benefits, and drawbacks.
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 the 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.
Tip: Brush up your knowledge about Quality Assurance tester by Playing the Software QA Testing Quiz TODAY!
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.
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.
Are you looking to make your career in software testing? Take your initial step with the Manual Testing Training.
QA Software Testing Training
- No cost for a Demo Class
- Industry Expert as your Trainer
- Available as per your schedule
- Customer Support Available
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.
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.
How to do Integration Testing?
Here is the procedure for integration testing on how to perform it:
- 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 the testing environment, risks and mitigation plans.
If you are willing to enter a software testing career, it's recommended to opt for a professional QA Software Tester Career Path and start your QA journey for a successful career.
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.
What are the Best Practices for Integration Testing?
- First, you should check which end-to-end 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.
- Also, integration testing example test cases make a difference with other test cases as it majorly focuses on the interfaces and of data between modules.
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. The 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.
Tip: Are you heading on to your next QA testing interview? Prepare yourself for your dream testing job, check QA Interview Questions!
Steps to kick off integration testing
- Focus on the architecture of the 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 the 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.
Also, join our Software QA Testing Community and get access to newsletters, resources, and informative quizes by connecting with other members of this community.
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.
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.
Tools for Integration Testing
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.
If you want to grow your career as a Software Tester, then you should be aware of options with lucrative QA testing salaries. Check out our guide on software tester’s salary with top locations and companies.
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 to finding defects when two or more units are integrated. It helps in finding defects at earlier stages and saves time and effort. It makes sure that integrated components are working well as expected. With this tutorial, integration testing with examples must be clear to you and you can practice given examples of integration testing.
I am sure that this blog on integration testing enriched your knowledge of the concept. To know on software testing types, join the QA certification program at JanBask Training and explore an ocean of job opportunities in the testing domain with us.
QA Software Testing Training
- Personalized Free Consultation
- Access to Our Learning Management System
- Access to Our Course Curriculum
- Be a Part of Our Free Demo Class
Introduction
Testing Vs. Different Technologies
Interview
QA Testing Course
Upcoming Batches
Trending Courses
Cyber Security
- Introduction to cybersecurity
- Cryptography and Secure Communication
- Cloud Computing Architectural Framework
- Security Architectures and Models
Upcoming Class
-0 day 27 Sep 2024
QA
- Introduction and Software Testing
- Software Test Life Cycle
- Automation Testing and API Testing
- Selenium framework development using Testing
Upcoming Class
-0 day 27 Sep 2024
Salesforce
- Salesforce Configuration Introduction
- Security & Automation Process
- Sales & Service Cloud
- Apex Programming, SOQL & SOSL
Upcoming Class
5 days 02 Oct 2024
Business Analyst
- BA & Stakeholders Overview
- BPMN, Requirement Elicitation
- BA Tools & Design Documents
- Enterprise Analysis, Agile & Scrum
Upcoming Class
7 days 04 Oct 2024
MS SQL Server
- Introduction & Database Query
- Programming, Indexes & System Functions
- SSIS Package Development Procedures
- SSRS Report Design
Upcoming Class
7 days 04 Oct 2024
Data Science
- Data Science Introduction
- Hadoop and Spark Overview
- Python & Intro to R Programming
- Machine Learning
Upcoming Class
-0 day 27 Sep 2024
DevOps
- Intro to DevOps
- GIT and Maven
- Jenkins & Ansible
- Docker and Cloud Computing
Upcoming Class
1 day 28 Sep 2024
Hadoop
- Architecture, HDFS & MapReduce
- Unix Shell & Apache Pig Installation
- HIVE Installation & User-Defined Functions
- SQOOP & Hbase Installation
Upcoming Class
-0 day 27 Sep 2024
Python
- Features of Python
- Python Editors and IDEs
- Data types and Variables
- Python File Operation
Upcoming Class
1 day 28 Sep 2024
Artificial Intelligence
- Components of AI
- Categories of Machine Learning
- Recurrent Neural Networks
- Recurrent Neural Networks
Upcoming Class
-0 day 27 Sep 2024
Machine Learning
- Introduction to Machine Learning & Python
- Machine Learning: Supervised Learning
- Machine Learning: Unsupervised Learning
Upcoming Class
7 days 04 Oct 2024
Tableau
- Introduction to Tableau Desktop
- Data Transformation Methods
- Configuring tableau server
- Integration with R & Hadoop
Upcoming Class
-0 day 27 Sep 2024