Можно ли использовать пустое поле 'кому' как негативный тест-кейс?
Что проверяют
Понимаете ли вы, что такое негативный тест, и умеете ли сформулировать для него ожидаемый результат, а не просто «ввести неправильное». Следом обычно спрашивают, какие ещё проверки вы бы сделали для этого поля и на каком уровне проверять: на форме или на сервере.
Как отвечать
Да, пустое обязательное поле это классический негативный кейс: значение из класса недопустимых, на котором система должна корректно отказать. Сразу оговорите зависимость от требований. В почтовых клиентах письмо без «Кому», но с заполненной «Копией» или «Скрытой копией» часто считается валидным. Тогда пустое «Кому» при пустых остальных полях будет негативным кейсом, а при заполненной скрытой копии уже позитивным.
Ожидаемый результат описывайте так, чтобы его можно было проверить:
- интерфейс: кнопка отправки неактивна или у поля появляется понятная ошибка, фокус переходит на него, тема и текст письма не теряются;
- сеть: с пустым получателем на сервер ничего не уходит, это видно в DevTools или в прокси вроде Charles и Fiddler;
- API: прямой запрос без получателя, например из Postman, возвращает
400или422с внятным сообщением, а не500; - данные: письмо не появляется в «Отправленных», черновик сохраняется.
Рядом стоит назвать соседние кейсы из того же класса эквивалентности: только пробелы, одна запятая или точка с запятой, невалидный адрес, поле, опустевшее после удаления последнего получателя. В автотестах их обычно собирают в один параметризованный тест, а не пишут по отдельности.
Где спотыкаются
Отвечают «да, это негативный тест» и не называют ожидаемый результат. Кейс без критерия прохождения нельзя ни выполнить, ни автоматизировать.
Проверяют только интерфейс. Валидация на форме обходится прямым запросом, и если сервер примет пустого получателя, это уже дефект, иногда с последствиями вроде ошибок в очереди отправки.
Путают негативный тест с тестом, который должен упасть. Негативный тест проходит, когда система правильно отказала, и падает, если письмо всё-таки ушло или приложение вылетело.