Ноябрь, 2021 год, COVID-19 снова вернулся в нашу жизнь. Мы, как и вся страна, уже работали из дома год назад. Теперь в городе снова объявили «нерабочие дни», и все сотрудники перешли на удалённую работу.
Меня зовут Павел Жданов, я работаю тестировщиком в компании Surf. Мы разрабатываем мобильные приложения, и для работы QA мобильных устройств нужно много. Как быть, когда тебя переводят на удалёнку? Тащить десять мобильников к себе домой?
В статье расскажу, как организовать работу QA на удалёнке, и покажу, как это устроено в Surf.
Офис или удалёнка? Да где мне взять столько девайсов у себя дома, а?
Важное замечание: Наша команда QA работает в одном городе
QA отдел Surf состоит из двадцати человек. Мы тестируем проекты банковской среды, e-commerce и другие. Сам процесс тестирования дома и в офисе выглядит одинаково. Но у работы из дома есть один большой минус. О нём сказали абсолютно все тестировщики, с которыми я пообщался. И этот минус:
мало девайсов
Это всё. Действительно, мобильному тестировщику нужно иметь с пятого по тринадцатый айфон с разными сочетаниями версий iOS. Также для некоторых проектов или перед первым релизом пригодится планшет на iOS. Плюс десятки телефонов на Android с четвертой по двенадцатую версии.
Приходим к неоднозначной ситуации. В офисе есть девайсы на любой вкус: старые, новые. А дома что?
Ну всё, идём работать в офис и ни шагу домой в рабочее время!!! Ха-ха, особенно актуально, когда тебя принудительно отправили домой :(
Нет! Можно и дома. Тестировщик должен уметь адаптироваться к разным условиям.
Ну хорошо, а если я из другого города, как мне работать?
Прочитав статью, вы поймёте, что все решения действуют для ребят из любой точки мира.
Теперь расскажу, как мы построили процессы работы QA на удалёнке.
Но сначала вопрос: «Какие девайсы на базе Android и на базе iOS мне нужно взять домой?»
Первый фактор для выбора девайса — особенность конкретного проекта. Например:
проект разрабатывается только под одну платформу (Android или IOS);
у проекта поддержка только определенных версий ОС;
проект разрабатывается для телефонов на базе ОС Huawei;
проект разрабатывается как демка, и девайс не важен;
проект разрабатывается только для планшетов.
В зависимости от этого можно примерно понять, какие смартфоны нужны.
Второй фактор: аналитика использования ОС. Вот, например, статистика для одного из наших приложений, собранная за последние три месяца с помощью AppMetrica:
Apple с политикой обновления даже очень старых девайсов помогает тестерам. Большинство пользователей обновлены до iOS 14 или недавно вышедшей iOS 15. С такими показателями поддержку iOS 10—13 можно уменьшить — но исключать полностью нельзя. Проверяем приложение сначала на новых ОС, затем на старых.
С Android всё не так однозначно. В зону обязательной проверки попадают почти все версии. Но, как и со смартфонами Apple, сначала проверяем на более свежих девайсах 9—11 версий, затем на Android 6–8. Пользователей Android 12 мало, и смартфонов таких единицы. Android 5 тоже в отстающих: можно задуматься об исключении его из поддержки.
Третий фактор — парк устройств в компании. У нас в Surf уже мало девайсов на Android 5: их поддержка подходит к концу. Новые девайсы iPhone 13 докупаются, некоторое количество девайсов перевели на iOS 15. Android 12 сейчас есть только у Pixel. Остальные ещё не представили обновления на свои устройства, и покупать телефоны с Android 12 пока что не целесообразно.
Четвёртый фактор — сколько тестировщиков на проекте. Если двое или больше, можно с легкостью покрыть проект всеми ОС.
Помогает и наличие своего девайса. На удалёнке некоторые QA используют собственный смартфон для проверки сборок. Понятно, что личные девайсы в рабочих целях используют не все: при распределении устройств это учитывается.
Итого:
Узнать специфику проекта и какие девайсы нужно использовать для проверки.
Учесть аналитику использования девайсов на проекте.
Посмотреть парк устройств и сколько нужных девайсов есть в наличии.
Если QA на проекте несколько, правильно распределить устройства между ними.
Помнить про возможность использовать личный девайс для тестирования.
Бывают баги, специфичные для определённых устройств. А ещё ведь и девайсы нужно будет заменить — например, по окончании итерации. А ещё накат проверить надо на всём. Мы выработали два типа решений для таких случаев:
Физическое решение
Связаться с офис-менеджером , который передаст девайс с помощью такси. Этот вариант работает, потому что мы все в одном городе.
Виртуальное решение
Специальный канал в слаке, где каждый может написать сообщение о девайсе: взять, посмотреть, проверить что-то в сборке, чекнуть баг и так далее.
специальный сайт для упрощённого поиска девайсов.
❗️Если по проекту есть соглашение о неразглашении (NDA), придётся пользоваться только своим парком устройств и использовать эмуляторы и симуляторы (о них будет чуточку ниже).
Как работает сайт
Для начала пользователь проходит авторизацию. После он попадает на страницу со всеми девайсами компании.
Каждая строка состоит из: “Device-User-SlackID-Bind/Unbind”.
Пользователь прикрепляет девайс клавишей Bind. Unbind, если девайс уже отдан.
Для большего удобства мы сделали строку поиска девайсов и кнопку «My devices», чтобы пользователь мог посмотреть, какие девайсы записаны на него.
Зачем нам этот сайт, если хватит и чата в Slack?
Сайт создан для минимизации флуда в чате. Алгоритм поиска девайса выглядит так:
Зайти на сайт и найти, у кого устройство.
Написать человеку и попросить девайс для тестов.
Если девайс не у него, идём в чат и пишем заветное «@here» и фразу «у кого девайс iPhone 7 iOS 12?»
Суммируя эти маленькие нововведения в период пандемии, мы получили лёгкую возможность «тестировать на всех девайсах», находясь дома.
Как программы делают жизнь легче
Современное программное обеспечение значительно упрощает жизнь тестировщика на удалёнке. Речь в первую очередь об эмуляторах и симуляторах.
Эмуляция — воспроизведение работы программы или системы с сохранением ключевых свойств и принципов работы. Копирует суть (процесс, объект) работы.
Симуляция — воспроизведение работы программы, имитирующее выполнение кода. Копирует окружающую действительность (оболочку, свойства объекта).
Мы используем и эмуляторы, и симуляторы. Из опроса наших сотрудников стало видно, что основные инструменты для работы — это Xcode(iOS) и Android Studio. При этом эмуляция возможна как для разработчика нативных приложений, так и для Flutter-разработчиков, которые делают одно приложение на все платформы.
Помимо эмуляции с помощью официальных инструментов используются простые эмуляторы Android. В гугле можно найти массу предложений.
А зачем нужен весь этот геморрой с девайсами, когда уже так много эмуляторов и симуляторов?
Да, мы в Surf, конечно же, пользуемся эмуляторами и симуляторами: это позволяет обширнее проверить вёрстку и проверить сборку быстро, не используя физический девайс. Однако полностью заменить реальные устройства они пока не могут. С помощью эмулятора нельзя проверить особенности смартфонов: корректно ли работает камера, мобильный интернет, диктофон и так далее.
Симуляторы при этом вообще не учитывают аппаратную часть устройств: поведение иногда может отличаться от поведения на реальном смартфоне. Из-за этого бывает, что приложение вылетает на эмуляторе или симуляторе и нормально работает на девайсе — и наоборот. Поэтому залог успеха в балансе: для полноценной работы мы пользуемся настоящими смартфонами, эмуляторами и симуляторами.
Подытожим плюсы и минусы работы с таким ПО.
Плюсы
Разные версии Android и iOS, которые можно установить отдельно.
Недорогое решение.
Изменение разрешения экрана и типа девайса (планшет, мобильный) позволяет легко проверить вёрстку.
Минусы:
Реклама в некоторых эмуляторах из интернета.
Не позволяют имитировать входящие SMS и вызовы.
Не могут имитировать работу, связанную с особенностями смартфонов: с камерой, мобильной сетью, в экономичный режиме.
Если запускать несколько эмуляторов, они будут тормозить на старых ПК.
Не все версии ОС доступны на эмуляторах.
А можно ферму мобильных устройств купить…
Одно из новых решений для тестирования на удалёнке — тестирование с помощью облачных технологий, или «ферм мобильных устройств». Эти инструменты или веб-сервисы позволяют удалённо подключаться к настоящему девайсу и полноценно проводить тестирование приложения.
Получается, доступ к функциональности реального телефона есть, только физически девайс находится «где-то там, далеко».
Мы пользуемся собственным решением для удаленного тестирования. Это наша личная ферма мобильных устройств: она состоит из устройств, которые подключены к ПК в офисе.
Удалённая отладка удобна и разработчикам: они могут фиксить баги, воспроизводимые на каком-то «особенном» устройстве.
Мы настроили удалённый доступ к девайсам с помощью утилиты scrcpy, установленной на ноде. Она позволяет видеть экран подключённого через usb устройства и управлять им. Для этого нужно:
Иметь настроенный VPN на своём ПК.
Подключиться к серверу нода (адрес даст системный админ), а затем ввести логин и пароль.
Скачать репозиторий проекта.
Попросить кого-то в офисе подключить девайс к ноде для удалённого доступа.
Для запуска повтора экрана в терминале выполнить команду scrcpy.
Если физически или финансово организовать такой стенд не получается, а тестировать на девайсах нужно, можно воспользоваться облачными фермами. Подробно о сервисах я не буду рассказывать, статей в интернете много. Вкратце о самых популярных:
Samsung Remote Test Lab — бесплатный сервис, позволяющий тестировать на девайсах Samsung.
Firebase Test Lab — один из популярных сервисов для тестирования, есть возможность тестировать iOS приложения.
AWS Device Farm — популярный платный сервис для тестирования, даёт доступ к примерно 500 устройствам.
Visual Studio App Center — бывший Xamarin Test Cloud, доступно около 2500 устройств для тестирования.
Ферма мобильных устройств — офисная или облачная — позволяет тестировать приложения, не имея девайсов под рукой. Это удобно: не проблема, если в офисе кончились девайсы, и кому-то не достался нужный телефон. А тестировщик из любой точки земного шара может стать участником команды.
Мобильный тестировщик может работать на удалёнке!
Переход на удалёнку для мобильного QA в первый локдаун казался сложной и пугающей задачей. Нам удалось настроить рабочий процесс. Не всё было идеально, но мы минимизировали потери в качестве и эффективности: показатели не упали.
Обычные рабочие процессы абсолютно одинаковы что дома, что в офисе. Да, есть некоторые нюансы с девайсами. Но это решаемо:
Комплексный подход из физических и виртуальных решений минимизирует проблему девайсов.
Эмуляторы и симуляторы помогают в тестировании.
Можно пользоваться облачной технологией — «фермой мобильных устройств», которая даст доступ к сотням девайсов.
Можно собрать «ферму мобильных устройств» у себя в офисе, и тестировщики могут удалённо подключаться к ней. Бонус: программисты тоже скажут «спасибо», потому что ферма будет полезна и им.
Больше полезного — в наших телеграм-каналах:
В них мы публикуем кейсы, лучшие практики, новости и вакансии Surf, а также проводим прямые эфиры.
Присоединяйтесь!