Как я Android для тестирования выбирал


Задача:


По производственной необходимости возникли два следующих вопроса: как определить эффективность существующего набора устройств для тестирования приложения под Android и как правильно сделать выбор следующего устройства для тестирования.

Теория:


После небольших размышлений я принялся рыть интернет в поисках решения этой проблемы, но готового решения так и не нашел (это было около полугода назад). Зато нашлось достаточно теории и описания опыта в этом направлении.

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

Все описанные там стратегии можно свести к общей теории, заключенной в следующих трех пунктах:
  1. Использовать существующую статистику (важно использовать актуальные устройства).
  2. Учитывать параметры и характеристики устройств.
    Параметры, которые могут быть учтены:
    • размер экрана
    • PPI (pixels per inch)
    • разрешение экрана
    • версия Android
    • быстродействие (CPU, RAM)
    • особенности конструкции, такие как тип ввода данных (клавиатура, сенсорный, трекбол и так далее), наличие камер...
    • браузер
    • производитель
    • поддерживаемые службы (геолокация)
    • цена
  3. Учитывать бюджет


Далее, в зависимости от проекта, каждый выбирает для себя определяющие факторы или их комбинации.

Параметры, которые учитывают практически все блоггеры — это версия Android, PPI и разрешение экрана. Для web-проектов важным, наряду с перечисленными параметрами, является браузер. Для тяжелых нативных приложений не менее важным является быстродействие… и так далее…

Наиболее логичной и простой стратегией мне показалась теория popular and cheap (популярные и дешевые).

Практика. Этап 1:


Вооруженный знаниями, я приступил к действиям.
Проектом, для которого были применены полученные знания пользуется приблизительно 1000 моделей мобильных устройств ежедневно более 2 миллионов раз. Причем имелась статистика по количеству посещений для каждого устройства.

Этап сбора данных об устройствах оказался самым трудозатратным. Я собрал информацию в интернете о 123 популярных устройствах, дополняя документ версиями Android, CPU, размерами экранов, разрешениями и PPI для каждого устройства. Эта работа заняла около недели.

Оказалось, что 123 из 1000 устройств покрывают 80% посещений, и на этом я решил остановиться.

Этап анализа данных был наиболее интересным. Отметив уже имеющиеся устройства (их было 7) для тестирования в таблице, я приступил у группировкам по различным параметрам.

Группировка по major.minor версии Android показала, что для тестирования покрыты все группы начиная с 4.2 до 2.2 (76% посещений) и только устройства с версией Android 2.1 (2.95% посещений) и 1.x (0.28% посещений) не покрыты. В целом, результат неплохой.



Анализ по разрешениям показал, что второе по популярности разрешение 480x320 с 18.61% посещений никогда не проверялось. В тоже время самая популярная группа с разрешением 800x480 (27.56%) покрыта 3 устройствами.



Анализ по версиям Android и разрешениям экранов дал более интересные результаты. Три самые популярные группы 2.3 и 800x480 (15.30%), 2.3 и 480x320 (11.83%), 4.1 и 1280x720 (10.75%) вообще не покрыты. При этом суммарное покрытие набором устройств для тестирования составляло всего 8% посещений.

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

На этом мои изыскания в этой области приостановились.

Спустя полгода...


Недавно я вернулся к этому вопросу, работая над новым проектом. Если честно, перспектива собирать информацию об устройствах меня не радовала.

Один коллега сохранил мне кучу времени, поделившись ссылкой choosedevice.com. Это оказалось готовое автоматизированное решение. В этом проекте уже собрана информация более чем по 200 устройствам, но только по 4 параметрам: api level (os version), размер экрана, PPI и разрешение экрана. Видно, что этот проект еще молод и сейчас находится в стадии beta тестирования.

Действия. Этап 2:


Вот какой получился опыт при работе с этим сервисом:

  1. Зашел на сайт, используя свой google account.
  2. Отметил устройства, используемые для нового проекта.
  3. Сделал экспорт мобильных устройств из google analytics.
  4. Подгрузил эту статистику в choosedevice.

Все это заняло 10 минут, и я получил общую статистику по мобильным устройствам.



Дальше я использовал панель поиска для группировки устройств.



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

Группировать можно также по двум параметрам. Ниже представлен результат работы сервиса по ppi/resolution.



