Повышаем качество сервисов и делаем пользователей счастливыми: как работают в команде 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: подписывает на напоминания о днях рождения коллег.
Чтобы каждый из нас мог в любой момент посмотреть, над какими задачами работает вся команда и какой у них статус, мы используем подобные дашборды:

Так, путь тестировщика сложный, но максимально интересный. Мы ежедневно сталкиваемся с новыми задачами, которые сначала пугают, но потом ты начинаешь ловить кураж и максимально погружаешься в процесс.
Плюс мотивирует, что мы работаем с продуктами, у которых ну просто огромная аудитория. Это вдохновляет постоянно улучшать как качество своей работы, так и совершенствовать сервисы компании. Потому что кто, если не мы?
Если вы не боитесь челленджей и трудностей, но готовы попробовать себя в тестировании – заходите на наш сайт с вакансиями. А если есть вопросы по рабочим процессам — пишите в личку автору поста. Там можно задать любые вопросы о работе (даже неудобные).
ПОМОГИТЕ С ТЕСТОМ!
1. Какие из этих приложений пока не тестируются в VK Testers?
Г. Delivery Club
1. Какие инструменты используются в VK Testers?
Б. Система балльных поощрений
Г. Программа наставничества
Д. Программа обучения
1. Как называют тестовые приложения, предназначенные для обучения участников программы VK Testers?
1. Сколько человек участвует в сообществе VK Testers?
Г. 16 001–256 000
Д. 256 001–500 000
1. Кем становятся участники VK Testers?
Г. Продуктовыми дизайнерами
Чем занимаются участники программы vk testers
VK Testers — программа бета-тестирования ВКонтакте — доступна как сервис на платформе VK Cloud для всех разработчиков. Он позволяет найти ошибки, которые не выявили на предыдущих этапах тестирования, и ускоряет процесс вывода продукта на рынок. Ранее доступ к опыту, инструментам и комьюнити, сформированным за время существования программы, был только у команды VK — теперь же использовать преимущества VK Testers сможет любой бизнес.

VK Testers позволяет быстро проверить все пользовательские сценарии в реальных условиях на разном оборудовании и получить обратную связь от сообщества из 30 тысяч тестировщиков. Программа помогает улучшить производительность продукта и опыт пользователей, исправить ошибки и доработать интерфейс.
Новый облачный сервис расширяет возможности штатного отдела инженеров по качеству, снижает нагрузку на сотрудников компании и затраты на тестирование. Для того чтобы проверить работоспособность нового продукта, не нужно покупать и обслуживать парк устройств.
«Все лучшие практики, которые мы предлагаем рынку, VK сначала тестирует на собственных продуктах. VK Testers — не исключение. Мы разрабатывали программу для решения внутренних задач наших сервисов — оперативного тестирования новых продуктов в реальных условиях и сбора обратной связи, — рассказывает Дмитрий Лазаренко, директор по продукту VK Cloud. — Теперь возможности программы стали доступны всем пользователям облачной платформы VK Сloud».
Как работает VK Testers
Клиент VK Testers заполняет задание для тестировщиков и выдает доступ к бета-версии продукта. Участники сообщества выполняют их и дают обратную связь. При необходимости, можно увеличить охват количества тестировщиков и проверяемых сценариев, масштабировать нагрузку, а также изменить параметры операционных систем и устройств.
По итогам заказчик получает отчет об удобстве продуктов, обнаруженных дефектах, уязвимостях и погрешностях в UX-дизайне. Сервис обеспечивает конфиденциальность и безопасность данных: код надежно защищен, результат видит только разработчик, который инициировал тестирование.
VK Testers — это программа, объединяющая огромное комьюнити начинающих, опытных и продвинутых тестировщиков, неравнодушных к тестированию, профессиональному росту в этой области и желающих делать ВКонтакте лучше. Присоединиться к VK Testers: https://vk.com/app8034048.
О VK Cloud
VK Cloud — облачная платформа для бизнеса и разработки, которая предлагает удобные инструменты создания облачной инфраструктуры компаниям любого размера. VK Cloud входит в портфель решений VK Tech и базируется на многолетнем опыте развития интернет-сервисов и технологий на базе открытого кода.
VK Cloud предоставляет инфраструктурные и платформенные сервисы, экспертную поддержку, кастомные и частные инсталляции, а также помогает мигрировать в облако. Клиенты компании — 1С, Битрикс, Газпромнефть, Росатом, X5 Group и другие крупнейшие игроки своих отраслей.
11 платформ для начинающих тестировщиков

Отечественные ИТ-компании организуют различные программы обучения для тестировщиков: стажировки, курсы, митапы.
В российских вузах нет отдельных направлений для инженеров-тестировщиков, поэтому компаниям легче готовить таких специалистов в своих учебных центрах, а потом предлагать им работу в штате.
На стажировку поступить сложнее, чем записаться на курс от образовательной платформы, зато это бесплатно, можно сразу нарабатывать опыт и полезные контакты. Также компании охотнее берут на работу студентов именно с программ внутренних стажировок.
По специальности я бакалавр юриспруденции. На втором курсе юрфака смог сам подготовиться и устроиться в «Яндекс» специалистом поддержки «Поиска», а потом стал ментором для новичков и ответственным за качество ответов нашего направления. В 2020 году прошел курс в «Яндексе» и устроился в «Совкомбанк». На новом месте дорос до позиции QA Lead проекта. Я знаю, какие навыки нужны для старта работы, и не понимаю, почему их не дают массовые курсы.
В этой статье расскажу, у каких крупных ИТ-компаний есть стажировки, курсы и вакансии интернов для студентов и как пройти отбор. Как правило, программы ориентированы на старшекурсников и недавних выпускников вузов, но есть и варианты для тех, кто уже давно выпустился.
Глоссарий
Тестирование — проверка, соответствует ли программное обеспечение заявленным требованиям.
Тест-дизайн — техники создания эффективных тестовых сценариев. Цель: при минимуме тестов найти большинство критичных дефектов.
Дефект, или баг, — некорректная работа программы, вызванная ошибкой в программном коде. Когда фактический результат не соответствует ожидаемой работе программы.
Чек-лист, тест-кейс — виды тестовой документации, по которым тестируется приложение.
Баг-репорт — отчет об ошибке. Обычно баг-репорт включает шаги воспроизведения ошибки, фактический и ожидаемый результат.
Тестирование черного ящика — метод тестирования системы без доступа к инфраструктуре и исходному коду.
Тестирование белого ящика — метод тестирования системы с доступом к инфраструктуре и исходному коду приложения.
QC (от англ. quality control) — контроль качества.
QA (от англ. quality assurance) — обеспечение качества. Оба направлены на поиск и предотвращение программных дефектов.
База данных — упорядоченный набор данных в электронном виде. Проще говоря — хранилище информации. Это составная часть большого приложения.
СУБД — система управления базами данных. Обеспечивает контроль и управление данными, хранящимися в базе.
SQL (от англ. structured query language — язык структурированных запросов) — язык запросов, с помощью которого можно управлять данными в реляционной базе.
API (от англ. application programming interface — программный интерфейс приложения) — интерфейс для взаимодействия приложений. Одни приложения будут отправлять команды, а другие — выполнять их без участия человека.
Сниффер, или анализатор трафика, — приложение, которое позволяет перехватывать сетевой трафик. Снифферы используют, чтобы определить, где возникает ошибка при передаче данных в приложениях.
Таск-трекер — система для совместной работы над задачами. В ней работают как аналитики, так и разработчики с тестировщиками.