Что такое CRUD и что делают его методы
Что проверяют
Базовый вопрос, по которому видно, понимаете ли вы, что происходит с данными за интерфейсом и API. Отвечать одним определением мало: следом спросят, какими HTTP-методами и кодами это выражается и как вы проверите, что запись действительно изменилась.
Как отвечать
CRUD это четыре базовые операции над данными. Удобно сразу связать каждую с SQL и REST:
- Create:
INSERTв базе,POSTв API. Ожидаемый ответ201 Created, часто с заголовкомLocationна новый ресурс; - Read:
SELECTиGET.200с данными или404, если записи нет. Отдельно проверяются списки: пагинация, фильтры, сортировка; - Update:
UPDATE, в APIPUTилиPATCH.PUTзаменяет ресурс целиком,PATCHменяет только переданные поля. Ответ200с телом или204без него; - Delete:
DELETEв обоих случаях. Обычно204, после чегоGETпо тому же id возвращает404.
Для тестировщика главное, что за каждой операцией стоит набор проверок. Негативные случаи: невалидные данные (400 или 422), дубль уникального поля (409), нет авторизации или прав (401 и 403). Проверка состояния: после ответа убедиться через GET или прямым SQL-запросом в DBeaver, что запись появилась, изменилась или исчезла, а связанные данные повели себя ожидаемо. Инструменты зависят от проекта: Postman или Swagger UI руками, REST Assured или pytest с requests в автотестах.
Стоит упомянуть мягкое удаление: запись не стирается, а помечается флагом, и тогда проверяют, что она пропала из выдачи, но осталась в базе.
Где спотыкаются
Проверяют только код ответа. 200 при обновлении не гарантирует, что поле реально сохранилось, это видно лишь при повторном чтении.
Путают PUT и PATCH и не проверяют, что PUT без части полей их обнуляет или отклоняет запрос.
Считают CRUD жёстким соответствием HTTP-методам. Поиск со сложным фильтром часто делают через POST, и это всё ещё чтение. CRUD описывает, что происходит с данными, а не какой метод выбран.