как тестировать форму авторизации
Тестируемый компонент: Авторизация на сайте
Составить тест-кейсы на тестирование формы авторизации на страничке.
Форма авторизации имеет:
· поле ввода электронной почты (электронная почта служит логином для авторизации, поддерживает по документации до 20 символов);
· поле ввода пароля (поддерживает по документации до 20 символов);
· чекбокс «Запомнить почту и пароль» (по умолчанию неактивен);
· кнопку «Авторизироваться».
После успешной авторизации пользователь должен увидеть сообщение «Всё окей». В случае неудачной авторизации пользователь должен увидеть сообщение «Извини, не в этот раз».
Комментарии к спеку:
· не указано в спеке до 20 символов в поле ввода электронной почты и пароля: включительно или нет? (я взял не включительно, то есть максимум 19 символов);
· не указано минимально допустимое количество символов в поле ввода электронной почты и пароля (создал тест-кейс для тестирования пустых полей ввода);
· не указано какие символы допустимы в пароле;
· не указано название сайта (я принял его за «example.ru»);
· не указаны координаты расположения формы авторизации на веб-странице;
· при необходимости можно дополнить тест-комплект тест-кейсами на проверку клавиш «Backspace» и «Escape».
Среда выполнения: Google Chrome 41.0.2272.101 m.
Тестируемый компонент: Авторизация на сайте
Тестирование Web формы
Здравствуйте, сразу уточню что это тестовое задание.
Мне нужно протестировать веб форму любого сайта(только поле регистрации и авторизации). Я уже этим занимаюсь 4 часа))). Опыта в подобных вещах у меня нет. Поэтому я был бы очень рад если бы вы глянули на то, что у меня получается. Особенно по поводу оформления, я очень сильно переживаю, как-то всё громоздко получается. Полная работа будет страниц на 12 где-то, не уверен, что это нормально). Вообщем буду очень рад если вы меня скорректируете. Если не трудно напишите, что хорошо, а что плохо.
1. Форма Регистрации
1.1) Ввести все предложенные данные корректно.
1.2) Ввести только обязательные поля
1.3) Заполнить все данные и обновить страницу
1.4) Не заполнять данные и выполнить регистрацию.
1.5) Ввести максимально допустимые значения в поля ввода.
1.6) Ввести минимально допустимые значения в поля ввода.
1.7) Поля Имя и Фамилия:
А) Ввести только одни пробелы;
Б) Ввести данные на английском языке;
Г) Ввести спецсимволы.
1.8)Ввод Пароля:
А)Аналогичный почте;
Б)Состоящий только из пробелов.
1.9)Почта
А) Ввести почту уже зарегистрированного пользователя;
Б) Использовать русские буквы в почте;
В) Не указывать символ “@”;
Г)Не указывать домен верхнего уровня.
1.9)Выбор даты рождения:
А)Выбрать ещё не наступившую дату
Б)Выбрать в качестве даты рождения текущее число
Г)Выбрать в качестве даты рождения не существующую дату
Д)Проверка «29 февраля»
2.1 Проверка формы авторизации:
2.1) Выполнить вход в аккаунт введя все данные корректно.
2.2) Не заполнять поля авторизации и попытаться осуществить вход.
2.4) Заполнить корректно только поле пароль.
2.5) Попытаться осуществить вход используя аккаунт, пароль которого состоит из пробелов.
2.6) Ввести корректный маил, но не корректный пароль.
2.7) Ввести не корректный маил, но корректный пароль.
Форма Регистрации
Т1.1) Ввести все предложенные данные корректно.
Ожидаемый результат: Появляется уведомление: «Учетная запись создана.
Фактический результат: Появляется уведомление: «Учетная запись создана.
Т 1.2) Ввести только обязательные поля
Ожидаемый результат: Появляется уведомление: «Учетная запись создана.
Фактический результат: Появляется уведомление: «Учетная запись создана.
T 1.3) Заполнить все данные и обновить страницу
Шаги: 1) На сайте https://tomas33.ru заполнить все данные для регистрации и обновить страницу.
Ожидаемый результат: Очистка введённой информации.
Шаги по воспроизведению:
1)На сайте https://tomas33.ru выбрать пункт регистрация.
Т1.4 Не заполнять данные и выполнить регистрацию.
Шаги: 1) На сайте https://tomas33.ru при регистрации оставить все поля пустыми и попытаться зарегистрироваться.
Ожидаемый результат: неудачная регистрация с указанием ошибок.
Фактический результат: неудачная регистрация с указанием ошибок. Данные предложения составлены грамматически неверно. С нарушением правил русского языка.
Т1.5) Ввести максимально допустимые значения в поля ввода.
Ожидаемый результат: Успешная регистрация
Фактический результат: Ошибка: 500 Server Error
БАГ1.5) Ввод максимально допустимых значений
Описание: При вводе максимально допустимых [сА1] значений при регистрации сайт отображает ошибку «500 Server Error».
Шаги по воспроизведению:
1) На сайте https://tomas33.ru выполнить регистрацию введя в поле email 128 символов.
Деффект: сервер выдаёт ошибку: «500 Server Error»
Т1.6) Ввести минимально допустимые значения в поля ввода.
Ожидаемый результат: Успешная регистрация.
Фактический результат: Успешная регистрация.
T1.7.А) В поля «Имя» и «Фамилия» ввести только одни пробелы;
Шаги: 1) На сайте https://tomas33.ru выполнить регистрацию введя в поля Имя, Фамилия только пробелы.
Ожидаемый результат: Сообщение об ошибке.
Фактический результат: Успешная регистрация.
БАГ1.7.А) Возможность регистрация нового пользователя имя и фамилия которого состоит из пробелов.
Описание: Во время регистрации при вводе в поля «Имя» и «Фамилия» пробелов, система воспринимает их корректно и успешно регистрирует нового пользователя.
Шаги по воспроизведению:
1) На сайте https://tomas33.ru выполнить регистрацию введя в поля «Имя» и «Фамилия» только пробелы.
Деффект: Система корректно воспринимает регистрацию нового пользователя имя и фамилия которого состоит из пробелов.
T1.7.Б) Ввести данные на английском языке;
Шаги: 1) На сайте https://tomas33.ru выполнить регистрацию введя в поля Имя, Фамилия слова на английском языке.
Ожидаемый результат: Успешная регистрация.
Фактический результат: Успешная регистрация.
T1.8.В) Ввести цифры
Шаги: 1) На сайте https://tomas33.ru выполнить регистрацию введя в поля Имя, Фамилия цифры.
Ожидаемый результат: Сообщение об ошибке.
Фактический результат: Сообщение об ошибке.
T1.8.Г) Ввести спецсимволы.
Шаги: 1) На сайте https://tomas33.ru выполнить регистрацию введя в поля Имя, Фамилия спецсимволы.
Ожидаемый результат: Сообщение об ошибке.
Фактический результат: Сообщение об ошибке.
Тестирование регистрации и авторизации
Здравствуйте. Хочу реализовать проверку регистрации и авторизации пользователя на сайте. Для этого написал два теста, один на регистрацию, а второй, соответственно, на авторизацию. Причем, планирую использовать тест в нескольких браузерах и часто прогонять его.
Для регистрации использую скрипт, который копирует рандомную почту с одно сайта и вставляет это значение куда надо.
Но возникла проблема с реализацией авторизации через только что зарегистрированную почту, так как второй тест не видит эту переменную с почтой.
Подскажите, как бы можно было это реализовать?
Ибо если повторно зайти на страницу то будет уже новая почта. Да и тесты не должны быть независимы друг от друга (если по правильному).
UPD: Да, забыл добавить что использую Selenium web driver + java + testNG + log4j
Да и тесты не должны быть зависимы друг от друга (если по правильному)
если ТестНГ то используйте контекст, если что другое, то инджекты или что ещё
это юнит-тесты должны быть независимы, а интеграционные и е2е тесты всегда будут зависимыми, так как один тест создаст пользователя а другой тест использует созданного пользователя для логина
конечно можно сделать по-настоящему независимыми, тогда пользователя придётся создавать в каждом тесте, что плохо скажется на всём сьюте
если ТестНГ то используйте контекст
Не подскажете, что именно подразумеваете под этим? Я в автоматизации не так давно, и ещё много чего не знаю.
Чек-лист тестирования WEB приложений
Привет! После публикации статьи «Чек-лист тестирования мобильных приложений», поступило большое количество сообщений про такой же чек-лист, только для WEB приложений. Чтобы ответить на этот вопрос была подготовлена универсальная шпаргалка, которую можно использовать при тестировании практически любого WEB приложения.
В данный чек-лист вошли только общие характеристики. Естественно, в тестируемом приложении может быть функциональность, для которой нужно применять отдельный подход и создать отдельные сценарии. То же самое верно для производительности, удобства использования, безопасности и прочего тестирования, которое необходимо вашему приложению.
Чек-лист для тестирования WEB приложений состоит из шести разделов:
Функциональное тестирование
В данном пункте нам важно убедиться, что наш продукт соответствует нужной функциональной спецификации, упомянутой в документации по разработке.
Что проверяем?
Интеграционное тестирование
Интеграционное тестирование проводится для того, чтобы убедиться, что ваше приложение совместимо со сторонними сервисами.
Что проверяем?
Тестирование безопасности
Данная проверка нацелена на поиск недостатков и пробелов с точки зрения безопасности нашего приложения.
Что проверяем?
Тестирование локализации и глобализации
Тестирование интернационализации/глобализации WEB приложения включает тестирование приложения для различных местоположений, форматов дат, чисел и валют. Тестирование локализации включает тестирование WEB приложения с локализованными строками, изображениями и рабочими процессами для определенного региона.
Что проверяем?
Тестирование удобства использования
Тестирование удобства использования подразумевает проверку навигации, контента, другая информация для пользователя.
Что проверяем?
Кросс-платформенное тестирование
Кросс-платформенное тестирование проводится, чтобы убедиться, что ваше приложение совместимо с другими браузерами, различными оболочками, аппаратным обеспечением устройства.
Принципы и тестовые сценарии для тестирования паролей
Такой термин как «пароли» обычно использовался как способ защиты перед чем-то, к примеру, ранее – для прохода в населенный пункт и свободного перемещения по его территории.
На сегодняшний день пароли используются для надежной защиты физической информации, а также цифровых данных, которые могут храниться на жестких дисках, мобильных устройствах, ну и, конечно же, на веб-сайтах.
Пароль (с английского – password) – условное буквенное/числовое обозначение, использующееся для верификации личности и/или ее полномочий. Их применяют для процесса защиты персональной информации от несанкционированного доступа.
Сегодня в сфере веб-технологий еще нет ни одного единоверного формата для создания паролей, а значит, каждый веб-сайт, система которого требует пользовательской верификации, сам определяет, какого формата и типа должен быть пароль.
Есть медиа ресурсы, которые вообще не требуют ничего сверхъестественного, принимая минимальный набор символов и знаков, а некоторые требуют слишком многого.
Порой на просторах Интернет-паутины можно встретить условия по созданию пароля – от восьми символов, в конце которого нужен специальный символ, а также парочка цифр, и несколько букв в верхнем регистре.
Конечно же, для системы это очень хорошее и даже правильное требование, но подобная защита может стать неразрешимой загадкой и для самого пользователя. Создав пароль под подобные запросы, он рискует забыть его уже через пару часов.
Идеальное поле для ввода пароля не должно содержать ограничение на ввод определенного количества символов, но оно должно содержать грамотно сформированную подсказку, чтобы сообщать пользователю насколько сложный и запутанный пароль у него получилось придумать. Если убрать ограничение на ввод букв в верхнем и нижнем регистре, а также специальных символов, то можно обезопасить клиента от злоумышленников, которым будет весьма трудно подобрать необходимую комбинацию значений.
Но на практике часто бывает так, что не все пользователи «правильно» распоряжаются порывами своего воображения, зачастую выдумывая неразрешенные задачи для самих себя.
Список самых популярных паролей, которые НЕ РЕКОМЕНДУЕТСЯ использовать
Аналитики Интернет-сообществ, составили перечень из 10-ти наиболее популярных паролей, которые не стоит использовать для защиты персональных данных в глобальной сети.
К сожалению, постоянно фиксируются случаи использования нескольких комбинаций из следующего перечня:
Если проанализировать этот перечень то можно убедится в том, что наиболее плохими вариантами являются пароли, состоящие из банального набора цифр или коротких фраз. По сравнению с ними, даже простая комбинация из 12345678qwerty – будет казаться более-менее надежной защитой перед киберпреступниками.
А значит, крайне важно создавать сложные пароли, содержащие несколько типов символов, и желательно без использования целостных фраз.
Если есть определенные сложности при создании подобного пароля, в сети существует множество онлайн генераторов. К примеру, веб-браузер Google Chrome предлагает сразу несколько вариаций надежных паролей на странице регистрации в своем веб-сервисе.
Имея общее представление о том, что же собой представляет пароль и какую функцию он выполняет, можно перейти непосредственно к вопросу тестирования поля для ввода пароля.
Кроме шаблонных проверок, вроде процедуры выравнивания полей, высоты и ширины поля, необходимо отметить следующие рекомендации по тестированию паролей и остальных форм для заполнения.
Шаги тестирования паролей
Проверка валидации
Вначале процесса тестирования паролей нужно узнать, какие именно специфические правила валидации были внедрены разработчиками на проекте. Выше уже отмечалось, что некоторая категория сайтов имеет свое «персонализированное» представление касательно правильного пароля, а значит, строчить сообщение в баг-репорт касательно того, что вводимый пароль из 6 цифр не принимается, не стоит, если это прямо не предусмотрено принятой на проекте спецификации.
Обязательность заполнения поля
Всегда стоит проводить проверку работы полей «Пароль» и «Повторите пароль» на обязательность к заполнению. Также стоит обращать внимание, что эти поля должны принимать одно и то же значение. Зачастую можно встретить сайты, на которых поле «Повторите пароль» работает неверно и отличается неверной валидацией.
Обязательность заполнения поля
Скрытие вводимых символов
Информация в поле «Пароль» должна отображаться на экране дисплея кружочками, точечками или звёздами. Также в правой части поля для ввода «Пароля» должна отображаться специальная иконка, отвечающая за включение/выключение функции отображения пароля, работу которой также стоит проверить на валидность.
Скрытие вводимых символов
Кроссбраузерная проверка
Развивая тему с иконками дальше – необходимо проверить работу по вводу пароля в различных браузерах, так как в том же браузере Safari есть специальная иконка для подстановки пароля. Если программисты не учли этого момента, то данная иконка запросто может накладываться на соседнюю иконку, отвечающую за показ/скрытие пароля.
Старые пароли
Поле для ввода пароля может присутствовать на сайте не только на странице регистрации, но и на веб-странице редактирования пользовательских данных. Хорошей практикой считается логика сохранения старых паролей клиентов в БД, а сама система сайта не позволяла редактировать пароль на тот, который уже был ранее использован. Для поддержания высокого уровня безопасности важно и то, чтобы каждый новый пароль клиента отличался от предыдущего и был оригинальным в рамках одного аккаунта.
Демонстрация правил по вводу
Если система сайта «выставляет» свои правила для ввода пароля, для их удобного восприятия со стороны клиента, их нужно размещать в непосредственной близости от поля для ввода пароля. Считается не очень удобно, когда клиент узнает об ошибке ввода значения еще до того, как эти же условия были отображены.
Демонстрация правил по вводу
Валидация до и после отправки заполненной формы
Перед тем как начинать проводить тестирование, стоит узнать, на каком именно этапе проводится процесс валидации. Еще остались сайты, формы ввода пароля на которых демонстрируют всплывающие подсказки с определенными ошибками, которые совершил клиент.
Уровень сложности
Иногда можно встретить формы, в структуру которых добавлен специальный индикатор сложности, стимулирующий клиента на создание очень сложного пароля для лучшей защиты персонального веб-аккаунта. При проверке уровня сложности необходимо протестировать, что конкретно учитывается для верификации сложности – исключительно количество символов или также их разнообразие и типы.
Обзор программы Proactive Password Auditor
Больше половины пользователей Интернета любит оперировать короткими, быстро запоминающимися паролями, и отучить их от подобной практики пока что не особо получается.
Всем администраторам локальных сетей только то и остается, что выполнять проверку устойчивости таких паролей и самостоятельно редактировать на более стойкие к взлому. Продукт Proactive Password Auditor (далее PPA) был специально создан для выполнения тестирования уровня парольной защиты внутри среды Windows. Она быстро находит созданные учетные записи с нестойкими к процессу переборам паролями и запрограммирована на восстановление паролей, которые клиенты позабывали.
Программа Proactive Password Auditor
Данный продукт отличается некоторыми особенностями, которых нет у смежных или похожих веб-предложений. К примеру, при одновременном тестировании большого количества учетных записей клиентов (исключительно на NTLM-хешах) скорость функционирования PPA на 2-4 порядка выше, чем у похожих конкурентов, и этот факт не раз официально подтверждался независимой комиссией веб-программистов.
В отличие от некоторого ПО, которое дампить хеши вообще не умеют, PPA поддерживает все известные на сегодня виды получения хешей паролей (для последующих атак):
Отдельно отметим, что данная программа может «вытаскивать» все хеши паролей напрямую из системных файлов Windows. При чем, некоторая часть системных файлов автоматически расшифровывается тут же – это оригинальная особенность этого ПО.
Моментально после получения хешей для каждого аккаунта РРА анализирует состав пароля (LM+NTLM), а потом системный администратор или клиент может выбрать для себя подходящий метод восстановления пароля – LAN Manager или NTLM (NTLM attack).
Обзор программы Proactive Password Auditor
Стоит отметить, что лучше проводить тесты и проверку на стойкость сразу по нескольким активным аккаунтам, используя один и тот же хеш – на 1 цикл функционирования по заданому алгоритму данное ПО тратит одинаковый временной отрезок – что на проверку одного, что на тестирование сотни разнообразных аккаунтов.
Для обнаружения паролей можно использовать один из 4 предложенных типа атак:
Любой вид атаки, указанный выше, запросто можно ускорить, если выстроить его оптимальным образом.
В конфигурациях можно указать максимально граничное значение пароля, а также установить один из нескольких наборов символов для перебора + задать кастомный набор.
В режиме Mask можно установить стартовый пароль. Что хорошо, значение этого изначально введенного пароля в процессе функционирования ПО будет постоянно изменяться и после перерыва, работа продолжиться с последней позиции (если конечно не забыть про сохранение проекта – в мануальном или автоматическом режиме).
Начинать проверку слабости паролей необходимо по словарю – в данном случае пароли вида user 12 или home найдутся за пару мгновений. Стоит отметить, что словарь может использоваться на любом языке, в том числе и на русском.
Изначально в программе содержится только английский словарь на 243 тысячи слов + можно загрузить другие языки из Интернета.
Затем можно перейти к атаке в лоб и выстроить работу по взлому таким образом:
На практике подобная методика укладывается в 30 минут для одного ПК и позволяет найти самые уязвимые аккаунты. Естественно, длительность тестов может быть очень длинной, если перед проверяемым поставлена задача протестировать около сотни локальных ПК.
Весьма существенно ускорить процесс аудит паролей может атака по предварительно подготовленным таблицам Rainbow. Создание таких таблиц занимает много времени и отличается весьма большими размерами, но затраченные усилия того однозначно стоят. Минус этого метода – процесс атаки может осуществляться исключительно по LM-хешам.
Итоги PPA
Резюмируя возможности Proactive Password Auditor можно отметить, что это прекрасное средство для аудита БД или процессов восстановления утраченных паролей. Большой набор оптимизированных параметров и конфигураций продукта, позволяет считать его бесспорным лидером на рынке аудита паролей.
Общие выводы
Проводить проверки паролей крайне необходимо, ведь в подобной форме отправки личной информации клиента постоянно спрятано масса ошибок и багов, которые в будущем будут мешать юзеру спокойно и комфортно пользоваться веб-продуктом.
Если знакомство с сайтом по причине, не протестированной логики ввода пароля, у клиента не задастся, можно сразу попрощаться с потенциальным пользователем сервиса.
Всегда стоит помнить о том, что юзер – наиболее важный критик и его удобство в мире веба должно быть превыше всего!