Ответ
С точки зрения тестирования, нажатие на кнопку в форме инициирует цепочку событий, которые необходимо проверять.
Типичный сценарий для кнопки type="submit":
- Браузер собирает данные со всех полей формы (
input,select,textarea). - Выполняется встроенная HTML5-валидация (проверяются атрибуты типа
required,pattern). - Если валидация прошла, браузер формирует HTTP-запрос:
- Метод: определяется атрибутом
methodформы (GET/POST). - URL: определяется атрибутом
action. - Данные: добавляются в тело запроса (POST) или в URL-строку (GET).
- Метод: определяется атрибутом
- Браузер отправляет запрос на сервер и, как правило, перезагружает страницу для отображения ответа.
Что проверяет QA-инженер:
- Корректность данных: Отправляются ли правильные значения полей? Кодировка данных верна?
- Валидация: Работает ли как клиентская (HTML/JS), так и серверная валидация? Сообщения об ошибках понятны?
- Поведение: Происходит ли ожидаемый редирект или обновление интерфейса (в SPA)?
- Обработка ошибок: Как форма ведет себя при сетевых сбоях или возврате ошибок (4xx, 5xx) от сервера?
- Безопасность: Нет ли уязвимостей, таких как XSS или недостаточная проверка данных на стороне сервера?
Для кнопок type="button" поведение определяется JavaScript-обработчиками, что требует проверки соответствующей клиентской логики.