Transcript
Page 1: Автоматизированное тестирование мобильных приложений

Автоматизация тестирования

мобильных приложений

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

Зачем автоматизировать ? С ростом рынка устройств количество разработок под мобильные

платформы быстро растет.

Появляются новые платформы

Мобильные платформы постоянно развиваются, растут их мощности и возможности

Мобильные приложения становятся все сложнее

Как результат, количество тестовых сценариев стремительно увеличивается

С ростом сложности и числа поддержваемых платформ появляется необходимость в регрессионном и нагрузочном тестировании

Количество переходит в качество – автоматизация тестирования становится выгодной

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

Особенности

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

Основные факторы:

Разнообразие платформ

Изменения в API

Ограничения платформ

Особенности взаимодействия

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

Разнообразие платформ

Apple iPhone iPhone OS на базе MacOS-X, браузер Safari, органичения на средства разработки

Google Android Android OS на базе Linux, open-source, собственный браузер на основе WebKit. Cобсвтенный SDK и Java API, собственная реализация jvm.

RiM Blackberry Blackberry OS с браузером собственной разработки.j2me, технология Push

Nokia S60 Symbian OS, собственный браузер на основе WebKit

Nokia Maemo OS Linux, open-source, собственный браузер на основе Mozilla

Windows Mobile OS Windows Mobile, браузер Internet Explorer Mobile, j2me

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

Разнообразие платформ

Распределение интернет-трафика со смартфонов по даннымAdMob.

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

Разнообразие платформ Платформы различаются даже на уровне операционных систем

Каждая платформа имеет собственные API, особенности интерфейса и способы взаимодействия с пользователем

Многие платформы сейчас активно развиваются, API и возможности меняются

Практически нет “основной” платформы, занимающей большую часть рынка.

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

Ограничения платформ Взаимодействие приложений весьма ограничено (песочница, невозможность

параллельной работы двух приложений в iPhone)

Ограниения API

Закрытость

Ресурсы

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

Сложность взаимодействия Тачскрин и мультитач

Акселерометр

GPS

Разнообразие элементов управления

Особенности переключения между приложениями

Внешние события – заряд батареи, входящие звонки

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

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

Эмуляторы – не панацея Функциональность эмулятора и реального устройства часто отличаются

Производительность эмулятора может значительно отличаться от реального устройства

Сложно контролировать разряд батареи при использовании приложения

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

Что тестировать Приложения с долгим циклом разработки

Приложения требующие длительного периода сопровождения

Приложения, являющиеся частью более сложного комплекса

Приложения, являющиеся ветвью немобильного приложения

Приложения – интерфейсы к онлайновому сервису

Веб-приложения

Основные области применения

Регрессионное тестирование

Нагрузочное тестирование

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

Как тестировать ?

Тестовое

окружение

СпециализированныеAPI и библиотеки

для каждойплатформы

Существующиефреймворки

для веб-приложений

Разработка собственныхсредств

тестирования

Онлайновыесервисы

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

Онлайновые сервисы Все сложности организации процесса тестирования перекладываются на

сторонний сервис

Специализированный сервис создает удобный интерфейс организации тестирования – автоматического или ручного

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

Может обеспечить большой выбор устройств для тестирования

Примеры:

Device Anywhere

uTest

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

Device Anywhere Предоставляет удаленный доступ к

реальным устройствам, установленных на тестовых стендах

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

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

Удобные средства записи и воспроизведения тестовых сценариев

Простота создания тестовых сценариев Распределенная сеть стендов в разных

странах и регионах Огромное количество поддерживаемых

устройств

Недостатки:НедешевоСценарии, записанные в IDE хрупки

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

uTest Специализированный сервис тестирования

Использует модель сrowdsourcing – большое количество тестировщиков в разных регионах, использующих подключения к различных операторам

Функциональное и usability-тестирование на реальных аппаратах

Не требует самостоятельного создания автоматических сценариев тестирования – достаточно формального описания шагов

Формальное описание может быть выполнено инженерами uTest – позволят обойтись без собственных инженеров контроля качества

Недостатки:Недешево для частого регрессионного тестированияНебыстроЧеловеческий фактор

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

Специализированные API и библиотеки Тестируется специально созданная сборка приложения с интегрированными

тестами

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

Тесты пишутся разработчиком

Для каждой платформы используется собственный API или библиотека

Примеры:

Instrumentation API – для Google Android

UISpec – для iPhone

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

Веб-приложения Значительная часть всех разрабатываемых для мобильных платформ

приложений – именно веб-приложения Можно использовать те же инструменты, которые используются для

тестирования веб-приложений для десктопа

Отличия:

Приложения весьма значительно адаптируются под конктретную платформу

Число платформ велико

Отсутствие явного лидера требует внимания к каждой из популярных платформ

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

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

Во многих случаях требуется существенная доработка существующих решений

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

Selenium, Sahi Генерируется код на javascript, который

внедряется в приложение и исполняется браузером

Работает с любым эмулятором или устройством

Не зависит от платформы

Недостатки: Требует хорошей поддержки javascript в

браузере Сильно завист от особенностей

интерпретатора javascript Потенциально может вносить искажения

в результат теста Не все функции доступны из javascript Невысокая скорость

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

WebDriver Создавался с целью обойти ограничения

Selenium

Для каждой поддерживаемой платформы создается приложение-драйвер

Тестовые скрипты пишутся на Java, используя специализированное API WebDriver

Взаимодействие тестовых скриптов с приложением выполняется через платформенно-зависимое API, а не javascript

Работает быстрее

Доступны все функции

Не зависит от реализации javascript

Позволяет использовать собственную модель браузера с поддержкой javascript, без обращения к устройству или эмуоятору

Недостатки: Требует приложения-

драйвера для каждой из тестируемых платформ

API платформы не всегда позволяет реализовать весь набор функций

Написание тестов требует квалификации java-программиста

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

Разработка собственных средств Весьма трудоемка

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

Используются те же методы, что и для десктопных приложений

Крайне зависима от возможностей предоставляемых API целевых платформ, эмуляторов и возможностями взаимодействия с реальным устройством

Основные методы:

Запись и вопспроизведение тестовых сценарием со сличением ключевых скриншотов

Реализация сетевого протокола для удаленного управления приложением

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

Заключение

Автоматизация тестирования оправдана и полезна во многих случаях

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

В большинстве случаев можно использовать существующие сервисы и инструменты

Однако в случае необходимости может быть оправданна разработка собственных средств

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

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

Вопросы?


Recommended