Блог A1QA

О тестировании и качестве ПО

Автоматизация тестирования мобильных приложений с Appium

Автоматизация тестирования – тема не новая, однако мобильная автоматизация стала трендом относительно недавно. И востребованность сервиса постоянно растет. Вызвано это тем, что мобильные приложения становятся более функциональными, перенимая роль настольных ПК.

Однако растущая функциональность и частые обновления не всегда позволяют ручному тестировщику покрыть все кейсы регрессии за короткий промежуток времени. И вот тут на помощь приходит автоматизация.

Преимущества мобильной автоматизации

Преимущества автоматизации тестирования мобильных приложений во многом совпадают с плюсами автоматизированного тестирования веб-приложений:

  • Быстрое получение результатов;
  • Исключение человеческого фактора;
  • Параллельное тестирование на множестве устройств;
  • Возможность покрыть множество локализаций.

Преимущества весомые, но и минусов хватает:

  • Автотесты перестают работать с обновлением операционной системы. Поэтому после каждого обновления ОС придется ждать, пока обновятся инструменты для разработки автоматических тестов.
  • Сложность в написании тестов. Сравните: на написание одного автотеста для веб-приложения в среднем уходит 8 часов, а мобильного – около 20 часов.
  • Нестабильная работа многих инструментов.
  • Для мобильных платформ существует множество отличных друг от друга UI-компонентов. В силу многообразия разработать один инструмент, способный работать с любыми типами UI, либо физически невозможно, либо его использование является чрезвычайно трудоемким, технически сложным и, как следствие, экономически невыгодным.
  • Требования к iOS: все ipa-файлы должны быть подписаны разработчиками.

Выбор подхода и инструментов для автоматизации

С автоматизацией тестирования веб-приложений все более-менее ясно: Selenium WebDriver – самый популярный инструмент на рынке, который освоили все профессиональные команды по тестированию. А вот при автоматизации тестирования мобильных приложений однозначного ответа при выборе инструмента нет.

Однако главный вопрос касается не выбора инструмента, а подхода. Именно выбранный подход предопределит инструмент для последующей разработки автотестов.

При автоматизации тестирования мобильных приложений можно использовать один из следующих подходов:

  • Record and Play
  • Screen Object

Первый способ прост и сводится к записи всех действий пользователя (тестировщика) в приложении. После записи действий инструмент генерирует понятный для него код и создает автотесты.

Плюсы: быстрая реализация, не требуется знаний программирования;
Минус: малейшие изменения в приложении потребуют создать новый автотест.

Второй подход – Screen Object – паттерн, предназначенный для организации архитектуры автотестов в виде взаимодействия экранов приложения.

Screen Object моделирует экраны (или страницы) тестируемого приложения в качестве объектов в коде. В результате мы получаем набор классов, каждый из которых отвечает за работу с отдельным экраном приложения.

Плюсы:

  • Есть возможность переиспользовать код;
  • Надежность кода, небольшая чувствительность к изменениям в приложении;
  • Понятная структура.

Минусы:

  • Требует знаний языков программирования;
  • Скорость разработки.

Конечно, для полного и качественного тестирования продукта рекомендуется использовать второй подход. Если же ваши тестировщики не владеют ни одним языком программирования, советуем рассмотреть вариант привлечения сторонней команды.

Итак. Подход выбран. Теперь время выбрать инструмент.

Инструментов для автоматизации много. На рисунке ниже изображены самые популярные из них. Но важно отметить, что некоторые из них подходят для приложений, написанных на конкретном языке программирования. Например, Xamarin (левый нижний угол) подходит только для приложений на С#. Некоторые – стоят немалых денег (например, утилита Ranorex).

Выбор инструментов для мобильной автоматизации

Поэтому очень важно до начала внедрения автоматизации взвесить все «за» и «против» не только самого процесса, но и инструмента для ее реализации.

Команда A1QA рекомендует использовать фреймворк Appium.

Appium — инструмент для автоматизации тестирования на iOS и Android

Appium — это бесплатный кроссплатформенный инструмент с открытым исходным кодом, который помогает автоматизировать как для Android, так и для iOS. Является одним из самых широко используемых инструментов для создания автоматических тестов для смартфонов и планшетов.

Несомненными преимуществами Appium является простота в использовании, а также поддержка многих языков программирования: Java, Ruby, Python, C#, PHP.

Прежде чем начинать работать с Appium, необходимо настроить окружение из следующих компонентов:

Компоненты окружения для мобильной автоматизации

Поясним. Сначала устанавливаем Appium Server, который понадобится для связи исходного кода теста с реальным устройством или эмулятором.

Затем устанавливаем Xcode, а также Android Studio вместе с Android SDK. Это необходимо для того, чтобы позже при необходимости установить необходимые эмуляторы.

Выбрав язык программирования, на котором будут разрабатываться тесты, необходимо установить соответствующий набор библиотек. Например, для написания автотестов для Android и iOS с выбранным языком программирования Java, потребуется Java Development Kit.

После того как программное обеспечение будет установлено, можно позаботиться и о приложении. Вам понадобится .apk-файл для Android-приложения либо .ipa-файл для iOS для того, чтобы при запуске тестов данное приложение было установлено на выбранное устройство. Если приложение не было установлено на устройстве, то при запуске тестов файл его установит, а затем запустит тесты.

Что использовать: настоящие устройства или эмуляторы?

Тестировать на эмуляторах или на реальных устройствах – один из главных вопросов при тестировании мобильных приложений. Стоит отметить, что работа с эмулятором создает дополнительную нагрузку на машину, что замедляет выполнение теста.

К тому же результаты тестов на эмуляторах не всегда отвечают действительности. Нередко случается, что на эмуляторе все тесты пройдены, а при запуске на реальном устройстве, система блокирует работу из соображений безопасности, и тест не будет пройден.

Учитывая это, команда автоматизаторов A1QA настоятельно рекомендует проводить тестирование исключительно на реальных устройствах.

Вместо заключения

Если вы решили, что автоматизация мобильного тестирования – это то, что нужно на вашем проекте, убедитесь, что выбранный подход и инструменты отвечают всем вашим требованиям. В таком случае вы сможете достигнуть главной цели – выпустить на рынок качественный продукт в установленные сроки.

Поделиться статьей: