Что пишут в блогах

Подписаться

Онлайн-тренинги

Конференции

Разделы портала

Про инструменты

Лучшие вакансии

.
Как извлечь выгоду от использования Monkey Exerciser для Android
09.09.2013 09:25

Авторы: Андрей Дзыня и Александр Хозя

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

Инструмент UI Monkey Exerciser выполняет очень трудоемкую работу, а именно случаное взаимоействие с приложением, которое вы разрабатываете/тестируете.

Выглядит это следующим образом

 

Сам инструмент умеет генерировать события разного рода:

 

  • внутренние события мобильного приложения

  • события навигации по мобильному приложению

  • события вызова системных клавиш (home, menu, back и т.д.)

Так же возможны более тонкие настройки:

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

  • процентное соотношение между перечисленными выше событиями

  • процентное соотношение вызова активностей тестируемого приложения, для максимизации тестового покрытия

Больше информации о возможностях инструмента можно найти на официальной документации http://developer.android.com/tools/help/monkey.html

Перед тем как запустить приложение, нам нужно выполнить предвариательную подготовку. Изначально мы должны получить target package тестируемого приложения. Для этого нужно иметь установленную локально среду ANDROID SDK и APK файл приложения:

1. Из командной строки запустить следующую команду

aapt debug badging <fileName>.apk | grep package

2. В командой строке выполнить команду adb logcat и запустить установленное на эмуляторе/устройстве приложение

В окне logcat найдете соответсвующую запись targetPackage

3. В том случае, когда у Вас есть доступ к исходному коду или вы умеете декомпилировать APK просто посмотрите Manifest.xml в секции targetPackage.

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

adb shell monkey -p com.vkontakte.android -v 500 -s 1000 --pct-touch 20 --pct-motion 20 --pct-nav 40 --pct-majornav 60 --pct-syskeys 20 --pct-appswitch 50 --ignore-security-exceptions

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

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

Правильно сконфигурированный запуск Monkey, используя опцию --s <seed>, позволяет повторить сценарий выполнения событий в одном и том же порядке. Тем самым позволяя воспроизвести ошибки приложения необходимое количество раз.

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

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

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

Сервисы бета-тестирования - отдельная обширная тема для обсуждения. Сейчас мы будем использовать TestFairy в разрезе полуавтоматического тестирования и не будем рассматривать аспекты ручного тестирования вовсе.

Что мы получим как ленивые тестировщики:

- автоматический репорт о “крашах” приложения на e-mail;

- статистику производительности приложения;

- видеозапись процесса тестирования;

- тестовое покрытие приложение по экранам (activity и fragments);

- отправка отчетов в один клик.

Сразу после регистрации нас просят залить приложение. В зависимости от пожеланий настраиваем уровень детализации отчетов:

Далее, для максимального удобства приглашаем себя же как бета-тестировщика. На e-mail сразу же приходит письмо со ссылкой на подготовленное приложение. Дело осталось за малым - установить приложение на устройства/эмуляторы, “натравить” нашего помощника и “пожинать плоды”

Уже после завершения первой сессии мы сможем наблюдать статистические данные:

 

 

 

 

 

 

 

 

 

 

 

по всем сессиям

 

 

 

 

 

 

 

 

 

 

 

 

 

для каждой отдельной сессии, включая графики, видео и логи

А что самое классное - мы можем поделиться сессией с разработчиками и/или коллегами. Отчет упростился дальше некуда.

 

 

 

 

 

 

 

 

 

 

 

 

Естественно, проект не уникальный и существуют альтернативы:

- AppCrawler от TestDroid

- App Explorer от Xamarin

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

Monkey + TestFairy - отличный тандем, который помогает найти много интересных дефектов,а главное с минимальными на то усилиями и трудозатратами.

P.S. Всего через несколько дней мы начинаем Online курс “Тестирование мобильных приложений”. Хотите присоединиться и узнать больше? Пишите на  trainings@software-testing.ru

С Уважением,

Александр Хозя и Андрей Дзыня

Обсудить в форуме