Разное

Автоматизированное тестирование мобильных приложений: сравнение инструментов / Блог компании SimbirSoft / Хабр

Содержание

сравнение инструментов / Блог компании SimbirSoft / Хабр

Автоматизация тестирования помогает решить сразу несколько проблем — в том числе если речь идёт о мобильных приложениях. Вместо того чтобы вручную проводить рутинные трудоёмкие процедуры, специалисты могут делегировать значительную их часть фреймворкам. Автоматизация упрощает проверку и помогает ускорить регрессионное тестирование, а также даёт возможность использовать ранее недоступные типы тестирования.

Мы сравним несколько инструментов, которые зарекомендовали себя на рынке и продолжают развиваться. Эти знания помогут выбрать, какое решение использовать для тестирования того или иного мобильного приложения.

Данная статья вряд ли откроет новые горизонты для профессионалов, но может быть полезна новичкам, решившим освоить азы мобильного тестирования, и в некоторой мере — специалистам среднего уровня.

Классификация инструментов

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

Android

iOS
Универсальные

  • Detox
  • Appium
  • Ranorex
  • TestComplete Mobile

Автоматизация тестирования приложений на Android

UI Automator

Мощный инструмент тестирования с продвинутой внешней интеграцией. Это значит, что данный фреймворк не только позволяет тестировать само приложение, но также способен “общаться” с операционной системой и другими приложениями — например, активировать и деактивировать Wi-Fi, GPS, открывать меню настроек в ходе теста и производить другие внешние взаимодействия.

Предназначение UI Automator — тестирование “чёрного ящика” (black-box testing). Это значит, что анализ производится с позиций внешнего пользователя без доступа к коду.

К основным особенностям относятся:

  • UI Automator Viewer для отслеживания и анализа компонентов, отображаемых на экране в ходе теста. Он даёт информацию об элементах и их свойствах, что облегчает создание более релевантных тестов.
  • API для получения информации о состоянии девайса и запуска процессов на нём.
  • UI Automator APIs для проведения кроссплатформенных тестов.

Ссылка на документацию.

Espresso

Более лёгкий по сравнению с UI Automator инструмент, не подходящий для взаимодействия с внешними приложениями, но удобный для тестирования “белого ящика” (white-box) с доступом к исходному коду конкретного приложения или тестирования “серого ящика” (grey-box), при котором имеется доступ к некоторым внутренним процессам и структуре.

Вместе с тем, Espresso выделяется мощным API https://github.com/hamcrest. Интерфейс добавляет удобные методы для проверок в автотестах, например:

assert_that(1, less_or_equal(2)). Для тестирования webview при этом используются специальные методы.

UI Automator и Espresso взаимно дополняют друг друга и могут использоваться в комплексе в рамках одного проекта.

Ссылка на документацию.

Автоматизация тестирования iOS-приложений

XCUITest

Инструмент для black-box тестирования без обращения к коду приложения. Работает только с нативными продуктами — к сожалению, провести cross-app тесты не получится.

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

Полезным дополнением является test recorder, который даёт возможность писать тесты путём записи действий в приложении даже тем, кто не работает с кодом.

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

XCUITest, в отличие от Espresso, работает в отдельном потоке, во время тестирования нужно дождаться появления определенных элементов и параметров. Актуальное состояние приложения не считывается, и задержки в обновлении данных могут привести к невозможности обнаружения запрашиваемых элементов.

Документация XCTest и XCUITest.

EarlGrey

У EarlGrey акцент сделан на воспроизведении пользовательского опыта. Пока элементы на экране не представлены визуально, имитация работы с приложением не запускается.

При этом отмечается ряд удобств и преимуществ. Во-первых, специалистам нравится то, как фреймворк синхронизирует запросы, UI и потоки. Не нужно никаких waitforview и wait.

Во-вторых, как уже было сказано, особое внимание уделено отслеживанию видимости элементов. Инструмент обладает дополнительным слоем проверки подгрузки интерфейса и воспроизводит пользовательские жесты — свайпы, нажатия — непосредственно на уровне событий приложения.

Ссылки на репозитории: github.com/google/EarlGrey и google.github.io/EarlGrey.

Универсальные инструменты

Универсальные инструменты (или “комбайны”) позволяют не ограничивать свой выбор только Android или iOS, а работать с обеими платформами.

Такие инструменты применимы для тестирования приложений следующих видов:

  • Нативные приложения (native apps) — написанные непосредственно под Android, iOS и Windows SDK.
  • Мобильные веб-приложения (mobile web apps) — доступные через мобильный браузер, например, Safari или Chrome.
  • Гибридные приложения (hybrid apps) — пользователь работает с оболочкой веб-приложения, то есть, взаимодействует с веб-контентом через интерфейс нативного приложения.

Detox

На наш взгляд, Detox удобен для приложений, написанных на React Native. Тесты пишутся на JavaScript, при этом iOS и Android приложения генерируются из одного и того же кода JavaScript и максимально похожи. Это позволяет использовать одинаковые тесты для обеих платформ.

Ключевая особенность Detox — тестирование по принципу “серого ящика”. В данном случае фреймворк имеет некоторый доступ к внутренним механизмам, что позволяет соотносить внешнее поведение приложения с тем, что происходит на более глубоком уровне.

Detox может обращаться к памяти и отслеживать выполняемые процессы. Принцип grey-box помогает бороться с неустойчивостью, выражающейся в том, что при сквозном тестировании:

  • Тест может произвольно вылетать даже без изменений в коде;
  • Результаты не детерминированы — ввиду большого количества разнородных функциональностей и процессов внутри приложения результаты каждого запуска могут непредсказуемо отличаться друг от друга.
  • Тестировщики вынуждены проводить синхронизацию вручную, что влечёт снижение достоверности и качества результатов.

Как ни странно, “серый ящик” показывает не только лучшую устойчивость, но и более высокую скорость по сравнению с “чёрным ящиком”. Избегая разного рода пауз, waitUntil, grey-box может быть в 5-10 раз быстрее.

Detox не нуждается в WebDriver, работая с нативным драйвером через JSON. Он задействует нативные методы прямо на устройстве. Внутри данного фреймворка применяются EarlGrey для iOS и Espresso для Android.

Фреймворк работает как с эмуляторами, так и с физическими устройствами.

Ссылка на документацию.

Appium

Преимущество Appium состоит в том, что писать тесты под каждую из платформ можно с помощью единого API, не прибегая к преобразованию приложения в какой-либо особый, совместимый с фреймворком вид.

При тестировании используются фреймворки от вендоров — то есть вы работаете именно с исходным приложением. Для Android 4.2+, соответственно, применяется UiAutomator/UiAutomator2, а для iOS 9.3+ — XCUITest. В качестве оболочки фреймворков используется WebDriver (он же — Selenium WebDriver).

Принципы Appium:

  • Не нужно перекомпилировать приложение или изменять его для автоматизации тестирования.
  • Не обязательно привязываться к одному языку или фреймворку.
  • Не обязательно изобретать колесо, когда речь идёт об API автоматизации.

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

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

Ссылка на документацию.

Ranorex

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

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

Легко интегрируется с существующей CI-средой: с такими системами управления заявками, как Jira и TFS, а также с системами контроля версий — например, Git и SVN.

В Ranorex прокачано data-driven тестирование с подгрузкой данных из SQL, CSV, Excel.

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

Сочетает все три подхода к тестированию: black-box, white-box и grey-box.

Ссылка на документацию.

TestComplete

Платная среда для автоматизации тестирования мобильных, веб и десктопных приложений. Поддерживает Android и iOS, а в разрезе типов приложений: нативные, веб-приложения и гибридные.

Ориентированный, в основном, на функциональное и юнит-тестирование, инструмент также предоставляет возможность проводить многие другие виды тестирования:

  • Регрессионное;
  • Data-driven testing;
  • Распределённое тестирование и не только.

В TestComplete есть Recorder — в нём тесты создаются путём записи действий и настройки команд в редакторе. Далее они могут запускаться как непосредственно в самом инструменте, так и экспортироваться в сторонние приложения.

Данный инструмент распознаёт объекты и элементы управления, предлагая специальные команды для эмуляции взаимодействия пользователя с ними. Интегрируется с Jenkins, Git и Jira, что позволяет запускать непрерывное бесшовное тестирование.

Ссылка на документацию.

Подводя итоги

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

Рассмотрим на примере. Если перед вами стоит задача протестировать небольшое приложение в сжатые сроки, в первую очередь нужно учитывать такие факторы, как тип тестируемого приложения и опыт ваших специалистов. Если тесты пишет разработчик, лучше выбрать родной язык и инструмент для его платформы (см. в таблице ниже). Если тестами занимаются специалисты SDET, которые знакомы с другими языками (Java, JavaScript, Python и др.) и работали с Selenium, удобно использовать Appium. Если опытного SDET в команде нет, а тесты будут писать специалисты QA, лучше выбрать платные фреймворки, поскольку в них есть утилиты для записи тестов и более стабильная техподдержка, чем в open source фреймворках.

Из нашей практики:

Мы работали с одним интернет-магазином, у которого было два мобильных приложения – на iOS и Android. Для покрытия тестами основных пользовательских сценариев мы выбрали Appium по нескольким причинам:

  • кроссплатформенность, возможность частично переиспользовать код
  • подходит для end-to-end тестов, может работать с веб
  • наличие в команде специалистов, хорошо знающих Selenium, который служит оболочкой данного фреймворка.

В результате Appium полностью оправдал ожидания, мы успешно провели тесты для iOS и Android. При этом следует учитывать, что подобные end-to-end тесты с Appium не проводятся на каждом merge request, поскольку это занимает много времени.

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

Спасибо за внимание!

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

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

Зачем это нужно? В первую очередь, для гарантированного улучшения качества вашего ПО и улучшении настроения тестировщиков.

В чем идея? Чаще всего тестирование мобильных приложений осуществляется людьми: тестировщик берет приложение, iPhone 3, iPhone 4, iPad, если ему не повезло, то еще берет пару андроидов и GalaxyTab, и тестирует ваше приложение, 80% тестирования составляют примерно такие сценарии:

— запустить приложение, убедиться, что оно не падает;

— перейти на вкладку места, убедиться, что все пункты на месте;

— зайти в один из пунктов, убедиться, что описание на месте;

Такие тесты проводятся после каждого релиза и занимают очень много времени.

В свое время в вебе на помощь пришел Selenium, который позволил через специальный плагин к браузеру записывать действия тестировщика (все помнят макросы в MS Word?) и затем проигрывать их автоматически с проверкой результата. Можно запускать тесты даже на разных браузерах! Мы использовали это решение в своей компании, и оно, действительно, работает. Усилия на разработку тестов окупились.

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

iPhone

UIAutomation

Начну со стандартного решения от Apple, которое входит в Instruments.

UIAutomation позволяет выполнять написанные на JavaScript тестовые сценарии как в эмуляторе, так и на устройстве. Тестировать можно любые свои приложения, включая, production сборки. Компилировать дополнительные библиотеки не требуется. Можно запускать скрипты из консоли.

Apple разработала специальный JavaScript API для тестирования. В нем описаны все стандартные элементы интерфейса. Элементы представлены деревом, есть специальные функции для быстрой выборки элементов по типам (buttons, tableViews, textFields…). Если специально не задавать в программном коде Accessibility Label, то элементы можно выбирать только по номеру.

window.tableViews()[0].visibleCells()[1].tap()

Выбор второй ячейки в первой таблице.

Я написал тестовый скрипт для нашего Goozy приложения, он логинится, проверяет, что выбрана вкладка «All», переходит на вкладку «Settings» и разлогинивается.

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

[Подсвеченный код: paste.ly/7mnG]

В сухом остатке: платформа мощная и правильная, но тестировщики вряд ли смогут писать тесты самостоятельно, при изменении внутренней стуктуры интерфейса тесты придется переписывать.

UPD: В Xcode 4.3 появилась возможность записи тестов. Запуск из консоли практически невозможен.

UPD2: При работе с UIAutomation строго рекомендуется задавать всем компонентам Accessibility Label

FoneMonkey


Record&Play решение, интересно тем, что тесты записываются и редактируются (!) прямо из тестируемого приложения на телефоне или эмуляторе.

Тем не менее, телефон должен быть подключен к компьютеру для сохранения тестов. И само собой, в приложении нужно компилировать несколько дополнительных библиотек.

Fonemonkey умеет сохранять тесты в формате UIAutomation, поэтому вы можете после записи прогонять их на «чистых» приложениях.

На мой взгляд, это единственное решение, которое тестировщики могут использовать самостоятельно. При одном условии, тесты будут запускать или разработчики, или они будут автоматически попадать в систему Continious Integration.

UPD: Экспорт в UIAutomation работает очень криво, мне не удалось запустить полученные скрипты.

Платные собратья

Squish

Squish — это решение для тестирования Windows, Mac, Qt и iOs приложений. Лицензия на конкретного разработчика стоит (named license) $2400.

Система интегриуется в HP Quality Center, Seapine TCM или предоставляет Eclipse based IDE. Тестировать можно приложения на эмуляторе или устройстве, доступна запись тестов (record&play). Скрипты могут быть на Javascript, Python, Perl или Tcl.

У системы два минуса: для работы на устройстве (даже для прогона тестов) необходимо компилировать отдельную версию с их библиотекой; второй минус — это эклипс, если вы не разорились на HPQC, врядли, тестировщики смогут полноценно работать с eclipse-based IDE.

В целом, я не вижу принципиальных отличий от свободного FoneMonkey. Разве что, Squish поддерживает мультитач (support for automatic gestures).

JamoSolution

Одна из самых многообещающих платформ. JamoSolution позволяет тестировать iPhone, Android, Windows Mobile и BlackBerry приложения. При этом для всех платформ поддерживается запись тестов (record&play) и вы можете тестировать iPhone приложения на Windows!

У них есть прекрасные демонстрационные видео, вот тестирование под iPhone:

Под Android:

Очень радует возможность видеть экран телефона в IDE. JamoSolution работает через специального агента на телефоне, то есть ваши приложения останутся не модифицированными. Телефон может быть подключен проводом или по WiFi.

Android

Robotium

Самое популярное решение — это Robotium. «It’s like Selenium, but for Android» — утверждают разработчики, но это немного не так. Robotium не поддерживает запись тестов (Record&Play) и не умеет делать скриншоты.

Тесты пишутся на Java, фактически, Robotium — это библиотека для обычных Unit тестов, возможности запускать тесты на устройстве нет (remote control). Чтобы тестировать приложения, необходимо их собрать с этой библиотекой. Возможно тестировать приложения без исходников, но процесс нетривиальный.

TestDroid

Пока я проводил исследование, появилось новое решение для Android. TestDroid — это плагин для эклипса, который позволяет записывать тесты (record&play) в формате Robotium. Система взаимодейтсвует с телефоном путем стандартного Android debugger.

Одна лицензия на TestDroid Recorder стоит $600 в год. Разработчики обещают выпустить еще и TestDroid server, он позволит создавать кластеры для тестирования. Подключите к серверу несколько Android телефонов и запускайте тесты параллельно и удаленно.

К сожалению, решение еще в стадии бета-тестирования и не генерирует тесты на моем маке.

К тому же, судя по логам, не все действия записываются в тесты. Решение многообещающее, но стоит немного подождать.

Windows Phone 7

На момент написания статьи утилит для автоматизации тестирования интерфейса WP7 приложений не существовало.

Absolute Black Box

Наверняка вам знакомо понятие «Черного ящика», так вот, есть как минимум две системы мобильного тестирования работающих по этому принципу.

Это Perfecto Mobile и Device Anywhere.

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

Внутрь фотографии телефона вставлена картинка с веб-камеры. Управляется полностью мышкой.

Основной бизнес Perfecto Mobile и Device Anywhere это даже не автоматическое тестирование, а продажа времени устройств. У них стоят сотни различных телефонов (iPhone/Android/Blackberry…) и час работы с одним телефоном стоит около $15.

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

Но, к сожалению, когда я тестировал обе системы из России, все очень жутко тормозило, большой лаг при взаимодействии с телефоном. Тестировщики бы очень нервничали в таком режиме.

Где же автоматика?

Очень интересно реализовано автоматическое тестирование.

Проверка результатов выполняется сверкой картинок и распознаванием текста на экране OCR. Одна из платформ использует знаменитый ABBYY 🙂

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

Плюсы
  • Черный ящик — почти нет вмешательства в ваше приложение;
  • Один инструмент и тестовый скрипт для всех мобильных платформ;
  • Многообразие устройств;
  • Можно тестировать любые приложения: нативные, html5, мобильный сайты.
Минусы
  • автоматическое тестирование дорогое;
  • большой лаг при взаимодействии с телефоном.

Мне очень хочется подискутировать в комментариях. Кто разрабатывает мобильные приложения, ответьте, если не сложно, на несколько вопросов:

  1. Под какую платформу разрабатываете?
  2. Что за приложение? (игры, банковский сектор, бизнес приложения, медицина)
  3. Используете ли unit тесты, почему?
  4. Автоматизируете ли тестирование UI, почему?
  5. Если бы стали автоматизировать, какой инструмент был бы для вас идеален?

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

…несмотря на то, что он кое в чём неполон, содержит много сомнительного или,

во всяком случае, вопиюще неточного, он имеет два важных преимущества:

во-первых, он немного дешевле, […], а во-вторых, на его обложке большими

и приятными для глаз буквами написаны два слова «Без паники!»

— The Hitchhiker’s Guide to the Galaxy

Привет, Хабр!

Меня зовут Арсений Батыров, я работаю в отделе QA Badoo и занимаюсь в основном ручным тестированием веб-приложений. А ещё я веду курсы по ручному и автоматическому тестированию мобильных приложений.

Перед запуском нового курса я задумался, о каких инструментах стоит рассказать ученикам. Прошерстил Рунет и англоязычный Интернет в поисках сравнительных статей, но, как ни странно, не нашёл подходящего источника информации. И тогда я решил создать его сам.

Я преследовал три цели:

  1. Классифицировать инструменты в стеке автотестирования, чтобы стали понятны их иерархия и сочетаемость.
  2. Показать, какие инструменты популярны сегодня на рынке.
  3. Рассказать про самые популярные инструменты каждого типа и сравнить их по нескольким параметрам.

Результатом моих трудов стал этот путеводитель по наиболее популярным и простым в освоении инструментам автотестирования мобильных приложений.

Пользуйтесь!

  • Выбираете инструмент — посмотрите сравнение.
  • Хотите узнать, как устроена автоматизация на мобильных устройствах — загляните в классификацию.
  • Хотите добиться повышения зарплаты — освойте популярный инструмент.

Содержание

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

Приложение и тесты

Для начала давайте поймём, с чем будут работать наши инструменты.

Есть две важные для нас сущности, не входящие в стек автоматизации: это приложение и тесты. К приложению обращаются все инструменты автоматизации. Оно взаимодействует с пользователем и другими приложениями через один или несколько интерфейсов: GUI, API, сетевой интерфейс, CLI и некоторые другие.

API(application programming interface) — основной интерфейс для взаимодействия с другими программами.

GUI (graphic user interface) — графический интерфейс, используется для взаимодействия с пользователем.

Net (networking interface) — работает через сеть и используется как продвинутыми пользователями, так и программами.

Тесты могут использовать все эти интерфейсы для взаимодействия с приложением. При ручном тестировании посредником между тестами и приложением является тестировщик: он преобразует текст тест-кейсов в действия с одним из интерфейсов приложения.

Для автоматизации нужно заменить тестировщика на инструменты, которые умеют взаимодействовать с одним или несколькими интерфейсами приложения. Также потребуются утилиты для запуска и формирования набора тестов.

Вместе все эти инструменты называются стеком автотестирования. Чтобы понять, как они взаимодействуют в стеке, необходимо их классифицировать. Представленная классификация условна и необходима в первую очередь для понимания инструментов и их сочетаемости.

Всего существует четыре группы инструментов: драйверы, надстройки, фреймворки и комбайны. Рассмотрим их подробнее.

Классификация инструментов

Драйвер

Утилиты автотестирования, как и другие программы, могут взаимодействовать с приложением только через программный интерфейс — по-другому они не умеют. Для работы через другие интерфейсы существуют специальные программы — драйверы.

Драйвер — программа, которая предоставляет API для одного из интерфейсов приложения.

Для каждого интерфейса, кроме, собственно, API, необходим свой драйвер. Например, когда вы даёте драйверу для GUI команду “Нажать на кнопку Menu”, он воспринимает её через API и отсылает в тестируемое приложение, где эта команда превращается в клик по графической кнопке Menu. Для взаимодействия с API приложения драйверы не нужны или почти не нужны — взаимодействие программное. А вот при работе с остальными интерфейсами без них не обойтись.

Наиболее сложными обычно являются драйверы для GUI, так как этот интерфейс сильно отличается от обычного для программы общения кодом. При этом в автоматизированном тестировании мобильных приложений GUI наиболее актуален, так как в интеграционном тестировании использовать чаще всего приходится именно его. Наиболее популярные драйвера для GUI в мобильном тестировании — UIAutomator и Espresso для Android, XCUITest — для iOS.

Надстройка

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

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

У надстройки могут быть следующие функции:

  1. Модификация поведения (без изменения API).

    Например:

    • дополнительное протоколирование,
    • валидация данных,
    • ожидание выполнения действия в течение определённого времени.
  2. Повышение удобства и/ или уровня абстракции API через:
    • использование синтаксического сахара — удобных названий функций, более коротких обращений к ним, унифицированного стиля написания тестов;
    • неявное управление драйвером, когда, например, он инициализируется автоматически, без необходимости прописывать каждое такое действие вручную;
    • упрощение сложных команд вроде выбора события из календаря или работы с прокручивающимися списками;
    • реализацию альтернативных стилей программирования, таких как процедурный стиль или fluent.
  3. Унификация API драйверов.

    Здесь надстройка предоставляет единый интерфейс для работы сразу с несколькими драйверами. Это позволяет, например, использовать один и тот же код для тестов на iOS и Android, как в популярной надстройке Appium.

Фреймворк

С другой стороны тестов находится фреймворк запуска. В рамках данной статьи я буду коротко называть его “фреймворк”.

Фреймворк — это программа для формирования, запуска и сбора результатов запуска набора тестов.

В задачи фреймворка входят:

  • формирование, группировка и упорядочивание набора тестов,
  • распараллеливание набора (опционально),
  • создание фикстур,
  • запуск тестов,
  • сбор результатов их выполнения,
  • формирование отчётов о выполнении (опционально).

Можно заметить, что эти функции не связаны с тестированием только мобильных приложений — их можно успешно применять и в тестировании десктоп- и веб-приложений. Дело в том, что фреймворк не должен обеспечивать взаимодействие тестов и приложения — он работает только с тестами, и тип приложения не имеет значения.

Если драйверы и надстройки находятся между тестами и приложением, то фреймворк находится над тестами, организуя их запуск. Поэтому важно не путать понятия “драйвер” и “фреймворк”. Конечно, в некоторых фреймворках есть собственные драйверы для работы с приложениями, но это вовсе не обязательное условие. Самые заметные фреймворки в мобильном тестировании — xUnit и Cucumber.

Комбайны

Наконец, ещё одна группа утилит, использующихся для автоматизации тестирования мобильных приложений, — это комбайны, объединяющие в себе и фреймворки, и драйверы (причём не только мобильные), и даже возможности разработки. Xamarin.UITest, Squish, Ranorex — все они поддерживают автоматизацию тестирования iOS-, Android-, веб-приложений, а два последних — ещё и десктоп-приложений.

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

Опрос

Для выявления самых популярных и используемых утилит я провёл опросы на нескольких сайтах, сообществах и каналах для QA-инженеров, задав три простых вопроса. Количество вариантов ответа я не ограничивал, чтобы не пришлось выбирать между разными типами инструментов. Также была возможность добавить собственный вариант — так появился достаточно длинный “хвост” из различных утилит, не вписывающихся в классификацию. Результаты не претендуют на статистическую точность, но отлично иллюстрируют тренды в индустрии автоматизации тестирования мобильных приложений по состоянию на январь 2018 года.

Как видно из результатов, лидирующие позиции занимают утилиты на базе WebDriver: Appium и Selenium. Из фреймворков наиболее популярны JUnit и Cucumber, причём второй популярнее — это удивляет, ведь у них всё-таки разные “весовые категории”. Официальные драйверы популярнее неофициальных для любых платформ — видимо, из-за качественной поддержки и большего количества возможностей, чем у сторонних разработок.

Тройка самых используемых языков программирования выглядит так: Java, Python, Ruby (причём Java лидирует с большим отрывом). Попадание Ruby в тройку лидеров я связываю с популярностью Cucumber.

Наконец, распределение по платформам довольно ожидаемое — Android с серьёзным отрывом опережает iOS, дальше идёт Mobile Web. Удивили разве что ответы про десктоп-приложения для Windows в последнем опросе, но некоторые комбайны позволяют тестировать мобильные и десктопные приложения одновременно.

Разобравшись с популярностью инструментов, переходим к сравнению наиболее значимых. Для каждого типа сначала приведена сравнительная таблица возможностей инструментов, которые к нему относятся. Я постарался собрать самую актуальную и достоверную информацию о каждом инструменте, но мог что-то упустить. Так что если вдруг найдёте ошибку в описании, обязательно напишите об этом в комментариях.

Сравнение инструментов

Драйверы

В мобильном тестировании драйверов немного, и зачастую они разрабатываются теми же компаниями, что и операционные системы. Для Android есть два официальных драйвера: UIAutomator, который на сегодняшний день имеет версию 2.0, и Espresso. Оба они входят в Android Testing Support Library, разрабатываются компанией Google и хорошо документированы. Помимо них, существуют проекты Robotium и Selendroid, которые разрабатываются сторонними компаниями. Все четыре продукта так или иначе работают на Android Instrumentation Framework — базовом API, который Android предоставляет для взаимодействия с системой.

Сначала давайте рассмотрим драйверы от Google. Оба инструмента умеют работать с WebView и гибридными приложениями, оба поддерживают разработку на Java и Kotlin и работают как с эмуляторами, так и с реальными устройствами.

UIAutomator

UIAutomator поддерживает версии Android начиная с API level 18 (Android 4.3). Он не требует внедрения своего кода в проект, то есть может взаимодействовать с уже скомпилированными приложениями. Более того, при работе с UIAutomator можно использовать возможности системы Android полностью: например, включить геолокацию, вызвать системное приложение, повернуть устройство, нажать на кнопку Home или сделать скриншот. Поэтому этот инструмент часто используют для функционального end-to-end-тестирования, самостоятельно или с надстройками.

У UIAutomator нет собственного рекордера для тестов, но зато есть утилита UI Automator Viewer, которая позволяет получать данные об элементах запущенного на эмуляторе или реальном устройстве приложения и показывает локаторы этих элементов. Тут же отображается иерархическая структура всех элементов, что очень удобно для использования их в тестах.

Espresso

Espresso, в свою очередь, предназначен скорее для white-box-тестирования и создавался как инструмент для разработчиков. Он поддерживает более старые API начиная с API level 10 (Android 2.3.3), однако требует доступа к исходному коду для запуска. Соответственно, Espresso не может самостоятельно работать с другими приложениями и системой Android. Зато у этого инструмента есть рекордер, с помощью которого можно записывать простые сценарии и использовать их на начальном этапе автоматизации.

В целом, если нужно тестировать только приложение, без учёта его взаимодействия с системой, и есть желание и возможность работать с исходниками, лучше использовать Espresso. К тому же в нём реализованы полезные функции вроде автоматической синхронизации тестов с UI приложения, и можно не писать различные wait-команды.

Если же вам нужно протестировать приложение в связке с другими или с функциями системы, а доступ есть только к .apk, выбирайте UIAutomator.

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

Selendroid и Robotium

И Selendroid, и Robotium были выпущены ещё до появления официальных драйверов и существуют до сих пор.

