Ответ
Двухуровневая архитектура (2-tier, клиент-сервер) — это модель, в которой приложение четко разделено на два логических компонента:
- Клиент (Frontend / Presentation Tier): Отвечает за пользовательский интерфейс и представление данных. Это может быть десктопное приложение, браузер или мобильное приложение.
- Сервер (Backend / Data Tier): Отвечает за бизнес-логику, обработку запросов, работу с базой данных и предоставление данных клиенту.
Подход к тестированию такой архитектуры:
-
Раздельное тестирование компонентов:
- Клиент: Юзабилити-тестирование, кросс-браузерное/кросс-платформенное тестирование, проверка корректности отображения данных, полученных с сервера.
- Сервер: Модульное и интеграционное тестирование API, тестирование бизнес-логики, нагрузочное тестирование эндпоинтов.
-
Интеграционное тестирование связи:
- Проверка корректности обмена данными (форматы JSON/XML, коды ответов HTTP).
- Тестирование обработки ошибок на стороне сервера и их адекватного отображения на клиенте.
- Проверка безопасности: аутентификация, авторизация, валидация входящих данных на сервере.
Пример тест-кейса для проверки интеграции:
Сценарий: Пользователь создает заказ через UI.
Шаги:
1. На клиенте заполняем форму заказа и нажимаем "Отправить".
2. Клиент отправляет POST-запрос на серверный эндпоинт `/api/orders`.
Ожидаемый результат:
- Сервер отвечает статусом 201 Created и JSON с ID нового заказа.
- Клиент корректно отображает сообщение об успехе и ID заказа.
- Данные заказа появляются в базе данных.
Варианты негативного тестирования:
- Отправка пустого тела запроса -> сервер возвращает 400 Bad Request -> клиент показывает понятную ошибку.
- Потеря сетевого соединения -> клиент показывает уведомление о попытке повторной отправки.
Преимущества для тестирования: Четкое разделение позволяет эффективно использовать автоматизацию для API-тестирования сервера независимо от клиента.