МОБИЛЬНОЕ ПРИЛОЖЕНИЕ / ПРОГРАММИРОВАНИЕ / ANDROID / АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ / ИНСТРУМЕНТЫ ДЛЯ ТЕСТИРОВАНИЯ / КРОССПЛАТФОРМЕННОСТЬ / СТРАТЕГИИ ТЕСТИРОВАНИЯ / ФРЕЙМВОРК / MOBILE APPLICATIONS / PROGRAMMING / TEST AUTOMATION / TESTING TOOLS / FRAMEWORK / CROSS-PLATFORM / TESTING STRATEGIES
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Михалевская К.А., Сергачева М.А.
В данной статье рассмотрены случаи целесообразности перехода от ручного тестирования к автоматизированному в ходе разработки мобильного приложения на ОС Android . Проведен анализ основных инструментов автоматизации тестирования .
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Михалевская К.А., Сергачева М.А.
Проведение итеративного динамического анализа приложений, предоставляющих графический интерфейс пользователя
СОСТОЯНИЕ РАЗВИТИЯ ИНТЕЛЛЕКТУАЛЬНЫХ ТРАНСПОРТНЫХ СИСТЕМ В КАЗАХСТАНЕ
Автоматизированное тестирование мобильных приложений с помощью фреймворка Appium
Динамический анализ приложений с графическим пользовательским интерфейсом на основе символьного исполнения
Jubula: инструмент для автоматического тестирования графического интерфейса Java-приложений
МЕТОДИКИ ВЫБОРА УСТРОЙСТВ ДЛЯ ТЕСТИРОВАНИЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры?
Вы всегда можете отключить рекламу.
Текст научной работы на тему «СРАВНЕНИЕ ИНСТРУМЕНТОВ ДЛЯ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА ОС ANDROID»
- взимание платы на платных участках дорог;
— оперативное и эффективное информирование дорожных служб.
1. Бекмагамбетов М. М. Интеллектуальные транспортные системы в Республике Казахстан. — Алматы, 2013. — 408 с.
2. Скалозуб В. В. Прикладной системный анализ интеллектуальных систем транспорта [Текст]: пособие / В. В. Скалозуб, В. М. Ильман. — Д.: Изд-во Днепропетр. нац. ун-та ж.-д. трансп. им. акад. В. Лазаряна, 2013. — 221 с.
3. Николаев А. Б. Автоматизированные системы обработки информации и управления на автомобильном транспорте. — М.: Академия, 2003 — 224 с.
4. Интеллектуальные транспортные системы железнодорожного транспорта (основы инновационных технологий) — Д.: Изд-во Днепропетр. нац. ун-та ж.-д. трансп. им. акад. В. Лазаряна, 2013. — 207 с.
5. Кабашкин И. В. Интеллектуальные транспортные системы: интеграция глобальных технологий будущего // Транспорт Российской Федерации. — 2010. — №2 (27). — 34 c.
6. Ходжаев У., Томас П. Система 1ТС5. Интеллектуально-интервальное управление движением. -Связь и информатика. 2006. — № 8 — 489 c.
7. Горев А. Э. Основы теории транспортных систем: учеб. пособие / А. Э. Горев. СПбГАСУ. — СПб., 2010. — 214 с.
8. Журнал о цифровом видеонаблюдении, IP-решениях, системах безопасности. №3 2009 г. — 53 с.
1. Bekmagambetov M.M. Intelligent transport systems in the Republic of Kazakhstan. — Almaty, 2013. 408 p. (In Russian).
Все про Mobile QA Automation — Appium, XCUITest, Espresso
2. Skalozub V.V. Applied system analysis of intelligent transport systems [Text]: manual / V.V. Skalozub, V.M. Ilman. — D.: Dnipropetrovsk National University of Railway Transport named after Academician V. Lazaryan Publ., 2013. 221 p. (In Russian).
3. Nikolaev A. B. Automated information processing and control systems in automobile transport. — M.: Academy, 2003. 224 p. (In Russian).
4. Intelligent transport systems of railway transport (foundations of innovative technologies) [Text]: manual / V. V. Skalozub, V. P. Soloviev, I. V. Zhukovitsky, K. V. Goncharov. — D.: Dnipropetrovsk National University of Railway Transport named after Academician V. Lazaryan Publ., 2013. 207 p. (In Russian).
5. Kabashkin I.V. Intelligent transport systems: integration of global technologies of the future // Transport of the Russian Federation. — 2010. — №2 (27). 34 p. (In Russian).
6. Hodjaev U., Thomas P. System 1TS5. Intellectual-interval motion control / U. Khojaev, P. Thomas // Automation, communication, in-format. 2006. — No. 8. 489 p. (In Russian).
7. Gorev, A. E. Fundamentals of the theory of transport systems: Study guide [Osnovy teorii transportnyh system: Ucheb. posobie]. St. Petersburg, SPbGASU publ., 2010, 214 p. (In Russian).
8. Magazine on digital video surveillance, IP-solutions, security systems. № 3 2009. 53 p. (In Russian).
СРАВНЕНИЕ ИНСТРУМЕНТОВ ДЛЯ АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ МОБИЛЬНЫХ
ПРИЛОЖЕНИЙ НА ОС ANDROID
студент кафедры «Графические информационные системы»,
НГТУ им. Р.Е. Алексеева, 603087, РФ, Нижегородская область, г. Нижний Новгород,
ул. Верхне-печерская, дом №7/2 Сергачева М.А.
студент кафедры «Графические информационные системы»,
НГТУ им. Р.Е. Алексеева, 603115, РФ, Нижегородская область, г. Нижний Новгород,
ул. Белинского 11/66
Аннотация. В данной статье рассмотрены случаи целесообразности перехода от ручного тестирования к автоматизированному в ходе разработки мобильного приложения на ОС Android. Проведен анализ основных инструментов автоматизации тестирования.
Abstract. In this article we consider cases of expediency of transition from manual testing to automated testing in the course of development of mobile application on Android OS. The analysis of the main tools of testing automation has been carried out.
Ключевые слова: мобильное приложение, программирование, android, автоматизация тестирования, инструменты для тестирования, кроссплатформенность, стратегии тестирования, фреймворк.
Keywords: mobile applications, programming, android, test automation, testing tools, framework, cross-platform, testing strategies.
Автоматизация тестирования позволяет обеспечить качество мобильного приложения, что способствует ускорению процесса тестирования, повышению производительности проекта и удовлетворенности потребителя, улучшению качество ПО, исключению человеческих рисков [1].
Целесообразнее всего производить автоматизацию тестирования в случаях, когда:
• выполнение тест-кейсов занимает много времени и ресурсов;
• осуществляется нагрузочное или стресс-тестирование;
• необходимо сократить объем тестирования.
Специалистам рациональнее передать трудоемкие процедуры утилитам, а не проводить их вручную, использовать ранее недоступные методы тестов [21.
Существует множество инструментов автоматизации тестирования мобильных приложений (рис. 1), которые помогут в ходе разработки. Рассмотрим некоторые из них.
Рис. 5. Стек автоматического тестирования
UI Automator разрабатывается компанией Google и имеет хорошую документацию. Инструмент не требует внедрения своего кода в проект, позволяет использовать возможности Android полностью. У UI Automator есть утилита UI Automator Viewer, которую можно запустить с помощью командной строки. Если у нас есть подключенный девайс, то программа должна начать искать локаторы.
Утилита позволяет получать данные об элементах в приложении и показывать локаторы элементов, где локатор — строка, которая уникально идентифицирует UI-элемент. Клик мышкой — действие над конкретным объектом, который имеет определенные параметры. В программе происходит движение курсора по осям х и у. Нужно четко указывать нужные UI-элементы, которые находят в дереве иерархии. Главное предназначение UI Automator — тестирование «черного ящика».
Рис. 6. Интерфейс утилиты UI Automator
Для новичков является более легким, в сравнении с рассмотренным ранее UI Automator, так как сам интерфейс Espresso добавляет подходящие методы для проверок в автотестах.
Окажется полезным владеть двумя инструментами для одного проекта, ведь UI Automator и Espresso являются частью одной библиотеки и взаимно дополняют друг друга. Особенностью этого инструмента является то, что в течение теста приложение можно запустить только один раз. Для автоматизатора это будет плюсом. Также эта особенность позволяет избежать сетевую задержку и увеличить скорость.
Espresso взаимодействует напрямую с кодом и имеет прямой доступ к ресурсам и коду приложения. За счет этого можно использовать мок и внедрять свой код в приложение, что на практике послужит большим удобством.
Selendroid и Robotium
Инструменты были разработаны еще до официальных утилит от Google и актуальны в настоящее время. Они не запрашивают доступ к исходному коду и обращаются только к одному проекту.
Помимо этого, Selendroid и Robotium работают на девайсах и эмуляторах. Selenoid позволяет использовать большую часть языков программирования, в то время как для Robotium тесты пишутся исключительно на Java.
Стоит отметить, что утилиты от Google развиваются более активно и умеют более широкую аудиторию, чем Selendroid и Robotium. Но несмотря на это, есть ряд компаний, которые используют эти инструменты. По Selendroid можно найти множество вебинаров, и он считается более популярным инструментом для тестирования, чем Robotium [61.
Appium является инструментом для автоматизации с открытым исходным кодом, который представляет из себя веб-сервер, написанный на Node.js. Его основной принцип состоит в том, что нет необходимости в повторной компиляции проекта или изменения для автоматизации тестирования. Кроме того, можно использовать различные языки программирования или фреймворки.
• базируется на протоколе WebDriver, который позволяет тестировать мобильные сайты;
• широкая поддержка сообщества на github;
Специалистам с навыком тестирования веб-приложений будет проще перейти на автоматизацию тестирования мобильных приложений с помощью Appium [31.
Ranorex — это платная IDE. Её преимущество в том, что новичкам можно проводить тестирование без использования скриптов.
Инструмент позволяет упрощать создание надежных тестов. Он автоматически создает новый объектный файл страницы на основе настраиваемых шаблонов с использованием лучших практик для автоматизации тестирования. Тестировать можно и через эмуляторы, и через «живые» девайсы. Стоит отметить легкую интеграцию с CI-средой и системами контроля версий [5].
Рис. 7. Настройка Ranorex
А теперь рассмотрим случаи, когда тестирование лучше произвести вручную. Во-первых, при ручном тестировании информацию о качестве разработки продукта и его состоянии можно получить гораздо
быстрее. Незначительные изменения можно внести в режиме реального времени без написания дополнительного кода. Также ручное тестирование не требует глубоких знаний в области QA.
На этапе создания дизайна можно проверить макеты на полноту и убедиться в отображении всего функционала на основе технического задания.
Затем необходимо проверить макеты на соответствие Material Design.
Рис. 4. Material Design
В процессе разработки также проводится регрессионное тестирование, целью которого является проверка рабочего состояния продукта. Поскольку с добавлением нового функционала можно обнаружить, что приложение стало работать некорректно. На примере можно увидеть, как реализованы новый функционал (рис. 4).
Рис. 5. Переход по табам
Прежде чем приступить к плановому ручному тестированию, следует ознакомиться с перечисленными выше инструментами. У каждого из них есть свои преимущества и недостатки. Данная таблица призвана облегчить выбор наилучшего инструмента для вашего случая автоматизации тестирования.
Сравнение инструментов для автоматизации тестирования
Инструмент Тип Языки Доступ к исходнику >1 приложения
UIAutomator Драйвер Java/Kotlin Нет Да
Espresso Драйвер Java/Kotlin Да Нет
Selendroid Драйвер Любой Нет Нет
Robotium Драйвер Java Нет Нет
Appium Надстройка Ruby Python Java JavaScript PHP C# (.NET) Нет Да
Ranorex Комбайн C# VB.NET Нет Да
Инструменты тестирования постоянно развиваются, поэтому важно проверять актуальную документации [4].
Источник: cyberleninka.ru
Automate — приложение для автоматизации задач на Android
Automate — это бесплатное приложение для устройств под управлением Android, которое позволит запрограммировать их на выполнение нужных вам действий.
Каждый человек имеет собственные шаблоны использования мобильных устройств. Одни по утрам спешат проверить почту и ленту в Facebook*, другие во время поездки в метро слушают музыку и читают книги, третьи в обеденный перерыв запускают любимую игрушку.
Каждый день пользователи совершают одни и те же действия, которые отнимают у них драгоценное время. Вот было бы здорово, если бы можно было научить смартфон автоматически открывать в назначенное время необходимые приложения, сообщать последние новости после сигнала будильника и отсылать сообщение близким в случае непредвиденной задержки в дороге.
Всё это и многое другое умеет приложение Automate. Оно служит для автоматизации рутинных действий, которые вы совершаете каждый день.
Принцип работы приложения очень прост. Вам необходимо сначала определить событие, которое послужит триггером для выполнения нужного вам действия. После этого задайте действие, которое приложение должно выполнить. Таким образом можно строить сложные цепочки команд, которые могут содержать условия выполнения, разветвления, альтернативные задачи и так далее. Программа снабжена подробной документацией, правда, на английском языке.
Чтобы пользователь не запутался в алгоритмах, они отображаются в виде наглядной блок-схемы. Каждое действие — отдельный блок. Всего в программе Automate имеется более 300 различных действий, с полным их перечнем можно ознакомиться здесь. Обратите внимание, что некоторые действия требуют root-прав.
В бесплатной версии Automate доступны все имеющиеся триггеры и действия, однако длина алгоритма ограничена 30 блоками. В большинстве случаев этого достаточно, чтобы автоматизировать самые простые действия на смартфоне. Если же нет, то придётся приобрести премиум-версию.
appbox fallback https://play.google.com/store/apps/details?id=com.llamalab.automategl=ru
*Деятельность Meta Platforms Inc. и принадлежащих ей социальных сетей Facebook и Instagram запрещена на территории РФ.
Источник: lifehacker.ru
Автоматизация тестирования мобильных приложений. Часть 1: проверки, модули и базовые действия
15 : 13 , 10 марта 2021 г.
Приложениями Badoo и Bumble пользуются миллионы людей по всему миру, и мы стремимся доставлять им новую функциональность как можно быстрее. Но важно, чтобы высокий темп нашей работы не сказывался негативно на качестве работы приложений. В этой статье мы расскажем о роли автоматизации в наших процессах и поделимся практиками, которые позволяют быстро писать стабильные тесты.
Меня зовут Дмитрий Макаренко , я Mobile QA Engineer в Badoo и Bumble: занимаюсь тестированием новой функциональности вручную и покрытием её автотестами. В подготовке этой статьи мне помогал коллега Виктор Короневич: вместе мы делали доклад на конференции Heisenbug.
Примеры, которые мы разберём в этой статье, актуальны как для тех, кто только начинает внедрять автоматизацию тестирования в своём проекте, так и для тех, кто уже активно её использует.
Начнём с короткого рассказа о процессах тестирования и фреймворке автоматизации в нашей компании.
Место автоматизации в наших процессах
Раньше за тестирование новой функциональности у нас отвечали команды мобильного тестирования: отдельно iOS- и Android-, и проводили тесты они вручную. А создание и поддержка end-to-end-тестов (именно о них и пойдёт речь в этой статье) находились в зоне ответственности выделенной команды автоматизации. При этом ручным тестированием занимались около 30 человек, а автоматизацией — десять. Последним, конечно, было сложно всё успевать: улучшать фреймворк, инфраструктуру и автоматизировать то, что тестируют руками больше 20 человек.
За последние два года процессы сильно изменились. Сегодня релиз новой функциональности невозможен без покрытия её тестами разных уровней, в том числе end-to-end-тестами (про это можно подробнее узнать из доклада Катерины Спринсян ). Их теперь у нас создают и поддерживают команды мобильного тестирования. А команда автоматизации уделяет больше времени работе с фреймворком и инфраструктурой.
Вместе с изменением процессов изменились и требования к автоматизации. Нам важно иметь возможность писать тесты быстро, чтобы не задерживать релизы. При этом тесты должны быть стабильными. Мы постоянно стремимся улучшать эти показатели, и со временем у нас сложился набор практик, которые нам в этом помогают.
Прежде чем перейти к их описанию, скажу пару слов о нашем фреймворке, чтобы контекст примеров был понятен.
Фреймворк
Наши приложения Badoo и Bumble — нативные. То есть Android-приложения разрабатываются одной командой на Kotlin и Java, а iOS- — другой командой на Swift и Objective C.
При этом функциональность Android- и iOS-приложений во многом схожа. Именно поэтому одним из главных критериев выбора фреймворка автоматизации для нас была возможность переиспользования сценариев. Руководствуясь этим, мы выбрали кросс-платформенный фреймворк для автоматизации Calabash. Мы пишем тесты на Ruby, а для написания сценариев пользуемся фреймворком Cucumber.
Неважно, какой фреймворк вы используете. Мы обобщили наши рекомендации, чтобы вы тоже могли их применять.
Практика №1. Где и как писать проверки
Чтобы понять, где можно писать проверки, рассмотрим структуру тестов. Она состоит из трёх уровней.
Первый уровень – сценарий. Здесь сам тест написан на человекочитаемом языке Gherkin, описаны все необходимые действия и проверки.
Второй уровень — определение шагов. В соответствии с действиями или проверками с первого уровня ставится Ruby-код, который их выполняет.
Третийуровень — уровень страниц. Здесь описываются экраны нашего приложения и действия, которые мы можем на них совершить — например, получить текст выбранного элемента, нажать на выбранную кнопку и т. д.
Переходим к практике. У нас есть задача: создать проверку какого-либо элемента. Это слишком общая формулировка, поэтому рассмотрим конкретный пример. Это будет проверка сообщения о пропущенном видеозвонке.
Диалог с тестовым пользователем
Начнём со сценария для проверки этого сообщения.
В тексте сценария вы можете заметить аббревиатуру QAAPI. Это API, с помощью которого мы можем менять состояние системы во время тестирования. Например, можно отправлять сообщения или загружать фото профиля тестовым пользователям, используя обычные клиент-серверные запросы. Более подробно про QAAPI мы рассказывали в этой статье и докладе.
Сфокусируемся на шаге для проверки сообщения (последний шаг в примере кода).
Определим, что нам необходимо проверить. Это текст сообщения и кнопка «Перезвонить». Разберём первый возможный подход.
В этом примере на уровне определения шагов мы создаём объект класса ChatPage и вызываем метод await для ожидания загрузки нужного экрана. Потом вызываем метод verify_missed_video_call, чтобы проверить отображение необходимых элементов.
На уровне страницы реализация этого метода выглядит следующим образом. Сначала мы формируем ожидаемый результат лексемы. Его мы берём из статического метода, объявленного в модуле CallLexemes, используя class Диалог с тестовым пользователем
Зону диалога мы разделили на модули поменьше, например для разных типов сообщений: текстовых, аудио, GIF-картинок и фото.
Диалог с тестовым пользователем
Модуль поля ввода также состоит из более мелких модулей, таких как поля для отправки фотографий, текста, GIF-картинок и аудиосообщений.
Диалог с тестовым пользователем
После этого мы создали структуру модулей, подобную той, которую вы видите на скриншоте ниже, для Android и для iOS .
После этого нам стало легче создать классы страниц чата в обоих приложениях. По сути, единственное различие заключается в использовании разных базовых страниц, потому что у приложений они немного отличаются.
Теперь мы просто подключаем к странице каждого приложения необходимые модули. Причём речь идёт только об актуальных для приложения модулей. В Badoo, например, это может быть сообщение о подарке, которого нет в Bumble:
Зато в Bumble есть другой тип сообщений, которого нет в Badoo, — реакции:
Наличие такого компонента позволит нам создать страницу чата в любом другом приложении, если оно появится в нашей компании, буквально за пару минут.
Для обоих приложений мы также используем одни и те же шаги. Здесь мы возвращаемся к методам получения текста сообщения о пропущенном видеозвонке и кнопки «Перезвонить». Они находятся в модуле для типа сообщения о видеозвонке.
Этот модуль подключается как для Bumble, так и для Badoo. То есть он написан один раз для каждой из платформ, а проверить сообщение в четырёх наших приложениях (Badoo для iOS и Android и Bumble для iOS и Android ) можно с использованием всего одного шага. Так что написать новые тесты для проверки чата в разных приложениях не составляет большого труда.