Интеграционное тестирование

Integration Testing

Components integration with code 200

Цель интеграционного тестирования — проверить взаимодействие компонентов системы друг с другом. Оно выполняется на более высоком уровне, чем модульное тестирование, при котором отдельные части уже были протестированы на корректность работы в изоляции.

При проведении интеграционного тестирования могут тестироваться как два, так и более компонентов.

Пример интеграционного тестирования

В качестве примера для проведения интеграционного тестирования возьмём систему, состоящую из трёх компонентов:

Браузер — браузерное приложение для добавления печенек

Склад — сервис, хранящий информацию о печеньках

Сервис качества — сервис, проверяющий качество печенек

Сценарий взаимодействия компонентов

  1. Браузер посылает запрос на добавление новой печеньки на Склад
  2. Склад посылает запрос в Сервис качества, чтобы проверить печеньку на соответствие уровню качества
Три веб-компонента
  1. Сервис качества возвращает складу ответ Одобрено, либо Не одобрено в зависимости от результата проверки
  2. если сервис качества вернул ответ Одобрено, склад сохраняет печеньку и отвечает браузеру OK
    если сервис качества вернула ответ Не одобрено, склад не сохраняет печеньку и отвечает браузеру Bad Request

Использование заглушек

Как выяснилось, компонент Сервис качества ещё не готов, поэтому для проверки взаимодействия Браузера и Склада используем заглушку.

Заглушки могут писать как разработчики, так и тестировщики.

Заглушка имитирует работу Сервиса качества и возвращает два возможных ответа:

  • круглые печеньки Одобрено
  • некруглые печеньки Не одобрено
Three components with one mocked

Проведение тестирования

Интеграционное тестирование взаимодействия браузера со складом, где вместо сервиса качества используется заглушка, сводится к проверке двух основных сценариев:

Позитивный сценарий

Печенька прошла проверку качества и была добавлена на склад
Ожидаемое поведение: склад возвращает OK

Негативный сценарий

Печенька не прошла проверку качества и не была добавлена на склад
Ожидаемое поведение: склад возвращает Bad Request

HTTP-коды ответа

При положительном сценарии и успешной интеграции двух компонентов мы ожидаем, что на HTTP-запрос клиента сервер вернет HTTP-ответ с кодом 200 OK. Но бывают и другие коды ответа, приведенные в таблице.

Код Описание Пример Комментарий
1xx Информационные 102 Processing Запрос обрабатывается
2xx Успешно 200 OK Запрос выполнен успешно
3xx Перенаправление 301 Moved Permanently Ресурс по данному адресу был перемещен
4xx Ошибка клиента 400 Bad Request
403 Forbidden
Запрос клиента содержит ошибку
У клиента нет прав для доступа к данному ресурсу
5xx Ошибка сервера 500 Internal Server Error Во время обработки запроса на сервере произошла ошибка
Задача

Тестируемая система состоит из двух компонентов: клиента и сервера.

Фронтэнд-разработчик создал клиентскую часть — «Форму для отправки HTTP-запроса», а бэкенд-разработчик написал логику обработки запроса на сервере. Они договорились об условиях успешного обмена данными, согласовали API.

Проведите интеграционное тестирование взаимодействия клиентской и серверной части.

Форма для отправки HTTP-запроса

Договорённость по формату запроса:

  • Эндпоинт /hello-server
  • HTTP метод, соответствующий получению данных с сервера

Ожидаемый при успешной интеграции ответ:

  • Статус ответа с кодом 200
  • Тело ответа отсутствует
На чьей стороне возникла ошибка?
Sidebar arrow

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

ТЕХНИКИ ТЕСТ ДИЗАЙНА

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

ТЕСТИРОВАНИЕ РЕЛИЗА

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов Тест Собеседование