Вывод:


Android устройство действительно необходимо выбирать с умом. ChooseDevice поможет сделать это качественно.

Полезные ссылки:

stephanierieger.com/strategies-for-choosing-test-devices
devblog.xing.com/qa/how-to-choose-the-right-mobile-test-devices
mobilephonedevelopment.com/archives/1600

Еще полезные ссылки от google:

developer.android.com/about/dashboards/index.html
developer.android.com/guide/practices/screens_support.html

ChooseDevice:

choosedevice.com
Поделиться публикацией

Комментарии 14

    0
    Как я Android для тестрования — на тестирования
      0
      Спасибо! Поправил.
      +1
      Для тестирования хорошо иметь устройства от Google, так как прошивка обновляется оперативно и достаточно времени чтобы решить до того, как другие производители проснуться. Кроме того — относительно дёшево.
        0
        Да они-то само собой есть, только у юзеров их нет. Будь у всех одни Нексусы, проблем с приложениями бы не было. Точнее были бы, но с играми, но это другое дело.
          0
          Это зависит от приложения. К примеру, у меня в апе нексус 7 входит в топ 10 устройств.
        0
        Спасибо! Интересный материал, позволяет прикинуть стоимость тестового парка устройств.

        Параллельно хочу поинтересоваться, почему оценивались только параметры — версия ОС и разрешение экрана?

        Как минимум, кажется что должны быть значимы еще и размер оперативной памяти и скорость процессора. Или в силу специфики вашего приложения это не так актуально?
          0
          Спасибо за комментарий.

          Параллельно хочу поинтересоваться, почему оценивались только параметры — версия ОС и разрешение экрана?

          Параметры версия ОС и разрешения экрана были выбраны как определяющие для этого проекта. И расчет по ним показал много непокрытых групп. Этого было достаточно на тот момент. Пересчитать покрытие по другим параметрам мешало только отсутсвие времени.

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

          Вы правы быстродействие очень важный параметер, но в силу специфики приложения быстродействие устройства не являлось важнейшим параметром.
          0
          Размер экрана, PPI, разрешение экрана, версию Android, кол-во оперативное памяти, установленную перефирию и ещё много чего можно гибко менять в эмуляторе Андроид.
          Настоящая проблема — это прошивка, которую производитель может криво собрать, модифицировать, добавить/убрать какой-нибудь компонент. Тестирую приложения с помощью облачного сервиса от apkudo — всё время на нескольких девайсах не работает / работает неправильно.
            0
            Ну, есть ещё Яндекс.Маркет, в котором можно подобрать себе что-то среди популярных девайсов.

            Также есть такая замечательная штука, как DevDB — мне он нравится из-за наиболее полного списка устройств, в т.ч. очень много китайских. База данных пополняется пользователями 4PDA (собственно, это их проект AFAIK).
              0
              Да, действительно, яндекс маркет может подсказать популярное устройство в целом. Замечательная штука DevDB дает более полный список устройств и хороший фильтр. Но суть подхода — это найти популярные устройства именно для вашего проекта (а не мира в целом) и выбирать эти устройства из непокрытых групп устройств.

              Думаю, если истользовать ChooseDevice и DevDB вместе, то можно добиться еще лучших результатов в выборе устройства для тестирования.
              0
              Достаточно иметь Nexus 10 — у него самое большое разрешение экрана, что позволяет эмулировать абсолютно любой существующий экран с помощью команды adb am.
                0
                А как изменить dpi? Размеры экрана это еще не всё что нужно.
                  +1
                  Android Debug Bridge


                  adb shell am display-density 160
                    +2
                    Кроме того am позволяет управлять опциональными правами (например, фотоприложению на N7 недоступна задняя камера, её физически нет, это — опциональный пермишен) и тестировать софт с разными железными ништяками. Да вообще кучу всего можно включать-выключать. Плюс юнит-тесты с моками. Вобщем, в критической по деньгам ситуации самый лучший выбор — это комплект N4/GNex (для телефонии, если актуально) + N10. Данная связка при желании покрывает все возможные юзкейсы, кроме хардверных багов отдельных девайсов, естессно. Ну и игроделам надо иметь по одному девайсу с каждым типом GPU, а то у них слишком много различий.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое