Component Integration Testing

Component Integration Testing (тестування інтеграції компонентів) — це рівень тестування, на якому перевіряється взаємодія між окремими компонентами (модулями) системи після того, як кожен із них уже був протестований окремо (на рівні модульного тестування / Unit Testing).

Що таке «компонент»?

Компонент — це логічно відокремлений блок програми, який виконує певну функцію. Наприклад, у веб-додатку це можуть бути:

  • компонент авторизації,
  • компонент роботи з базою даних,
  • UI-компонент (форма, таблиця),
  • компонент API тощо.

Мета Component Integration Testing

Перевірити, чи правильно взаємодіють між собою окремі компоненти після їх об’єднання. Тобто не просто перевірити, що кожен працює окремо, а що їх зв’язки і передача даних між ними працює без помилок.

Приклад:

У системі є два компоненти:

  • LoginComponent — збирає логін/пароль і передає їх до
  • AuthService — перевіряє їх у базі даних.

На рівні component integration testing перевіряється:

  • Чи правильно LoginComponent викликає AuthService.
  • Чи правильно передаються дані (наприклад, JSON з логіном).
  • Чи коректно обробляється відповідь (успішний логін або помилка).

Методи реалізації

  1. Bottom-up — спочатку інтегруються нижчі компоненти (напр., API та база), потім — вищі.
  2. Top-down — спочатку тестуються зв’язки між вищими рівнями (UI, логіка), замінюючи нижчі моками.
  3. Big Bang — всі компоненти інтегруються одразу й тестуються разом (не рекомендується через складність локалізації помилок).
  4. Sandwich (гібридний) — поєднання top-down і bottom-up.

Інструменти

  • Для JavaScript/React: Jest + React Testing Library
  • Для Java/Backend: JUnit, Mockito
  • Для Python: pytest, unittest
  • Для інтеграцій: Postman, REST-assured, Cypress (в E2E режимі)

Відмінність від інших рівнів:

РівеньЩо тестує
Unit TestingОкремий модуль/функція
Component Integration TestingВзаємодію між модулями/компонентами
System TestingВсі компоненти як єдину систему
Acceptance TestingПеревірка на відповідність вимогам клієнта

Leave a Reply

Your email address will not be published. Required fields are marked *