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

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

Embed Size (px)

DESCRIPTION

Доклад на конференции Мобильные Технологии 3, 27 ноября 2009 года, Минск, Беларусь Автоматизированное тестирование мобильных приложений Компания Epam

Citation preview

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

Вопросы?