вторник, 3 марта 2015 г.

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

Коллеги, мы решили более детально проанализировать серсисы для бета тестирования мобильный приложений. Sergii Nezdolii  уже со стороны разработчика предоставил нужные сведенья.

Критерии отбора:

  • Поддержка iOS, Android (опционально WinPhone)
  • Возможность автоматизации процесса загрузки новых билдов (наличие upload API, интегрируемость с CI сервисами - Jenkins)
  • Удобство интерфейса самого сервиса, возможность добавления новых пользователей с разными уровнями доступа
  • Стоимость
  • Поддержка Crash репортов
  • Аналитические данные (Загрузки, сессии, трекинг, возможность получения фидбэка от пользователей … )
Сервисы, с которыми приходилось сталкиваться:


TestFlight Beta Testing based on iTunes Connect


Сервис существовал отдельно и известен больше как TestFlightApp
Теперь же c 26 февраля cервис полностью отключен и заменен TestFlight Beta Testing внутри iTunesConnect. Таким образом Apple дает “официальную” возможность разработчикам предоставлять тестовые версии приложений. Но в то же время даже для тестовых версий приложений их нужно вручную загрузить и дождаться ревью со стороны Apple, что, в свою очередь, замедляет процесс тестирования.
Больше деталей ниже.

Платформы:

iOS и только iOS. Более того, само приложение Testflight Beta, через которое тестировщики могут получить тестовые версии, требует минимум iOS 8.0, что делает невозможным использование данного сервиса для тестирования на iOS < 8.0.

Автоматизация:

Отсутствие API для загрузки, загрузку можно сделать через стандартный  Apple Application Loader, жесткая привязка к аккаунту разработчика. Наверняка есть возможность подружить Jenkins и iTunesConnect, но скорее всего разработчикам стоит ожидать поддержки загрузки приложений посредством использования “родных” OSX Server + Xcode Bots - больше информации: Xcode Guide - Continuous Integration 

Usability:

  • 1000 пользователей на 1 приложение;
  • Каждая версия для “внешних” тестировщиков должна пройти ревью;
  • Большое количество мануальных шагов;
  • Отсутствие возможности группировки пользователей, возможность только пригласить пользователя; 
  • Возможность для тестировщиков оставить отзыв о тестируемой версии приложения;
  • UPD: Apple анонсировал поддержку групп пользователей: 
"Announcing TestFlight Groups
February 12, 2015
Now it’s easier than ever to manage external testers in TestFlight. Organize your testers into groups to quickly send builds, provide separate instructions on where to focus, and apply an action to several testers at once in TestFlight. "

Стоимость:

Бесплатно (для зарегистрированных разработчиков).

Crash:

Стандартная поддержка Crash репортов от iTunes Connect, оставляет желать лучшего. Отсутствие уведомлений о новых Crash репортах, отсутствие детальной информации о условиях возникновения креша не дают возможности разработчикам быстро и эффективно отреагировать на ситуацию. Больше информации о поддержке Crash репортов: Apple: Improving Customer Experiences.

Analytics:

iTunesConnect Sales & Trends предоставляют информации о количестве скачиваний и апдейтов приложений, а также данные о платформе (iPhone/iPad) и территории.

Вывод: 

В целом Testflight сервис после покупки его Apple трансформировался в проприетарный сервис Apple с невозможностью автоматизации процесса. Сейчас он больше похож на Beta App Store с тем же процессом review, но ограниченным количеством пользователей. Сервис больше подойдет для закрытого бета тестирования финальных версий приложения непосредственно перед релизом, но никак не для Continuous Delivery.


Android Alpha/Beta testing via Play Market


Официальный способ публикации  Alpha/Beta версий приложения от Google. 

Платформы:

Android

Автоматизация:

Отсутствует. APK файл нужно загружать вручную. Процесс ревью отсутствует. 

Usability:

Возможность создания закрытых групп alpha/beta тестировщиков посредством  Google Groups. Не более. При этом тестировщики не могут оставить фидбек 

Стоимость:

Бесплатно (не учитывая стандартной оплаты Android разработчика).

Crash:

Через стандартную Google Play Developer Console.

Analytics:

Через стандартную Google Play Developer Console.

Вывод:

Как и TestFlight Beta, данный сервис больше подойдет для закрытого бета тестирования финальных версий приложения непосредственно перед релизом, но никак не для Continuous Delivery.


TestFairy


Данный сервис сам по себе является интересным тем, что предоставляет возможность записывать видео сессий тестирования. До недавнего времени поддерживал только Android платформу, после новостей о закрытии TestFlight заявил о поддержке в том числе и iOS. 