Robotium поддерживает версии Android API начиная с API level 8 и умеет работать с WebView начиная с API level 15. Selendroid же работает c ограниченным списком версий API — от 10 до 19. Оба инструмента могут обращаться только к одному приложению, не требуют доступа к исходному коду и поддерживают работу на эмуляторах и реальных устройствах. Для Robotium тесты нужно писать на Java, а Selendroid поддерживает протокол WebDriver, что даёт возможность использовать практически любой популярный язык программирования.

У Selendroid есть утилита Inspector, с помощью которой можно просматривать иерархию элементов и записывать простые record-and-playback-тесты. А Robotium предоставляет плагин Robotium Recorder для IntelliJ IDEA и Android Studio со схожим функционалом.

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

XCUITest

В iOS для взаимодействия с приложением долгое время использовался драйвер UIAutomation (что, помимо прочего, вызывало путаницу из-за схожести с названием драйвера Android), но начиная с iOS 10 Apple прекратила поддержку этого драйвера, и вместо него появился драйвер XCUITest из пакета XCTest.

Он поддерживает iOS начиная с версии 9.0, а тесты для него пишутся на языках Objective-C и Swift, как и сами приложения. Для тестирования приложения не нужен доступ к его коду, а начиная с Xcode 9 драйвер умеет тестировать несколько приложений, в том числе и системных, одновременно. “Из коробки” XCUITest позволяет запускать тесты только на симуляторах, однако при помощи некоторых сторонних утилит можно заставить его работать и с реальными устройствами.

XCUITest имеет свой рекордер, встроенный прямо в интерфейс Xсode. С его помощью можно записывать простые UI-тесты, а также находить элементы UI и их свойства.

Надстройки

Appium

Appium — наиболее известная сегодня надстройка. Она позволяет тестировать приложения практически вне зависимости от платформы, типа и версии системы. Конечно, такой подход имеет несколько значительных достоинств и недостатков.

Appium поддерживает множество драйверов, не только мобильные:

  • iOS
    • XCUITest
    • (deprecated) UIAutomation
  • Android
    • (beta) Espresso
    • UIAutomator 2.0
    • (deprecated) UIAutomator
    • (deprecated) Selendroid
  • Windows Driver (для десктопных Windows-приложений)
  • Mac Driver (для десктопных Mac-приложений)

Поддержка такого разнообразия драйверов реализуется довольно интересным образом: Appium использует версию интерфейса WebDriver, известную всем по Selenium WebDriver. И, помимо большого количества поддерживаемых платформ, у такого подхода есть и другие преимущества:

  • возможность писать тесты на любом языке, который поддерживает WebDriver (а в этот список входят практически все популярные языки программирования). Более того, это позволяет “отвязать” тесты от использования “родных” для приложения языков. Наиболее актуально это для iOS, ведь тесты на XCUITest можно писать только в Xcode. С Appium же в данном случае можно использовать любой язык и любую удобную среду разработки;
  • лёгкий переход к тестированию гибридных и веб-приложений: протокол WebDriver уже (почти) стал стандартом для автоматизации веба;
  • использование любого тестового фреймворка — почти все они умеют так или иначе работать с протоколом WebDriver, а значит, у них не возникнет проблем с подключением к Appium;
  • отсутствие необходимости добавлять что-то в код приложения — для каждой платформы используются драйверы, которым не нужен доступ к коду. Помимо удобства в развёртывании, это означает возможность тестировать именно тот билд приложения, который увидят пользователи, а не специальную тестовую сборку.

Нас в большей степени интересует поддержка мобильных приложений, поэтому остановимся подробнее на реализациях драйверов UIAutomator 2.0, Selendroid и XCUITest.

Самый простой из них — UIAutomator 2.0, с которым Appium взаимодействует напрямую, передавая ему необходимые команды. Он работает с версиями Android 5.0 и выше. С 4.2 до 5.0 можно использовать UIAutomator 1, а взаимодействие с более старыми версиями обеспечивает уже известный нам драйвер Selendroid. Для взаимодействия с XCUITest и обхода некоторых ограничений используется WebDriverAgent (WDA) от Facebook. WDA запускается в контексте симулятора или реального устройства и передаёт команды через API XCUITest.

Недостатки Appium вытекают из его достоинств:

  • тесты ломаются чаще, чем те, что написаны для нативных драйверов, из-за ошибок в коде самой надстройки. Особенно это актуально для iOS, ведь там добавляется WDA;
  • Appium не умеет находить и сравнивать картинки в приложениях и не может напрямую работать с алёртами в Android;
  • ограниченная поддержку Android API < 17, но это, возможно, будет исправлено подключением Espresso в качестве драйвера.
  • Тем не менее надстройка Appium очень популярна и активно развивается, поэтому многие проблемы могут решиться сообществом в будущем.

WebDriverAgent

Переходим к надстройке WebDriverAgent, которую Appium использует для работы с iOS. Фактически это реализация серверной части протокола WebDriver, которая позволяет управлять устройствами на iOS. Причём функционал доступен достаточно обширный: можно запускать и останавливать приложения, использовать жесты и проверять видимость элементов на экране.

Работает надстройка как с симуляторами, так и с реальными устройствами. Для обнаружения элементов есть интерфейс инспектора, открывающийся в браузере. Сама надстройка поддерживается командами Facebook и Appium и довольно активно развивается. При этом её можно использовать и отдельно от Appium, если по каким-то причинам последняя вам не подходит.

Calabash

Следующая весьма популярная надстройка — Calabash для Android и iOS. Инструмент разработан компанией Xamarin, но она прекратила его поддержку в 2017 году, и сейчас он поддерживается только сообществом.

Для каждой ОС есть своя надстройка — Calabash iOS или Calabash Android. Обе они поддерживают тестирование WebView и языки Ruby/ JRuby. Для работы Calabash Android не нужен доступ к исходникам приложения, а вот для работы Calabash iOS понадобится подключить к коду приложения Calabash framework. Также для работы с view вне нативного iOS-приложения используется дополнительный инструмент — DeviceAgent, который позволяет детектить эти views и взаимодействовать с ними. Теоретически это означает, что можно тестировать и WebView, но на практике лучше ограничиться теми views, которые выдаёт iOS для вашего приложения: различные оверлеи для подтверждения, отправка писем и вставка фотографий. Calabash Android поддерживает работу с WebView, но в достаточно ограниченных масштабах: тап, ввод текста, алёрты.

В целом Calabash — довольно стабильный и быстрый инструмент, имеющий полезные функции для приведения приложения в нужное состояние (бекдоры) и “из коробки” поддерживающий интеграцию с Cucumber. Но из-за отсутствия официальной поддержки при его использовании могут возникнуть проблемы, а сообщество не может гарантировать их быстрое решение.

Earl Grey

Earl Grey — это своего рода реализация Espresso для iOS, и она тоже разработана Google. Здесь всё стандартно для iOS-надстроек: её нужно обязательно добавить в проект в Xcode, тесты можно писать только на Objective-C и Swift, приложение можно тестировать только одно — внешних views она не видит. Зато поддерживается тестирование на реальных устройствах. Сама по себе надстройка интересная, поддерживается более-менее регулярно, но популярностью у тестировщиков почему-то не пользуется.

Фреймворки

Фреймворки меньше всего связаны с тестированием мобильных устройств — они работают с тестами и интегрируются с любыми драйверами и надстройками. Поэтому я не буду их подробно рассматривать (этому посвящены сотни материалов в Интернете), а сделаю лишь поверхностное сравнение.

xUnit и TestNG

Наиболее популярны фреймворки семейства xUnit. Они создавались как инструменты для unit-тестирования, и первым таким сервисом был JUnit. При этом они могут работать не только с модульными тестами, но и с любыми другими. Благодаря своей универсальности фреймворки xUnit используются повсеместно и доминируют в тестировании веб-приложений. JUnit работает только с Java, но сейчас есть реализации таких фреймворков практически под любой популярный язык программирования.

Несколько отличается от этой группы фреймворк TestNG, в котором больше различных вспомогательных функций.

Cucumber

Также популярны BDD-фреймворки, и в первую очередь Cucumber. В отличие от xUnit и TestNG, здесь тесты и их шаги формируются на основе документации и пишутся на Gherkin — языке, близком к естественному. Уточню, что Cucumber всё-таки нацелен на приёмочное тестирование, и реализовать на нём автоматизацию функционального тестирования довольно сложно.

Комбайны

Xamarin

Xamarin — это сервис для мобильной разработки и тестирования приложений, у которого есть собственные фермы с мобильными устройствами и инструменты для автоматизации тестирования, в том числе на этих фермах. Разработка ведётся в основном на C#, есть собственный рекордер.

Ranorex

Ranorex — инструмент для автоматизации практически любых приложений. Умеет интегрироваться с Selenium, тестировать мобильные приложения на эмуляторах и реальных устройствах. Доступен только для Windows, в качестве языка для тестов использует C# и VB.NET. Также имеет рекордер для тестов.

Squish

Squish — также умеет автоматизировать веб-, мобильные и десктопные приложения, поддерживает BDD, имеет собственный рекордер и IDE. Для написания тестов можно использовать Python, Perl, JavaScript, Tcl или Ruby.

Главное достоинство таких решений — полный цикл тестирования; нет необходимости конфигурировать отдельные утилиты и их взаимодействие. Однако все эти инструменты платные, зачастую с закрытым кодом и достаточно редко используются для тестирования мобильных приложений. Поэтому однозначно рекомендовать их я не могу.

Заключение

Это, конечно, далеко не полный список возможных инструментов функционального тестирования мобильных приложений. За рамками этой статьи остались KIF, Frank, SilkMobile, TestComplete и множество других утилит. Статья задумывалась как путеводитель по основным инструментам, и я надеюсь, что она поможет кому-то понять стек автотестирования мобильных приложений и не ошибиться в выборе сервисов. Если у вас есть что добавить по теме, пишите в комментарии, я их обязательно прочту и дополню статью какими-то интересными вещами.

Для вашего удобства все инструменты я разместил в одной таблице и сделал список полезных ссылок — эти материалы вы найдёте в разделе “Шпаргалки” ниже.

Благодарности

Огромное спасибо всей команде Badoo за помощь в подготовке и рецензировании статьи, вы классные! Отдельное спасибо — z3us, nizkopal и Виктору Караневичу.

Шпаргалки

Полезные ссылки

Подкаст с обменом опытом автоматизации тестирования мобильных приложений
Курс по автоматизации, ради которого всё и затевалось
UIAutomator 2.0:
github.com/appium/appium/blob/master/docs/en/drivers/android-uiautomator2.md
bitbar.com/how-to-get-started-with-ui-automator-2-0
developer.android.com/training/testing/ui-testing/uiautomator-testing.html
XCUITest:
github.com/appium/appium/blob/master/docs/en/drivers/ios-xcuitest.md
developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html
Espresso:
developer.android.com/training/testing/espresso/index.html
developer.android.com/training/testing/ui-testing/espresso-testing.html
Robotium:
github.com/RobotiumTech/robotium
github.com/RobotiumTech/robotium/wiki/Questions-&-Answers
Selendroid:
selendroid.io/setup.html
selendroid.io/faq.html
Calabash iOS:
github.com/calabash/calabash-ios
github.com/calabash/calabash-ios/wiki/DeviceAgent
Calabash Android:
badoo.com/techblog/blog/2017/01/24/break-limitations-with-calabash-android
Earl Grey:
github.com/google/EarlGrey
bitbar.com/how-to-get-started-with-earlgrey-ios-functional-ui-testing-framework
Appium:
appium.io/introduction.html
github.com/appium/appium
WebDriverAgent
github.com/facebook/webdriveragent
www.mutuallyhuman.com/blog/2017/04/20/webdriveragent-getting-started-with-automated-ios-testing
Cucumber:
cucumber.io
xUnit
junit.org/junit5
TestNG
testng.org/doc
Xamarin.UITest:
developer.xamarin.com/guides/testcloud/uitest
developer.xamarin.com/guides/testcloud/uitest/intro-to-uitest
developer.xamarin.com/guides/testcloud/introduction-to-test-cloud/#The_Anatomy_of_the_Test_Cloud_Framework
Squish:
doc.froglogic.com/squish/6.0/tutorials-iphone.html
doc.froglogic.com/squish/6.0/tutorials-android.html
Ranorex:
www.ranorex.com/help/latest/android-testing
www.ranorex.com/help/latest/android-testing/automation-of-system-apps
www.ranorex.com/help/latest/ios-testing

Автоматизация тестирования мобильных приложений с 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 настоятельно рекомендует проводить тестирование на реальных устройствах.

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

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

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

Инструменты автоматизации процесса тестирования или мобильный тестировщик на стероидах

Привет, Хабр! Меня зовут Павел Лесюк. Я занимаюсь ручным и автоматизированным тестированием мобильных приложений, а также стараюсь автоматизировать рутинные действия, которые приходится выполнять из раза в раз. В целом я стараюсь сделать свою работу максимально эффективной и продуктивной. Во всем этом мне помогают запрещенные вещества вспомогательные инструменты разных направленностей.

Во избежание путаницы, разделим инструменты для автоматизации на две большие группы:

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

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

Предисловие

Акцент статьи будет сделан на инструментах, доступных под операционную систему macOS. Но часть этих инструментов также доступна под Linux и Windows. Для большего удобства для каждого инструмента будет указан перечень доступных платформ, а также его стоимость в случае, если инструмент платный.

Структурируем инструменты на разделы:

Инструменты для тестирования Android приложений

Android Debug Bridge (ADB)

Платформы: macOS, Linux, Windows
Описание: консольная утилита, входит в состав Android SDK. Позволяет подключаться к запущенному в режиме отладки девайсу или эмулятору через USB или поверх TCP/IP и взаимодействовать с ним.
Возможности:

  • Фильтрация, просмотр и сохранение логов.
  • Установка и удаление приложений.
  • Передача файлов с девайса на компьютер и обратно.
  • Управление активити приложения и пакетами.
  • Получение ID и состояния устройства.
  • Управление устройством через Unix shell.

Android Studio

Платформы: macOS, Linux, Windows
Описание: интегрированная среда разработки Android приложений.
Возможности:

  • Выполнение многих команд ADB через графический интерфейс.
  • Анализ APK файлов.
  • Управление настройками Android SDK.
  • Установка, удаление и запуск эмуляторов.
  • Установка и удаление приложений.
  • Написание автотестов с использованием фреймворков Espresso и UIAutomator.

