Одноразовые пароли (англ. one time password, OTP) – необходимый шаг для защиты данных и аутентификации пользователей. Любая онлайн-транзакция, включая кредитные/дебетовые карты, запрашивает OTP для защиты плательщика. Будучи наиболее критичным аспектом безопасности денежных переводов, функциональность OTP требует надлежащего тестирования. В этой статье мы расскажем вам о создании тест-кейсов для функциональности OTP и разберем несколько реальных примеров. Это поможет вам лучше разобраться с методикой разработки тест-кейсов и уверенно применять ее в других областях тестирования.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Что собой представляют одноразовые пароли?
OTP – это динамический код аутентификации, действительный для однократного использования и применяемый для повышения безопасности онлайн-транзакций. Обычно OTP отправляется по SMS или генерируется приложениями-аутентификаторами и представляет собой дополнительный уровень защиты по сравнению с традиционными паролями. Такие коды нужны для предотвращения несанкционированного доступа, снижения риска кражи личных данных и обеспечения безопасности финансовых операций.
Например, когда при входе на банковский портал пользователь получает OTP на зарегистрированный мобильный телефон, это помогает подтвердить личность пользователя и защищает его от потенциальных киберугроз. OTP играют важнейшую роль в укреплении цифровых взаимодействий и усилении протоколов аутентификации пользователей.
Зачем использовать одноразовые пароли?
Вы уже знаете, что OTP необходимы для предотвращения кражи личных данных. Но их использование не ограничивается только этим.
OTP играют ключевую роль в повышении безопасности цифровых взаимодействий. В отличие от статических паролей, OTP обеспечивают динамическую аутентификацию, снижая риск несанкционированного доступа. Они играют решающую роль в защите конфиденциальных данных во время онлайн-транзакций, входа в аккаунт и процессов проверки личности.
Несомненным преимуществом технологии OTP является тот факт, что эти коды имеют ограниченный по времени срок действия. Это делает ОТР весьма эффективным методом борьбы с киберпреступностью.
Зачем тестировать одноразовые пароли?
Тестирование OTP проводится для снижения или устранения рисков, связанных с несанкционированным доступом к данным. Вот основные аспекты, которым следует уделить внимание при тестировании OTP:
- OTP чувствительны ко времени. Тестирование позволяет убедиться, что срок действия OTP истекает должным образом и использование устаревших кодов невозможно.
- Тесты OTP дают дополнительный уровень защиты к ряду действий по обеспечению безопасности, таких как генерация новых паролей, инициирование денежных транзакций и, в некоторых случаях, блокировка онлайн-переводов.
- Тщательное тестирование помогает выявить уязвимости и слабые места, которые могут быть использованы злоумышленниками, пытающимися обойти OTP-аутентификацию.
- В целом, тестирование OTP необходимо для проверки эффективности, надежности и безопасности процесса аутентификации.
Давайте рассмотрим реальный пример входа в Gmail с нового устройства. При входе в существующую учетную запись Gmail с нового устройства на старом устройстве появляется уведомление о попытке входа. Ниже показан процесс двухэтапной проверки (2-step verification):
Хотя этот процесс отличается от OTP, функция у них одинаковая: оба подтверждают личность пользователя, выполняющего вход или транзакцию.
Тест-кейсы для одноразовых паролей
Многие считают, что, несмотря на критическую важность, роль OTP довольно проста. Поэтому для OTP должны существовать легко выполнимые тест-кейсы. Ниже представлен полный набор тестов, как позитивных, так и негативных, для обеспечения безупречной функциональности и надежности OTP при аутентификации пользователей и защите конфиденциальной информации.
Позитивные тест-кейсы для OTP
- Успешная генерация и доставка OTP через SMS.
- Проверка правильности введенного OTP.
- Бесшовная интеграция (Seamless integration) с процессами многофакторной аутентификации.
- Истечение срока действия OTP.
- Возможность обработки одновременных запросов OTP.
- Доставка OTP по электронной почте.
- Реакция на правильный ввод OTP в различных браузерах.
- Успешность подтверждения OTP с минимальным временем ожидания пользователя.
- Корректность функционирования OTP на различных устройствах.
- Безошибочность генерации OTP для различных учетных записей пользователей.
- Легкая интеграция со сторонними приложениями OTP-аутентификаторов.
- Тестирование возможности повторной отправки OTP для одного и того же действия транзакции.
- Тестирование реакции системы на быстрые последовательные запросы OTP.
Негативные тест-кейсы для OTP
- Ввод неверного OTP.
- Чрезмерное количество попыток ввода OTP приводит к временной блокировке аккаунта.
- Сбой проверки OTP для просроченных кодов.
- Неудачная доставка OTP из-за проблем с сетью.
- Неправильная обработка ввода буквенно-цифровых OTP.
- Тестирование реакции системы на задержку доставки OTP.
- Тестирование реакции системы на получение дубликатов OTP.
- Обработка сценариев, в которых OTP не доставляются или не принимаются.
Как написать тест-кейсы для OTP?
Для обеспечения эффективности одноразовых паролей необходимо тщательно разрабатывать тест-кейсы. Их создание подразумевает стратегический подход к проверке процессов генерации паролей, их доставки и аутентификации. Ниже описан пошаговый процесс создания комплексных тест-кейсов для OTP:
- Определите различные сценарии, такие как регистрация новых пользователей, попытки входа в систему и конфиденциальные транзакции, требующие проверки OTP.
- Уточните, как генерируются одноразовые пароли – через SMS, электронную почту или сторонние приложения-аутентификаторы.
- Удостоверьтесь в том, что одноразовые пароли чувствительны ко времени, и убедитесь, что срок их действия истекает по истечении установленного периода.
- Оцените способность системы обрабатывать несколько запросов OTP одновременно без ущерба для безопасности.
- Создайте тест-кейсы для оценки реакции системы на неправильный ввод OTP, просроченные коды и другие потенциальные ошибки.
- Оцените интеграцию OTP с приложениями аутентификации сторонних разработчиков.
Как уже говорилось, тестов OTP много, и их выполнение требует разных усилий. Ниже мы привели несколько примеров популярных и необходимых тестов проверки кода OTP, с которыми наверняка сталкивается каждый тестировщик.
Проверьте, сгенерирован ли OTP и отправлен ли он правильному пользователю
- Сгенерируйте OTP для регистрации нового пользователя.
- Убедитесь, что правильный пользователь получил OTP по SMS / электронной почте.
- Проверьте своевременность доставки OTP.
- Проверьте генерацию OTP для пользователей со специальными символами в учетных данных.
- Протестируйте доставку OTP в разных географических точках.
Проверьте поле ввода OTP
- Подтвердите наличие поля для ввода OTP.
- Проверьте правильность маркировки и описания поля ввода OTP.
- Проверьте отзывчивость поля ввода на различных устройствах.
- Проверьте способность поля принимать только числовые значения.
- Проверьте, позволяет ли поле ввода вставлять скопированные значения OTP.
- Убедитесь, что поле ввода OTP поддерживает функцию автозаполнения.
- Проверьте поведение поля при попытке ввести больше символов, чем требуется.
Проверка длины OTP
- Убедитесь, что длина OTP соответствует установленным требованиям.
- Протестируйте реакцию системы на OTP с меньшим количеством символов.
- Убедитесь, что система отклоняет одноразовые пароли с длиной, превышающей установленный лимит.
- Проверьте длину OTP на наличие вариаций, включая буквенно-цифровые символы.
- Проверьте длину OTP в сценариях многофакторной аутентификации.
Проверка времени действия OTP
- Убедитесь, что срок действия OTP соответствует установленным политикам безопасности.
- Протестируйте реакцию системы при вводе просроченного одноразового пароля.
- Проверьте точность времени истечения срока действия при высокой нагрузке на сервер.
- Проверьте реакцию системы при попытке повторного использования OTP с истекшим сроком действия.
- Убедитесь, что время истечения срока действия совпадает при различных способах доставки.
Проверьте успешность верификации OTP
- Убедитесь в успешной верификации правильного OTP.
- Протестируйте проверку OTP для различных сценариев использования, таких как вход в систему и транзакции.
- Убедитесь, что проверка OTP предоставляет доступ к учетной записи предполагаемого пользователя.
- Оцените реакцию системы на проверку просроченных, но действительных OTP.
- Проверьте точность проверки OTP в оффлайн-сценариях.
- Проверьте верификацию OTP в сценариях восстановления учетной записи.
- Проверьте, как ведет себя система при верификации OTP в условиях нескольких активных сессий.
- Протестируйте проверку OTP в сценариях с одновременными попытками входа в систему.
Проверьте, отклонен ли неверный OTP
- Подтвердите, что ввод неправильного OTP приведет к отказу.
- Протестируйте отклонение системой просроченных OTP.
- Убедитесь в том, что одноразовые пароли с лишними символами отклоняются.
- Протестируйте отклонение OTP с недостаточным количеством введенных символов.
- Убедитесь, что система отказывает в доступе после нескольких неверных попыток ввода OTP.
- Проверьте реакцию системы при попытке повторного использования отклоненного одноразового пароля.
- Проверьте отклонение OTP для пользователей с заблокированными учетными записями.
Проверьте, может ли пользователь запросить другой OTP
- Проверьте возможность запроса нового OTP после неудачной попытки верификации.
- Проверьте, может ли пользователь запросить другой OTP в процессе первичной регистрации.
- Проверьте реакцию системы при запросе нескольких OTP за короткий промежуток времени.
- Протестируйте функциональность запроса нового OTP для различных пользовательских сценариев (вход в систему, транзакции и т. д.).
- Подтвердите, влияет ли запрос другого OTP на действительность ранее отправленного OTP.
- Оцените поведение системы при попытке запросить несколько OTP одновременно.
- Проверьте возможность пользователя запрашивать новый OTP после успешной проверки.
- Проверьте реакцию системы на частые запросы OTP от одного и того же пользователя.
- Проверьте, влияет ли запрос другого OTP на время истечения срока действия предыдущего OTP.
- Проверьте точность запросов OTP для пользователей при восстановлении учетной записи.
- Оцените поведение системы при запросе нескольких OTP на различных устройствах.
Проверьте, отправлен ли OTP на несколько устройств
- Подтвердите одновременную доставку OTP на зарегистрированную электронную почту и номер мобильного телефона пользователя.
- Протестируйте доставку OTP на несколько устройств, связанных с одной учетной записью пользователя.
- Проверьте, поддерживает ли система отправку OTP на основные и дополнительные контактные данные.
- Протестируйте последовательную доставку OTP на несколько устройств при высокой нагрузке на сервер.
- Оцените поведение системы, когда пользователь имеет несколько активных сессий на разных устройствах.
- Проверьте, получают ли пользователи OTP одновременно по каналам SMS и электронной почты.
- Протестируйте доставку OTP пользователям в сценариях восстановления учетных записей на нескольких устройствах.
Проверьте ввод специальных символов в поле ввода OTP
- Проверьте, как ведет себя поле ввода при вводе букв, цифр и специальных символов.
- Проверьте способность поля ввода принимать одноразовые пароли с буквенно-цифровыми символами.
- Оцените реакцию системы на ввод специальных символов в начале или конце OTP.
- Убедитесь, что поле ввода не допускает пробелов или недопустимых символов в OTP.
- Протестируйте поведение системы при вводе специальных символов в поле OTP с функцией автозаполнения.
- Проверьте возможность копирования OTP и вставки его в поле ввода.
- Проверьте, реагирует ли поле ввода на специальные символы при быстрых последовательных попытках.
Проверьте, может ли пользователь отправить OTP повторно
- Подтвердите возможность повторной отправки пользователем OTP в процессе первичной регистрации.
- Проверьте реакцию системы при попытке повторной отправки OTP после неудачной верификации.
- Проверьте правильность доставки повторно отправленного OTP на зарегистрированные контактные данные пользователя.
- Проверьте, может ли пользователь повторно отправить OTP во время транзакции или попытки входа в систему.
- Протестируйте поведение системы, когда пользователи повторно отправляют OTP несколько раз подряд.
- Убедитесь, что при повторной отправке OTP предыдущий OTP становится недействительным.
- Проверьте возможность повторной отправки OTP для сценариев восстановления учетной записи.
- Проверьте, правильно ли система обрабатывает запросы на повторную отправку OTP от пользователей с несколькими активными сессиями.
- Проверьте точное время истечения срока действия повторно отправленных OTP по сравнению с первоначальной доставкой.
Проверьте, имеет ли поле ввода OTP ограничение по количеству символов
- Подтвердите наличие ограничения по количеству символов для поля ввода OTP.
- Протестируйте поведение поля ввода при вводе OTP в пределах установленного лимита символов.
- Проверьте правильность проверки OTP с максимально допустимым количеством символов.
- Проверьте, не запрещает ли система вводить одноразовые пароли, превышающие установленный лимит символов.
- Проверьте, как реагирует поле ввода на достижение лимита символов при ручном вводе.
- Протестируйте поведение системы при вводе OTP с максимальным ограничением по количеству символов с помощью копирования-вставки.
- Убедитесь, что система обрабатывает одноразовые пароли различной длины до установленного предела.
- Проверьте поведение поля ввода при вводе OTP с минимально допустимым количеством символов.
- Протестируйте реакцию системы на ввод OTP с длиной, близкой к установленному пределу.
- Убедитесь, что ограничение по количеству символов одинаково для всех каналов доставки OTP (SMS, электронная почта и т. д.).
Проверьте, является ли ввод OTP чувствительным к регистру
- Проверьте реакцию поля ввода OTP на ввод одноразового пароля в верхнем регистре.
- Подтвердите поведение системы при вводе одноразового пароля в нижнем регистре.
- Убедитесь в том, что поле ввода OTP не чувствительно к регистру при ручном вводе.
- Протестируйте реакцию системы на ввод OTP в смешанном регистре (например, UppErCaSe).
- Убедитесь, что система точно проверяет одноразовые пароли, не зависящие от регистра.
- Проверьте, правильно ли система обрабатывает нечувствительные к регистру OTP, введенные методом копирования-вставки.
- Проверьте, правильно ли система обрабатывает нечувствительные к регистру OTP с пробелами.
- Протестируйте, учитывается ли регистр при валидации OTP для пользователей с несколькими активными сессиями.
Проверьте локализацию отправки OTP
- Проверьте точность доставки OTP пользователям с разными кодами стран.
- Проверьте поведение системы при вводе неверного кода страны в номере телефона.
- Удостоверьтесь в том, что одноразовые пароли стабильно доставляются пользователям в разных географических точках.
- Протестируйте реакцию системы на различную длину кода страны.
- Проверьте доставку OTP пользователям с пробелами в коде страны.
- Проверьте, отправляется ли OTP на правильный код страны для пользователей со сценариями восстановления учетной записи.
- Подтвердите точную доставку OTP пользователям с различными форматами кодов стран.
- Протестируйте доставку OTP пользователям с кодами стран, содержащими специальные символы.
Проверка отключения поля ввода OTP после успешной верификации
- Проверьте поведение поля ввода OTP после успешной верификации.
- Убедитесь, что после успешного входа в систему поле ввода OTP становится неактивным.
- Проверьте реакцию системы при попытке ввода дополнительных символов после успешной проверки.
- Проверьте, предотвращает ли система ввод новых OTP после успешной верификации.
- Проверьте поведение системы при копировании и вставке OTP в отключенное поле ввода.
- Проверьте отключение поля ввода OTP на разных устройствах.
- Проверьте отключение поля ввода OTP после успешной верификации транзакции.
- Подтвердите реакцию системы на отключенное поле ввода OTP в сценариях с одновременными попытками входа в систему.
Проверьте, уведомлен ли пользователь о повторной отправке OTP
- Проверьте способность системы уведомлять пользователей об успешных запросах повторной отправки OTP.
- Подтвердите, что пользователи получают уведомления о неудачных попытках повторной отправки OTP.
- Проверьте уведомление о повторной отправке OTP в процессе первичной регистрации.
- Проверьте, уведомляет ли система пользователей о повторной отправке OTP после неудачных попыток верификации.
- Проверьте реакцию системы на частые повторные запросы OTP от одного и того же пользователя.
- Подтвердите, что пользователи получают уведомление при попытке повторной отправки OTP с истекшим сроком действия.
- Убедитесь, что пользователи получают уведомления о повторной отправке OTP по каналам SMS и электронной почты.
- Протестируйте реакцию системы на уведомление пользователей о неудачных повторных отправках OTP из-за проблем с сетью.
Проверка отключения поля ввода OTP после определенного количества попыток
- Убедитесь, что поле ввода OTP становится неактивным после превышения допустимого количества попыток.
- Проверьте отключение поля ввода OTP после достижения определенного предела попыток на разных устройствах.
- Проверьте, предотвращает ли система ввод новых OTP после того, как поле ввода было отключено.
- Подтвердите, что пользователи получают уведомления, когда поле ввода OTP отключено.
- Проверьте реакцию системы при попытке ввода дополнительных символов после отключения поля.
- Убедитесь в том, что поле ввода OTP отключено после успешной проверки на нескольких устройствах.
- Убедитесь, что поле ввода OTP остается неактивным при нескольких успешных попытках верификации.
- Проверьте поведение системы при копировании и вставке OTP в отключенное поле ввода.
Проверка блокировки пользователя после определенного количества попыток
- Убедитесь, что учетная запись пользователя заблокирована после превышения установленного лимита попыток.
- Проверьте поведение системы при вводе правильных OTP после блокировки учетной записи пользователя.
- Проверьте состояние блокировки учетной записи пользователя на разных устройствах.
- Проверьте, предотвращает ли система дополнительные попытки ввода OTP после блокировки пользователя.
- Подтвердите, что пользователи получают уведомления, когда их учетная запись блокируется из-за неудачных попыток.
- Проверьте состояние блокировки учетной записи пользователя в сценариях восстановления учетной записи.
- Проверьте состояние блокировки учетной записи пользователя при нескольких активных сеансах.
- Проверьте поведение системы при копировании и вставке OTP в поле ввода после блокировки учетной записи пользователя.
Заключение
Одноразовые пароли являются неотъемлемой частью любой онлайн-транзакции. Поэтому и тестирование OTP – обязательная и важная часть разработки систем, запускающих такие функции. Тесты OTP включают в себя огромное количество сценариев и шагов, направленных на охват всех аспектов одноразовых паролей, включая их генерацию, срок действия, чувствительность к различным символам и многое другое. Все эти тесты перечислены в этой статье.
Перевод статьи «How to Write Test Case For OTP Verification With Samples».