Платформы:

Android, iOS.
В iOS легко интегрируется через Cocoapods.

Автоматизация:

Есть поддержка upload API, для Android в том числе есть простой в использовании Gradle Plugin. К тому же относительно недавно появился Jenkins plugin, на который тоже стоит обратить внимание.

Usability:

Сервис предоставляет возможность создавать группы пользователей, просматривать статистику загрузок, сессий и другой аналитической информации. Хорошая альтернатива бывшему TestFlight, тем более с поддержкой iOS. Существует приложение для Android и web приложение для iOS, система уведомлений пользователей о новых билдах. С iOS интеграцией пока еще не все четко описано и непонятно, каким образом можно администрировать пользовательские девайсы, если есть необходимость обновить Ad Hoc профайлы для iOS. К тому же тестировщики могут предоставлять фидбек, который будет доступен на Web Dashboard сервиса (только для оунеров).

Стоимость:

Есть возможность бесплатного использования, с ограничениями в 2 приложения, 1 администратора и 1000 тестировщиков. Для “попробовать” такого вполне достаточно. Затем же при необходимости увеличить количество приложений до 25, включить возможность нескольких администраторов и получить другие плюшки, придется платить $499 в месяц.

Crash:

Есть поддержка Crash репортов для обеих поддерживаемых платформ. Репорты отсылаются автоматически без вмешательства/согласия пользователя.  Плюс к тому же сервис предоставляет возможность просмотра стандартных логов iOS NSLog и Android Logcat.

Analytics:

Сервис предоставляет различную аналитическую информацию, включающую статистику по Crash репортам, платформам, количеству сессий. Информации о возможности включения аналитики для релейных версий приложений не указано. 

Вывод:

Данный сервис отличается от других возможностью записывать видео сессий тестирования. Легкость интеграции, добавления новых пользователей и распространения iOS и Android приложений тоже делают сервис привлекательным. В то же время цена подписки на месяц является достаточно высокой, если сравнивать с другими сервисами. Для записи видео сессий тестирования существуют альтернативные сервисы, к примеру Lookback, пока что в стадии Beta, пока что для iOS.


HockeyApp


Из интересного: недавно был куплен Microsoft.
"HockeyApp is the best way to collect live crash reports, get feedback from your users, distribute your betas and analyze your test coverage. It was launched to the public in May 2011. Before this, we had already developed HockeyKit , QuincyKit, and MacDevCrashReports , which was the first ever crash reporting solution for iOS and Mac developers. Find out more about our team members below."

Особенностью является поддержка не только Ad-Hoc, но и Enterprise для iOS. 

Платформы:

iOS,  интеграция через Cocoapods, поддержка Ad-Hoc, Enterprise
Android, Windows Phone, OS X, Windows 

Автоматизация:

Для Android существует Gradle plugin.
Для iOS и других платформ можно воспользоваться Public API.
Для Jenkins существует отдельный Hockeyapp+Plugin.
Кроме того, существует множество других дополнительных инструментов.

Usability:

Web интерфейс предоставляет полный контроль над пользователями, приложениями, настройками уведомлений и пр.:
  • Возможность создавать команды пользователей;
  • Возможность создавать тэги для приложений, пользователей;
  • Возможность конфигурировать частоту и условия уведомлений;
  • Несколько ролей пользователей (Owner, Developer, Tester) с различным уровнем доступа;
  • Администрирование API ключей, используемых для CI, загрузки приложений;
  • Уведомления о новой версии внутри приложения 

Есть возможность добавить опцию Фидбека в сами приложения, чтобы тестируете могли оставить отзывы. Отзывы доступны на веб дашборде.
При расширенной интеграции с приложениями возможна сегментация пользователей. 

Стоимость:

Пробный период на месяц без ограничений.
После этого доступны несколько тарифных планов, как бизнес(начиная с $30 за месяц), так и персональных (начиная с $10 за месяц)
Планы отличаются в-основном количеством приложений (для бизнес планов еще и количеством оунеров).
Количество разработчиков, тестировщиков и членов команды неограниченное для всех планов.

Crash:

HockeyApp предоставляет автоматическую группировку похожих краш репортов по названиях классов, методов, номерам строк для  iOS, Mac, и Android приложений. Более того, есть возможность включать/отключать отлавливание краш репортов. Плюс, если оно включено, и приложение упало, при следующем запуске приложение предложит пользователю отослать краш репорт.

Analytics:

Для каждого приложения и билда в отдельности присутствует аналитика с данными по:
  • Количеству установок;
  • Типу девайсов;
  • Версии ОС;
  • Количеству крашей;
  • Времени использования приложения;
Периодически добавляются новые метрики. Для некоторых есть возможность представления в виде диаграмм. 

Вывод:

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


HockeyKit


Платформы:

iOS - Ad-Hoc только. Недавно была включена поддержка клиентов для Андроид.

Автоматизация:

Wiki по автоматизации и интеграции с iOS давно не обновлялась. С учетом больших изменений build tools в последних версиях Xcode возможно придется разбираться с iOS клиентом с нуля.
Для Android информация посвежее, интеграция происходит через Gradle. 
На стороне сервера есть uploadAPI, опять же может быть устаревший.

Usability:

Поддерживает:

  • OTA установка приложений;
  • In-app обновления;
  • Несколько приложений одновременно;
  • Администрация команд;
  • Статистика по установкам приложений.

Стоимость:

Бесплатный.

Crash:

Не поддерживает.

Analytics:

Изначально - статистика по установкам. Все остальное - на плечах разработчиков.

Вывод:

Open Source продукт, среду для которого придется устанавливать и настраивать самостоятельно. Сам проект достаточно давно не обновлялся, потому возможно не будет работать из коробки.


Crashlytics aka Fabric


Изначально данный сервис позиционировался для сбора краш репортов.
Недавно был анонсирован новый сервис Fabric, который агрегирует в себе: 

  • Crashlytics как сервис для сбора и анализа краш репортов
  • Beta by Crashlytics как сервис распространения тестовых версий приложений
  • Digits - сервис простого и быстрого signup
  • Answers - сервис аналитики
  • Mopub - сервис монетизации

Платформы:

iOS - интеграция через IDE плагин + SDK.
Android - интеграция через IDE plugin, gradle plugin, SDK

Автоматизация:

Crashlytics предоставляет универсальный upload API, который можно использовать для загрузки билдов. Более того, gradle плагин для Android Studio добавляет таски автоматической загрузки билдов. Плюс, Crashlytics умеет интегрироваться с наиболее популярными third-party сервисами.

Usability:

Сервис обладает дружественным пользовательским интерфейсом. 
Абсолютно вся информация (статистика, аналитические данные) показывается в виде графиков и диаграм, которые обновляются в режиме реального времени.  Лучшего представления и визуализации информации я не видел ни в одном другом сервисе. Гибкая система нотификаций позволяет настроить их таким образом, чтобы разработчик/менеджер/тестировщик был всегда в курсе именно той информации, которая ему нужна. Большая база FAQ в разделе Support позволяет быстро найти ответы на большинство вопросов.

Стоимость:

Буквально недавно слоганом на странице парусника был: Free for most. Enterprise features on demand. Сейчас же : Free for everybody! Enterprise features for all.


Crash:

Предоставляет real-time статистику по количеству крашей, приоритизирует наиболее частые краши, предоставляет данные о количестве пользователей, у которых возникли проблемы, позволяет изменять статус крашей, закрывая нерелевантный или исправленные. 
Информация по каждому крешу аккумулируется, показывается информация по:
  •  Девайсам;
  •  Версии ОС; 
  •  Jailbroken;
  •  Количество свободного места на момент краша;
  •  Количество свободной памяти на момент краша;
  •  Было ли приложение активным на момент краша;
  •  График по дням, предоставляющий информацию о количестве крашей на каждый день.

Analytics:

  • Активные пользователи за день;
  • Новые пользователи за день;
  • Активные пользователи за месяц;
  • Пользователи без крашей;
  • Сессии;
  • Длинна сессий;
  • Real-time pulse активных в данный моменты пользователей;
  • Сборки;
  • Активные девайсы за день;
  • Активные пользователи по ОС за день;

Вывод:

Crashlytics (aka Fabric) изначально позиционировался как сервис дела анализа краша репортов, но добавление таких сервисов, как Beta, Answers, а также наличие API для автоматической загрузки новых билдов позволяют использовать этот сервис в качестве Continuous Delivery сервиса. 
Real-time анализ краш репортов и аналитические данные позволяют использовать сервис в качестве инструмента визуализации как внутри команды, так и для клиентов, предоставляя актуальную информацию о количестве пользователей, сегментах девайсов и ОС. 
К тому же многих может привлечь бесплатность данного сервиса. 
На данный момент HockeyKit распространяется как Open Source, включает 2 компонента: обязательный сервер на PHP5 и опциональный клиент. Сервер не требует БД, работает напрямую с файловой системой.




До новых встреч! Stay tuned!

@ Sergii Nezdolii

Комментариев нет:

Отправить комментарий