Давеча набрел на
цикл статей Jonathan Kohl о построении мобильной тест-лаборатории.
Не могу сказать, что я строил мобильную тест-лабу с нуля - всегда
что-то было сделано до меня, но на всех местах работы имел возможность
поучаствовать в ее развитии.
Прокомментирую некоторые
пункты из статей исходя из моего опыта. Надеюсь, Вам мои комментарии
окажутся полезными. Как обычно - критика, пожелня, рекомендации - очень
приветствуются. Обмен опытом - это всего очень круто!
Жирным будут выделены подзаголовки из частей статьи Кола.
The Room/Storage
В данный момент комната у нас достаточно
стандартная. Девайсы хранятся в специальном сторадже для мобильных
девайсов, закрывающемся на ключ. Позволяет убить двух зайцев - держать
под замком + имеет встроенные USB-порты для зарядки устройств.
 |
вот такое чудо техники мы используем :) |
Все девайсы:
- названы по стандарту с учетом модели, цвета, размера встроенной памяти
- промаркированы стикерами, которые мы печатаем на label-принтере
- для них включены Find My iPhone и Android Device Manager для удобства нахождения в офисе
Учет девайсов (какие, сколько, для какой команы) ведем в JIRA Wiki странице. Девайсы выдаем под расписку на стикере-самоклейке которая хранится в коробке с девайсами :)
Для автоматизации мы приспособили специальную нишу в стене - где девайсы закреплеты на магниты и подключены шнурками, чтобы не разряжались.
Network
Wi-fi
В данный момент в наличии одна тестовая точка доступа и несколько публичных точек доступа.
В
дополнение к тестовой точке доступа, я могу создавать точку доступа
через рабочий Mac-mini (чтобы симулировать шейпинг трафика и переход
Wi-Fi => Wi-Fi, 3G>Wi-Fi, Wi-Fi>3G). Но об этом немного позже.
Data-connection
Тут все велосипед изобрести достаточно сложно -
наборы SIM-карточек с разными тарифными планами от разных операторов.
Половина всех симок - mini-SIM с переходниками под полноразмерные SIM
карты, чтобы можно было использовать как на iOS-девайсах, так и на
других устройствах.
Simulate Dead Spots
В лифт практически не бегаю, т.к. есть намного более простые способы симулировать плохое соединения и "мертвые точки":
1. Кастомные прошивки на роутер, позволяющие шейпить скорость wi-fi. Мне нравится связка Linksys WRT54G v2 + прошивка Tomato:
- роутер стоит копейки - примерно €30-35
- хорошие кастомные прошивки (DD-WRT и основанная на нём Tomato)
- достаточно быстро перезагружается и восстанавливает wi-fi соединение после вытаскивания кабеля из WAN-порта
2.
Создание Wi-Fi AP на Mac +
Network Link Conditioner.
Позволяет настраивать скорость соединения и процент потери пакетов
пакетов. Очень много стандартных профилей. Из минусов - Apple уже почти
год фиксит баг, не позвояляющий шейпить трафик через созданную точку
доступа, так что приходится использовать только на
симуляторах/эмуляторах.
3. Сторонние тулы, вроде
WANEm,
Dummynet (скорее всего, потребуется помощь системного администратора) и различных прокси. Мне нравится
CharlesProxy - позволяет использовать throttling траффика как на прием, так и на отдачи помимо проксирования и rewrite.
4.
Во многих симуляторах/эмуляторах уже есть средства для управления
скоростью/качеством соединения: например, в Android и Blackberry.
Network link conditioner уже встроен в
iOS начиная с 6 версии
Power Station
Зарядной станцией у нас служат хранилища для девайсов, а также несколько USB-зарядок с внешним питанием, которые можно взять себе.
Такие используем для iOS:
1,
2
Такие (с QuickCharge 2.0 для поддерживающих девайсов) для Android
Я обычно обложен устройствами для тестирования :) Это всегда полезно, чтобы разработчики подходили к тебе за ними: узнать о
состоянии проекта, показать им мелкую багу, узнать о новой "фишке".
Немного оффтопика
О разрядке устройств. Быстрая разрядка и контроль уровня разряда требуется:
мониторинга потребления батареи приложением
работа приложения, когда OS включает режим экономии энергии
1. На Android и c этим все очень удобно -
существует много приложений для быстрой разрядки устройства до
определенного уровня/контроля энергопотребление устройства.
2. Blackberry
- Общедоступных и работающих приложения для разряда батареи я не
нашел. Поэтому Wi-Fi + Bluetooth + максимальный уровень яркости Вам в
помощь :)
- MeterBerry, Battery Alerts для мониторинга батареи
3. iOS. В правилах AppStore есть пункт,
запрещающий приложения, провоцирующие быструю разрядку и нагрев
устройства. Поэтому, выходом видятся такие ситуации:
Есть хардварные решения, но в процессе поисков выяснилось:
- надо либо заказывать за тридевять земель
- специальные устройства для медицинских целей
- либо стоят непомерно дорого.
Если вы знаете где достать чудо техники по сходной цене - буду ОЧЕНЬ признателен!
Lab PCs
В данный момент работаю на Mac, на котором стоят
две операционные системы: MacOS и Windows через Parallels. Основная работа делается на
Mac, т.к. в нем можно запускать и тестировать как iOS, так и Android
приложений. В Windows делаются специфические задачи, которые
сложно/невозможно сделать на Mac (некоторые тулы для разработки и
тестирования есть только под Window, симуляторов Blackberry нет на Mac,
etc), также на виртуалке компилирую Windows Phone приложения.
Также, имеется билд-сервера, на которых крутится TeamCity:
- 10 достаточно мощных Mac-mini, на которых мы компилируем iOS/Android приложения и гоняем авто-тесты
- Несколько виртуалок для прогона автотестов для Mobile Web/WAP приложений
- Несколько виртуалок для компиляции и прогонов авто-тестов для Windows Phone приложений
Для iOS/Android уже закупили топовый MacPro со 128Gb оперативки и будем потихоньку переходить на виртуальные машины, которые легче администрировать: клонировать, перезапускать, очищать и тп.
Для сборка, анализа статистики: запросы, ошибки, краши, отзывы, daily active users у нас есть несколько телевизоров, которые отображают всю релевантную информацию.
Purchasing Devices
Не буду сильно растекаться мыслью по древу. О выборе девайсов я
написал статью,
которую поддерживаю в актуально состоянии. Скажу лишь, что с покупкой
девайсов нам везёт - если сильно не наглеть, то привезут все
необходимое. В данный момент у нас около сотни девайсов: iOS, Android,
Windows Phone и несколько feature phone, которые можно использовать для
тестировании нашего WAP сайта.
Ну вот, собственно, говоря и все. Буду рад Вашим комментариям :) Также, очень интересна организация мобильной тест-лабы у Вас!