scrcpy

Платформы: macOS, Linux, Windows
Описание: консольная утилита для вывода экрана Android устройства на компьютер и управления им. Бесплатная альтернатива Vysor Pro.
Возможности:

  • Управление устройством с помощью компьютера (поддерживает ввод только латиницы) и поддерживаемых шорткатов.
  • Ограничение разрешения экрана.
  • Изменение битрейта передачи.
  • Обрезка экрана.
  • Подключение нескольких устройств.

Android tool for Mac

Платформы: macOS
Описание: программа для работы с Android и iOS, позволяющая выполнять нижеперечисленные действия в один клик.
Возможности:

  • Снятие скриншотов.
  • Запись видео.
  • Установка APK.
  • Запуск своих скриптов.

Android File Transfer

Платформы: macOS
Описание: утилита для работы с файловой системой Android.
Возможности:

  • Просмотр структуры файловой системы Android устройства.
  • Обмен файлами между macOS и Android.

Инструменты для тестирования iOS приложений

Xcode

Платформы: macOS
Описание: интегрированная среда разработки iOS приложений.
Возможности:

  • Просмотр и сохранение системных и консольных логов.
  • Подключение к iOS девайсу через Wi-Fi.
  • Снятие скриншотов.
  • Установка, удаление и запуск симуляторов.
  • Установка и удаление приложений.
  • Написание автотестов с использование фреймворка XCUITest.

QuickTime Player

Платформы: macOS
Описание: системный мультимейдиный плеер.
Возможности:

  • Воспроизведение множества различных типов файлов.
  • Отображение экрана iOS устройства на компьютере.
  • Запись видео с экрана.

iTools

Платформы: macOS, Windows
Стоимость: $34.95-69.95, в зависимости от тарифа
Описание: инструмент, который призван заменить работу iTunes и сделать работу с девайсом более удобной.
Возможности:

  • Отслеживание статуса устройства.
  • Создание бэкапов и возможность восстановления.
  • Просмотр логов.
  • Установка и удаление приложений.
  • Управление мультимедиа на девайсе.
  • Просмотр файловой системы.
  • Отображение экрана устройства.
  • Снятие скриншотов и видео.

iOS Console

Платформы: macOS
Описание: программа для просмотра консольных логов девайса с возможностью фильтрации.

Инструменты для тестирования API

Charles

Платформы: macOS, Linux, Windows
Стоимость: бесплатно с ограничениями или $50-700, в зависимости от тарифа
Описание: инструмент для мониторинга трафика.
Возможности:

  • Проксирование трафика мобильных устройств и компьютера.
  • Сохранение рабочих сеансов в файлы.
  • Подмена параметров запроса и ответа.
  • Подмена тела ответа из файла (на лету).
  • Имитация разных типов соединения.
  • Черные и белые списки для методов.
  • Расстановка брейкпойнтов.
  • Повторная отправка запросов.
  • Просмотр параметров запросов и ответов в разных форматах данных.

Postman

Платформы: macOS, Linux, Windows
Описание: мощный инструмент для разработки и тестирования API.
Возможности:

  • Создание проектов с возможностью совместной работы.
  • Создание коллекций запросов с внутренней структурой из папок.
  • Отправка запросов, просмотр ответов.
  • Поддержка синтаксиса GraphQL.
  • Просмотр логов и дебаггинг.
  • Настройка отдельных окружений с созданием глобальных переменных.
  • Создание локальных переменных.
  • Запуск скриптов.
  • Написание автотестов с использованием JavaScript.
  • Запуск автотестов по расписанию, мониторинг выполнения.
  • Запуск тест-ранов (цепочки запросов).
  • Создание mock-серверов.
  • Экспорт и импорт коллекций.

Newman

Платформы: macOS, Linux, Windows
Описание: консольная утилита для тестирования коллекций Postman.
Возможности:

  • Запуск коллекций из командной строки.
  • Интеграция с системами CI (Jenkins, Travis CI) и Docker.

Insomnia

Платформы: macOS, Linux, Windows
Описание: REST-клиент для разработки и тестирования API.
Возможности:

  • Создание структуры запросов из проектов и вложенных папок.
  • Отправка запросов, просмотр ответов в разных форматах (изображения, HTML, PDF).
  • Настройка отдельных окружений с созданием глобальных переменных.
  • Создание локальных переменных.
  • Использование тегов для генерирования данных.
  • Поддержка синтаксиса GraphQL.
  • Экспорт и импорт данных.
  • Возможность использования и создания плагинов.

Paw

Платформы: macOS
Стоимость: $49.99
Описание: HTTP-клиент для разработки и тестирования API.
Возможности:

  • Создание проектов с возможностью совместной работы.
  • Создание иерархической структуры запросов.
  • Отправка запросов, просмотр ответов в разных форматах (изображения, HTML, PDF).
  • Настройка отдельных окружений с созданием переменных.
  • Экспорт и импорт данных.
  • Возможность использования и создания расширений.

Инструменты общего назначения

Snagit

Платформы: macOS, Windows
Стоимость: $49.95 для индивидуальной лицензии (2 компьютера)
Описание: многофункциональный скриншотер. Один из лучших в своей категории.
Возможности:

  • Разные режимы захвата: весь экран, отдельное окно, преобразование картинки в текст, веб-страница, меню и так далее.
  • Снятие видео.
  • Собственный редактор со множеством встроенных инструментов для работы с изображением и видео: рисование, наложение разнообразных иконок, идентификация текста и картинок на изображении с возможностью их редактировать, автозамена элементов на изображении упрощенными объектами и многое другое.
  • Создание пресетов с возможностью установки шорткатов для разных режимов захвата и отправки файлов в какой-либо предзаданный сервис (Google Disc, Dropbox и так далее).
  • Мгновенная отправка файлов с мобильного устройства на компьютер через Wi-Fi (нужно скачивать приложение на девайс и подключаться к прокси).

Pushbullet

Платформы: macOS, Windows, Web, Android, iOS
Стоимость: 229 ₽ для macOS, для остальных платформ — бесплатно
Описание: позволяет общаться между компьютером и всеми девайсами, подключенными к одному аккаунту (как правило, тестовой учетной записи).
Возможности:

  • Отправка текста, ссылок, картинок и любых других файлов с компьютера на девайс и обратно.
  • Отправка SMS с компьютера.
  • Просмотр уведомлений девайса на компьютере.

Alfred

Платформы: macOS
Стоимость: £23 за текущую версию, £39 за обновление на все новые версии
Описание: приложение для повышения продуктивности и автоматизации рабочих процессов. Представляет собой окно поиска на подобии Spotlight, только на стероидах c более расширенным функционалом. Умеет практически все.
Возможности:

  • Создание собственных workflow с использованием встроенных инструментов и языков программирования: начиная с открытия ссылок в браузере, заканчивая сложными интеграционными сценариями.
  • Поиск по файловой системой macOS с гибкой настройкой.
  • Поиск по закладкам браузера.
  • Расширенный буфер обмена.
  • Создание текстовых шаблонов.
  • Выполнение системных команд.
  • Удаленное управление macOS с iPhone при помощи приложения Alfred Remote.

Множество полезных workflow здесь и здесь.

TextExpander

Платформы: macOS, Windows, iOS
Стоимость: $3.33 за год персонального использования, $7.96 за год использования для команды
Описание: инструмент для создания шаблонов и их вставки.
Возможности:

  • Создание текстовых шаблонов.
  • Создание шаблонов с использованием форматированного текста и картинок.
  • Создание шаблонов с использованием скриптовых языков (Shell Script, AppleScript, JavaScript).

Dash

Платформы: macOS, iOS
Описание: браузер документации API и инструмент для создания фрагментов кода.
Возможности:

  • Формирование собственной библиотеки из структурированных наборов документации для разных инструментов (языки программирования, фреймворки, различные системы) и чит-листов (команды, сочетания клавиш) с возможностью просмотра и поиска.
  • Создание собственных наборов документации и чит-листов.
  • Создание фрагментов кода для разных представлений данных.
  • Большое количество интеграций с другими инструментами.

Заключение

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

Облачные платформы для мобильного тестирования / Хабр

И вот настало то время, когда нашим нуждам тестирования стало тесно на рабочем столе тестировщика. Душа попросилась в облака. На самом деле нет. Не совсем.

(спешащий читатель, можешь мотать до следующего раздела)

Мы занимаемся разработкой финансового приложения для иностранного рынка, которое доступно в разных форматах: для десктоп-браузеров (веб-сайт и расширение для Google Chrome), для мобильных браузеров, а так же в виде гибридного приложения для телефонов. В связи со спецификой приложения, мы особое внимание уделяем тестированию приложения на различных конфигурациях и устройствах. Для нас важна стабильная и безопасная работа приложения как на настольных браузерах наших клиентов, так и на их любых устройствах.

Причиной поиска облачной фермы устройств для тестирования для нас стала смена формата работы с офисного на полностью удалённый и распределённый (между городами и странами). То есть, если раньше для тестирования мы могли раньше собрать разные устройства в кучу (в буквальном смысле) и протестировать в ручном режиме за одним столом очередную сборку, то сейчас это стало сделать попросту невозможно. Более того, с ростом функционала, для уменьшения ручной работы, регрессионные наборы важных тестов мы автоматизируем, а значит, после сборки нам нужно иметь возможность позвать тесты на желаемой конфигурации и устройстве, причём лучше это сделать сразу же, как только сборка раскатится на staging.

При этом самым простым и очевидным решением является использование эмуляторов для Android и симуляторов для iOS устройств в нашем DevOps конвеере. Однако, что сравнительно легко реализуется на рабочем компьютере разработчика, для использования в облаке становится сложной и дорогой задачей. Для быстрой работы того же эмулятора Android требуется x86 сервер с поддержкой HAXVM, а для симулятора iOS — только MacOS устройство с xcode. Но, к сожалению, даже решив такую задачу остаётся вопрос с разрывом между поведением программного обеспечения на эмуляторах и реальных устройствах. Например каждый второй релиз мы ловим странные баги на Samsung устройствах, которые не воспроизводятся на эмуляторах. Ну, и, конечно редкие экзотические «китайцы» «радуют» уникальным и багами, которые тоже хотелось бы ловить ещё на этапе разработки.

В результате у нас появилось понимание необходимости использования облачной фермы мобильных устройств, на которых мы могли бы быстро прогонять свои тесты и при необходимости производить отладку в ручном режиме. И к которой был бы доступ у всей нашей команды из любой точки мира (мы любим работать даже в путешествиях).

Наши тесты написаны на Python 3.7 (далее это будет важно), как стек мы используем tox + pytest + Selenium + Appium, ну и небольшой набор полезных питонячих библиотек. Мы обязательно тестируем машины на Windows и MacOS с браузерами Edge, Firefox, Chrome, Safari, а так же устройства на Android и iOS — с браузерами и приложением. Тестов у нас на каждое устройство не сильно много (меньше тысячи), но при тестировании в один поток на устройствах полный набор выполняется пару часов. Поэтому критерием выбора сервиса для нас будет:

  • Тестирование через API (Selenium/Appium)
  • Устройства iOS, Android
  • Поддержка мобильного браузер-тестирования
  • Поддержка загрузки и тестирования приложений
  • Наличие референсного устройства (GooglePixel (Android 9) и iPhone X (iOS 12+))
  • Ручная отладка
  • Логирование (плюс скриншоты, запись видео прогона)
  • Парк устройств и их доступность
  • Среднее время выполнения теста
  • Цена

Желательно, но не обязательно:

  • Поддержка python на уровне сервиса (что бы это ни значило)
  • Поддержка десктопных устройств \ браузеров

За неделю я пошерстил интернет и попробовал с десяток разных сервисов. Большинство из них предоставляет бесплатное время для тестирования возможностей. Результаты моего исследования, тем более выводы носят субъективный характер. Ваше мнение и результаты могут отличатся от моего.

На Хабре я нашёл статью за 2017 год посвящённую этой же теме, но с тех пор появились и новые сервисы, да и наша задача чуть строже. Так, например, «вкусные» сервисы вроде Samsung Remote Test Lab, Firebase Test Lab, Xamarin Test Cloud нам, увы, не подходят.

Вне игры

Samsung Remote Test Lab

Ссылка.

Сервис бесплатно предоставляет возможность попробовать поработать с различными устройствами Samsung, в том числе с самыми новыми, включая телевизоры или умные часы на Tizen (ограничение — максимум 10 часов в день, за день сервис бесплатно выдаёт 10 кредитов, что равно 2,5 часам в день, минимальная сессия — полчаса (2 кредита)). Это очень неплохо для отладки и поиска корневых причин возникновения ошибок на определённых устройствах, сервис даже предоставляет доступ к удалённой отладке (remote debug bridge, доступ к консоли и системным логам), но, к сожалению, сервис не предоставляет API-доступ к устройствам. Единственная возможность «автоматизировать» — это записать пользовательские действия и затем их воспроизвести в местном средстве автоматизации.

Firebase Test Lab

Ссылка.

Сервис от Google позволяет бесплатно (не совсем) протестировать своё приложение на устройствах под управлением Android и iOS. Но есть один нюанс — сервис требует использования либо нативных средств автоматизации (UIAtomator2 и Espresso для Android и XCTest для iOS), либо с помощью автоматических пауков (crawler) для Android — Robo Test и Game Loop Test. То есть использовать UIAutomator и Selenium увы, не выйдет. Что же касается бесплатности — бесплатный пакет ограничен 10 тестами на эмуляторах и пятью на реальных устройствах в день. Если нужно больше, то за каждый дополнительный час придётся заплатить еще $1 и $5 соответственно. В целом для наших задач это было бы неплохим выбором, если бы мы писали тесты с нуля, но перерабатывать несколько сотен тестов уже совсем не хочется — это попросту дорого. Да и получается, что нам пришлось бы сильно разойтись в тестах между десктоп-версиями и мобильными, что сильно усложнит поддержку.

Visual Studio App Center

Ссылка.

Бывший Xamarin Test Cloud. Этот сервис наконец-то поддерживает Appium и позволяет проводить тестирование на тысяче разных устройств. Но, как и в случае с другими продуктами Microsoft жёстко прибит гвоздями к родному стеку, что значит, что для использования данного сервиса от вас потребуется как наличие VisualStudio, так и требование писать проект и тесты исключительно на Java. Но если вдруг у вас Java-стек (c MS VS), то цена вопроса — $99 за слот девайса в месяц, что сравнительно либерально.

Сервисы на выбор

AWS Device Farm

Ссылка.

Пожалуй, самая мощная ферма для тестирования на виртуальных и реальных устройствах на сегодняшний день (более 2500 устройств). Для нас это был приоритетный сервис, так как наши сервисы как раз развёрнуты в облаке AWS, кроме того, цены за минуту времени устройства начинаются от 17 центов. AWS позволяет работать как с нативными фреймворками, так и с Appium, Calabash, и другими фреймворками автоматизированного тестирования. Помимо автоматизированного тестирования, сервис предоставляет возможность ручной отладки. Ну и 1000 минут «на попробовать» — это очень заманчиво. Однако, дьявол как водится, кроется в деталях. С точки зрения тестирования у AWS есть несколько особенностей.

Мы, как я уже упомянул, используем Python 3.7, однако AWS Device Farm до сих пор работает с Python 2.7.6 (см. мануал здесь). И из коробки ничего не знает про tox. Для нас это означает отсутствие ряда возможностей и необходимость переработки части тестов для обеспечения обратной совместимости, так и создания окружения в обход tox. Кроме того, достаточно странный механизм загрузки тестового пакета (архив) подразумевает так же и загрузку приложения для тестирования. В нашем случае, если мы будем тестировать наш сервис через мобильный браузер, то загрузка приложения — лишний шаг. Впрочем, приложение можно заменить «заглушкой», а в окружении Python 2.7 создать venv с Python 3.7, и тогда в нём создать окружение с tox, который…

Amazon не был бы Amazon, если бы всё упиралось в старые версии. В качестве альтернативы (и ни у какого сервиса ниже такой возможности не будет) AWS предлагает использовать AWS Device Farm через AWS CLI (command line interface) (см. мануал здесь). То есть, мы можем подключить устройство из облака как реальное устройство к нашему компьютеру в режиме удалённой отладки (remote debug), правда, предварительно заменив adb на патченое (в списке бинарника под linux нет, но уверен, в природе он существует). То есть, настроив AWS CLI, для тестирования нам потребуется выполнить буквально несколько команд (ведь мы не собираемся использовать GUI в виде AWS Device Farm App).

Пример кода

import boto3  # используем AWS SDK https://pypi.org/project/boto3/

aws_client = boto3.client('devicefarm')
response = aws_client.list_devices()  # получим список доступных устройств
device_arn = ''
for phone in response["devices"]:
    if phone['name'] == "Google Pixel XL":  # ищем телефон по его имени (допустим оно уникально)
        device_arn = phone['arn']  # сохраняем его Amazon Resource Name
        break
project_arn = aws_client.list_projects()['projects'][0]['arn']  # просто берём первый наш проект из списка

# создаём сессию с поддержкой удалённой отладки, обязательно указываем публичный SSH ключ от устройства
response = aws_client.create_remote_access_session(projectArn=project_arn,
                                                   deviceArn=device_arn,
                                                   remoteDebugEnabled=True,
                                                   ssh-public-key=SSH_KEY)

# теперь в ответ на adb devices в списке должен появиться uuid Google Pixel XL из AWS Device Farm, аналогично для iOS

# вызываем наши тесты здесь
... RUN_TESTS() ...

# останавливаем и удаляем (если надо) сессию удалённой отладки
aws_client.stop-remote-access-session(arn=response['remoteAccessSession']['arn'])
aws_client.delete_remote_access_session(arn=response['remoteAccessSession']['arn'])

Если мы хотим тестировать приложение, его так же можно загрузить через AWS SDK.

Но я не рассказал ключевой нюанс здесь. Мы снова натыкаемся на дьявола в деталях. Дело в том, что опция удалённой отладки доступна только если для AWS мы используем Private Devices план. Во-первых, данная возможность доступна только под запрос (нужно написать письмо в Amazon), во-вторых опция доступна для региона us-west-2, а в-третьих, фактически эта опция нас возвращает к сценарию, когда у нас есть сервер для тестирования с набором (или хотя бы одним) устройств подключенных к нему. Плюсы очевидны — мы это устройство можем использовать монопольно, что очевидно безопаснее и быстрее, с другой стороны лишаемся главного преимущества — выбора и разнообразия устройств.

Сервис мне в целом понравился, но для нашей команды, увы, в нём слишком много «но».

Bitbar

Ссылка.

Эта облачная ферма мобильных устройств первая выпадает по запросу в поисковиках. И не зря. Забегая вперёд, скажу, что у данного сервиса лучший выбор устройств (только реальные устройства) и лучшая производительность в пересчёте на один тест в сравнении с другими. Bitbar предлагает услуги по удалённому ручному и автоматизированному тестированию (используя Appium и другие фреймворки), а так же, при желании позволяет использовать что-то похожее на crawler от Firebase Test Lab (Robot Test) — AI TestBot. Главное преимущество BitBar’a — это неограниченное количество потоков тестирования (то есть своё приложение можно сразу протестировать на сотне устройств), выбрав нужный пул устройств предварительно. Если устройство занято, подберётся другое такое же, либо сессия будет поставлена в очередь. По окончанию запуска тестов формируется лог, запись тестирования, результаты сохраняются, и уведомление отправляется на почту. Хотя есть и возможности настроить взаимодействие и с разными CI/CD инструментами. Так же сервис предоставляет возможность тестирования десктопных браузеров в разных разрешениях, а при желании — создания, как и в AWS, своих приватных устройств. Правда, за все эти фишки нужно платить — каждая минута тестирования обойдётся в $0.29.

Процесс настройки прост, как взаимодействие двух перстов с асфальтом:

Пример кода

from appium import webdriver

""" ... """

com_executor = 'https://appium.bitbar.com/wd/hub'
desired_capabilities = {
                        'deviceName': 'Motorola Google Nexus 6',
                        'deviceId': 'FA7AN1A00253',
                        'newCommandTimeout': 12000,
                        'browserName': 'Chrome',  #  для тестирования в мобильном Chrome, меняем или используем app
                        'bitbar_apiKey': 'BITBAR_API_KEY',
                        'bitbar_project': 'Software Testing',
                        'bitbar_testrun': 'Test run #N',
                        'bitbar_device': 'Motorola Google Nexus 6',
                        'bitbar_app': '23425235'
                        }
driver = webdriver.Remote(com_executor, desired_capabilities) 

""" ... """

Kobiton

Ссылка.

Ещё один сервис, предоставляющий услуги по тестированию на реальных устройствах. Выбор устройств скромнее Bitbar’a (350+), доступность устройств так же меньше. В целом очень похож по основному функционалу на BitBar, позволяет проводить ручное и автоматическое тестирование (с помощью Appium — тут без выбора фреймворков). Возможности потестировать на десктопных браузерах нет. Сервис так же позволяет организовать тестирование с неограниченным числом сессий и устройств, но пула устройств тут не создать. Цена на сервис очень либеральная — от $0.10 за дополнительную минуту тестирования, но во время пробного периода я обратил внимание на некоторую нестабильность сервиса — часто отваливался интернет на устройствах, один раз девайс повис. Так же, если устройство занято или забронировано, то все ваши запущенные тесты упадут. То есть, в отличие от Bitbar’a — очереди из сессий нет. Правда, с небольшими затратами её можно организовать. У Kobiton есть своё небольшое API.

Настройка так же очень проста, в отличие от bitbar’a почти что оригинальный Appium.

Пример кода

import base64
from time import sleep
from appium import webdriver
import requests

""" ... """

# авторизируемся
base64EncodedBasicAuth = base64.b64encode(bytes(f'{USERNAME}:{API_KEY}', 'utf-8'))
headers = {
  'Authorization': f'Basic {base64EncodedBasicAuth}'
}
reply = requests.get(f'https://api.kobiton.com/v1/apps', params={

}, headers = headers)

# теперь получим статус устройства deviceId
headers = {
  'Authorization': base64EncodedBasicAuth,
  'Accept': 'application/json'
}
reply = requests.get(f'https://api.kobiton.com/v1/devices/{deviceId}/status', params={

}, headers = headers)

# ждём по минуте, если устройство отключено или занято
while (reply['isOnline'] == False or reply['isBooked'] == True):
    sleep(60)

# настраиваем драйвер
com_executor = f'https://{USERNAME}:{API_KEY}@api.kobiton.com/wd/hub'
desired_capabilities = {
                        'browserName': 'Chrome',
                        # The generated session will be visible to you only.
                        'sessionName': 'Automation test session',
                        'sessionDescription': '',
                        'deviceOrientation': 'portrait',
                        'captureScreenshots': True,
                        'deviceGroup': 'KOBITON',
                        # For deviceName, platformVersion Kobiton supports wildcard
                        # character *, with 3 formats: *text, text* and *text*
                        # If there is no *, Kobiton will match the exact text provided
                        'deviceName': 'Pixel 2',
                        'platformName': 'Android',
                        'platformVersion': '9'
                        }
driver = webdriver.Remote(com_executor, desired_capabilities)

""" ... """

# выполняем тесты
RUN_TESTS()

""" ... """

# по завершению тестирования сессию лучше самостоятельно закрыть, чтобы не ждать таймаута (экономим время и деньги)

headers = {
  'Authorization': {base64EncodedBasicAuth}
}
requests.delete(f'https://api.kobiton.com/v1/sessions/{sessionId}/terminate', params={ })

""" ... """

BrowserStack

Ссылка.

Старый-добрый BrowserStack. О нём много чего писали и его много кто использует. Да, он позволяет проводить тестирование не только на разных браузерах, но и на разных устройствах. Как в ручном режиме, так и используя Selenium/Appium. В зависимости от потребностей — на мобильных браузерах или с использованием вашего приложения. По возможностям всё то же самое, что и у двух сервисов сверху, но в отличие от них здесь уже есть ограничения по количеству одновременных сессий. Правда, наоборот, платите $199 в месяц и тестируйте неограниченное время. Есть плагины для Jenkins, Travis CI, TeamCity, свой богатый API, отличные логи, и большой выбор устройств и десктопных браузеров на разных конфигурациях. Правда, в зависимости от того, чего вы тестируете будут различаться настройки — для тестирования браузеров (даже мобильных) используется Selenium хаб, а для приложений — Appium хаб. Более того, за тестирование приложения придётся платить отдельно. То есть, для того чтобы тестировать и мобильные браузеры, и приложения, нужно заплатить $199 и ещё $159 (цена за одновременно одно устройство для тестирования).

Пример кода для приложения

from appium import webdriver

""" ... """

com_executor = 'https://USERNAME:[email protected]/wd/hub'
desired_capabilities = {'device': 'Google Pixel',
                        'deviceName': 'Google Pixel',
                        'app': app_name,
                        'realMobile': 'true',
                        'os_version': '8.0',
                        'name': 'Bstack-[Python] Sample Test'
                        }
driver = webdriver.Remote(com_executor, desired_capabilities)

""" ... """

Пример кода для мобильного браузера

from selenium import webdriver

""" ... """

com_executor = 'http://USERNAME:[email protected]:80/wd/hub'
desired_capabilities = {'device': 'Google Pixel',
                        'deviceName': 'Google Pixel',
                        'browserName': 'Chrome',
                        'realMobile': 'true',
                        'os_version': '8.0',
                        'name': 'Bstack-[Python] Sample Test'
                        }
driver = webdriver.Remote(com_executor, desired_capabilities)

""" ... """

Experitest

Ссылка.

Ещё один сервис, который предоставляет возможность тестирования в ручном и автоматическом режиме как мобильных устройств, так и десктопных браузеров с использованием Appium, Selenium и других фреймворков. Как и в случае с BrowserStack’ом, количество одновременных сессий ограничено, но цены немного иные — за тестирование мобильных приложений сервис просит $199 за месяц, а за кроссбраузерное тестирование всего $39 (за одну одновременную сессию). Кроме того, как и Bitbar c AWS позволяет собрать свою приватную лабораторию с устройствами, которые, впрочем, при желании можно миксовать и с публичным облаком из тысячи устройств, эмуляторов и браузеров разных версий и платформ (MacOS, Windows). Из интересных особенностей — наличие расширений для IntelliJ и Eclipse, своего инструмента Appium Studio, который позволяет использовать расширенный функционал устройств вроде взаимодействия c FaceID, управления голосом, сканирования штрих-кодов, установки качества связи, геопозиции и прочая. Из минусов могу назвать странный набор устройств для пробного периода, драконовскую тарификацию на пробном периоде, а так же требование использовать корпоративную почту (gmail не подойдёт).

Пример кода

from appium import webdriver

""" ... """

com_executor = 'https://Uhttps://cloud.seetest.io/wd/hub'
desired_capabilities = {"deviceName": "iPhone X",
                        "accessKey": API_KEY,
                        "platformName": "ios",
                        "deviceQuery":  "'@os='ios' and @version='12.1.3' and @category='PHONE'",
                        }
driver = webdriver.Remote(com_executor, desired_capabilities)

""" ... """

SauceLabs

Ссылка.

Один из старейших сервисов облачного тестирования. Почти 400 разных реальных устройств, богатый выбор симуляторов и эмуляторов, включая нетипичные эмуляторы устройств Samsung, есть и десктопные браузеры под разные ОС, включая Linux. Автоматизация на Appium/Selenium и нативных фреймворках. Главный плюс сервиса — наличие обширной коллекции конфигураций в том числе и старых ОС, браузеров, устройств. SauceLabs так же имеют ограничение в количестве одновременных сессий, но тут самый дешевый вариант включает не одну, а две одновременных сессии. Что необычно: тарифные планы на реальных устройствах и на эмуляторах отличаются. Так, самые дешевые варианты, включающие в себя две сессии с 2000 минутами тестирования в месяц на эмуляторах обойдутся в $149, а на реальных устройствах уже в $349. Есть интеграция с CI/CD, Slack.К сожалению, попробовать вживую SauceLabs мне не удалось, так как увы, не проходит регистрация, возможно из-за региона, но точно утверждать не берусь.

Perfecto

Ссылка.

Последний провайдер облачного тестирования визуально больше всего похож на Experitest, но без расширенного функционала. Есть свой простой скриптовый язык. Очень странно, но в сервисе для не-корпоративных (Enterprise) тарифов нет предложения для тестирования на десктопных браузерах, так же нельзя наблюдать за выполнением тестов в реальном времени (только если это не ручное тестирование). В распоряжении к тестированию доступно порядка ста разных устройств. Есть интеграция с Jenkins, а так же, что интересно, с инструментами тест-менеджмента вроде HP ALM, IBM Rational, TFS. Так же в наличии весьма странные тарифные планы, вроде 5 часов тестирования в месяц (в пересчёте на минуты аж $0,33 (это самый дорогой сервис)), правда с возможностью докупить пакет с дополнительными часами, но опять-таки, странно, что нет поминутной или хотя бы почасовой тарификации по факту. Что же касается удобства использования, то во время пробного периода доступно только ручное тестирование, а так же общая лаборатория, так что все запуски от разных пользователей сваливаются в одну кучу. Так что судить точно об удобстве и скорости сервиса, увы, нельзя. Видно, что сервис в основном ориентирован на крупных корпоративных клиентов, при этом, по крайней мере по имеющейся информации, возможности у данного провайдера самые скромные из всех мною протестированных.

Сводные результаты

По всем критериям выбора сервисы весьма схожи, разница между сервисами в их производительности и цене (если нет особенностей, например, как в случае AWS). Поэтому сведём данные исследования в таблицу, посмотрим на скорость сервисов (с учётом подключения через US VPN), а так же на цену, для удобства сравнивая среднее месячное время тестирования на устройствах (5 релизов в месяц, по 2 часа тестирования на Android и iOS устройстве = 20 часов). В качестве референсных значений я использую данные со своего локального компьютера с эмулятором, опять-таки подключаясь к нему для чистоты эксперимента через VPN в США).

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

Вариант А: Если вам важна быстрота проверки, и нужны проверки сразу на десятках разных устройств — ваш выбор — Bitbar.

Вариант Б: Если у вас в приоритете результаты с референсных устройств, а конфигурационное тестирование вторично (но необходимо) — ваш выбор — BrowserStack. Это как раз наш кейс, так как статистически — 90% всех ошибок — это ошибки с референсных платформ и устройств (чаще всего баги общие для всех референсных платформ сразу). Оставшиеся 8% — это ошибки MS IE, с отказом от поддержки IE — 2% ошибки MS Edge, а 0,5% ошибки на специфичных конфигурациях.

Вариант В: Если вам важны проверки особых условий, вроде некачественной связи, геопозиции или Touch/FaceID, то ваш выбор — Experitest.

Ну а на долгосрочной перспективе, если ваша компания занимает большой офис, ваша работа Full-Time, то, как правило, организация своей, пусть даже мини-лаборатории с сервером под эмуляторы с подключенными 2-3 устройствами обойдутся дешевле и удобнее, чем использование специализированных сервисов.

Автоматизация мобильных приложений с SeeTest Automation / Блог компании Tinkoff / Хабр

Статья публикуется от имени Батеевой Екатерины, Neifmetus

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

В нашем банке мы тоже наблюдаем эту тенденцию: мобильное приложение по сравнению с интернет-банком используют на порядок больше пользователей. Поэтому остро встал вопрос автоматизации тестирования мобильного приложения. Несмотря на повсеместное использование мобильных приложений, средства для их автоматизированного тестирования далеко не идеальны. Кроме того, мы предъявляем к ним высокие требования. Например, самый популярный фреймворк Appium — open-source решение, поддерживающее платформы Android и iOS, — нам не подошел. Наши разработчики использовали много модных библиотек, и взаимодествовать с приложением иногда приходилось на более низком уровне. UI Automator и UI Automation оказались более сложными в развертывании, каждое приложение использовало свой язык для написания тестов, из-за чего возникали проблемы при перераспределении между платформами в команде автотестирования.


На старте процесса по автоматизации в нашей команде было два человека на два проекта и по 100 тест-сценариев на каждую платформу и довольно сжатые сроки. Мы искали решение, на разворачивание и доработку которого у нас бы ушло минимум времени. И еще мы надеялись, что решение быстро освоят новые сотрудники.

Что же выбрали мы?

Наше внимание привлекло малоизвестное решение от компании «Experitest» — SeeTest Automation. Это кросс-платорменное решение для тестирования. Система интегрируется с WebDriver (Selenium), HP UFT/QTP, JUnit, Microsoft Visual Studio и другими. SeeTest Automation поддерживает мобильные платформы iOS, Android и Windows, причем как для смартфонов, так и для планшетов.
Для подключения устройств используется простой и понятный интерфейс.

В интерфейсе есть список добавленных устройств. Для каждого устройства отображается его статус (online/offline), имя и версия операционной системы. Приложения для тестирования устанавливаются через этот интерфейс, и для каждого устройства можно увидеть установленные тестовые приложения и их версию.

У подключенных телефонов можно открыть экран и увидеть все происходящее на девайсе. В режиме разработчика девайс реагирует на управление мышью и клавиатурой. Отображение экрана обновляется автоматически в режиме реального времени. Также на экране девайса доступен инспектор (Object Spy), в котором можно посмотреть дерево элементов.

Здесь можно увидеть как базовые, так и добавленные атрибуты документов. Например, для элементов, которые сложно или невозможно идентифицировать по таким параметрам, как text, label или id, мы просим разработчиков задавать дополнительные тэги с уникальным значением.

Инспектор позволяет сгенерировать уникальный xpath элемента как с использованием текста элемента, так и игнорируя текст. Сгенерированный xpath в 95% случаев получается стабильным. Также Object Spy предоставляет возможность ввести свой xpath и отображает найденные элементы.

Еще одна полезная функция у инспектора, позволяющая вызвать public методы объекта, — RunNativeAPICall. С ее помощью можно создавать и запускать скрипты на базе public-методов Native API класса этого элемента.

Как и многие другие средства, SeeTest позволяет тестировать мобильные приложения в режиме «Record and Replay». Я не сторонник этого подхода для автотестов: простота написания таких тестов иллюзорна. К счастью, у SeeTest есть и альтернативный вариант — использование библиотеки для взаимодействия с девайсами. Поддерживаются языки Java, Python, Perl, Ruby. Но, если пользователь слаб в разработке и затрудняется писать тесты, в SeeTest есть генерация кода под поддерживаемые языки и такие тестовые фреймворки, как TestNG или JUnit. Мы выбрали язык Java, развернули SeeTest, подключили девайсы и начали автоматизировать наш мобильный банк.

Процесс написания тестов оказался довольно простым и похожим на автоматизированное тестирование web’a. В качестве runner’а для тестов мы выбрали TestNG.

От теории к практике

Каждый тест создается по следующей схеме:

  • создаем объект Client, которому прописываем данные для подключения к девайсу. Этот объект будет своеобразной вариацией selenium-driver;
  • на девайсе запускаем тестовое приложение;
  • манипулируем приложением с помощью методов объекта client. Client позволяет кликать по элементам, вводить текст, считывать текст объектов. Он также умеет делать такие привычные для мобильных устройств действия, как swipe, long tap и другие. В последних версиях SeeTestAutomation появилась полезная функция synchronize, позволяющая дождаться полной загрузки экрана, не прибегая к нестабильным custom-решениям;
  • на девайсе запускаем тестовое приложение;
  • все вызовы методов объекта client логируем, каждый метод делает скриншот экрана, благодаря чему понятно, с каким элементом производилась манипуляция;

  • если необходимо, добавляем вывод дополнительной информации. Например, можно вывести тестовые данные или сделать дополнительный скрин;

В результате прогона формируется отчет, в котором сгруппированы все запущенные тесты. Страница Summary Report содержит статистику по запускам, название, длительность и результат каждого теста, и, если тест упал, то время падения и описание ошибки. В каждый тест можно перейти и посмотреть детальную информацию. По умолчанию все логи внутри одного теста падают подряд одним списком. Но, если тест хоть немного больше обычной авторизации на форме, объект Client имеет функционал для объединения тестов на группы. Группам можно дать внятное описание, их можно раскрывать и сворачивать, что позволяет легче работать с длинными отчетами.

Лицензирование и масштабируемость

Подключение большого количества устройств ограничено. Для разработки тестов необходимы лицензии разработчика на машину или на каждого конкретного пользователя. Для запуска тестов необходимы агенты (Executor Add-on). Агент не привязан строго к устройству, скорее thread для запуска тестов. Если необходимо задействовать больше пары-тройки устройств, Experitest предлагает использовать их device farm или развернуть локально SeeTestCloud. Cloud позволяет очень удобно мониторить и оперировать подключенными устройствами. Они отображаются в интерфейсе SeeTestAutomation: можно отслеживать какие подключены, какие заняты, доступны в данный момент, можно добавлять и удалять новые устройства. Для устройств, подключенных к Cloud, также можно в online-режиме наблюдать происходящие на телефоне действия.

Распараллеливание тестов реализовано, но сопряжено с некоторыми трудностями. Поскольку при запуске теста создается подключение к девайсу, объект Client имеет доступ к определенному устройству. Executor Add-on позволяет запускать на разных девайсах различные тесты одновременно, но для выполнения одного теста на разных устройствах необходимо провести распараллеливание самостоятельно.

Поддержка

Поддержка выгодно отличает платные решения. В SeeTest поддержка — весомый аргумент в пользу выбора именно этого инструмента для тестирования. При любых проблемах с настройкой, развертыванием, обновлением системы можно позвонить в call-центр, и специалисты все разъяснят и покажут. Если при тестировании был выявлен баг фреймворка, уведомите о нем разработчиков, и они создадут задачу на его исправление, сообщив о приблизительных сроках решения задачи.

Заключение

Когда наша команда искала средство для автоматизации, признаюсь, SeeTest несколько пугал тем, что про него довольно мало известно, и в России он мало распространен. Но, начав использовать его, мы обнаружили, что это хорошее коробочное решение с гибкой конфигурацией под «свои» нужды и большим функционалом. SeeTest позволяет проводить и стандартные, и довольно экзотические манипуляции. Хотя мы все равно продолжаем исследовать open-source решения, пока они не полностью удовлетворяют нашим требованиям.

