Я Стас, QA Project Lead и Device holder в Surf, и нет, я не просто держу устройства.
Все, кто знаком с мобильным тестированием, знают, что для тестов нужны разные устройства. Если с iOS все понятно — там одна операционная система, один вендор, но разные форм-факторы — то с Android сложнее. Это разные оболочки, и разные форм-факторы, и разные сервисы, которые будут влиять на тестирование. Поэтому нам понадобится не один и даже не десять смартфонов.
Нам нужен целый парк устройств, чтобы покрывать как можно больше конфигураций, особенно, если проект не один:
все актуальные или поддерживаемые на проекте версии iOS;
все актуальные или поддерживаемые на проекте версии Android;
устройства, с поддержкой Google сервисов;
устройства, с поддержкой Huawei сервисов;
пара планшетов (да-да, даже в нативе iOS-приложения могут запускаться на iPad, если мы не создали дизайн для этого);
устройства с небольшой диагональю;
устройства с большой диагональю и другие.
Как подобрать оптимальное сочетание для парка, когда и исчерпывающее тестирование невозможно, и купить все устройства на свете нереально?
Можно воспользоваться симуляторами или эмуляторами. Но это не настоящие устройства: сложности с геолокацией, камерой, биометрией. Кроме того, из-за особенностей симуляции на них воспроизводятся далеко не все баги.
Раз компании нужен парк девайсов, за ним должен кто-то следить. У нас, к примеру, сейчас 100 смартфонов и 11 планшетов.
Вот мы и подобрались к девайс-холдеру, который занимается манипуляциями с этими устройствами. Но почему, спросите вы, этим занимается не сисадмин? Сисадмины не всегда настолько погружены в конкретные кейсы, как тестировщики. У них есть много другой работы, а вот QA хорошо знакомы с бизнес-задачами и задачами отдела.
Так что расскажем, как покрыть устройствами все запросы отдела и сделать так, чтобы каждый QA был уверен в наличии нужной конфигурации.
Выбор устройств
Первое, что нам понадобится, — это мировая статистика. Мы пользуемся сервисом gs.statcounter.com.
Тут мы видим популярность вендоров и подбираем устройства, которые помогут увидеть приложение глазами большего количества пользователей. Обычно лидируют смартфоны Apple, на втором месте — Samsung, а закрывает тройку Xiaomi.
Потом мы анализируем рынок устройств региона, в котором выпускаем приложение.
Например, мы рассматриваем устройства, популярные в России. Понимаем, что у нас в топ входит бренд Tecno. А вот в мировой статистике его нет. Так что мы отдадим предпочтение этому бренду, а не Motorola, которая хоть и на 9-м месте мировом списке, но в России она вообще не популярна.
Собираем статистику по проектам. Для этого используем подключённые сервисы аналитики, например, AppMetrica. Там мы отслеживаем, какие устройства чаще всего используют пользователи. На основании этой информации покупаем необходимые.
Допустим, у нас уже есть внушительный парк устройств — 100 смартфонов и 11 планшетов (актуально на осень 2024 года): и iPhone, и Samsung, и Xiaomi, и Oppo, и Vivo. Даже Tecno есть.
И тут мысль: «А может, нам чего-то не хватает?» Да, нам не хватает точно (проверено опытным путём). И вот тут мы смотрим на оси, которые поддерживает наш проект.
Например, купили мы новых айфонов и видим, что наше приложение поддерживает iOS 14. Тут мы вспоминаем, что на iOS 14 всё ещё работает модель SE 1st gen. А там диагональ 4 дюйма — как выглядит дизайн на нём? И как работает приложение, ведь это старое устройство? Получается, SE 1st gen нам тоже нужен
Итак, у нас есть весь набор айфонов и андроидов, по одному смартфону каждого вендора. Всё? Мы купили всё, что нужно? Тут вспоминаем, что есть ещё и разные чипсеты.
Подбирать девайс по чипам — наш вариант. В рамках одного вендора можем взять несколько устройств, которые будут работать на разных чипах. Например, если у нас Huawei, то в нём могут быть и Qualcom, и Kirin. Берём по устройству на разных чипах — тут снова смотрим на статистику.
А что там с Samsung? У них есть Qualcomm и Exynos, значит нам снова нужны 2 устройства на этих чипах.
На самом деле, мы находили специфические баги не только на разных чипсетах, но и на разных поколениях одного чипа. Поэтому важен не только производитель, но и поколения процессоров. На одном устройстве 600-й серии Snapdragon мы ловили краши, которые не воспроизводились на 700-х сериях.
Важно помнить об этом, даже когда кажется, что всё предусмотрено!
В общем, берём устройства разных вендоров, с разными чипсетами и поколениями.
Работа с устройствами в парке
Нельзя просто взять и купить кучу смартфонов и планшетов и ничего с ними не делать. Их нужно обновлять, настраивать и следить за порядком.
Поиск устройств
У нас есть отдельный чат на случай отсутствия устройства «на рабочем месте»: разработчики могут забирать их домой или уносить в свой кабинет.
Для быстрого поиска устройств мы оптимизировали формат сообщения. Список смартфонов и планшетов хранится в Confluence, поэтому в текстах мы используем названия из этого списка. Так проще найти в чате того, кто забронировал нужное устройство.
Обновления
У прошивок есть привязка к регионам — европейская, российская, японская и другие. И часто бывает, что нужная нам версия андроида в одном из регионов вышла раньше.
Можно «перешить» устройство, но если вы дорожите гарантией или сомневаетесь в своих силах, лучше этого не делать.
Как устройства живут у нас
1. Мы купили станции для заряда с умными блоками. Они отключают подачу питания, когда заряд устройства доходит до 100%. Это продлевает жизнь аккумуляторам (и не даёт им сгореть на работе).
У нас 4 станции по 8 слотов.
2. Мы пользуемся наклейками. «Самоклейки» от руки оказались неудобными — их сложно отдирать, и они быстро затираются.
Наш формат — обычный лист с напечатанным названием устройства и его ОС. Клеим его на простую липкую ленту. Такие наклейки удобно читать из-за единого формата. Да и менять их проще.
3. Мы сделали на каждом девайсе обои с названием устройства и его ОС.
Зачем, ведь мы уже наклеили стикеры? Да, наклейки помогают не стоять возле стола с сотней устройств и полчаса искать нужное.
Обои же дают больше информации. Например, в репортах об ошибках. Можно приложить видео с разных смартфонов, и из-за обоев сразу станет понятно, с какого устройства это видео.
Чтобы ещё больше упростить себе жизнь, стоит сохранить шаблон обоев. Это нужно, чтобы быстро менять их при обновлениях.
На обоях мы указываем название устройства и его ОС. В последних добавили диагональ и разрешение экрана, что тоже, в перспективе, экономит время.
4. Мы ведём список устройств с их характеристиками.
Нет нужды записывать туда абсолютно все технические особенности. Мы, к примеру, постарались собрать то, что действительно понадобится в работе: версии ОС, разрешение экрана, версия оболочки, версии Bluetooth.
5. Мы активно пользуемся моделями разного цветами или чехлами для них.
Для тестирования нам не важно, какого цвета устройство. Но когда появляется необходимость быстро найти устройство, разный цвет корпуса или чехла в разы ускоряет поиск. Особенно, когда в парке больше 100 устройств.
6. Мы создали отдельный список устройств без чувствительной информации.
Он помогает нам быстро делиться с заказчиком теми устройствами, на которых будет тестироваться его сервис.
7. Мы поддерживаем порядок и ввели правила пользования.
Нет, мы не злобные надзиратели, которые из вредности запрещают всем пользоваться. У нас есть регламент, в котором прописано, к примеру, когда ставить устройства на зарядку (у нас — если на телефоне меньше 75% заряда).
Так мы избегаем случаев, когда тестировщик берет полностью разряженный телефон и ему приходится ждать, когда он зарядится.
Как мы, девайс-холдеры, помогаем компании
Очень сильно помогаем. Мы с предшественниками сформировали флоу взаимодействия с парком, которым пользуются и QA, и дизйнеры, и разработчики, и, иногда, аналитики.
Классно, что ребятам не надо думать о том, какая версия iOS установлена на том красненьком айфоне, все ли необходимые приложения есть на том устройстве и включен ли на нём режим разработчика. Они могут подойти к станциям зарядки, выбрать подходящий смартфон или планшет и сразу начать с ним работать.
Если возникли сложности с устройством или на проекте потребовалось нечто необычное, команда знает, к кому подойти. А мы уже сделаем всё максимально быстро: и джейлбрейк на iPhone для тестирования банковского приложения поставим, и root-права на Android дадим.
А ещё мы экономим время всего отдела тестирования.
Чтобы зарядить телефон с полного нуля, до того, как он включится, нужно 7 минут. В отделе 37 человек, умножаем 8 минут на 37, а потом ещё на 5 (рабочие дни).
Выходит, что примерно 24,5 часа в неделю тратится только на зарядку смартфонов. А это время не хотелось бы терять впустую.
Роль девайс-холдера не требует ежедневных 8 рабочих часов, тут не «горят релизы». Поэтому получается грамотно распределять задачи и управлять нагрузкой.
Становиться девайс-холдером стоит тем, кто будет получать от этого удовольствие и не будет считать бременем, хоть и премируемым.
Надеемся, что мы помогли разобраться, какой путь выбрать, если вы решили развивать свой парк девайсов.
А мы пока продолжим работать над превращением нашего парка в настоящую ферму (кстати, много полезной информации об этом мы нашли тут).
Кейсы и лучшие практики в области QA, новости, вакансии и стажировки Surf — в телеграм-канале Surf QA Lab.
Mishootk
Хинт.
Первое. На тыльную наклейку QR-код. У каждого сотрудника бейдж. Взял телефон - приложил к сканеру устройство и бейджик. Вернул - аналогично. Ищешь телефон - знаешь где он, свободен или у кого-то. Само, без "кладовщика".
Второе. На каждый девайс установлено приложение. Оно показывает на экране (обоях) информацию о системе и железе текстом, там же тот же QR-код. Это же приложение по местной сети сообщает уровень заряда. Очень было бы неплохо в это приложение встроить свой видеорекордер, чтобы оно само после записи сбрасывало в корпоративное хранилище видео с информацией об устройстве. И им же было бы здорово управлять удаленно, с компьютера разработчика (начинать и останавливать запись).
В него же геолокацию (и по меткам и сети где в оффисе), в него же обратный звонок/сообщение для быстрой связи с тем кто его захватил (да, с блокировкой этого добра на момент записи).
skvorec_9
А если лень делать QR-код, как вариант свой корпоративный ТГ-бот в который можно отписать, Кто, какое устройство, зачем и когда и прикапывать в банальной SQLite или Redis и одним запросом через него же узнать где устройство. А так тут огромное поле для оптимизации подобного процесса