checklist
January 14

📋 Чек-лист тестирования: форма авторизации

Форма авторизации одна самых распространенных функциональных частей многих проектов. Делюсь базовыми проверками, которые облегчат тебе жизнь (если что-то забыл, комментарии приветствуются).

  1. Допустимые символы логина и пароля. Определяется требованиями ТЗ. Совет: учитывай язык пользователя, т.е. используемую кодировку.
  2. Минимальная, максимальная длина логина/пароля.
  3. Регистрочувствительность. Также определяется ТЗ, но советую уточнить у менеджера проекта, если про это не сказано. Логин может быть не чувствителен, а вот пароль в 99% случаев чувствительный.
  4. Обязательность ввода. Поля логин и пароль в 99% должны быть заполнены. Проверка сводится к тому, что пользователь должен увидеть уведомление о том, что поля обязательны к заполнению после клика "Войти" или после смены фокуса с поля пароль/логин.
  5. Авторизация валидными данными. Проверяй разную комбинации: телефон/пароль, почта/пароль, телефон/sms-код (конечно, если есть такие возможности функционала).
  6. Многократное нажатие на кнопку "войти". Львиная доля форм просто блокирует кнопку до ответа сервера.
  7. Авторизация НЕвалидными данными: пустые поля, одно из полей пустое, в одном из полей невалидные данные, оба поля с невалидными данными. Для кейсов с невалидными данными ошибка выводится только после клика "Войти". Для генерации тестовых данных похожих на реальные советую использовать сервис Mockaroo (больше полезных сервисов в посте "Полезные веб-сервисы для тестировщика")
  8. Ввод пробела и невидимых символов. Часто срабатывает ошибка валидации, если в конце или в начале ввода email'a (часто используется, как логин) ввести пробел или перевод каретки '\n'.
  9. Демонстрация ошибки, при вводе некорректных данных. Показываем как после клика "Войти", так и если, например, пользователь вводит невалидные данные, превышает количество символов и т.п.
  10. Корректные атрибуты HTML-тегов для логина/пароля. Самый главный атрибут "required" (подробнее на htmlbook.ru).И конечно же у парольного поля должен быть атрибут type = "password" (подробнее на mdn). Особенно актуально для веб-сайтов и гибридных приложений (подробнее "Особенности мобильного тестирования").
  11. Сокрытие/показ вводимого пароля. По умолчанию скрыт (показываем точки), по нажатию на иконку глаза показываем. Если это форма создания учетки, то на форме будет еще поле "подтверждение введенного пароля". Часто по клику на иконку глаза в одном поле, нет реакции в другом.
  12. Восстановление пароля всеми доступными способами (звонок, sms, код на email, пуш в приложение). Редкий кейс, но пару раз встречал, что можно перейти к форме восстановления пароля по старому проверочному коду из sms. Советую проверять это!
  13. Смена пароля, логина. Логин меняется редко и точно в настройках профиля. Пароль можно сменить, как минимум через форму восстановления доступа или через настройки профиля.
  14. Авторизация под старыми данными. Стоит проверить сразу после смены пароля или логин. Бывает так, что обновленные данные не доехали до всех баз или есть проблемы с кэширование и т.п.
  15. Двухфакторная аутентификация (2FA) и авторизация по соц. сетям. В 2FA тщательно стоит проверить восстановление доступа (по сгенерированным кодам, по резервной почте и т.п.).
  16. Безопасность пароля. Если нужно проверить качество принимаемых паролей, то советую использовать сервис касперского.
  17. Демонстарция подсказок при попытки создать невалидный пароль, логин. Часто бывает, что подсказки не скрываются после ввода корректных данных. Обращай внимание.
  18. Бан через N-попыток входа или смены пароля. Можно отправлять уведомление на почту, телефон, что кто-то пытается войти. По-хорошему это делается даже при первой валидной авторизации. И еще стоит обратить внимание, что в уведомлении должно быть понятно описано, что делать, если входишь не ты. Плюс проверь, что ссылки в уведомлении не битые, иначе это будет провал!
  19. Вставка текста в поля. Есть разные мнения насчет вставки пароля. Ко считает нормальным, а кто-то нет. Смотри в ТЗ. Проверяй как хоткеи (ctrl+v), так и вызов контекстного меню мышкой.
  20. UI полей и формы. Об этом будем говорить отдельно (поэтому подписывайся на телеграм канал).Но помни, у тебя есть графические макеты для сравнения, а если нет, то общепринятые гайды, например, для устройств Apple "Human Interface Guidelines".
  21. HTML, XSS, SQL - инъекции. Об этом можешь почитать на хабре: