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Перевірка на відповідність вимогам клієнта

Дієслова з теми Tagesablauf – частина 3

ins Bett gehen

DeutschТранслітераціяПереклад
Ich gehe ins Bettіх ґее інс Бетя йду в ліжко
Du gehst ins Bettду ґест інс Бетти йдеш в ліжко
Er/Sie/Es geht ins Bettер/зі/ес ґет інс Бетвін/вона/воно йде в ліжко
Wir gehen ins Bettвір ґеен інс Бетми йдемо в ліжко
Ihr geht ins Bettір ґет інс Бетви йдете в ліжко
sie/Sie gehen ins Bettзі/зі ґеен інс Бетвони йдуть в ліжко /Ви йдете в ліжко

anrufen

DeutschТранслітераціяПереклад
Ich rufe anіх руфе аня телефоную
Du rufst anду руфст анти телефонуєш
Er/Sie/Es ruft anер/зі/ес руфт анвін/вона/воно телефонує
Wir rufen anвір руфен анми телефонуємо
Ihr ruft anір руфт анви телефонуєте
sie/Sie rufen anзі/зі руфен анвони телефонують /Ви телефонуєте

Fußball spielen

DeutschТранслітераціяПереклад
Ich spiele Fußballіх шпілє Фусбалья граю в футбол
Du spielst Fußballду шпільст Фусбальти граєш в футбол
Er/Sie/Es spielt Fußballер/зі/ес шпільт Фусбальвін/вона/воно грає в футбол
Wir spielen Fußballвір шпілєн Фусбальми граємо в футбол
Ihr spielt Fußballір шпільт Фусбальви граєте в футбол
sie/Sie spielen Fußballзі шпілєн Фусбальвони грають в футбол /Ви граєте в футбол

Hausaufgaben machen

DeutschТранслітераціяПереклад
Ich mache Hausaufgabenіх махе Хаусауфґабеня роблю домашнє завдання
Du machst Hausaufgabenду махст Хаусауфґабенти робиш домашнє завдання
Er/Sie/Es macht Hausaufgabenер/зі/ес махт Хаусауфґабенвін/вона/воно робить домашнє завдання
Wir machen Hausaufgabenвір махен Хаусауфґабенми робимо домашнє завдання
Ihr macht Hausaufgabenір махт Хаусауфґабенви робите домашнє завдання
sie/Sie machen Hausaufgabenзі махен Хаусауфґабенвони роблять домашнє завдання /Ви робите домашнє завдання

Deutsch lernen

DeutschТранслітераціяПереклад
Ich lerne Deutschіх лерне Дойчя вивчаю німецьку мову
Du lernst Deutschду лернст Дойчти вивчаєш німецьку мову
Er/Sie/Es lernt Deutschер/зі/ес лернт Дойчвін/вона/воно вивчає німецьку мову
Wir lernen Deutschвір лернен Дойчми вивчаємо німецьку мову
Ihr lernt Deutschір лернт Дойчви вивчаєте німецьку мову
sie/Sie lernen Deutschзі лернен Дойчвони вивчають німецьку мову /Ви вивчаєте німецьку мову

kochen

DeutschТранслітераціяПереклад
Ich kocheіх кохея готую
Du kochstду кохстти готуєш
Er/Sie/Es kochtер/зі/ес кохтвін/вона/воно готує
Wir kochenвір кохенми готуємо
Ihr kochtір кохтви готуєте
sie/Sie kochenзі кохенвони готують /Ви готуєте

Musik hören

DeutschТранслітераціяПереклад
Ich höre Musikіх хьоре Музікя слухаю музику
Du hörst Musikду хьорст Музікти слухаєш музику
Er/Sie/Es hört Musikер/зі/ес хьорт Музіквін/вона/воно слухає музику
Wir hören Musikвір хьорен Музікми слухаємо музику
Ihr hört Musikір хьорт Музікви слухаєте музику
sie/Sie hören Musikзі хьорен Музіквони слухають музику /Ви слухаєте музику

Приклади

DeutschТранслітераціяПереклад
Sie geht um 10 Uhr ins Bett.Зі ґет ум цен ур інс Бет.Вона лягає спати о 10 годині.
Ich rufe dich morgen an.Іх руфе діх Морґен ан.Я зателефоную тобі завтра.
Er spielt jeden Samstag Fußball.Ер шпільт єден Замстаґ Фусбаль.Він грає в футбол кожної суботи.
Wir müssen heute Abend Hausaufgaben machen.Вір мюсен хойте Абенд Хаусауфґабен махен.Ми повинні сьогодні ввечері робити домашнє завдання.
Sie lernt jeden Tag Deutsch.Зі лернт єден Таґ Дойч.Вона вивчає німецьку мову кожного дня.
Sie kocht jeden Tag das Mittagessen.Зі кохт єден Таґ дас Міттаґессен.Вона готує обід кожного дня.
Ich höre gerne Musik.Іх хьоре ґерне Музік.Мені подобається слухати музику.

Для додаткової візуалізації є відео.

Дієслова з теми Tagesablauf – частина 2

essen

DeutschТранслітераціяПереклад
Ich esseіх ессея їм
Du isstду ісстти їш
Er/Sie/Es isstер/зі/ес ісствін/вона/воно їсть
Wir essenвір есенми їмо
Ihr esstір есстви їсте
sie/Sie essenзі есеґнвони їдять /Ви їсте

frühstücken

DeutschТранслітераціяПереклад
Ich frühstückeіх фрюштюкея снідаю
Du frühstückstду фрюштюкстти снідаєш
Er/Sie/Es frühstücktер/зі/ес фрюштюктвін/вона/воно снідає
Wir frühstückenвір фрюштюкенми снідаємо
Ihr frühstücktір фрюштюктви снідаєте
sie/Sie frühstückenзі фрюштюкенвони снідають /Ви снідаєте

arbeiten

DeutschТранслітераціяПереклад
Ich arbeiteіх арбайтея працюю
Du arbeitestду арбайтестти працюєш
Er/Sie/Es arbeitetер/зі/ес арбайтетвін/вона/воно працює
Wir arbeitenвір арбайтенми працюємо
Ihr arbeitetір арбайтетви працюєте
sie/Sie arbeitenзі арбайтенвони працюють /Ви працюєте

spazieren gehen

DeutschТранслітераціяПереклад
Ich gehe spazierenіх ґее шпаціреня йду на прогулянку
Du gehst spazierenду ґест шпаціренти йдеш на прогулянку
Er/Sie/Es geht spazierenер/зі/ес ґет шпаціренвін/вона/воно йде на прогулянку
Wir gehen spazierenвір ґеен шпаціренми йдемо на прогулянку
Ihr geht spazierenір ґет шпаціренви йдете на прогулянку
sie/Sie gehen spazierenзі ґеен шпаціренвони йдуть на прогулянк /Ви йдете на прогулянку

in die Schule gehen

DeutschТранслітераціяПереклад
Ich gehe in die Schuleіх ґее ін ді Шулея йду до школи
Du gehst in die Schuleду ґест ін ді Шулети йдеш до школи
Er/Sie/Es geht in die Schuleер/зі/ес ґет ін ді Шулевін/вона/воно йде до школи
Wir gehen in die Schuleвір ґеен ін ді Шулеми йдемо до школи
Ihr geht in die Schuleір ґет ін ді Шулеви йдете до школи
sie/Sie gehen in die Schuleзі ґеен ін ді Шулевони йдуть до школи /Ви йдете до школи

zur Arbeit gehen

DeutschТранслітераціяПереклад
Ich gehe zur Arbeitіх ґее цур Арбайтя йду на роботу
Du gehst zur Arbeitду ґест цур Арбайтти йдеш на роботу
Er/Sie/Es geht zur Arbeitер/зі/ес ґет цур Арбайтвін/вона/воно йде на роботу
Wir gehen zur Arbeitвір ґеен цур Арбайтми йдемо на роботу
Ihr geht zur Arbeitір ґет цур Арбайтви йдете на роботу
sie/Sie gehen zur Arbeitзі/зі ґеен цур Арбайтвони йдуть на роботу /Ви йдуть на роботу йдете на роботу

ins Kino gehen

DeutschТранслітераціяПереклад
Ich gehe ins Kinoіх ґее інс Кіноя йду в кіно
Du gehst ins Kinoду ґест інс Кіноти йдеш в кіно
Er/Sie/Es geht ins Kinoер/зі/ес ґет інс Кіновін/вона/воно йде в кіно
Wir gehen ins Kinoвір ґеен інс Кіноми йдемо в кіно
Ihr geht ins Kinoір ґет інс Кінови йдете в кіно
sie/Sie gehen ins Kinoзі ґеен інс Кіновони йдуть в кіно /Ви йдуть в кіно йдете в кіно

Приклади

DeutschТранслітераціяПереклад
Ich esse einen Apfel.Іх есе айнен Апфель.Я їм яблуко.
Er frühstückt um 7 Uhr.Ер фрюштюкт ум зібен ур.Він снідає о 7 годині.
Ich arbeite von 9 bis 18 Uhr.Іх арбайте фон нойн біс ахтцен ур.Я працюю з 9 до 18 години.
Wir gehen jeden Abend spazieren.Вір ґеен єден Абенд шпацірен.Ми кожного вечора гуляємо.
Er geht jeden Morgen in die Schule.Ер ґет єден Морґен ін ді Шуле.Він кожного ранку йде до школи.
Sie geht jeden Tag zur Arbeit.Зі ґет єден Таґ цур Арбайт.Вона кожного дня йде на роботу.
Wir gehen am Wochenende ins Kino.Вір ґеен ам Вохененде інс Кіно.Ми йдемо в кіно на вихідних.

