# Integration Testing

A typical software project consists of multiple software modules, coded by different programmers. The purpose of this level of testing is to expose defects in the interaction between these software modules.

<div data-full-width="true"><figure><img src="https://static.javatpoint.com/tutorial/software-testing/images/integration-testing.png" alt=""><figcaption></figcaption></figure></div>

## ✅ What is Integration Testing?

Integration testing 🧪 involves testing combinations of integrated software components or units👥 to determine if they function correctly together as a whole.

{% hint style="info" %}
The goal is to expose defects in the interfaces and interactions between integrated units.
{% endhint %}

👀 It verifies:

* Functional 🤖and non-functional behavior👌
* Components call 📞 and access each other's methods😎
* Data is passed between them accurately ✅
* Exceptions are handled properly 🙅‍♀️

## ✅ Why conduct Integration Testing?

🔑 To find defects in interactions between integrated units:

👉 Unit testing ensures individual components work correctly in isolation&#x20;

👉 Integration testing ensures they work together as designed

**🧿 To verify interfaces between components:**

👉 Integration testing focuses on interfaces and interactions&#x20;

👉 It exposes issues in how units call and pass data to each other

## ✅ Advantages of Integration Testing

📈 Finds defects earlier

• Integration issues are detected before system testing

👌 Ensures units work together&#x20;

• In unit testing, units are tested individually

• Integration testing verifies they integrate properly

📊 Detects regression errors

• Regressions often occur at integration points

## ✅ Disadvantages of Integration Testing

🕛 Time consuming&#x20;

• Large number of component combinations

🛠 Hard to isolate errors&#x20;

• Defects may originate from multiple units

💰 Expensive&#x20;

• Requires integrated environments and resources

In summary, while integration testing adds time and cost, it helps ensure that:

💻 Components interact correctly&#x20;

👥 Units function together as designed

⚙ Systems integrate without issues

## 💼 Sample Test Case

<table data-full-width="true"><thead><tr><th>Test Case ID</th><th>Test Case</th><th>Steps</th><th>Expected Result</th><th>Actual Result</th><th>Status</th></tr></thead><tbody><tr><td>TC-001</td><td>Login feature integration</td><td>1. Enter valid username</td><td><ol><li>User should be directed to password screen</li></ol></td><td>✅</td><td>Pass</td></tr><tr><td></td><td></td><td>2. Enter valid password</td><td>2. User should be directed to home screen</td><td></td><td></td></tr></tbody></table>
