Введение
Аутентификация относится к критичным пользовательским сценариям веб-приложения: до её успешного выполнения пользователь не получает доступ к защищённым функциям. Проверка такого поведения относится к функциональному тестированию пользовательского интерфейса [5, 6]. При ручной проверке тестировщик многократно открывает форму, вводит различные данные, отправляет запрос и сопоставляет реакцию интерфейса с ожидаемым результатом. Автоматизация этого цикла уменьшает объём повторяемой работы и делает проверку пригодной для регулярного запуска после изменений приложения.
Основная техническая проблема UI-тестов связана с асинхронностью браузерного интерфейса. Элемент может присутствовать в DOM, но оставаться невидимым или недоступным для взаимодействия. Selenium предупреждает о непредсказуемости совместного применения неявных и явных ожиданий и рекомендует не смешивать их в одном сценарии [1]. Поэтому надёжность теста определяется не только последовательностью команд, но и явно заданными условиями готовности интерфейса.
Цель работы — разработать воспроизводимую сценарную методику проверки аутентификации, фиксирующую предусловия, тестовые данные, действия, условия ожидания и наблюдаемый результат. Для достижения цели формализован тестовый случай, определена последовательность выполнения, разработана матрица сценариев и реализован положительный UI-тест.
Материалы и методы
Технологическую основу составляют Java 17, Selenium WebDriver 4.23.0 и JUnit 5. WebDriver предоставляет единый интерфейс управления браузером, а JUnit организует жизненный цикл тестов и выполнение утверждений [2]. Требования к протоколу и модели управления браузером определены спецификацией WebDriver [4]. Для синхронизации используются явные ожидания, которые приостанавливают выполнение до наступления конкретного состояния элемента или страницы [1].
Тестовый случай представляется кортежем T = (P, D, A, W, E), где P — предусловия; D — тестовые данные; A — последовательность действий; W — условия ожидания; E — ожидаемое наблюдаемое состояние. Добавление W в модель принципиально важно для UI-теста: после действия браузер может не сразу перейти в состояние, пригодное для проверки.
Рис. 1. Последовательность выполнения UI-теста аутентификации
Для поиска элементов выбираются локаторы, связанные с назначением элемента, а не с его положением в разметке. Предпочтение отдаётся стабильным идентификаторам, атрибутам name, data-testid или семантическим CSS-селекторам. После отправки формы применяется ожидание признака завершения перехода: появления элемента целевой страницы, изменения URL, исчезновения формы или отображения сообщения об ошибке.
Каждый тест должен начинаться с известного состояния. Подготовка браузера и открытие страницы выполняются до сценария, а очистка ресурсов — после него. Тестовые данные не должны зависеть от результата предыдущего запуска. Такая организация делает сбой воспроизводимым и позволяет определить этап, на котором ожидаемое состояние не было достигнуто.
Таблица 1
Сценарии проверки аутентификации
|
Сценарий |
Тестовые данные |
Проверяемое состояние |
|
Положительная аутентификация |
Допустимые логин и пароль |
Открыта защищённая страница или отображён её устойчивый признак |
|
Неверный пароль |
Корректный логин, неверный пароль |
Показано сообщение об отказе; доступ не предоставлен |
|
Неизвестный пользователь |
Логин отсутствует в системе |
Показано нейтральное сообщение об ошибке |
|
Пустые поля |
Пустой логин и/или пароль |
Сработала клиентская или серверная валидация |
|
Граничная длина |
Минимальные и максимальные допустимые значения |
Интерфейс корректно обрабатывает границы |
|
Повторный запуск |
Та же допустимая пара данных |
Результат не зависит от состояния предыдущего теста |
Результаты и обсуждение
В учебном тестовом проекте реализован автоматизированный сценарий положительной аутентификации. Он включает запуск браузера, переход к форме, ввод учётных данных, отправку запроса, ожидание признака успешного перехода и проверку итогового состояния. Сценарий построен без фиксированных задержек Thread.sleep(): выполнение продолжается после наступления условия либо завершается диагностируемым исключением по тайм-ауту.
Таблица 2
Этапы выполнения автоматизированного UI-теста
|
Этап |
Контролируемое условие |
Диагностическое значение |
|
Подготовка |
Браузер запущен, форма открыта |
Исключает влияние неизвестного начального состояния |
|
Ввод данных |
Поля видимы и доступны для ввода |
Отделяет ошибку локатора от ошибки авторизации |
|
Отправка |
Кнопка доступна для нажатия |
Предотвращает действие до готовности интерфейса |
|
Ожидание результата |
Наступил признак успеха или отказа |
Связывает действие с фактическим переходом |
|
Проверка |
Фактическое состояние соответствует ожидаемому |
Формирует однозначный результат теста |
|
Завершение |
Ресурсы браузера освобождены |
Обеспечивает независимость повторного запуска |
Предложенная матрица расширяет положительный тест негативными и граничными проверками без дублирования общего сценария. Изменяются данные и ожидаемое состояние, тогда как открытие формы, заполнение полей и отправка остаются общими. При росте набора страниц Selenium рекомендует отделять представление страницы от тестов с помощью Page Object Model [3]. В небольшой учебной реализации это направление развития, а в расширенном наборе тестов — способ уменьшить повторение локаторов и действий.
Практическая ценность формализации состоит в воспроизводимости. Инструкция «войти в систему» не задаёт критерия готовности страницы и не объясняет причину сбоя. Кортеж T фиксирует входные данные и ожидаемый результат, а условие W связывает пользовательское действие с наблюдаемым переходом интерфейса. При неуспешном запуске отчёт показывает, какое состояние не было достигнуто до истечения тайм-аута.
Ограничением работы является реализация одного положительного сценария. Для полного покрытия необходимы негативные проверки, восстановление пароля, блокировка учётной записи, разграничение ролей и сетевые ошибки. Дополнительным направлением является параметризация тестов средствами JUnit 5 и запуск в нескольких браузерах.
Заключение
Разработана сценарная методика автоматизированной проверки аутентификации веб-приложения. Тест формализован через предусловия, данные, действия, ожидания и наблюдаемый результат. Синхронизация выполняется явным ожиданием состояния интерфейса, а независимость запусков обеспечивается контролируемой подготовкой и завершением теста. На Java с использованием Selenium WebDriver и JUnit 5 реализован положительный UI-тест и сформирована матрица последующих негативных и граничных сценариев. Методика может служить основой расширяемого набора регрессионных проверок формы входа.
Литература:
- Selenium. Waiting Strategies. URL: https://www.selenium.dev/documentation/webdriver/waits/ (дата обращения: 18.07.2026).
- JUnit Team. JUnit User Guide. URL: https://junit.org/junit5/docs/current/user-guide/ (дата обращения: 18.07.2026).
- Selenium. Page object models. URL: https://www.selenium.dev/documentation/test_practices/encouraged/page_object_models/ (дата обращения: 18.07.2026).
- W3C. WebDriver. URL: https://www.w3.org/TR/webdriver2/ (дата обращения: 18.07.2026).
- ISTQB. Certified Tester Foundation Level Syllabus v4.0. URL: https://www.istqb.org/certifications/certified-tester-foundation-level (дата обращения: 18.07.2026).
- Myers G. J., Sandler C., Badgett T. The Art of Software Testing. 3rd ed. Hoboken: Wiley, 2011. 256 p.

