Что такое интеграционное тестирование?
Интеграционное тестирование проверяет, как несколько компонентов работают вместе: приложение и база данных, сервис и внешнее API, два микросервиса между собой. Отдельно каждая часть может быть исправна, а на стыке всё равно возникнет ошибка.
Типичные дефекты этого уровня — как раз стыковочные: несовпадение форматов данных, изменившийся контракт API, неверная обработка ошибок соседнего сервиса, проблемы с транзакциями.
В отличие от модульных тестов, интеграционные запускают на реальных или близких к реальным зависимостях, поэтому они медленнее и сложнее в настройке. Их обычно меньше, но именно они ловят то, что не видно изнутри отдельного модуля.
Связанные термины
Модульное тестирование — проверка отдельной небольшой части кода — функции или класса — в изоляции от остальной системы. Такой тест не обращается к базе данных и внешним сервисам: вместо них подставляют заглушки.
E2E TestingE2E (end-to-end) тестирование — проверка полного пользовательского сценария на собранной системе: тест открывает браузер, регистрируется, добавляет товар в корзину, оплачивает и убеждается, что заказ появился. Все компоненты при этом работают по-настоящему.
API TestingТестирование API — проверка серверных методов напрямую, без интерфейса: тестировщик отправляет запрос с определёнными параметрами и сверяет ответ — данные, структуру, код статуса и время обработки.
Test AutomationАвтоматизация тестирования — написание программ, которые сами выполняют проверки и сравнивают результат с ожидаемым. Такие тесты запускают при каждом изменении кода, чтобы быстро замечать поломки в уже работающей функциональности.
MicroservicesМикросервисы — архитектурный подход, при котором приложение состоит из нескольких небольших самостоятельных сервисов. Каждый отвечает за свою область — оплату, каталог, уведомления, — разворачивается отдельно и общается с остальными через API.