14 лучших мобильных инструментов тестирования для приложений Android и iOS [Бесплатно / Платно]

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • 9000 Testing 9000 Database Testing 9000 Jmeter
      • JIRA
      • Назад
      • JUnit
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • 00030003
        • Тестирование
        • Selenium
        • SoapUI
        • Управление тестированием
        • TestLink
    • SAP

        • Назад 900 04
        • ABAP
        • APO
        • Начинающий
        • Basis
        • BODS
        • BI
        • BPC
        • CO
        • Назад
        • CRM
        • Crystal Reports
        • H0003 Crystal Reports

        • Crystal Reports
        • QM
        • Заработная плата
        • Назад
        • PI / PO
        • PP
        • SD
        • SAPUI5
        • Безопасность
        • Менеджер решений
        • Successfactors
        • SAP Tutorials
      • 000
      • 0004
      • 000
      • Назад
      • Apache
      • AngularJS
      • ASP.Net
      • C
      • C #
      • C ++
      • CodeIgniter
      • СУБД
      • JavaScript
      • Назад
      • Java
      • JSP
      • Kotlin
      • Linux
      • Linux
      • Kotlin
      • Linux
      • js

      • Perl
      • Назад
      • PHP
      • PL / SQL
      • PostgreSQL
      • Python
      • ReactJS
      • Ruby & Rails
      • Scala
      • SQL
      • 000

      • SQL
      • 000

        0003 SQL

        000

        0003 SQL

        000

      • UML
      • VB.Net
      • VBScript
      • Веб-службы
      • WPF
  • Обязательно учите!

      • Назад
      • Бухгалтерский учет
      • Алгоритмы
      • Android
      • Блокчейн
      • Business Analyst
      • Создание веб-сайта
      • CCNA
      • Облачные вычисления
      • 00030003 COBOL
          9000 Compiler

            9000 Встроенные системы

          • 00030003 9000 Compiler 9000
          • Ethical Hacking
          • Учебники Excel
          • Программирование на Go
          • IoT
          • ITIL
          • Jenkins
          • MIS

      .

      Лучшие инструменты автоматизации для тестирования приложений Android (Инструменты тестирования приложений Android)

      Список лучших инструментов тестирования приложений Android для справки:

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

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

      Широкий выбор доступных средств автоматизации затрудняет выбор наиболее подходящих для проекта. Проблема в том, что вряд ли какой-либо из существующих инструментов полностью соответствует требованиям проекта.

      Чтобы автоматическое тестирование было эффективным и прибыльным, необходимо:

      • Изучить тестируемый программный продукт и проект;
      • Понятно определите, какие тесты нужно автоматизировать;
      • Сформулировать требования к автоматизированным тестам и инструментам для автоматизации;
      • Изучите хотя бы несколько доступных и более-менее подходящих инструментов для автоматизации;
      • На основании исследований выбрать наиболее подходящий один или несколько инструментов;
      • Обсудить выбранные средства автоматизации с другими участниками проекта, объяснить свой выбор и получить их одобрение;
      • Перейти к автоматизации тестов.

      Такой подход и последовательность шагов были бы одобрены большинством экспертов по обеспечению качества.

      В последнее время появилось много разных видов компьютеров, с их появлением началось бурное развитие программных продуктов. Самое удивительное — это эволюция мобильных устройств; они существенно отличаются от обычных персональных компьютеров по характеристикам, способам и условиям взаимодействия с ними.

      Следовательно, для смартфонов и планшетов требуются специальные мобильные приложения, отличные от настольных.

      Операционная система большинства персональных компьютеров — Windows. Среди популярных мобильных операционных систем — Android, Apple iOS, Blackberry OS, Windows Phone, Symbian и другие.

      Также прочтите => Руководство для начинающих по тестированию мобильных приложений

      11 лучших инструментов для тестирования Android

      Давайте рассмотрим современные инструменты для автоматического тестирования приложений, поддерживаемых одной из самых распространенных мобильных операционных систем — Android.

      Вот список лучших инструментов для тестирования приложений Android:

      1. 21labs
      2. Appium
      3. Selendroid
      4. Calabash
      5. Robotium
      6. MonkeyRunner
      7. Ranorex
      8. UI Automator
      9. Testbitondroid
      10. Testbiton
      11. TestComplete
      12. Experitest

      Давайте подробнее рассмотрим эти инструменты.

      # 1) 21 — Создание и аналитика тестов AI для Android

      21 — это сложная самообучающаяся платформа автоматизации и аналитики тестов для приложений Android.

      21 Предложения:

      • Быстрая и интеллектуальная разработка — ИИ, который предварительно создает тесты с полнофункциональным редактором для настройки ваших тестов
      • Результаты, которым вы доверяете — Система бесшовных алгоритмических локаторов для поддержки автоматизированных тестов native, React, Cordova, Flutter, Ionic и другие фреймворки.Никаких локаторов не требуется.
      • Устранение проблем с обслуживанием и нестабильных результатов — Самообучающееся обслуживание автоматически обновляет тесты и гарантирует, что ваша команда может сосредоточиться на разработке новых функций, полагаясь на результаты тестов.
      • Релиз с уверенностью — Производственная интеграция раскрывает данные, необходимые для закрытия цикла обратной связи, анализа фактического покрытия. Станьте владельцем качественных ворот и опубликуйте их с данными.

      21 полностью SaaS, не требует установки или устройств для создания или выполнения тестов.Мы предлагаем беспрепятственный доступ к десяткам устройств.


      # 2) Appium Android Automation Framework

      Это платформа для создания автоматических тестов для iOS и Android. Это бесплатный инструмент. Он поддерживает версии Android от 2.3 и выше. Appium использует интерфейс WebDriver для запуска тестов. Он поддерживает множество языков программирования, таких как Java, C #, Ruby и другие, которые есть в библиотеке WebDriver.

      Он может управлять Safari и Chrome на мобильных устройствах.Это позволяет тестировать мобильные сайты с помощью Appium и этих браузеров.

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

      Веб-сайт: Appium


      # 3) Selendroid

      Эта среда автоматизации тестирования предназначена для гибридных приложений Android и мобильного Интернета. Он поддерживает ОС Windows, Mac и Linux. Он поддерживает запись тестов с помощью клиентского API Selenium 2.Для эмуляторов и реальных устройств пригодится Selendroid. Чтобы сделать его масштабируемым и платформой для параллельного тестирования, разрешена интеграция с Selenium Grid. У него есть расширение, которое вам поможет.

      Функции:

      • Selendroid совместим с протоколом JSON Wire.
      • Он имеет встроенное приложение для просмотра веб-драйверов Android для тестирования мобильного Интернета.
      • Это позволит вам находить элементы пользовательского интерфейса с помощью различных типов локаторов.
      • Горячее подключение аппаратных устройств поддерживается Selendroid.В Selendroid есть гораздо больше таких функций.

      Веб-сайт: Selendroid


      # 4) Calabash

      Эта среда автоматического тестирования предназначена для выполнения приемочных тестов для приложений Android и iOS. Его могут использовать все, например мобильные разработчики, а также те, кто не владеет навыками программирования. Инструмент обеспечивает автоматическое взаимодействие пользовательского интерфейса внутри приложения, такое как ввод текста и проверка ответов.

      Calabash содержит библиотеки.С его помощью тестовый код сможет программно взаимодействовать с нативными и гибридными приложениями.

      Функции:

      • Calabash предоставляет возможность настраивать тесты для запуска на сотнях устройств Android и iOS.
      • Он предоставляет API-интерфейсы, которые позволяют запускать собственные приложения на устройствах с сенсорным экраном.
      • Предоставляет доступ к тестовому облаку Xamarin.
      • Поддерживает огурец.
      • Поддержка автоматизации огурца позволит вам писать тесты на простом английском языке.

      Веб-сайт: Calabash


      # 5) Robotium Android Testing Tool

      Robotium — один из первых и часто используемых инструментов автоматического тестирования программного обеспечения, поддерживаемого на Android.

      Robotium — это бесплатный инструмент для тестирования пользовательского интерфейса Android. Подходит для автоматизации тестирования различных версий и подверсий Android. Разработчики программного обеспечения часто называют его Selenium для Android. Тесты, созданные Robotium, написаны на Java.По сути, Robotium — это библиотека для модульных тестов.

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

      В Robotium нет функции записи и воспроизведения, и он не предоставляет снимки экрана.


      # 6) MonkeyRunner Тестирование приложений Android

      MonkeyRunner — один из популярных инструментов тестирования Android, используемых для автоматизации функциональных тестов программного обеспечения Android.

      Этот инструмент более низкоуровневый, чем Robotium. Чтобы автоматизировать тесты, не нужно иметь дело с исходным кодом. Тесты написаны на Python, для создания тестов можно использовать записывающий инструмент.

      MonkeyRunner может запускать тесты на реальных устройствах, подключенных к ПК или эмуляторам. У инструмента есть API, который позволяет ему управлять смартфоном, планшетом или эмулятором вне кода Android.

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

      Веб-сайт: MonkeyRunner


      # 7) Ranorex Android Application Testing Tool

      Ranorex — хороший инструмент для автоматизации тестирования не только для последних, но и для ранних версий и под-версий Android, начиная с Android. 2.2.

      Одно из преимуществ Ranorex — подробные отчеты со скриншотами.Он может подключить смартфон или планшет к Интернету через Wi-Fi.

      Инженер-автоматизированный тестировщик может разработать тесты на основе данных, за исключением формата данных XML, с помощью этого инструмента Android. Ranorex Studio позволяет инженеру по автоматическому тестированию легко создавать тесты, просто щелкая мышью. Это позволяет разрабатывать дополнительные программные модули. Модули можно использовать на поздних этапах разработки для более сложных сценариев тестирования.

      Это коммерческое мобильное приложение; Стоимость лицензии составляет 1990 евро.Ranorex довольно медленно ищет элементы; на выполнение такой операции уходит до 30 секунд. Для Ranorex необходимо инструментировать файлы APK. В противном случае автоматизировать тесты с помощью этого инструмента невозможно, так как он работает только с инструментальными файлами APK.

      Ranorex часто используется для создания тестов для ранних версий Android.

      Веб-сайт: Ranorex


      # 8) Автоматизация пользовательского интерфейса для автоматизации тестирования Android

      Этот инструмент был недавно разработан Google.Он поддерживает версии Android начиная с 4.1. Следует выбрать другой инструмент тестирования приложений Android, чтобы автоматизировать тесты для более ранних версий. UI Automator может взаимодействовать со всеми видами программных продуктов для Android, включая системные приложения. Это позволяет UI Automator блокировать и разблокировать смартфон или планшет.

      Скрипты, созданные с помощью этого инструмента, могут выполняться на многих различных платформах Android. Это позволяет воспроизводить сложные последовательности действий пользователя.

      UI Automator также может использовать внешние кнопки устройства, такие как кнопки возврата, регулировки громкости, включения и выключения устройства.

      Может быть интегрирован с фреймворком тестирования TestNG. В этом случае UI Automator может создавать информативные и подробные отчеты, аналогичные отчетам, созданным Ranorex. Этот инструмент также очень быстро ищет элементы.

      Эксперты по тестированию программного обеспечения считают, что UI Automator подходит для качественного тестирования мобильных приложений на многих платформах Android. Это один из лучших инструментов для приложений Android, так как он разработан Google специально для этой операционной системы.

      Обычно около 80% новых программных ошибок воспроизводятся на всех поддерживаемых платформах.Таким образом, можно провести мобильного тестирования на одной из широко используемых платформ и обнаружить до 80% дефектов. Остальные 20% будут найдены на всех остальных платформах. Это означает, что в большинстве случаев лучше тщательно тестировать программные продукты на меньшем количестве платформ, чем в спешке на множестве.

      В настоящее время Android 4.1 установлен примерно на 66% всех устройств, использующих операционную систему Android. Вот почему многие инженеры по автоматизированному тестированию часто решают, что UI Automator является наиболее подходящим решением.

      Веб-сайт: UI Automator


      # 9) Kobiton

      Kobiton — это мобильная тестовая платформа, которая предоставляет функции для ручного и автоматического тестирования на реальных устройствах. Он обеспечивает полную поддержку жестов, ориентации и т. Д. Для проведения тестирования на реальных физических устройствах в облаке. Вы сможете тестировать устройства iOS и Android в очень отзывчивой среде.

      Функции:

      • Kobiton предоставляет интерфейс централизованного управления, который позволит вам комбинировать локальные и облачные устройства.
      • С Kobiton вы получите автоматизацию без скриптов на любом устройстве.
      • Эта интеллектуальная автоматизация тестирования позволит вам выполнять ручное тестирование на одном устройстве и повторять один и тот же тест на сотнях устройств.

      Веб-сайт: Kobiton


      # 10) Testdroid

      SmartBear BitBar — это платформа для тестирования мобильных и веб-приложений, предназначенная для ручного или автоматического тестирования на реальных устройствах. Вы сможете получить доступ к реальному облаку устройств, которое будет иметь те же версии аппаратного обеспечения и ОС, что и ваши клиенты.

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

      Функции:

      • SmartBear BitBar обеспечивает неограниченный параллелизм устройств, что позволяет запускать любое количество автоматизированных мобильных тестов на устройствах Android и iOS одновременно.
      • Для ручного тестирования приложений платформа позволяет удаленно управлять устройствами.Это поможет устранить проблемы, о которых сообщили клиенты.
      • Он поддерживает все языки и любую встроенную среду автоматизации мобильного тестирования.

      Веб-сайт: Testdroid


      # 11) TestComplete

      SmartbBear’s TestComplete — это инструмент автоматизированного тестирования пользовательского интерфейса с ИИ. Он предоставляет платформу для тестирования настольных, веб- и мобильных приложений с гибридным механизмом распознавания объектов и визуального распознавания. Это гибкий инструмент автоматизации, и для создания функциональных тестов графического интерфейса нет необходимости выбирать между скриптовым тестированием и тестированием без скриптов.

      Функции:

      • TestComplete имеет гибридный объект и механизм визуального распознавания
      • Он предоставляет функции тестирования на основе данных, автоматизированных отчетов и анализа тестов, распознавания объектов с помощью ИИ и автоматизации тестирования HTML5.
      • Чтобы помочь вам быстро, легко и точно найти динамические элементы пользовательского интерфейса, распознавание объектов представляет собой комбинацию визуального распознавания на основе свойств и на основе ИИ.
      • Для создания сценариев он поддерживает семь языков, таких как VBScript, JavaScript, Python и т. Д.

      Веб-сайт: TestComplete


      # 12) Experitest

      Ускорьте циклы тестирования мобильных устройств и повысьте качество ваших выпусков с помощью массового автоматизированного тестирования Android

      • Создавайте и выполняйте сотни автоматизированных тестов параллельно на реальные устройства Android в облаке
      • Легко создайте свой первый тест Appium
      • Запустите расширенную автоматизацию мобильного тестирования прямо из вашей среды IDE
      • Автоматизируйте приложения, жесты и сценарии любого типа
      • Интегрируйте с вашими инструментами CI / CD и рабочим процессом
      • Автоматизированное тестирование мобильных устройств в реальных условиях
      • Интеграция в любую среду IDE, среду тестирования и CI для быстрой доставки приложений
      • Доступ к визуальным отчетам о тестах и ​​расширенной аналитике

      Заключение

      Автоматизация тестирования — сложная задача.Это требует тщательной подготовки и исследователей. Также следует быть в курсе всех новинок в области информационных технологий, приложений и средств автоматизации тестирования. Все эти знания необходимы для создания максимально эффективных тестов.

      Об авторе: Это гостевое сообщение Олега Просяника, старшего инженера по автоматизированному тестированию QATestLab, ведущей украинской компании, предлагающей полный спектр услуг по тестированию программного обеспечения.

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

      .

      10 лучших инструментов для тестирования мобильных приложений для Android и iOS

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

      В этом блоге обсуждались следующие инструменты:

      1. TestComplete
      2. Kobiton
      3. Calabash
      4. Appium
      5. Monkey Talk
      6. EarlGrey
      7. Testdroid
      8. Appium Studio
      9. Robotium
      10. Experitest

      На всякий случай, если вы хотите сделать карьеру в области тестирования автоматизации, ознакомьтесь с курсом тестирования автоматизации edureka.

      10 лучших инструментов для тестирования мобильных приложений | Edureka

      В этом видеоролике edureka «10 лучших инструментов для тестирования мобильных приложений» вы узнаете о лучших инструментах тестирования, используемых в индустрии мобильных приложений, которые работают на Android, iOS или на обоих устройствах.

      Выбор правильного инструмента

      Прежде чем мы начнем обсуждать инструмент, давайте рассмотрим ключевые факторы, которые группа тестирования должна учитывать, прежде чем выбирать конкретный инструмент для тестирования приложения.

      • Какого-то одного инструмента может быть недостаточно для тестирования различных функций приложения.
      • Программный продукт, который будет тестироваться, должен быть тщательно исследован.
      • Функциональные возможности, которые будут проходить автоматическое тестирование, должны быть четко обозначены до начала фазы тестирования.
      • Инструменты резервного копирования должны быть готовы, на случай, если какой-то инструмент не сработает.
      • Выбранный инструмент тестирования должен быть обсужден с вовлеченной командой и другими третьими сторонами, участвующими в проекте.

      Это несколько моментов, которые должна учитывать каждая группа тестирования, прежде чем выбирать конкретный инструмент.

      Давайте начнем с обсуждения основных инструментов, используемых в индустрии тестирования мобильных приложений.

      TestComplete

      TestComplete — это инструмент для автоматизации тестирования пользовательского интерфейса, разработанный SmartBear. SmartBear был назван лидером в магическом квадранте Gartner в области автоматизации тестирования программного обеспечения. TestComplete позволяет создавать, поддерживать и выполнять тестовые сценарии для настольных, веб-и мобильных приложений.С TestComplete вы можете увеличить охват тестированием и гарантировать, что вы поставляете высококачественное, проверенное в боевых условиях программное обеспечение.

      Функции инструмента

      • Работает как для приложений iOS, так и для Android.
      • С легкостью создавайте тестовые сценарии на основе ключевых слов, которые можно записать на одном устройстве, а затем выполнить на нескольких устройствах.
      • Экономьте время, создавая и поддерживая тесты, точно идентифицируя динамические элементы пользовательского интерфейса с помощью визуального распознавания на основе свойств и искусственного интеллекта.
      • Получайте в режиме реального времени информацию о ходе и состоянии ваших настольных, веб-или мобильных тестов пользовательского интерфейса из единого интерфейса.

      Kobiton

      Kobiton позиционирует себя как мобильная платформа Experience , а не как мобильная платформа для тестирования. Это потому, что Kobiton обеспечивает беспроблемный опыт тестировщиков, предоставляя процесс тестирования. Если вам нужен доступ по запросу к реальным устройствам, мгновенная проверка работоспособности на более чем 350 устройствах или вы внедряете полноценную лабораторию корпоративных устройств, Kobiton поможет вам.Тот факт, что Kobtion работает как на iOS, так и на Android, — это просто вишенка на торте.

      Функции инструмента

      • Централизованные журналы тестирования для расширения сотрудничества между различными группами, участвующими в процессе тестирования.
      • Доступ к новейшим устройствам через облачные лаборатории для более эффективного тестирования.
      • Включает поддержку Appium.
      • Мгновенная проверка работоспособности любого приложения. Это достигается путем автоматического запуска тестов на реальных устройствах и получения практических рекомендаций по улучшению взаимодействия с пользователем на всех устройствах.

      Calabash

      Calabash — это инструмент для автоматизации тестирования с открытым исходным кодом, который работает как на iOS, так и на Android (только собственные приложения). Инструмент позволяет писать и выполнять автоматические приемочные тесты для мобильных приложений. Это не только открытый исходный код, но и бесплатный. Calabash разработан и поддерживается Xamarin.

      Характеристики инструмента

      • Calabash поставляется с отдельными библиотеками автоматизации для iOS и Android.
      • Он состоит из библиотек, которые позволяют тестируемому коду программно взаимодействовать с собственными и гибридными приложениями.
      • Calabash поддерживает фреймворк огурца, который позволяет тестерам выражать поведение приложения на простом английском языке. Это упрощает понимание приложения людьми, не знакомыми с кодированием.
      • Calabash поставляется с доступом к облачной службе Xamarin , в которую загружено более 1000 устройств для тестирования вашего приложения.

      Appium

      Appium — это инструмент автоматического тестирования с открытым исходным кодом, разработанный Sauce Labs.Он также свободно распространяется ими. Appium позиционирует себя как универсальное решение для всего, что связано с тестированием мобильных приложений. Независимо от того, разрабатываете ли вы гибридное, нативное или веб-приложение; Appium можно использовать для тестирования приложения. И самое лучшее в Appium — то, что он кроссплатформенный и работает на Mac, Windows и ряде дистрибутивов Linux.

      Функции инструмента

      • Для написания тестовых сценариев (C / Java / Python) можно использовать любой язык, совместимый с веб-драйверами.
      • Простота установки на нескольких платформах.
      • Appium может тестировать приложения без необходимости их перекомпиляции или доступа к кодовой базе.
      • Может быть интегрирован с различными фреймворками и другими инструментами.

      Monkey Talk

      Monkey Talk — это инструмент тестирования с открытым исходным кодом, который можно использовать для тестирования приложений iOS и Android. Инструмент состоит из трех сегментов — IDE, скриптов и оператора. Его легко настроить и легко изучить.Несмотря на свою простоту, Monkey Talk может справиться со всем, от небольших дымовых тестов до сложных тестовых наборов на основе данных для нативных, гибридных и веб-приложений.

      Функции инструмента

      • Он автоматизирует функциональные интерактивные тесты для приложений Android и iOS.
      • Это не требует серьезных знаний в области программирования или написания сценариев.
      • С помощью этого устройства можно создавать отчеты как в формате XML, так и в формате HTML, оно также фиксирует снимок экрана при возникновении ошибки или сбоя.
      • В целях непрерывной интеграции Monkey Talk также имеет встроенную поддержку Jenkins и Hudson

      EarlGrey

      EarlGrey — это среда автоматизации тестирования для собственных приложений iOS. Он разработан и поддерживается Google. На данный момент EarlGrey 2.0 распространяется и имеет некоторые существенные изменения по сравнению с EarlGrey 1.0. EarlGrey 2.0 позволяет писать четкие и краткие тесты на Objective-C / Swift и обеспечивает внепроцессное взаимодействие с XCUITest.

      Функции инструмента

      • Синхронизация : От запуска к запуску EarlGrey 2.0 гарантирует, что вы получите тот же результат в своих тестах, убедившись, что приложение неактивно. Это достигается путем автоматического отслеживания изменений пользовательского интерфейса, сетевых запросов и различных очередей. EarlGrey 2.0 также позволяет вручную настраивать время.
      • Белый ящик : EarlGrey 2.0 позволяет запрашивать тестируемое приложение из ваших тестов.
      • Нативная разработка : как в EarlGrey 1.0, вы можете использовать EarlGrey 2.0 изначально с Xcode. Вы можете запускать тесты прямо из Xcode или xcodebuild. Обратите внимание, что EarlGrey 2.0 использует цель тестирования пользовательского интерфейса, а не цель модульного тестирования, такую ​​как EarlGrey 1.0.

      Testdroid

      Testdroid имеет одну цель, а именно сократить расходы на улучшение приложения . Помимо этого, Testdroid также стремится обеспечить бесперебойную работу команды разработчиков и тестирования, позволяя тестировать приложения на различных конфигурациях оборудования.Он обеспечивает удаленный ручной доступ к более чем 300 подлинным гаджетам под управлением Android до запуска приложения. Testdroid — это самый быстрый способ опубликовать ваше приложение, а также снизить операционные и другие периферийные расходы.

      Инструменты Возможности

      • Помогает в гибкой разработке и тестировании мобильных приложений.
      • Сократите эксплуатационные и непредсказуемые расходы.
      • Повышение рейтинга приложений и ежедневных динамических клиентов.

      Appium Studio

      Appium Studio — это IDE, созданная Experitest, предназначенная для разработки и выполнения автоматизации мобильных тестов с использованием API AppiumSelenium WebDriver.Это коммерчески улучшенная версия рабочего стола Appium, инструмента, который мы ранее обсуждали в этом списке. Он решает основные проблемы, с которыми сталкивается тестировщик при использовании Appium для тестирования приложений. Appium Studio позволяет организациям выпускать высококачественные мобильные приложения за значительно меньшее время.

      Функции инструмента

      • С легкостью составляйте или записывайте тесты, используя отражение гаджета, Object Spy и необычный XPath.
      • Покрытие дополнительных вариантов использования на любом гаджете и с любым приложением (локальным, веб-интерфейсом, собственным и гибридным).
      • Хорошо упорядоченные отчеты, сделанные вместе со снимками экрана и записями.
      • Тестирование сотовых телефонов или гаджетов, связанных с частным использованием, в лаборатории Experitest SaaS Digital Assurance Lab.

      Robotium

      Поскольку я включил приложение только для iOS (EarlGrey), список был бы несправедливым без приложения только для Android. Таким образом, у нас есть Robotium, инструмент для тестирования приложений Android с открытым исходным кодом. Он поддерживает тестирование собственных и гибридных приложений.Robotium нашел широкое применение в случае автоматизированного тестирования черного ящика. Он использует JavaScript для подготовки и выполнения тестовых сценариев.

      Функции инструмента

      • Robotium может обрабатывать несколько операций Android параллельно.
      • Мощные тестовые скрипты могут быть созданы за минимальное время, без глубоких знаний проекта.
      • Простая синхронизация с Ant или Maven для выполнения тестов в рамках непрерывной интеграции.
      • Можно запускать тестовые примеры для предварительно установленных приложений.

      Experitest

      Experitest — одно из имен, которое часто встречается при исследовании платформ для тестирования мобильных приложений. Инструмент позволяет тестировщику непрерывно тестировать широкий спектр мобильных приложений (локальных, веб-или гибридных) с помощью значительного выбора программ. Он также полностью согласован с отраслевыми положениями с открытым исходным кодом, например, Appium, Selenium и т. Д.

      Функции инструмента

      • С легкостью создавайте тесты Appium прямо из вашей IDE.
      • Наслаждайтесь взаимодействием в реальном времени и отладкой в ​​реальном времени.
      • Ускорьте циклы тестирования мобильных устройств и повысьте качество выпусков.
      • Интегрируйтесь с вашими инструментами CI / CD и рабочим процессом.

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

      Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев «Инструменты тестирования мобильных устройств», и мы свяжемся с вами.

      .

      Введение в мир тестирования мобильных приложений

      Сегодня мобильные телефоны превратились из простых устройств связи в гаджеты, которые могут практически все. Будь то заказ еды, использование такси или просто поиск направления — все это можно сделать с помощью мобильного телефона. Это возможно только благодаря чудесному миру мобильных приложений. В этой статье «Тестирование мобильных приложений» мы поговорим о процессе тестирования таких приложений.Ниже приведен список тем, обсуждаемых в этом блоге —

      Введение в тестирование мобильных приложений

      Тестирование мобильных приложений — это процесс, который должно пройти каждое приложение, разработанное для портативных устройств. Очевидно, это необходимо для обеспечения определенного уровня качества до того, как приложение будет выпущено на рынок (магазин приложений / магазин игр). Жизненный цикл разработки мобильных приложений, как правило, намного короче, чем у других, поэтому их успех во многом зависит от тестирования мобильных приложений.Приложения тестируются на основе безопасности, их функциональности, удобства использования и т. Д. Это увеличивает общую эффективность приложения на всех фронтах, а также повышает коэффициент надежности среди пользователей.

      Хорошо, теперь давайте поговорим о важности тестирования мобильных приложений.

      Почему так важно тестирование мобильных приложений?

      Как пользователь обычно решает, какое приложение загрузить для определенной цели? Десять лет назад на этот вопрос можно было получить множество ответов в зависимости от личного выбора, а что нет.Сегодня это зависит от двух вещей —

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

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

      Подходы к тестированию мобильных приложений

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

      Ручное тестирование

      Ручное тестирование, как ясно следует из названия, представляет собой человеческий процесс, в основном ориентированный на взаимодействие с пользователем.Анализ и оценка функциональности, безопасности и удобства использования приложения выполняются пользователем в процессе исследования. Это гарантирует, что ваше приложение соответствует стандартам удобства для пользователя. Этот тип тестирования обычно занимает много времени, поскольку для обнаружения ошибок требуется время. Поэтому, как показывает опыт, 20% тестирования приложения следует выполнять вручную с помощью альфа- и бета-версий, а остальное следует автоматизировать.

      А теперь перейдем к автоматическому тестированию мобильных приложений.

      Автоматическое тестирование

      Автоматическое тестирование — второй подход к тестированию мобильных приложений. В этом процессе настраивается набор тестовых примеров, которые обычно должны охватывать 80% процесса тестирования. Процент — это не правило, а общий ориентир, которому следуют в индустрии программного обеспечения. Вот список тестовых примеров, которые обычно выполняются с помощью этого конкретного подхода —

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

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

      Автоматизация мобильного тестирования оказалась действительно полезной.Ниже приведен список преимуществ, связанных с автоматизацией тестирования мобильных приложений:

      • Повышает эффективность тестирования
      • Улучшает выполнение регрессионных тестов
      • Экономит кучу времени, а также выполняет больше тестов
      • Те же сценарии тестирования могут повторяться снова и снова
      • Тестовые сценарии можно запускать параллельно на нескольких устройствах

      Ключевые проблемы при тестировании мобильных приложений

      Тестирование мобильных приложений отличается от традиционного процесса тестирования настольных или веб-приложений.Это означает, что у него есть множество проблем.

      Основная проблема связана с разнообразием мобильных устройств. Сегодня существует множество размеров экрана, операционных систем, опций аппаратного обеспечения, версий программного обеспечения и т. Д. По состоянию на 2018 год на рынке насчитывается более шестидесяти тысяч устройств Android, и некоторые из них даже начали использовать моду с выемкой, которая приносит собственные проблемы. Позвольте мне перечислить основные проблемы, с которыми сталкиваются при тестировании мобильных приложений —

      • Quick Rollouts — Мобильное приложение в промышленности — это приложение, которое быстро устраняет ошибки; всегда думаю о новых функциях.Чем быстрее они будут развернуты, тем дольше приложение останется в тренде.
      • Мультиплатформенная совместимость — Помимо Android и iOS, существует множество других операционных систем, работающих на множестве платформ. Это только увеличивает время, необходимое для тестирования определенного приложения.
      • Режимы подключения — Мобильные телефоны подвержены различным режимам подключения, например, роуминг, 4g, 3g, граничный и т. Д. Приложения должны быть протестированы во всех этих различных режимах.
      • Сквозное тестирование — Отрасль мобильных телефонов требует, чтобы приложения беспроблемно интегрировались и могли без проблем получать доступ к данным из серверной части для их обработки во внешнем интерфейсе. Из-за разнообразия мобильных телефонов это становится титанической задачей.
      • Доступность инструментов — Сегодня существует ряд инструментов, которые автоматизируют тестирование мобильных приложений. Выбор подходящего для вашего приложения важен для успешного и эффективного тестирования приложения.

      На этом мы подошли к концу этого блога «Тестирование мобильных приложений». Это мой первый блог из серии о тестировании мобильных приложений. Я напишу кучу других статей по этой конкретной теме, охватывающих несколько инструментов и фреймворков, особенно Appium. Если вы заинтересованы в чтении других блогов о различных трендовых технологиях, вы можете ознакомиться с нашим каталогом блогов.

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

      Есть к нам вопрос? Сообщите об этом в разделе комментариев блога «Тестирование мобильных приложений», и мы свяжемся с вами в ближайшее время.

      .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *