TGViewer
Алена QA-Pop Алена QA-Pop @qa_pop · 521 subscribers
Post #289 443
Наткнулась на хорошую гифку, иллюстрирующую типы тестирования API и вдохновилась написать этот пост! Давайте вместе разберёмся, зачем они вообще нужны🤷‍♂️

1. Тестирование безопасности (Security Testing)
Цель: Выявить уязвимости и защитить конфиденциальные данные.
Что тестируется:
Авторизация/аутентификация (OAuth, JWT, API-ключи).
Защита от инъекций (SQL, XSS).
CSRF-токены и CORS-политики.
Rate limiting (ограничение запросов).
💡Примеры:
Попытка доступа к API без токена → 401 Unauthorized.
Проверка, что конфиденциальная информация пользователя передается безопасно (например, не в plain text виде).

2. Валидационное тестирование (Validation testing)
Цель: Проверить, что реализованный API соответствует заявленным функциональным и бизнес-требованиям при валидных входных данных (часть functional testing).
Что тестируется:
Соответствие бизнес логике при заданных входных данных.
Соответствие структуры ответов заявленным стандартам (JSON/XML).
Корректность типов данных, обязательных полей и вложенных структур.
💡Пример:
Создание валидного пользователя со всеми корректными аттрибутами → 201 Created.

3. UI testing (взаимодействие пользовательского интерфейса и API).
Цель: Проверить насколько корректно фронтенд (UI) и бэкенд (API) работают вместе.
Что тестируется:
Проверка отправки данных из UI в API (вызов правильного API-запроса).
Проверка отображения данных из API в UI и синхронизации данных.
Проверка обработки ошибок API в UI.
Валидация нагрузочных элементов (спиннеры, сообщения о загрузке).
💡Пример:
При регистрации UI отправляет корректные данные и запрос идет на правильный эндпоинт.

4. Функциональное тестирование (Functional testing).
Цель: Проверить, что API работает согласно спецификации и выполняет все необходимые операции.
Что тестируется:
Валидные входные данные.
Работа методов (GET, POST, PUT, DELETE и др.).
Обработка ошибок (коды 400, 404, 500 и т.д.).
Валидация входных/выходных данных (JSON/XML-схемы).
💡Пример:
Отправка POST-запроса на создание пользователя и проверка, что он появился в БД.

5. Error Testing (тестирование ошибок)
Цель: Проверить, что API обрабатывает некорректные запросы и сохраняет стабильность системы при сбоях.
Что тестируется:
Невалидные входные данные.
Обработка отсутствующих ресурсов.
Обработка ошибок авторизации/доступа и ошибок сервера.
💡Пример:
Запросы к несуществующим URL → 404 Not Found.

6. Пентест (Penetration Testing)
Цель: Целенаправленная атака на API для поиска уязвимостей (часть security testing).
Что тестируется:
Инъекции (SQL, NoSQL).
Конфиденциальные данные (например, подбор токенов/паролей).
Уязвимости бизнес-логики (например, отрицательные суммы в платежах).
💡Пример:
Подделка JWT-токена → 403 Forbidden.

7. Interoperability Testing (Тестирование взаимодействия)
Цель: проверка способности системы корректно взаимодействовать с другими системами, компонентами или устройствами.
Что тестируется:
Интеграция с внешними сервисами (платежные системы, геосервисы, cоцсети).
Кросс-платформенные проверки: ОС (Windows, Linux, macOS),
браузеры (Chrome, Firefox, Safari), мобилки (iOS, Android).
Совместимость форматов данных и версий API.
💡Пример:
После оплаты через XБанк статус заказа в системе меняется на «Оплачено».

8. Нагрузочное тестирование (Load Testing)
Цель: Проверить устойчивость и масштабируемость API при высоких нагрузках.
Что тестируется:
Время отклика при увеличении числа запросов.
Устойчивость к высоким нагрузкам (RPS — запросов в секунду).
Пределы пропускной способности.
Поведение при достижении лимитов (Rate Limiting).
💡Пример:
10000 одновременных GET-запросов к /products → API не должно «падать».

9. Fuzz Testing (Фаззинг-тестирование)
Цель: проверка работы с невалидными/случайными данными с целью выявления уязвимостей и сбоев (часть error testing).
Что тестируется:
Обработка нестандартных параметров запросов.
Обнаружение скрытых уязвимостей (SQL-запросы, отправка битых TCP-пакетов).
Поведение при неожиданных типах данных (например, передача строки вместо числа).
💡Пример:
Загрузка "битого" PNG-файла → выполнение произвольного кода.
#qa #api
  • 🔥 20
  • ❤ 16
  • 👍 15
  • 😁 12
  • 🎉 7
More from @qa_pop
  1. Dec 18, 2025Когда ты слишком хороший QA - это не всегда плюс Если ты тот самый QA, который «тащит всё…
  2. Nov 25, 2025TCP против UDP: что выбрать? Каждый раз, отправляя данные в интернете, система делает выбо…
  3. Nov 19, 2025Коллеги, по состоянию здоровья я приостановила записи на консультации/созвоны/помощь в лич…
  4. Nov 13, 2025Что такое первичный ключ и внешний ключ в базе данных. Зачем они нужны? Первичный ключ (Pr…
  5. Nov 7, 2025📱 СОБЕСЕДОВАНИЕ QA: Основные виды SQL-команд: DML, DDL, DCL и DQL? SQL (Structured Query…
  6. Nov 2, 2025Что выбрать для API-тестирования: Postman или полноценный фреймворк Выбор между Postman и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →