Файл: Критерии выбора средств разработки мобильных приложений (Теоретические аспекты выбора средств для разработки мобильных приложений).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 306

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.2 Современные тестовые фреймворки

По данным Bitbar (компании, предоставляющей платформу и инструменты для автоматизированного тестирования) [9]:

Рисунок 2.2. Фреймворки тестирования

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

На Android очень популярны также Espresso и UIAutomator. И есть также веские причины, по которым люди используют эти фреймворки. Espresso обеспечивает очень быстрое выполнение тестов, а UIAutomatorпредоставляет легкий API, который легко адаптировать и использовать ваши собственные приложения. Обе эти платформы, однако, несколько ограничены только нативными приложениями. Опять же, большинство разработчиков игр используют либо Appium, либо какую-то внутреннюю среду разработки.

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

На iOSпопулярными фреймворками были Appium и Calabash, оба из которых являются кроссплатформенными средами.

Еще одной широко используемой платформой для iOS была UI Automation.

Но теперь, поскольку Appleобъявила UI Automationустаревшей, Bitbarожидает рост популярности XCTest и XCUITest в автоматизации под IOS. Тем не менее, изменение Apple ударило по Appium (для данной платформы), поскольку в его основе лежал UI Automation.

Рисунок 2.3. Прогнозы популярности фреймворков тестирования

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


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

Другая компания, специализирующаяся на мобильной разработке, Intuz [21] отмечает также и другие популярные фреймворки:

Robotium

Инструмент с открытым исходным кодом для тестирования приложений Android всех версий. Он тестирует все гибридные Android и нативные приложения. Тесты Robotiumпишутся на Java. Используя этот инструмент, довольно просто писать мощные автоматические тесты по методу «черного ящика» для приложений Android.

MonkeyRunner

MonkeyRunner специально разработан для тестирования устройств и приложений на базовом/функциональном уровне. Инструмент содержит функции, такие как управление несколькими устройствами, регрессионное тестирование, расширяемая автоматизация и функциональное тестирование для тестирования приложений и оборудования Android. Тесты MonkeyRunnerпишутся на Python. Разработчикам не нужно вносить изменения в исходный код для автоматизации тестирования.

Selendroid

Являясь одним из ведущих инструментов автоматизации тестирования, Selendroid тестирует пользовательский интерфейс гибридных и нативных приложений на базе Android и мобильного Интернета. Тесты клиентского API пишутся с использованием Selendroid 2. Инструмент поддерживает физическое подключение устройств. Кроме того, он обладает возможностями взаимодействия с несколькими устройствами Android одновременно. Selendorid хорошо совместим с протоколом JSON.

MonkeyTalk

MonkeyTalk автоматизирует функциональное тестирование приложений для Android и iOS. Нетехническийспециалист также может запустить тестирование на этой платформе, так как оно не требует глубоких знаний технических сценариев и программирования. Скрипты MonkeyTalk довольно понятны и просты. С помощью этого инструмента тестировщики также могут создавать отчеты в формате XML и HTML. Кроме того, он также делает снимки экрана, когда происходит сбой. MonkeyTalk поддерживает эмуляторы, сетевые устройства и подключенные.

Testdroid

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


Frank

Frank позволяет тестировать только приложения и программное обеспечение iOS. Фреймворк сочетает в себе JSON и Cucumber. Инструмент содержит инспектор приложений «Symbioate», который позволяет разработчикам получать подробную информацию о запущенном приложении. Этот инструмент более всего подходит для веб-приложений и эмуляторов. Его можно интегрировать с CI системами и запускать тесты на устройствах и симуляторах.

SeeTest

SeeTestAutomation— это кроссплатформенное решение. Это позволяет запускать одни и те же скрипты на разных устройствах. Он позволяет разработчикам запускать тест на нескольких устройствах параллельно. Являясь мощным средством автоматизации тестирования, он способен тестировать веб-сайты или мобильные приложения. Он поддерживает iOS, Android, Symbian, Blackberry и WindowsPhone. Наиболее важные функции этого инструмента - тестирование телефона, тестирование батареи, браузера и т. д.

2.3 Критерия для Android

Для Androidкак более распространённой системы существует больше исследований и сравнений фреймворков, обратимся к сравнению фреймворков для тестирования GUI[8].

