- Требования
- Создание пароля
- Вход по паролю
- Сброс
- Смена пароля
- Безопасность
- Граничные значения
- Доступность и удобство
- Производительность
- Лучшие практики
- Частые ошибки
Требования
- Требования к надежности: К паролям часто предъявляются особые требования, например, обязательное сочетание заглавных и строчных букв, добавление цифр и специальных символов. Такой пароль сложнее угадать.
- Шифрование: Пароли обязательно шифруются, то есть преобразуются в недоступный извне код, для предотвращения несанкционированного доступа.
- Регулярное обновление: Пользователей могут заставлять регулярно обновлять свои пароли, для удержания уровня безопасности учетной записи.
- Блокировка учетной записи: Слишком много неудачных попыток входа может приводить к блокировке учетной записи, что предотвратит дальнейшие попытки несанкционированного доступа.
- Двухфакторная аутентификация (2FA): Это дополнительный уровень безопасности, требующий от пользователей двух форм проверки, обычно пароля и кода, отправляемого на смартфон.
Сброс забытого пароля
- Отправка ссылки для сброса пароля: Пользователи должны иметь возможность запросить ссылку для сброса пароля, которая высылается на зарегистрированный ранее адрес электронной почты.
- Секретный вопрос: В некоторых системах пользователю нужно ответить на секретный вопрос, прежде чем разрешить ему сбросить пароль.
- Временные пароли: В некоторых случаях пользователям может быть предоставлен временный пароль, позволяющий получить доступ к своей учетной записи, а затем установить новый пароль.
- Коды проверки: Это предполагает отправку кода на телефон или электронную почту пользователя, который он должен ввести, чтобы подтвердить свою личность перед сбросом пароля.
- Рекомендации и советы: Системы часто предоставляют инструкции и советы по созданию безопасного нового пароля в процессе сброса.
Тест-кейсы для создания пароля
Минимальные требования к длине:
- Test Case 1: Создать пароль короче, чем минимальная длина (обычно менее 8 символов). В результате должно появиться сообщение об ошибке, предлагающее пользователю ввести более длинный пароль.
- Test Case 2: Создать пароль, точно соответствующий требованиям к минимальной длине, чтобы убедиться, что он принят системой.
Сложность
Прописные и строчные буквы:
- Test Case 1: Ввести пароль без прописных букв. Система должна отклонить пароль и предложить пользователю включить прописные буквы.
- Test Case 2: Ввести пароль без строчных букв. Система должна отклонить пароль и предложить пользователю ввести строчные буквы.
Цифры:
- Test Case 1: Создать пароль, содержащий только буквы и ни одной цифры. Система не должна принять пароль и должна проинструктировать пользователя о необходимости включить хотя бы одну цифру.
Спецсимволы:
Test Case 1: Ввести пароль, в котором отсутствуют специальные символы. Система должна отклонить пароль и посоветовать пользователю включить спецсимволы.
Test Case 2: Ввести пароль, включающий различные специальные символы, чтобы убедиться, что он будет принят.
Тест-кейсы для входа по паролю:
Успешный вход:
Test Case 1: Введите правильное имя пользователя и пароль. Система должна предоставить доступ и перейти к панели пользователя.
Test Case 2: Введите валидный адрес электронной почты и соответствующий пароль. Пользователь должен войти в систему успешно и без ошибок.
Неудачные попытки входа:
Test Case 1: Введите неправильный пароль с правильным именем пользователя/электронной почтой. Система должна вывести сообщение об ошибке, указывающее на недействительные учетные данные.
Test Case 2: Введите правильный пароль с неправильным именем пользователя/электронной почтой. Система не должна войти в систему и должна указать, что имя пользователя/электронная почта неверны.
Test Case 3: Оставьте поле пароля пустым при вводе правильного имени пользователя/электронной почты. Попытка входа должна завершиться неудачей, и пользователю должно быть предложено ввести пароль.
Test Case 4: Оставьте поле имени пользователя/электронной почты пустым при вводе правильного пароля. Система не должна разрешить вход и должна предложить пользователю ввести имя пользователя/электронную почту.
Блокировка учетной записи после нескольких неудач:
Test Case 1: Попытка войти в систему с неправильным паролем несколько раз (например, пять раз подряд). Система должна заблокировать учетную запись и сообщить пользователю период блокировки.
Test Case 2: После блокировки учетной записи попытайтесь войти в нее с правильными учетными данными. Система должна предотвратить доступ и сообщить пользователю, что его учетная запись заблокирована.
Тестирование чувствительности к регистру:
Test Case 1: Ввести правильное имя пользователя/электронную почту и пароль в правильном регистре (например, «User123» и «Password123»). Должен быть выполнен успешный вход.
Test Case 2: Введите правильное имя пользователя/электронную почту в неправильном регистре и правильный пароль (например, «USER123» и «Password123»). Попытка входа должна завершиться неудачей, и система укажет на недопустимые учетные данные.
Test Case 3: Введите правильное имя пользователя/электронную почту и пароль в разных регистрах (например, «user123» и «password123»). Система должна отклонить попытку входа и уведомить пользователя о неправильных учетных данных.
Тест-кейсы сброса пароля
Инициирование сброса пароля:
Test Case 1: Введите зарегистрированное имя пользователя/электронную почту в поле сброса пароля и отправьте. Система должна подтвердить, что ссылка для сброса пароля была отправлена на зарегистрированный адрес почты или номер телефона.
Test Case 2: Введите незарегистрированное имя пользователя/ почту в поле для сброса пароля и отправьте запрос. Система должна уведомить пользователя о том, что имя пользователя/почта не распознаны.
Доставка ссылок для сброса пароля по электронной почте/SMS:
Test Case 1: Введите зарегистрированное имя пользователя/электронную почту для запроса сброса пароля. Убедитесь, что ссылка на сброс будет доставлена на зарегистрированный адрес почты или номер телефона, связанный с учетной записью, в течение определенного времени.
Test Case 2: Запросите сброс пароля для имени пользователя/электронной почты, зарегистрированной как с помощью электронной почты, так и с помощью SMS. Убедитесь, что ссылка на сброс пароля отправлена как на адрес электронной почты, так и на номер телефона.
Истечение срока действия ссылки сброса:
Test Case 1: Запросите ссылку сброса пароля и попытайтесь использовать ее немедленно. Система должна позволить пользователю сбросить пароль без проблем.
Test Case 2: Запросите ссылку для сброса пароля, но попытайтесь использовать ее после истечения срока действия (например, через 24 часа). Система должна уведомить пользователя о том, что срок действия ссылки сброса истек, и предложить ему запросить новую.
Недействительные попытки сброса:
Test Case 1: Изменение URL-адреса ссылки сброса пароля вручную и попытка ее использования. Система должна признать ссылку недействительной и предотвратить процесс сброса пароля.
Test Case 2: Попытка повторно использовать ранее использованную ссылку сброса для повторной смены пароля. Система должна отклонить попытку и предложить пользователю запросить новую ссылку для сброса.
Test Case 3: В процессе сброса пароля введите разные пароли в поля «Новый пароль» и «Подтвердить пароль». Система должна предупредить пользователя о несоответствии и потребовать исправить.
Тест-кейсы для смены пароля
Тест-кейсы изменения пароля при входе в систему:
Test Case 1: Войдите в учетную запись и перейдите в раздел изменения пароля. Введите текущий пароль, новый валидный пароль и подтвердите новый пароль. Убедитесь, что система приняла изменение и выдала подтверждающее сообщение.
Test Case 2: Войдите в учетную запись и попытайтесь изменить пароль с помощью нового пароля, который не соответствует требованиям безопасности (например, слишком короткий, без специальных символов). Система должна отклонить попытку и предоставить обратную связь по критериям пароля.
Проверка старого пароля:
Test Case 1: Войдя в систему, введите неправильный текущий пароль в форму смены пароля. Система должна отклонить попытку и уведомить пользователя о неправильном текущем пароле.
Test Case 2: Введите правильный текущий пароль и продолжите смену пароля. Система должна принять старый пароль и продолжить процесс без проблем.
Подтверждение нового пароля:
Test Case 1: Введите текущий пароль, новый пароль и несовпадающий пароль подтверждения. Система должна предупредить пользователя о необходимости исправить несоответствие, прежде чем продолжить.
Test Case 2: Введите текущий пароль, новый пароль и совпадающий пароль подтверждения. Убедитесь, что система успешно сменила пароль и подтвердила изменение.
Проверка истории паролей:
Test Case 1: Попытайтесь изменить пароль на один из предыдущих паролей, сохраненных в системе. Система должна отклонить попытку и предложить пользователю выбрать другой пароль.
Test Case 2: Измените пароль на совершенно новый пароль, который ранее не использовался. Система должна принять изменение и соответствующим образом обновить историю паролей пользователя.
Безопасность
Тестирование шифрования:
Test Case 1: Убедитесь, что пароль шифруется с помощью безопасного алгоритма хеширования (например, bcrypt, Argon2) перед хранением. Убедитесь, что пароли в открытом виде никогда не сохраняются в базу данных.
Test Case 2: Проверьте передачу пароля, чтобы убедиться, что он шифруется по протоколу HTTPS, что защищает его от перехвата в процессе входа в систему и смены пароля.
Предотвращение атак методом перебора:
Test Case 1: Смоделируйте несколько попыток ввода неправильного пароля в течение короткого периода времени. Система должна временно блокировать учетную запись или вводить задержку после заранее определенного количества неудачных попыток.
Test Case 2: Проверьте, использует ли система капчу или другие механизмы после нескольких неудачных попыток входа, чтобы автоматические скрипты не могли попытаться войти в систему путем угадывания паролей.
Предотвращение SQL-инъекций в полях паролей:
Test Case 1: Попытка ввода кода SQL-инъекции в поле пароля в процессе входа в систему и смены пароля. Система должна «очищать» вводимые данные и предотвращать выполнение вредоносных SQL-команд.
Test Case 2: Проведите анализ безопасности кода и используйте автоматизированные инструменты для выявления потенциальных уязвимостей SQL-инъекций в коде, связанном с аутентификацией.
Тестирование переключателей видимости пароля:
Test Case 1: Включите переключатель видимости пароля (глаз) при вводе нового пароля в процессе смены пароля. Убедитесь, что пароль виден только при активации переключателя, и скрыт после его деактивации.
Test Case 2: Проверьте, не приводит ли активация переключателя к непреднамеренному раскрытию пароля в логах сети или инструментах разработчика.
Граничные значения
Максимальная длина пароля:
Test Case 1: Попытка установить пароль, длина которого превышает максимально допустимую (например, 256 символов). Система должна отклонить пароль и вывести соответствующее сообщение об ошибке.
Test Case 2: Протестируйте установку пароля, точно соответствующего максимально допустимой длине. Система должна принять пароль без каких-либо проблем и обеспечить правильную обработку при входе в систему и смене пароля.
Обработка специальных символов:
Test Case 1: Создайте пароль, полностью состоящий из специальных символов (например, `!@#$%^&*()`). Система должна принять этот пароль и обеспечить его корректное функционирование во всех действиях, связанных с аутентификацией.
Test Case 2: Включите в пароль несколько различных специальных символов. Проверьте, правильно ли система распознает и обрабатывает эти символы при входе в систему и смене пароля.
Обработка пробелов:
Test Case 1: Введите пароль с пробелами в начале и в конце. Система должна обрезать пробельные символы и либо отклонить пароль, либо сохранить его без дополнительных пробелов, в зависимости от политики.
Test Case 2: Включите несколько последовательных пробельных символов в середине пароля. Убедитесь, что система правильно обрабатывает пробелы, либо принимая их как допустимые символы, либо следуя заданной политике паролей.
Поддержка международных символов:
Test Case 1: Задайте пароль с символами, например, акцентированных букв, кириллицы, китайских иероглифов. Убедитесь, что система корректно поддерживает и обрабатывает такие символы во всех действиях, связанных с аутентификацией.
Test Case 2: Проверьте, может ли поле пароля обрабатывать сочетание нестандартных и стандартных буквенно-цифровых символов. Система должна легко справляться с этой комбинацией без каких-либо проблем с кодировкой или хранением.
Тестирование доступности и удобства
Совместимость с программами чтения с экрана:
Test Case 1: Используйте программу чтения с экрана для навигации по процессам создания пароля и входа в систему. Убедитесь, что все инструкции, ссылки и поля ввода корректно отображаются устройством чтения с экрана.
Test Case 2: Убедитесь, что звуковые сообщения об ошибках и валидациях, связанные с вводом пароля, звучат четко и понятны пользователям, использующим устройство чтения с экрана.
Клавиатурная навигация по полям пароля:
Test Case 1: Проверьте возможность перехода к полям пароля с помощью только клавиатуры, обеспечив логичный и интуитивно понятный порядок вкладок. Убедитесь, что все элементы доступны в последовательном порядке.
Test Case 2: Убедитесь, что такие действия, как показ/скрытие пароля и отправка формы, могут быть выполнены с помощью сочетаний клавиш, обеспечивая полностью рабочий и эффективный пользовательский опыт без использования мыши.
Четкие сообщения об ошибках и инструкции:
Test Case 1: Убедитесь, что сообщения об ошибках, возникающих в результате нарушения политики паролей (например, недостаточная длина, отсутствие специального символа), являются четкими, краткими и содержат конкретные указания по устранению проблемы.
Test Case 2: Оцените инструкции по созданию пароля на странице регистрации. Убедитесь, что они понятные и исчерпывающие, что позволит пользователям легко понять, что от них требуется. Убедитесь, что эти инструкции легко найти и они хорошо видны в процессе установки пароля.
Производительность
Время отклика при проверке пароля:
Test Case 1: Измерьте время, необходимое системе для проверки и подтверждения пароля пользователя в процессе входа в систему. Убедитесь, что время отклика соответствует допустимому порогу (обычно менее 2 секунд), чтобы обеспечить бесперебойную работу пользователей.
Test Case 2: Оцените производительность проверки пароля при его создании. Убедитесь, что система проверяет надежность пароля и его соответствие требованиям политики без заметных задержек, обеспечивая оперативное взаимодействие с пользователем.
Нагрузка при одновременном сбросе нескольких паролей:
Test Case 1: Смоделируйте сценарий, в котором несколько пользователей (например, 1000 одновременных пользователей) одновременно выполняют операции по сбросу пароля. Проследите за тем, как система справляется с нагрузкой, обеспечивая эффективную и безошибочную обработку всех запросов на сброс.
Test Case 2: Проверьте производительность системы в условиях пиковой нагрузки, например во время события, когда множество пользователей одновременно пытаются сбросить пароли. Убедитесь, что система остается стабильной и отзывчивой, а электронные сообщения о сбросе паролей рассылаются своевременно и без существенных задержек.
Лучшие практики
Советы по написанию эффективных тест-кейсов, связанных с паролями.
- Определите четкие критерии: Убедитесь, что тест-кейсы содержат четкие критерии надежности пароля, такие как минимальная длина, включение спецсимволов и требования к сложности.
- Включите граничные условия: Тестируйте пограничные состояния, например, с самыми короткими и самыми длинными допустимыми паролями, и т.п.
- Автоматизируйте, где это возможно: Используйте инструменты автоматизированного тестирования для проведения часто повторяющихся и рутинных тестов.
- Тестируйте на нескольких устройствах и браузерах: Чтобы гарантировать стабильную производительность и безопасность.
- Ориентируйтесь на ощущения пользователей: Убедитесь, что сообщения об ошибках понятны и информативны, что позволит исправлять введенные данные без разочарования.
- Применяйте передовые методы тестирования безопасности: Включите в набор тесты безопасности, например ограничение скорости и количества попыток ввода пароля.
Распространенные ошибки
- Недооценка спецсимволов: Отсутствие проверки на специальные символы может привести к пропуску уязвимостей.
- Отсутствие обработки ошибок: Отсутствие проверки реакции системы на ввод недействительного пароля, например отображение сообщений об ошибках, может привести к ухудшению user experience.
- Недооценка важности нагрузочного тестирования: Что может привести к неожиданным задержкам или сбоям.
- Недостаточный охват граничных значений: Недостаточное тестирование граничных значений (например, паролей минимальной и максимальной длины) может привести к пропуску критических ошибок.
- Отсутствие проверки повторного использования паролей: Игнорирование проверок на соответствие политикам повторного использования паролей может поставить под угрозу безопасность учетных записей.
- Недооценка важности кросс-браузерного тестирования: Непроведение тестирования во всех поддерживаемых браузерах может привести к потенциальным проблемам у многих пользователей.