Данная работа посвящена решению задачи снижения порога входа в автоматизацию пользовательского интерфейса путём разработки десктоп-приложения, позволяющего создавать сценарии UI-тестирования с помощью визуального редактора. Приложение реализовано с использованием технологий JavaFX, Maven, JUnit и интеграцией с инструментами Selenium и Playwright. В процессе выполнения исследования были поставлены и решены следующие задачи:
1.Анализ существующих инструментов UI-тестирования: Selenium, Playwright, TestFX, Ranorex, TestComplete;
2.Формализация функциональных и нефункциональных требований к системе;
3.Проектирование архитектуры приложения с разделением на UI, Core и Driver Adapter слои;
4.Реализация визуального редактора сценариев, механизма генерации тестов и модуля запуска;
5.Тестирование системы в различных режимах с оценкой стабильности, производительности и удобства использования.
В результате выполнения работы создано приложение, позволяющее пользователю без навыков программирования формировать и запускать UI-тесты с возможностью экспорта готовых сценариев в код на языке Java.
СОДЕРЖАНИЕ
СПИСОК СОКРАЩЕНИЙ И ОПРЕДЕЛЕНИЙ.................................................... 8
ВВЕДЕНИЕ ..................................................................................................... 11
ПОСТАНОВКА ЗАДАЧИ .................................................................................. 12
ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ .................................................. 13
1.1 Обоснование актуальности работы .............................................................. 13
1.2 Обзор существующих решений .................................................................... 17
1.2.1. Браузерные плагины и генераторы кода ............................................................................ 17
1.2.2. Десктопные студии «всё в одном» ....................................................................................... 17
1.2.3. Платформы SaaS с нулевым кодированием........................................................................ 18
1.2.4. Решения RPA ........................................................................................................................ 18
ГЛАВА 2. ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ К РАЗРАБАТЫВАЕМОЙ СИСТЕМЕ ... 20
2.1. Функциональные требования ...................................................................... 20
2.1.1. Управление проектами: ....................................................................................................... 20
2.1.2. Экспорт кода ........................................................................................................................ 20
2.2. Нефункциональные требования .................................................................. 21
2.2.1. Модульность ........................................................................................................................ 21
2.2.2. Расширяемость .................................................................................................................... 21
2.2.3. Надежность .......................................................................................................................... 21
2.2.4. Платформенная независимость ......................................................................................... 21
2.2.5. Документированность ......................................................................................................... 21
ГЛАВА 3. ОБОСНОВАНИЕ ВЫБОРА ТЕХНОЛОГИЙ И СРЕДСТВ РАЗРАБОТКИ .................................................................................................. 22
3.1. Инструменты разработки ............................................................................. 22
3.2. Архитектура системы ................................................................................... 25
3.2.1. Общая структура слоёв........................................................................................................ 25
3.2.2. Описание слоёв и их ответственность ................................................................................ 26
3.2.3. Взаимодействие слоёв ........................................................................................................ 31
3.3. Обоснование выбора архитектуры .............................................................. 32
3.3.1 Чёткое разделение ответственности (Separation of Concerns) ........................................... 32
3.3.2. Расширяемость (Extensibility) .............................................................................................. 32
3.3.3. Поддерживаемость и тестируемость .................................................................................. 32
3.3.4. Удобство сопровождения.................................................................................................... 33
3.3.5. Соответствие принципам SOLID ......................................................................................... 33
3.3.6. Преимущества выбранного подхода .................................................................................. 33
ГЛАВА 4. РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ ......................................................... 36
4.1. Структура Maven-проекта ............................................................................ 36
4.2. Конфигурация сборки и зависимостей ........................................................ 37
4.3. Инициализация и связывание компонентов ............................................... 38
4.4. Запуск и упаковка ........................................................................................ 38
ГЛАВА 5. ТЕСТИРОВАНИЕ И ВЕРИФИКАЦИЯ ................................................. 40
5.1. Юнит-тесты для Core Layer ........................................................................... 40
5.2. Интеграционные тесты для Driver Adapter ................................................... 40
5.3. GUI-тесты (TestFX) ......................................................................................... 40
5.4. Оценка производительности ....................................................................... 41
ГЛАВА 6. ПЕРСПЕКТИВЫ РАЗВИТИЯ И РАСШИРЕНИЯ ФУНКЦИОНАЛЬНОСТИ ................................................................................. 42
ЗАКЛЮЧЕНИЕ ................................................................................................ 44
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ............................................... 46
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.Литвинова Л. А., Котляров И. А. Инструменты автоматизации UI-тестирования: обзор и сравнительный анализ // Программные продукты и системы. – 2021. – №1. – С. 92–97.
2.Федоров А. П. Практика UI-тестирования в Java-приложениях с использованием TestFX // Программные решения и технологии. – 2020. – №3. – С. 47–53.
3.Григорьев И. В. JavaFX и FXML: разработка графических интерфейсов. – М.: ДМК Пресс, 2019. – 352 с.
4.Захаров Д. Е. Современные подходы к архитектуре десктопных приложений // Информационные технологии. – 2022. – №4. – С. 56–61.
5.Fowler M. Patterns of Enterprise Application Architecture. – Addison-Wesley, 2002.
всего 12 источников