Тестирование поля ввода электронной почты включает проверки на уровне фронтенда и бэкенда, а также тестирование пользовательского интерфейса.
Фронтенд (Client-Side) проверки:
- Валидация формата:
- Корректные адреса (e.g.,
test@example.com, test.name@sub.example.co.uk).
- Некорректные адреса (отсутствие
@, домена, некорректные спецсимволы, пробелы).
- Границы ввода:
- Минимальная и максимальная длина.
- Пустое поле.
- Тип данных: Убедиться, что поле принимает только символы, допустимые в email.
- Сообщения об ошибках: Правильность и информативность сообщений при некорректном вводе.
- Взаимодействие:
- Фокус поля (focus state).
- Состояние ввода (typing state).
- Состояние ошибки (error state).
Бэкенд (Server-Side) проверки:
- Валидация формата: Повторная проверка формата email для предотвращения обхода фронтенд-валидации.
- Уникальность: Если email должен быть уникальным (например, при регистрации), проверка на дубликаты в базе данных.
- Бизнес-логика: Проверка соответствия бизнес-правилам (например, запрет на использование определенных доменов).
- Обработка спецсимволов: Корректная обработка символов, которые могут вызвать проблемы (например, SQL injection).
- Проверка на существование домена: Опциональная проверка существования доменной части email.
Примеры тестов:
- Позитивные:
- Ввод валидного email адреса.
- Ввод email адреса с длинным доменом/доменной зоной.
- Ввод email адреса с поддоменами.
- Негативные:
- Пустое поле.
- Ввод текста без символа
@.
- Ввод текста без доменной части после
@.
- Ввод текста с пробелами.
- Ввод текста с недопустимыми символами.
- Ввод email адреса, превышающего максимальную длину.
- Ввод уже зарегистрированного email (при регистрации).
- Ввод email с некорректным форматом спецсимволов.
Автоматизация:
Для автоматизации этих тестов можно использовать различные фреймворки и инструменты:
- UI-автоматизация: Selenium, Cypress, Playwright для тестирования фронтенд-валидации и взаимодействия с полем.
python
- API-автоматизация: RestAssured, Postman, Requests (Python) для тестирования бэкенд-валидации отправкой запросов с различными данными.
json
javascript
Дополнительные аспекты:
- Тестирование с использованием реальных данных (при наличии тестовой базы).
- Тестирование на различных устройствах и браузерах.
- Тестирование производительности поля при вводе большого объема данных.