ведущий инженер по автоматизированному тестированию Qatar Insurance Company, Digital Hub, Катар, г. Доха
АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА ANDROID
АННОТАЦИЯ
Мобильные приложения стали частью повседневной жизни для современного человека. При этом, каждая платформа предоставляет свои услуги и конкурирует за внимание подписчиков и пользователей. Но, как показывает практика, не всегда автоматические обновления мобильных приложений проходят гладко и могут привести к сбоям работы мобильных устройств. С одной стороны, такое положение связано с тем, что автоматизация обновлений – явление, новое и требующее доработки. С другой – объясняется дефектами самих тестов и кода для их проведения. Как результат, исследователи говорят о необходимости разработки простого кода, универсальных систем автоматического тестирования и включения обновлений. Но и данная позиция подвергается критике из-за вопросов безопасности. Следовательно, вопрос автоматизации тестирования мобильных приложений – актуален и рассматривается с самых различных точек зрения, как в рамках отечественных, так и зарубежных публикаций. Цель работы – рассмотреть особенности автоматизации тестирования приложений мобильных устройств из серии Android. Ключевые методы –это анализ и синтез данных, а также их сопоставление и обобщение. В результатах показано, что на сегодняшний день разработка в системе мобильных приложений претерпела значительные изменения, что связано с политикой, проводимой государством в последние несколько лет. На сегодняшний день выстраиваются системы и проводится разработка кода, которые соответствуют трем ключевым требованиям к приложениям: безопасность, функциональность и скорость работы. Заключение отражает ряд предложений по возможностям оптимизации приложений, с целью предоставления дополнительных услуг пользователям, что может оказаться полезным для всех заинтересованных сторон.
ABSTRACT
Mobile apps have become a part of everyday life for the modern man. At the same time, each platform provides its own services and competes for the attention of subscribers and users. But, as practice shows, not always automatic updates of mobile applications go smoothly and can lead to mobile device malfunctions. On the one hand, this situation is due to the fact that the automation of updates is a new phenomenon that requires improvement. On the other hand, it is explained by defects in the tests themselves and the code for running them. As a result, researchers speak about the necessity of developing simple code, universal systems of automatic testing and enabling updates.But this position is also criticized because of security issues. Consequently, the issue of mobile application testing automation is topical and is considered from a variety of perspectives, both within the framework of domestic and foreign publications. The purpose of the paper is to consider the peculiarities of automating the testing of applications of mobile devices from the Android series. The key methods are data analysis and synthesis, as well as their comparison and generalization. The results show that today the development in the system of mobile applications has undergone significant changes, which is due to the policy pursued by the government in the past few years. To date, systems are being built and code is being developed that meet three key requirements for applications: security, functionality and speed of operation. The conclusion reflects a number of suggestions for opportunities to optimize applications in order to provide additional services to users, which may be useful for all stakeholders.
Ключевые слова: автотесты, мобильные приложения, эффективность, Android, ключевые требования
Keywords: autotests, mobile applications, efficiency, Android, key requirements
Введение (Introduction)
Поскольку мир продолжает сталкиваться с экономическим спадом, внедрение эффективных и экономичных решений для автоматизации тестирования Android становится еще более необходимым и актуальным. Именно здесь использование инструментов тестирования Android для оптимизации процесса тестирования может оказать существенное влияние как на конкурентоспособность разработчиков приложений, так и на возможности работы самих устройств.
Актуальность исследования определяется интересом со стороны пользователей, разработчиков и государства, которое заинтересовано в предоставлении качественных услуг населению в условиях международных ограничений.
Цель работы – рассмотреть особенности автоматизации тестирования приложений на мобильные устройства из серии Android.
Обзор литературы
Рассматривая позиции отечественных исследователей, можно отметить, что мобильное тестирование описывается как обязательный элемент работы с устройствами. Но, если идеи ручного тестирования постепенно утрачивают актуальность, то тема автоматизации проверок мобильных приложений считается одним из передовых направлений в разработках, распространенных на рынке ИТ-услуг. Так, В. Ю. Ананьев отмечает, что автоматическое тестирование мобильных приложений – это один из самых значимых показателей уровня развития организации-разработчика программных продуктов, который предполагает оценку удобства использования, работы и наличия функций, общую производительность приложения и общую проверку на ошибки [1. С.3-11]. При этом, когда речь идет о мобильном приложении, тестирование включает как программные, так и аппаратные компоненты. За счет последнего пункта разработчики прибегают к разработке кода на открытой основе или с низким уровнем сложности [2. С.81-89]. В данном ключе выгодны системы автоматизации «записи и воспроизведения», которые, в конечном итоге нацелены на то чтобы формировать автотестовый сценарий.
А.О. Байрашный и А.С. Большаков в своей работе отмечают, что сегодня автоматизированные тесты используются практически во всех процессах тестирования. Это неудивительно, ведь правильно организованное автоматизированное тестирование значительно сокращает время процесса тестирования, исключает ошибки и упущения при выполнении теста, вызванные человеческим фактором. А при условии регулярного роста предложения новые приложения должны быть высококачественными, а значит проверенными и обновляемыми [3. С.27-36].
В данном ключе Н.А. Воробьев, Л.Н. Бурмин и Ю.А. Степанов проводят сравнительный анализ инструментов для автоматизации тестирования мобильных приложений и отмечают, что сегодня существует широкий выбор платформ. Как результат каждая компания может выбирать для себя те инструменты для автоматизации, которые соответствуют требованиям нового проекта. И какими бы ни были первоначальные критерии отборы, необходимо учитывать то что каждый инструмент уникален и обладает определенными характеристиками [4. С.36-39].
С другой стороны, существует мнение, что широкий выбор доступных средств автоматизации затрудняет выбор наиболее подходящих для конкретного проекта, так как, даже при условии многофункциональности самих инструментов, ни один не может полностью соответствует требованиям проекта. Как результат, авторы отмечают, что, при автоматизации тестирования разработчики выбирают от 3 и более инструментов, которые способны проверить ключевые направления: безопасность, продуктивность и работу с нагрузками и/или стрессами [5. С.47-50].
Рассматривая позиции отечественных исследователей можно обобщить и согласиться с мнением К.А. Михалевской и М.А. Сергачевой, которые пришли в выводу, что автоматизация тестирования мобильных приложений на основе оперативной системы Android — сложная задача. Она требует тщательной подготовки и исследования. Также следует быть в курсе всех новинок в области информационных технологий, приложений и инструментов автоматизации тестирования. Все эти знания необходимы для создания максимально эффективных тестов [6. С.45-50]. Но, существующие трудности определяются, в первую очередь не отсутствием алгоритма, а особенностями работы с самими устройствами системы Android. К таким особенностям исследователи относят: анализируемые программные продукты могут потребовать дополнительных проверок на ошибки, а также на решения проблем связанных с ограниченностью самого приложения или выбранного инструмента. Другой проблемой является борьба с фрагментацией Android, которая связана с тем фактом, что существуют тысячи устройств Android с разными характеристиками оборудования и версиями операционной системы. [7. С.89-96].
В данном ключе отечественные исследователи все чаще отмечают значимость работы входных генераторов, которые способны покрыть большое число тестовых запросов и отмечается, что от покрытия кода будет зависеть и качество самой автоматизации, и полнота тестирования, и скорость выполнения заложенного алгоритма проверки [8. С.89-98]. Как результат, на сегодняшний день разработчики предпочитают использовать для Android инструменты проверки с открытым кодом, систему генерации автоматических тестов основанную на методике «тестовой записи», а также применение сразу нескольких инструментов автоматизации тестов, что обусловлено требованиями времени и современными разработками [9. С.1-6]
Следовательно, тестировщику требуется инструмент тестирования мобильного приложения, который гарантирует безопасность мобильного приложения, поддержание функционала выбранного устройства и соответствие интерфейсу. Такие условия работы, безусловно, определяются руководством организаций-разработчиков, но и группа тестировщиков имеет большое значение в процессе выбора инструментов для проведения автоматического тестирования мобильных приложений [10. С.784-790].
Материалы и методы (Materials and Methods)
Ключевые методы – это работа с собранной информацией, которая включает:
анализ и синтез данных, что позволило ознакомиться с освещенностью данной темы в отечественной и зарубежной литературе и выявить ключевые тенденции направленные на упрощение работы в рамках перевода ручного тестирования на автоматическое;
сопоставление и обобщение данных стало основой для составления представления о процессах происходящих в современной РФ в рамках автоматизации тестов для мобильных приложений на устройствах из серии Android. Также изучение материала на основе данных методов позволило сформулировать выводы и предложения, которые могут оказаться полезны компаниям-разработчикам мобильных приложений.
Results (Результаты)
Спрос на мобильные приложения продолжает расти по мере роста важности технологий в нашей жизни. Учитывая множество опций, доступных в магазинах приложений, крайне важно выделиться, обеспечив удобство взаимодействия с пользователем, что и приводит к поиску оптимальных решений для автоматизации всех проверок. На сегодняшний день можно выделить 4 вида мобильных приложений:
- нативные (установленные на устройства, работающие без Интернета и код таких приложений для Android пишется на Kotlin – его родном языке программирования);
- кроссплатформенные (один код подходящий под различные устройства, системы и языки, что делает такие приложения доступными и дешевыми в разработке);
- веб-приложения (по своей сути это сайты, которые были успешно адаптированы под формат современных гаджетов);
- гибридные (особая форма сочетающая в себе возможности работы с сайтами или веб-приложениями на основе нативных или кроссплатформенных приложений).
Безусловно, все эти типы приложений имеют свои отличия и как результат – трудности в реализации автотестов. Но, сегодня сформирована определенная последовательность в реализации практической деятельности по автоматизации тестирования на устройствах Android, которые подходят под все виды приложений (рис.1).
Рисунок 1. Рекомендации по применению эффективных практик автоматического тестирования на системах Android
Как показано на рисунке 1 алгоритм работы автотестирования мобильных приложений предполагает тщательный анализ на каждом этапе, что связано с необходимостью проверки таких составляющих, как: определения наиболее популярных приложений для той или иной группы гаджетов, как старых, так и новых, проверка контента, который должен соответствовать как разрешению, так и величине экранов, возможности отклика на запрос пользователя, скорость и производительность системы при условии разного способа подключения и уровня сигнала.
Все эти составляющие позволяют проверить такие фреймворки, как Appium, UI Automator, Espresso, которые считаются популярными инструментами для автоматизированного тестирования приложений на ОС Android (рис.2).
Рисунок 2. Соотношение популярных инструментов автоматического тестирования приложений Android
Важно отметить, что на сегодняшний день принято комбинировать методы автоматического тестирования, которые позволяют не просто удаленно работать с разными видами мобильных приложений, но и контролировать вопросы производительности, безопасности, работы разных настроек в тех или иных условиях, особенности работы при смене локации и т.д. все эти методы определяются самой политикой разработчиков или тестировщиков. Но с другой стороны, так же важны и такие показатели, как скорость обучения, быстрое выполнение тестов, высокая стабильность благодаря обнаружению простоя системы, простая интеграция с Android Studio и опора на популярные языки тестирования. (рис.3).
Рисунок 3. Соотношение ведущих инструментов автоматизации тестирования Android по значимым показателям производительности
Как показано на рис.3 выбор инструмента определяется, в первую очередь его функциями, так как популярные инструменты для автоматизации тестирования приложений Android в основном бесплатны, с открытым кодом, имеют возможность интегрироваться с различными устройствами и компонентами программного обеспечения, и реализуют кроссплатформенную проверку. Различаются они по количеству языков программирования и формам отчетности, которые выдают своим пользователям. Следовательно, ключевым качеством инструмента является его функциональная нагруженность.
Главными показателями привлекательности инструментов для автоматизации тестов мобильных приложений для устройств Android являются: универсальность для всех устройств, простота написания тестового сценария (возможность его автоматического повтора), облачную доступность сервера, поддержание фреймворков (рис.4).
Рисунок 4. Показатели привлекательности инструментов для автоматизации тестов мобильных приложений для устройств Android
Кроме того, важно помнить, что в ряде инструментов заложена возможность мгновенно отлаживать приложения и веб-сайты Android, используя журналы устройств, консоль браузера и сетевые журналы, журналы сбоев, видеозаписи и снимки экрана для каждого запускаемого теста. Следовательно, при разработке системы автоматического тестирования необходимо также тестировать разработанные приложения на возможности самоконтроля, что предполагает проведения тщательных проверок собственных, гибридных и мобильных приложениями во внутренних средах разработки и промежуточной среде, используя безопасный зашифрованный код.
Discussion (Обсуждение)
Можно выдвинуть ряд предложений по оптимизации системы автоматизации тестирования для мобильных приложений на устройствах Android:
- использование генератора на основе функции «запись и воспроизведение» или включение сценария на выбранном современном языке (включая JavaScript, Python и VBScript) облегчит ввод автоматизации и последующую проверку;
- необходимо добиться интеграции с инструментами в существующих экосистемах, таких как CI/CD, управление тестированием, отслеживание проблем и контроль версий, предоставляя возможность проведения проверок на протяжении всего жизненного цикла тестирования;
- продумывая вопросы безопасности, необходимо учитывать значимость работы в защищенном облаке реальных устройств, которое включает в себя все основные устройства Android для более широкого покрытия и решения проблемы фрагментации Android;
- при проверке на ошибки нужно уделить внимание тому, что такие функции, как тестирование геолокации и регулирование сети, помогают выявить все узкие места и упростить отладку работы приложения в целом.
Заключение (Conclusion)
Подводя итог можно отметить, что на сегодняшний день разработки в системе мобильных приложений должны соответствовать потребностям рынка и пользователей. Это выражается в требованиях к их скорости, многофункциональности, интеграции с другими устройствами и т.д. На сегодняшний день выстраиваются системы и ведется разработка кода, которые позволяют совершенствовать автоматизацию тестирования. Определяющими показателями остаются сами проекты, в рамках которых и происходит выбор платформ и инструментов для автоматизации. Выдвинутые предложения по возможностям оптимизации приложений могут оказаться полезными для всех заинтересованных сторон. Но их реализация зависит, в первую очередь от предпочтений самой команды разработчиков и тестировщиков.
Список литературы:
- Ананьев В. Ю. Технология автоматизации тестирования Android-приложений с использованием протокола WEBDRIVER на платформе.net // Глобус: технические науки. 2021. №4 (40). С. 3-11
- Асылбекова Ш.М., Сериков Б.Б., Жайлау Е.Ж., Сулейменов А.А., Батырбеков Д.С. Разработка мобильного приложения «Zheduniver» Интегрированная с платформой SMART ZHETYSU для обучающихся жетысуского университета имени И. Жансугурова // The Scientific Heritage. 2022. №100. С. 81-89
- Байрашный А.О., Большаков А.С. Разработка алгоритма выявления вредоносных программ для платформы Android путем проведения анализа файла манифеста // Наукоемкие технологии в космических исследованиях Земли. 2023. №1. С.27-36. doi: 10.36724/2409-5419-2023-15-1-27-36
- Воробьев Н.А., Бурмин Л.Н., Степанов Ю.А. Сравнительный анализ средств тестирования мобильных приложений // Евразийский Союз Ученых. 2020. №6-1 (75). С.36-39
- Курчевская О. В. Настройка CI/CD для Android проектов с использованием Github Actions // Universum: технические науки. 2023. №12-1 (117). С.47-50
- Михалевская К.А., Сергачева М.А. Сравнение инструментов для автоматизации тестирования мобильных приложений на ОС Android // Кронос: естественные и технические науки. 2020. №2 (30). С.45-50
- Сарычева Ю. Ю. Тестирование GUI мобильного приложения при помощи Monkey // E-Scio. 2022. №6 (69). С.89-96
- Сарычева Ю. Ю., Белов Ю. С. Измерение тестового покрытия генератора входных данных для GUI мобильных приложений на базе ос Android // E-Scio. 2023. №4 (79). С.89-98
- Klimova B. Evaluating Impact of Mobile Applications on EFL University Learners' Vocabulary Learning - A Review Study//The 11th International Symposium on Frontiers in Ambient and Mobile Systems (FAMS-2021), Procedia Computer Science 184, Warsaw, Poland, March. 2021. №23-26(2021). pp.1-6, https://doi.org/10.1016/j.procs.2021.03.108
- Punithavathi P., Geetha S. Disruptive smart mobile pedagogies for engineering education// 9th World Engineering Education Forum 2019, WEEF 2019. Procedia Computer Science. 2020. №172. Р. 784-790