Повышаем качество сервисов и делаем пользователей счастливыми: как работают в команде QA ВКонтакте
Привет, Хабр! Сегодня годовщина создания команды QA одного из самых нагруженных проектов VK — социальной сети ВКонтакте. Для нас это стало хорошим поводом поговорить о буднях тестировщиков.
Сегодня о главных задачах команды, ее традициях и жизни вне работы расскажут три сотрудника ВКонтакте, которые ежедневно работают над сервисами компании и постоянно улучшают их качество для пользователей. Материал поможет лучше разобраться в том, как устроена команда внутри, и что сделать для того чтобы преуспеть в тестировании.
Роман. Я старший инженер по тестированию в команде Core Android QA, то есть один из тех людей, кто отвечает за качество приложений ВКонтакте для Android. Ко мне приходят на проверку новые функции мобильного приложения. Вместе с разработчиками мы делаем их максимально качественными для пользователей. На дежурствах я отслеживаю сбои и сообщения в службу поддержки, чтобы оперативно решать проблемы пользователей; просматриваю создаваемые в баг-трекере VK Testers задачи на исправление ошибок;, а ещё иногда я веду релизы и даю финальное одобрение раскатки новых сборок.
Марьян. Вот уже 7 месяцев работаю младшим инженером по тестированию в команде суперприложения ВКонтакте. Моя главная задача — тестировать Игровую платформу и обеспечивать качество продукта на всех поддерживаемых платформах — их у нас четыре: веб-версия vk.com, мобильная веб-версия m.vk.com, Android и iOS.
Кроме тестирования игр у меня есть ещё одна важная задача. Наверняка вы знаете о существовании мини-приложений ВКонтакте. Чтобы они попадали в каталог, им необходимо пройти бета-тестирование в программе VK Testers. Но перед этим я проверяю их на наличие уязвимостей, потому что негоже отдавать в бета-тестирование функции, влияющие на безопасность проекта — всё самое важное мы вылавливаем самостоятельно. Так мы делаем взаимодействие пользователя с платформой комфортным и безопасным. А VK Testers можно считать ступенькой на пути к работе в команде и доступу к более сложным задачам.
Ну, и ещё я очень люблю помогать тестировать различные спецпроекты.
Ангелина. Уже 11 месяцев работаю младшим инженером по тестированию в команде роста среднего и малого бизнеса (СМБ) — это ребята, которые упрощают запуск продвижения во ВКонтакте. Я тестирую веб-сервисы и продукты на фреймворке VKUI. Также я — часть команды тестирования веб-версии ВКонтакте и иногда помогаю ребятам в каких-то общих задачах. В мои обязанности входит ручное и автоматизированное тестирование, просмотр и перенос багов из баг-трекера VK Testers, написание и актуализирование чек-листов.
QA — это про качество сервисов
Задачи перед нашей командой стоят грандиозные. У нас большой продукт с сотнями разработчиков с одной стороны и миллионами пользователей с другой. Нам нужно сделать так, чтобы обе стороны были довольны и счастливы. Звучит просто, но на деле это большая и интересная работа.
Наша работа начинается на этапе планирования новой функции. Мы можем предложить, как сделать лучше и предотвратить очевидные ошибки, которые замедлят вывод в эксплуатацию.
Чтобы быстрее выводить в эксплуатацию новую функциональность и повышать её качество, мы используем разные инструменты: у нас множество документации, позволяющей пошагово выпустить фичу в прод; ручное тестирование; автотесты; контрольные чек-листы; общение в чатах — всё это упрощает тестирование.
После разработки и тщательного тестирования наша работа не заканчивается. Мы наблюдаем за раскаткой фичи на пользователей и её стабильностью. Чтобы узнавать о возникающих в приложениях проблемах как можно раньше, мы по очереди дежурим в службе поддержки пользователей, разбирая обращения от них и от коллег, а также дежурим в нашем собственном баг-трекере команды VK Testers, куда стекается информация от бета-тестировщиков. Тестируем все исправления найденных ошибок.
В наши обязанности также входит сопровождение в течение недельных релизных циклов: проверяем мобильные приложения VK App, VK Мессенджер, VK Клипы, VK Звонки и другие. Мы досконально изучаем всё, что попадает в релиз, при этом мы непрерывно отслеживаем каждую выкатку.
Вы думаете, на этом всё? Как бы не так: с остальными участниками разработки участвуем в ретроспективе и ищем, что можно сделать лучше.
А вот регрессионным тестированием мы не балуемся. Причин тому несколько:
Всё наше внимание сосредоточено на проверке функциональности на этапе feature-веток.
Мы проводим impact-анализ всех вносимых изменений.
У разработчиков есть список условий, которые нужно соблюсти, чтобы отправить на тестирование очередную порцию кода.
Функциональность покрываем чек-листами.
Мы применяем автотесты и А/Б-тестирование.
Всегда и везде используем feature toggles.
Практикуем поэтапную раскатку и бета-тестирование.
Теперь расскажем подробнее об автотестах. Каждый сотрудник QA тратит минимум 20% своего рабочего времени на автоматизацию. Одни задачи мы планируем заранее, в квартальных планах; другие возникают во время инцидентов; третьи приносят нам бета-тестировщики. И, конечно же, в автотестировании поощряется инициатива самих сотрудников команды QA.
Сейчас у нас крутится около 1200 ui автотестов на платформе Android, каждый прогон длится 15–20 минут (в 80 потоков на эмуляторах) — мы собрали целую ферму из различных эмуляторов и мобильных устройств. У нас есть отдельный сервис для управления тестовыми данными для автотестов и самописный фреймворк для автотестирования. В целом наша инфраструктура выглядит так:
Как поддерживать работоспособность удалённой команды
Большинство сотрудников нашей команды работают удаленно из разных городов. Чтобы они чувствовали себя ближе друг к другу, важно часто поддерживать общение, хотя бы в онлайн-формате.
Роман. Раз в квартал у нас есть альтинги — это общие планёрки, на которых мы грядущие планы, а также задаем друг другу и руководителям вопросы о жизни в компании, делимся предложениями и пожеланиями. В конце каждого альтинга создается документ со списком ответственных за каждый пункт и оценочными сроками. Внутри отдельных команд есть собственные встречи. Например, команда Core Android созванивается раз в две недели — на встречах мы делимся рабочими и личными достижениями. Иногда ездим друг к другу в гости в разные города (например, двое из команды ВКонтакте приезжали на день города в Нижний Новгород). Иногда вместе ходим на обеды, когда кто-то добирается до офиса.
Также у нас есть развлечение в виде чатика с флудилкой, а ещё есть чатики спортсменов и чатик комнаты в Зингере.
Марьян. Бо̒льшая часть команды тестирования суперприложения разбросана по разным городам, поэтому мы не можем регулярно видеться, но при желании расстояние никогда не будет помехой для общения. Каждый четверг после работы мы созваниваемся и делимся друг с другом, как прошла наша неделя, рассказываем о планах и просто общаемся. Это вовсе не рабочий звонок, а просто желание провести больше времени со своими коллегами.
С командой игр я вижусь чаще. Хотя почти все её участники и предпочитают работать удалённо, они живут в Санкт-Петербурге. Время от времени мы выбираем день, чтобы прийти в офис, работаем вместе, а после идём ужинать.
Ангелина. Каждый год внутри компании проходят Фиксатон и Хакатон. Фиксатон — это внутреннее мероприятие, в котором участвуют разработчики и тестировщики. Задача разработчиков — починить как можно больше багов, а задача тестировщиков — убедиться, что баги были действительно исправлены. Хакатон — соревнование, проходящее 2 раза в год, на котором разработчики создают новые продукты и улучшают существующие. С недавних пор в нём участвуют и тестировщики, которые выступают в роли судей, проверяют прототипы на работоспособность и оценивают качество и готовность проектов.
В офисе мы иногда собираемся поиграть в настолки, а ещё ходим вместе на обеды :)
QA — это про сложности и преодоления
Сложности, с которыми сталкиваются QA в работе, бывают самые разные: это и неработающий код, и особенности операционной системы от Google, и внешние факторы. Но мы привыкли решать их с улыбкой и позитивом. Сложности позволяют нам становиться лучше и учиться новому. Мы помогали запускать отдельные приложения VK Клипы и VK Звонки — это были большие и сложные запуски, но мы смогли. Естественно, мы продолжаем работать над улучшением всех запущенных продуктов.
На начальном этапе можно столкнуться с мелкими затруднениями вроде незнания какой-то части продукта. Но обычно они легко решаются, для этого надо просто больше общаться с командой, задавать вопросы и изучать продукт вдоль и поперек.
Еще часто члены команды сталкиваются с неумением правильно распределять время. Они пытаются успеть абсолютно всё, но это не всегда выходит. Чтобы подобные ситуации не возникали, в нашей команде есть планирование, на котором мы оцениваем, что успеем проверить на этой неделе, а что — не очень.
Как вы уже поняли, мы очень любим всё автоматизировать, чтобы экономить своё рабочее время, которого вечно не хватает. Например, пишем всевозможные боты для самых разных задач. Они помогают оперативно получать информацию о багах из разных сервисов, напоминают о задачах:
Jira Bot: оповещает об изменениях по задачам: статусах и комментариях, ссылках на MR, назначениях задач.
Release Bot: напоминает про code freeze, следит за ветками, сообщает о раскатке сборок, напоминает командам о задачах в релиз.
Bugs Bot: распределяет отчёты об ошибках, напоминает о них и экспортирует в Jira, присылает оформленные жалобы от агентов поддержки.
Ещё у нас есть боты для работы с Gitlab и Teamcity, для контроля задач по проверке кода, развёртыванию и мониторингу. Но и на этом мы не остановились — кроме серьезных задач боты помогают нам и в неформальных вопросах, для которых автоматизация тоже полезна.
Friday Meeting Bot: собирает вопросы к пятничной встрече.
Color Bot: меняет цвет подсветки куполов в офисах (Зингер и офис на Красном Мосту).
Idea Bot: собирает идеи для голосования за их реализацию.
Birthday Bot: подписывает на напоминания о днях рождения коллег.
Чтобы каждый из нас мог в любой момент посмотреть, над какими задачами работает вся команда и какой у них статус, мы используем подобные дашборды:
Так, путь тестировщика сложный, но максимально интересный. Мы ежедневно сталкиваемся с новыми задачами, которые сначала пугают, но потом ты начинаешь ловить кураж и максимально погружаешься в процесс.
Плюс мотивирует, что мы работаем с продуктами, у которых ну просто огромная аудитория. Это вдохновляет постоянно улучшать как качество своей работы, так и совершенствовать сервисы компании. Потому что кто, если не мы?
Если вы не боитесь челленджей и трудностей, но готовы попробовать себя в тестировании — заходите на наш сайт с вакансиями. А если есть вопросы по рабочим процессам — пишите в личку автору поста. Там можно задать любые вопросы о работе (даже неудобные).