Валидация имейлов

Содержание

Валидация имейлов

Валидный имейл — это существующий, реальный имейл, на который можно отправить письмо. Задача программиста — создать валидацию имейла, т.е. проверку программой имейла на валидность. Задача тестировщика — проверить то, как программа валидирует имейлы, правильно ли она это делает.

Валидация имейлов

Валидация имейлов

Перед тем как писать валидацию, надо знать из чего состоит email адрес. Думаю известно всем что это «username@hostname».

Имя пользователя может в себе содержать:

  • точку, за исключением первого и последнего знака, которая не может повторятся

Имя хоста состоит из нескольких компонентов, разделённых точкой и не превышающих 63 символа, и суффиксов (домены первого уровня). Компоненты, в свою очередь, состоят из латинских букв, цифр и дефисов, причём дефисы не могут быть в начале или в конце компонента. Суффиксы это ограниченный список доменов первого уровня.

Чит-лист для проверки поля email

1) Пустое поле email — Сообщение о незаполненном поле email

2) Email в нижнем регистре — Операция проводится успешно

3) Email в верхнем регистре — Операция проводится успешно

4) Email с цифрами в имени аккаунта — Операция проводится успешно

5) Email с цифрами в доменной части — Операция проводится успешно

6) Email с дефисом в имени аккаунта — Операция проводится успешно

7) Email с дефисом в доменной части — Операция проводится успешно

8) Email со знаком подчеркивания в имени аккаунта — Операция проводится успешно

9) Email со знаком подчеркивания в доменной части — Операция проводится успешно

10) Email с точками в имени аккаунта — Операция проводится успешно

11) Email с несколькими точками в доменной части — Операция проводится успешно

12) Email без точек в доменной части — Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

13) Превышение длины email (320 символов) — Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

14) Отсутствие @ в email — Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

15) Email с пробелами в имени аккаунта — Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

16) Email с пробелами в доменной части — Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

17) Email без имени аккаунта — Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

18) Email без доменной части — Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

19) Некорректный домен первого уровня (допустимо 2-63 букв после точки: .ru или например .americanexpress) -Должно появится сообщение о неправильном или некорректном e-mail введеном в поле

  1. zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.ru — САмый последний домен в зоне ру.
  2. llanfairpwllgwyngyllgogerychwyrndrobwyll-llantysiliogogogoch.info — название деревни Лланвайр-Пуллгвингилл в Уэльсе на острове Англси, означающее «Церковь Святой Марии в ложбине, заросшей белым орешником, около быстрого водоворота, неподалёку от церкви Святого Тисилио и красной пещеры».

Базовые валидационные проверки Login/Password

  • Заполнить поле корректный login и корректный pass. Expected: успешно залогинен. Разлогиниться. Почистить кэш и куки (открыть/закрыть браузер?).
  • Оставить оба поля пустыми. Попытка входа. Expected: Сообщение об ошибке.
  • Оставить пустое поле login. Попытка входа. Expected: Сообщение об ошибке.
  • Оставить пустое поле password. Попытка входа. Expected: Сообщение об ошибке.
  • Ввeсти корректный login и некорректный pass. Expected: Сообщение об ошибке.
  • Ввeсти некорректный login, но корректный pass. Expected: Сообщение об ошибке.
  • Ввeсти некорректный login и некорректный pass. Expected: Сообщение об ошибке.
  • Заполнить поле login ввeсти корректный pass, а в поле пароля ввести корректный login. Expected: Сообщение об ошибке.
  • Ввeсти login scriptalert(123)/script и корректный pass. Expected: Сообщение об ошибке.
  • Заполнить поле login SQL запрос (‘ or ‘a’ = ‘a’; DROP TABLE user; SELECT * FROM blog WHERE code LIKE ‘a%’;) — структура запроса зависит от DB.
  • Заполнить поле login скрипт (scriptalert(“Hello, world!”)/alert, scriptdocument.getElementByID(“…”).disabled=true/script)
  • Заполнить поле login html-теги (form action=” http://live.hh.ru”input type=”submit”/form)
  • Заполнить поле login сложную последовательность символов вроде “ ♣ ♂ ” , “”‘

8 мыслей о “Валидация имейлов”

Привет, вы говорите что домены топ уровня могут содержать только 2-6 символов. (пункт 19)
А как насчет брендовых доменов типа .americanexpress ?
Получается, ошибочка.

Привет! А вот статья уже и теряет актуальность, будем дорабатывать спасибо за замечание. Сейчас в основном до 63 символов, но есть и исключения. Внесу поправку в статью и добавлю пару примеров из Вики.


Источник: qaevolution.ru