В исследовании сравнивают 4 фреймворка для Android: Espresso, UI Automator, Appium и Calabash. Для сравнения фреймворков исследователи используют две основных группы критериев: общий обзор фреймворков и технические критерии, связанные с жизненным циклом Activityи основных компонентов графического интерфейса Android.

Общие критериивключают следующие пункты:

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

• Поддержка логирования.

• Поддержка захвата/воспроизведениядействий на устройстве.

• Документация. Хорошая документация может помочь разработчику сократить время вхождения в контекст фремворка.

• Автоматическая генерация событий (monkeytesting)

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

• Поддержка версий. Эта версия поддержки указывает, сколько версийAndroid API поддерживается тестированием.

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

Технические критерии включают доступность следующего:


• Возобновление приложения: возобновление приложения используется для проверки метода OnRestart() в жизненном цикле Android.

• ПриостановлениеActivity: приостановка приложения используется для проверки метода OnStop() в жизненном цикле Android.

• Завершениеработы/уничтожение Activity: «Завершение» используется для проверки метода OnDestroy() в жизненном цикле Android.

• Изменение настроек устройства: изменение настроек, таких как ориентацияэкрана, также поможет протестировать жизненный цикл Activity.

• Прокруткаэкрана (scroll).

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

• Поддержка задержки для действий

• Условное тестирование: условное тестирование используется для проверки состояния элемента перед выполнением какого-либо действия.

• Ввод текста

• Нажатие кнопок

• Поддержка переключателей (radiobutton)

• Поддержка флажков (checkbox)

• Выбрать дату/время (picker)

• Работа с выпадающими списками (spinner)

• Пролистывание (Swiping)

• Переходы по вкладкам

Сравнение по общим критериям отражено в таблице:

Таблица 2.1 Общие критерии сравнения фреймворков для Android

Общий критерий

Espresso

UI Automator

Appium

Calabash

API

Очень простой

Простой

Простой

Очень простой

Логирование

Хорошее

Плохое

Хорошее

Хорошее

Захват/ воспроизведение

Да

Нет

Нет

Нет

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

Хорошая

Хорошая

Хорошая

Хорошая

Автоматическая генерация событий

Нет

Нет

Нет

Нет

Поддержка эмуляторов/ реальных устройств

Оба

Оба

Оба

Оба

Доступные версии Android

API 8+

API 18+

API 18+

API 8+

Поддерживаемые IDE

Eclipse, Android Studio

Eclipse, Android Studio

Eclipse, Android Studio

Eclipse, Android Studio


Сравнение общих критериев показало, что Espresso является рекомендуемой платформой для тестирования Android, поддерживается довольно простым API, хорошей системой логирования, которая позволяет тестировщику легко обнаружить, если в приложениипроизошла ошибка. Также у Espressoхорошая структурированная документация, которая поможет в обучении, возможно запускать процесс тестирования как на эмуляторе, так и на реальном устройстве, поддерживается обратная совместимость, начиная с API 8 (Froyo), может использоваться в наиболее известных Android IDE (Eclipse и AndroidStudio) и Espresso также поддерживает метод захвата/воспроизведения для тестирования, позволяющий запускать тест без необходимостипрограммировать.

Таблица 2.2 Технические критерии сравнения фреймворков для Android

Технический критерий

Espresso

UI Automator

Appium

Calabash

Возобновление приложения

Нет

Да

Нет

Нет

Приостановление Activity

Нет

Да

Да

Да

Уничтожение Activity

Да

Да

Да

Да

Изменение настроек устройства

Нет

Нет

Да

Нет

Прокрутка

Да

Да

Да

Да

Одновременные нажатия

Нет

Нет

Да

Нет

Задержки для действий

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

Да

Да

Да

Условное тестирование

Да

Да

Да

Да

Ввод текста

Да

Да

Да

Да

Нажатие кнопок

Да

Да

Да

Да

Поддержка переключателей

Да

Да

Да

Да

Поддержка флажков

Да

Да

Да

Да

Выбор даты/времени

Да

Да

Да

Да

Выпадающие списки

Да

Да

Да

Да

Пролистывание

Да

Да

Да

Да

Переходы по вкладкам

Да

Да

Да

Да