Для тестирования поля ввода адреса электронной почты необходимо проверить его функциональные и нефункциональные аспекты.
Типы тестов:
-
Позитивные тесты:
- Ввод валидных адресов (с разными доменами, поддоменами, специальными символами в локальной части).
- Ввод адресов различной длины в пределах лимита.
- Ввод адресов с кириллическими доменами (IDN).
-
Негативные тесты:
- Отсутствие символа '@'.
- Отсутствие домена (после '@').
- Отсутствие символа '.' в домене.
- Наличие недопустимых символов (пробелы, спец. символы вне допустимых позиций).
- Некорректное количество символов '.' в домене.
- Домен верхнего уровня короче 2 символов.
- Пустое поле.
- Ввод только пробелов.
- Превышение максимальной разрешенной длины адреса.
-
UI/UX тесты:
- Корректное отображение поля и лейбла.
- Плейсхолдер (при его наличии).
- Сообщения об ошибках (их текст, расположение, стиль).
- Состояние поля при фокусе, наведении.
- Доступность (фокусировка с клавиатуры, скрин-ридеры).
-
Проверки валидации:
- Клиентская валидация (проверка на фронтенде, без отправки данных на сервер).
- Серверная валидация (проверка на бэкенде после отправки формы).
- Соответствие клиентской и серверной валидации.
-
Тесты производительности:
- Скорость валидации на больших объемах данных (актуально для систем, где адрес используется как логин или ключ).
-
Тесты безопасности:
- Ввод скриптов (XSS).
- Ввод SQL-инъекций.
- Проверка на возможность подбора адреса через перебор (brute force).
Примеры тестовых данных:
-
Валидные:
test@example.com
firstname.lastname@example.co.uk
test+alias@example.com
test@example.com. (если разрешено)
user123@sub.domain.example.com
test@xn--p1ai (для .рф домена)
-
Невалидные:
testexample.com (нет '@')
test@ (нет домена)
test@example (нет '.')
test@example..com (двойная точка)
test.@example.com (точка перед '@')
.test@example.com (точка в начале)
test@example.c (короткий TLD)
test@example..ru (двойная точка)
test@example-.com (дефис перед точкой)
test@-example.com (дефис после @)
test user@example.com (пробел)
" Manager @"example.com` (кавычки)
Автоматизация:
Для автоматизации используются фреймворки (Selenium, Puppeteer, Cypress) для взаимодействия с UI и библиотеки для проверки валидации на бэкенде.
python
java