# Чек-лист тестирования API

QA Hub · Версия 1 · 22 октября 2026

Применяйте чек-лист к одному эндпоинту за раз. Согласуйте ожидаемое поведение с контрактом API и требованиями: коды ответа и ограничения зависят от продукта. Для каждой проверки укажите Pass / Fail / Не применимо и приложите доказательства. Сценарии с изменением данных выполняйте на одноразовых тестовых данных в разрешённой тестовой среде.

## Карточка проверки

- Эндпоинт и HTTP-метод:
- Версия API / сборка / среда:
- Контракт или требование:
- Тестовая учётная запись и роль:
- Подготовленные данные и способ очистки:
- Ожидаемый статус, схема ответа и бизнес-результат:
- ID запроса/корреляции, время и ссылка на доказательства:

## Контракт и успешные запросы

- [ ] Минимальный корректный запрос возвращает ожидаемый статус.
- [ ] Запрос со всеми поддерживаемыми полями сохраняет переданные значения.
- [ ] Заголовки и тип содержимого соответствуют контракту.
- [ ] Обязательные поля ответа, типы, форматы и допустимость null соответствуют схеме.
- [ ] Идентификаторы и связи указывают на нужные записи.
- [ ] Данные сохранены согласно ответу; повторное чтение подтверждает изменение.
- [ ] Запросы чтения не изменяют бизнес-данные неожиданным образом.

## Проверка входных данных

- [ ] Отсутствие поля, null, пустая строка и строка из пробелов проверены отдельно.
- [ ] Неверный тип, некорректный JSON и неподдерживаемый тип содержимого дают управляемую ошибку.
- [ ] Проверены границы: минимум−1, минимум, максимум, максимум+1.
- [ ] Unicode, экранирование, пробелы по краям и длинные строки обрабатываются согласно контракту.
- [ ] Поведение для неизвестных свойств и значений enum определено.
- [ ] Проверены несуществующие ID и ID объектов другого пользователя.
- [ ] Некорректный запрос не оставляет частичных записей и побочных изменений.

## Идентификация и права

- [ ] Отсутствующие, просроченные и неверные учётные данные дают ожидаемый ответ.
- [ ] Каждая значимая роль выполняет только разрешённые операции.
- [ ] Пользователь A не может прочитать или изменить объект B подменой ID.
- [ ] Закрытые поля не возвращаются и не допускают изменения.
- [ ] Ошибки и логи не раскрывают секреты, токены и внутренние чувствительные данные.

## Списки, повторы и состояние

- [ ] Проверены пустой результат, одна запись и несколько страниц.
- [ ] Сортировка разрешает равенство значений, если контракт требует стабильного порядка.
- [ ] Фильтры сочетаются правильно; границы страниц не приводят к неожиданным пропускам и повторам.
- [ ] Повторная запись ведёт себя согласно контракту; проверен ключ идемпотентности, если он поддерживается.
- [ ] Два конкурирующих обновления следуют принятой политике конфликтов.
- [ ] После таймаута проверяется результат потенциально завершённой записи до её повтора.
- [ ] Лимиты запросов и сигналы повтора проверены с согласованной интенсивностью.
- [ ] Сбой зависимости даёт управляемый ответ; восстановление не повреждает данные.

## Завершение

- [ ] Время ответа измерено при зафиксированных нагрузке и параметрах среды.
- [ ] Логи и ID корреляции позволяют расследовать результат.
- [ ] Очистка удалила только данные данного запуска.
- [ ] В дефектах есть обезличенные запрос, ответ, ожидание и шаги воспроизведения.

Пример: отклонённое количество в `POST /orders` не должно создавать заказ или резервировать остатки. Проверка только HTTP-статуса не обнаружит такую ошибку.

Продолжить: https://qahub.pro/ru/backend-api/negative-api-testing