Для додаткової візуалізації є відео.

Component Testing (модульне тестування)

Component Testing (модульне тестування)

Component Testing, також відомий як Unit Testing, — це базовий рівень тестування, з якого все починається.

Що таке Component Testing?

Component Testing — це рівень тестування, при якому окремі частини (компоненти) програмного забезпечення перевіряються в ізоляції від інших частин системи.

Компонентом може бути:

  • окрема функція або метод
  • клас або модуль
  • сервіс або мікросервіс (на ранньому етапі)

Мета Component Testing:

  • Перевірити, що компонент працює відповідно до специфікації
  • Виявити логічні помилки та неправильну реалізацію на ранньому етапі
  • Забезпечити надійну основу для інтеграції з іншими модулями

Хто проводить?

  • Зазвичай — розробники
  • Або — автоматизовані юніт-тести як частина CI/CD
  • Тестувальники також можуть долучатися, якщо мова йде про більш складні або бізнес-критичні компоненти

Інструменти для Component Testing:

  • Java: JUnit, TestNG
  • JavaScript: Jest, Mocha, Jasmine
  • Python: pytest, unittest
  • C#: NUnit, xUnit
  • CI-платформи: GitHub Actions, Jenkins, GitLab CI

Приклад:

Є функція calculateDiscount(price, userType).
Component Testing має перевірити:

  • як вона працює з різними типами користувачів
  • що відбувається, якщо передати некоректні значення
  • чи правильно застосовується логіка знижок

Переваги Component Testing:

  • Швидке виявлення помилок
  • Легка локалізація дефекту
  • Допомагає розробникам впевнено вносити зміни
  • Підвищує стабільність системи на наступних рівнях тестування

Висновок

Component Testing — це фундамент якісного ПЗ. Його часто недооцінюють, але саме тут виявляються помилки, які можуть обійтися дуже дорого, якщо їх пропустити далі.

Test Levels (Рівні тестування)

У тестуванні програмного забезпечення важливо чітко розуміти, на якому рівні ми перевіряємо продукт. Саме тому існує поняття рівнів тестування (Test Levels).

Що таке Test Level (Рівень тестування)?

Рівень тестування — це етап або фаза у процесі тестування ПЗ, на якому перевіряється певна частина системи: від окремих модулів до всього продукту в цілому.
Кожен рівень має свою мету, масштаб та відповідальних осіб.

Основні рівні тестування:

1. Component Testing (Тестування компонентів)

Інше назва: Unit Testing

  • Мета: перевірити окремі функції або модулі в ізоляції
  • Хто проводить: зазвичай розробники
  • Що тестується: одна функція, метод або клас

Приклад: перевірка, чи правильно функція обчислює суму двох чисел.

2. Component Integration Testing (Інтеграція компонентів)

Тестування зв’язків між кількома модулями, які вже працюють окремо.

  • Мета: виявити помилки у взаємодії між компонентами
  • Фокус: API, обмін даними, виклики між модулями
  • Методи: Top-down, Bottom-up, Big Bang

Приклад: перевірка взаємодії форми входу з бекендом авторизації.

3. System Testing (Системне тестування)

Тестування всієї системи як єдиного цілого.

  • Мета: перевірити, чи відповідає система специфікаціям
  • Типи: функціональне, нефункціональне
  • Хто проводить: тестувальники

Приклад: перевірка всього процесу покупки — від вибору товару до отримання email-підтвердження.

4. System Integration Testing (Інтеграція систем)

Перевірка взаємодії між системою і зовнішніми сервісами або іншими системами.

  • Мета: переконатися, що інтеграція працює коректно
  • Фокус: зовнішні API, бази даних, сторонні сервіси
  • Виклики: нестабільні середовища, складність відтворення помилок

Приклад: тестування інтеграції з платіжною системою або службою доставки.

5. Acceptance Testing (Приймальне тестування)

Фінальна перевірка перед випуском продукту.

  • Мета: впевнитися, що продукт задовольняє бізнес-вимоги
  • Хто проводить: замовник, кінцеві користувачі, тестувальники
  • Типи: UAT (User Acceptance Testing), Alpha/Beta Testing

Приклад: бізнес-користувач перевіряє, чи працює новий модуль формування рахунків.

Висновок

Розуміння та правильне використання різних рівнів тестування допомагає вчасно виявити дефекти, мінімізувати ризики і створити якісний продукт.