Как проверить обязательность полей?
qa engineerавтоматизация тестированияобязательные поляпроверка формтестирование
Что проверяют
Проверяете ли вы правило на всех уровнях или ограничиваетесь интерфейсом. Обязательность, реализованная только на клиенте, обходится за минуту.
Как отвечать
Проверка идёт на трёх уровнях, и это главное в ответе:
- интерфейс: пустое обязательное поле не даёт отправить форму, показывается понятное сообщение рядом с полем, фокус переводится на первое незаполненное. Проверяется и поведение при вводе пробелов, потому что строка из пробелов часто проходит как заполненная;
- API: тот же запрос отправляется напрямую, минуя форму, без обязательного поля. Сервер обязан ответить ошибкой валидации с указанием поля, а не 500 и не 200. Это самая важная часть проверки, потому что интерфейс легко обойти;
- база: колонка объявлена как обязательная, иначе некорректная строка появится при импорте или через фоновый процесс.
Что ещё стоит проверить:
- условная обязательность: поле обязательно только при определённом выборе. Такие правила чаще всего и ломаются;
- граничные случаи: пустая строка, только пробелы, отсутствующее поле и поле со значением
nullэто разные ситуации, и сервер должен обрабатывать все; - сообщения: текст ошибки понятен пользователю и локализован, а не «field is required» посреди русского интерфейса;
- доступность: поле помечено как обязательное не только цветом, ошибка связана с полем и читается голосовым доступом;
- сохранение введённого: после ошибки остальные данные не должны сбрасываться.
Источником истины при этом остаётся требование: обязательность поля берётся из постановки, а не из того, как сделали в форме.
Где спотыкаются
Проверяют только через форму и не пробуют прямой запрос.
Не проверяют строку из пробелов.
Заводят дефект на несоответствие подсказки, не сверившись с требованием.