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

Post on 16-Nov-2014

4.403 Views

Category:

Education

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

Особенности

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

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

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

Изменения в API

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

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

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

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

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

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

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

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

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

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

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

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

Ограниения API

Закрытость

Ресурсы

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

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

GPS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тестовое

окружение

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

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

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

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

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

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

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

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

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

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

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

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

Примеры:

Device Anywhere

uTest

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

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

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

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

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

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

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

устройств

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

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

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

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

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

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

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

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

тестами

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

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

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

Примеры:

Instrumentation API – для Google Android

UISpec – для iPhone

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

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

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

Отличия:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Selenium

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

Вопросы?

top related