В последние годы, с ростом популярности мобильных устройств и широким распространением высокоскоростного интернета, использование мобильных веб-приложений стало частью нашей повседневной жизни. [1] Мобильные веб-приложения, доступные через браузер на смартфоне или планшете, предоставляют пользователям широкий спектр услуг, от онлайн- шоппинга и бронирования билетов до доступа к новостям и социальным сетям. Это делает качество и производительность мобильных веб-приложений критически важными, поскольку любые задержки или ошибки могут привести к ухудшению пользовательского опыта и потере клиентов. В таком контексте автоматизация тестирования мобильных веб-приложений выступает как необходимое условие для обеспечения их надежности и высокого качества, позволяя разработчикам эффективно управлять сложностью тестирования на разнообразных устройствах и операционных системах.
Однако, традиционные подходы к тестированию, включая ручное тестирование, сталкиваются с существенными трудностями в контексте мобильного веб-тестирования. [2] Во-первых, многообразие мобильных устройств с различными размерами экранов, разрешениями и версиями операционных систем требует проведения тестирования в широком спектре условий, что существенно затрудняет процесс и повышает риск пропуска ошибок при ручном тестировании. Во-вторых, динамичное развитие мобильных технологий и постоянное обновление программного обеспечения требуют от команд быстрой адаптации тестовых сценариев и методик. В этой связи, автоматизация веб-тестирования мобильных приложений представляет собой ключевое решение для обеспечения эффективности и глубины тестирования. Использование специализированных инструментов и фреймворков для автоматизации позволяет значительно ускорить процесс тестирования, повысить его точность и обеспечить повторяемость тестов в различных условиях, тем самым улучшая пользовательский опыт при использовании мобильных версий сайтов.[3]
Цель данной дипломной работы - разработать плагин для автоматизации веб-тестирования на основе существующего программного решения, для чего были поставлены следующие задачи:
1. Определить основные компоненты и принципы тестирования веб элементов в выбранном программном решении.
2. Реализовать алгоритм проверки и размещения тестовой среды в системе пользователя.
3. Реализовать алгоритм запуска тестов в среде тестирования пользователя.
4. Реализовать алгоритм поиска компонентов на веб странице.
5. Разработать набор правил и шаблонов для автоматизированной генерации тестового кода.
6. Разработать плагин для Android Studio [4], объединив все вышеперечисленные пункты.
В результате выполнения работы был разработан плагин для Android Studio, предназначенный для автоматизации тестирования веб-сайтов на мобильных устройствах. Этот плагин полуавтоматически настраивает тестовую среду на устройстве пользователя и генерирует тесты для веб-сайта на основе анализа его страниц. Инструмент использует различные техники анализа содержимого веб-страниц, чтобы создать тестовые сценарии, позволяя разработчикам лучше понять поведение их сайтов в различных мобильных браузерах и условиях использования.
Объектом исследования выступает процесс автоматизации тестирования веб-сайтов на мобильных устройствах с использованием разработанного плагина для Android Studio.
Предметом исследования являются методы и алгоритмы, лежащие в основе работы плагина для Android Studio, предназначенного для автоматизации тестирования веб-сайтов на мобильных устройствах.
Разработанный плагин предполагается к использованию разработчиками веб-сайтов и тестировщиками программного обеспечения. Он будет особенно полезен для независимых разработчиков и малых команд, которым необходимо решение для тестирования веб-приложений без значительных затрат на ресурсы и время.
Введение ............................................................................................................ 3
Глава 1. Обзор предметной области ................................................................ 6
1.1. Факторы, влияющие на время, необходимое для тестирования ........ 6
1.2. Автоматическое тестирование приложения ........................................ 9
1.3. Аналоги ............................................................................................... 11
Глава 2. Проектирование ............................................................................... 12
2.1. Стек технологий ................................................................................. 12
2.2. Архитектура приложения .................................................................. 13
Глава 3. Техническая реализация .................................................................. 14
3.1. Выбор подхода .................................................................................. 14
3.2. Анализ сайта ...................................................................................... 15
3.3. Алгоритм генерации кода для тестирования .................................... 17
3.4. Разработка плагина ........................................................................... 21
Заключение ...................................................................................................... 26
Список использованных источников ............................................................. 27
Приложения..................................................................................................... 29
Приложение A. Фрагменты исходного кода ............................................. 29
1. Byyd [Электронный ресурс]// URL:
https://www.byyd.me/ru/blog/2024/02/digital-2024-datareportal/ (дата обращения 10.05.2024)
2. Russian Quality Report 2022-2023 [Электронный ресурс]// URL: https: //www.performance-lab.ru/wp-content/uploads/2021/01/rqr2023. pdf (дата обращения 10.05.2024)
3. Груздев А.С. CpaeHeHue ручного и автоматизированного подходов к тестированию веб-сайтов// Экономика и социум -2018. -№1 -P 1357 - 1361.
4. ANDROID STUDIO [Электронный ресурс]// URL: https://developer.android.com/studio (дата обращения 25.05.2024)
5. Особенности тестирования веб-приложений [Электронный ресурс]// URL: https://quality-lab.ru/blog/key-principles-of-web-testing/ (дата обращения 10.05.2024)
6. Плодухин Д.М. Реализация модели автоматизированного тестирования // Огарёв-Online -2024. -№1 -P 1-6.
7. Михалевская К.А., Сергачева М.А./ Сравнение инструментов для автоматизации тестирования мобильных приложений на ОС ANDROID // Кронос: естественные и технические науки -2020. - №2 -P 45-49.
8. Selendroid [Электронный ресурс]// URL: http: //selendroid.io/setup .html (дата обращения 10.05.2024)
9. Selenium [Электронный ресурс]// URL: https://www.selenium.dev (дата обращения 10.05.2024)
10. Espresso [Электронный ресурс]// URL: https://developer.android.com/training/testing/espresso (дата обращения 10.05.2024)
11. Appium [Электронный ресурс]// URL: https://appium.io/docs/en/latest/ (дата обращения 10.05.2024)
12. Kotlin [Электронный ресурс]// URL: https://kotlinlang.org (дата обращения 20.05.2024)
13. TIOBE Index [Электронный ресурс]// URL: https://www.tiobe.com/tiobe- index/ (дата обращения 20.05.2024)
14. IntelliJ Platform API [Электронный ресурс]// URL: https://plugins.jetbrains.com/docs/intellij/explore-api.html (дата обращения 20.05.2024)
15. JetBrains [Электронный ресурс]// URL: https: //www.j etbrains .com (дата обращения 25.05.2024)
16. MVC vs MVP vs MVVM vs MVI [Электронный ресурс]// URL: https://academy.realm.io/posts/mvc-vs-mvp-vs-mvvm-vs-mvi-mobilization- moskala/ (дата обращения 20.05.2024)
17. MVI Architecture for Android Tutorial: Getting Started [Электронный ресурс]// URL: https://www.kodeco.com/817602-mvi-architecture-for- android-tutorial-getting-started (дата обращения 25.05.2024)
18. Matthew MacDonald - Creating a Website: The Missing Manual - 2015. -P. 515-540.
19. Jsoup[Электронный ресурс]// URL: https://jsoup.org (дата обращения 22.05.2024)
20. Основы HTML [Электронный ресурс]// URL: https://developer.mozilla.org/ru/docs/Leam/Getting started with the web/HT ML basics (дата обращения 23.05.2024)
21. XML [Электронный ресурс]// URL: https://www.w3.org/XML/ (дата обращения 23.05.2024)
22. DOM Standart [Электронный ресурс]// URL: https://dom.spec.whatwg.org (дата обращения 25.05.2024)
23. CSS: Cascading Style Sheets [Электронный ресурс]// URL: https: //developer.mozilla. org/en-US/docs/Web/CSS (дата обращения 25.05.2024)
24. XPath [Электронный ресурс]// URL: https: //developer.mozilla.org/en- US/docs/Web/XPath (дата обращения 25.05.2024)
25. WHATWG HTML5 [Электронный ресурс]// URL:
https://html.spec.whatwg.org/multipage/ (дата обращения 25.05.2024)
26. AFA Project [Электронный ресурс]// URL:
https://git.kpfu.ru/TTBoltachev/afa (дата обращения 17.06.2024)