Що таке інтеграційне тестування?
Інтеграційне тестування перевіряє, як кілька компонентів працюють разом: застосунок і база даних, сервіс і зовнішнє API, два мікросервіси між собою. Окремо кожна частина може бути справною, а на стику все одно виникне помилка.
Типові дефекти цього рівня — саме стикувальні: розбіжність форматів даних, змінений контракт API, неправильна обробка помилок сусіднього сервісу, проблеми з транзакціями.
На відміну від модульних тестів, інтеграційні запускають на реальних або близьких до реальних залежностях, тому вони повільніші й складніші в налаштуванні. Їх зазвичай менше, але саме вони ловлять те, що не видно зсередини окремого модуля.
Повʼязані терміни
Модульне тестування — перевірка окремої невеликої частини коду — функції або класу — в ізоляції від решти системи. Такий тест не звертається до бази даних і зовнішніх сервісів: замість них підставляють заглушки.
E2E TestingE2E (end-to-end) тестування — перевірка повного користувацького сценарію на зібраній системі: тест відкриває браузер, реєструється, додає товар у кошик, оплачує й переконується, що замовлення зʼявилося. Усі компоненти при цьому працюють по-справжньому.
API TestingТестування API — перевірка серверних методів напряму, без інтерфейсу: тестувальник надсилає запит із певними параметрами й звіряє відповідь — дані, структуру, код статусу та час обробки.
Test AutomationАвтоматизація тестування — написання програм, які самі виконують перевірки й порівнюють результат з очікуваним. Такі тести запускають за кожної зміни коду, щоб швидко помічати поломки у вже працюючій функціональності.
MicroservicesМікросервіси — архітектурний підхід, за якого застосунок складається з кількох невеликих самостійних сервісів. Кожен відповідає за свою область — оплату, каталог, сповіщення, — розгортається окремо й спілкується з рештою через API.