Как работает обеспечение качества в Badoo

Максим Захаров, автор блога "Хроники тестировщика", автор перевода на русский язык книги Сама Камера "Lessons Learned in Software Testing" и тестировщик из СКБ Контур, в заметке "Про то, откуда иду" задает сам себе интересный вопрос и отвечает на него. "- Можно ли стать отличным (тестировщиком), не интересуясь, как работают другие? - Нет". Следуя мысли Максима заинтересовался, как работают в московском офисе сайта знакомств Badoo.

  1. Какие объемы работ в Badoo и кем они выполняются?

    Участвовать в двух серверных релизах в день. Сопровождать еженедельно релизы приложений. Число разработчиков с 2013 по 2016 год увеличилось с приблизительно 80 до 150 человек, QA-инженеров с 20 до 50 специалистов.

  2. Какие направления разработки и тестирования есть в Badoo?

    Рабочие направления включают Web/mobile app server, отдельное направление для демонов C, C++, Go и отдельное направление для приложения ios, Android, Windows и Mobile Web. Разница обусловлена технологиями при помощи которых разрабатываются приложения.

  3. Какие в Badoo этапы контроля качества?

    Пять этапов контроля качества: 01. code review. 02. тестирование на девеле. 03. тестирование в шоте. 04. тестирование на стейджинге. 05. верификация на production.

  4. Что из себя представляет автоматизированное code review в Badoo?

    Автоматизированное code review выполняется при помощи git hook. Например, проверяется имя ветки с кодом Jira-тикета. Или проверка права на commit. Далее проверка соответствия код-формату при помощи утилиты phpcf! (заметка про утилиту в хабе Badoo), которая находится в open source. Затем идет автоматическое обновление статусов и комментарии в Jira!!! С помощью хуков проверяется корректность тестов, например, в тестах написаны правильные code coverage, правки проходят простейшие sanity тесты на то, что они не пытаются сломать production. Всего есть порядка 50 хуков, каждый из которых за что-то отвечает, помогает улучшать качество кода до того, как код покинет разработчика.

  5. Как проходит ручное code review в социальной сети знакомств?

    После хуков переходят к "ручному" ревью. Оно проходит в первую очередь при помощи очень сильно модифицированной утилиты git php. Главный плюс в модификации от Badoo - просматривая diff любой разработчик может писать комментарии к любой строчке или блоку кода. Этот комментарий остается висеть в git php, он комментируется в Jira. Возможно, что в процессе решения вопросов разработчики формируют целые чатики и когда QA приходит в задачу, он видит не только финальную версию того как задача была сделана, но и историю того что в ней происходило - это очень важно для разбора каких-нибудь проблем. (То есть QA читают код и разбираются в проблемах кода?)

  6. Что является предметом изучения при code review?

    Проверяется корректность логики, когда сделанное разработчиком соответствует тому, что сделано в задаче; оптимальность решения, что задача выехав не повесит на production миллион запросов, что потребуется минимальное количество ресурсов; соответствие архитектуре и не городит новых велосипедов, не изобретает каких-то новых решений, которые уже есть; покрытие тестами - задача, которая не покрыта тестами не считается завершенной и отправляется на доработку; проверка со стороны других отделов, чей код был затронут.

  7. Пишут ли в Badoo юнит-тесты?

    Пишут юнит-тесты и автоматизируют процесс выполнения. Использование юнит-тестов начинается при автоматическом тестировании ветки. В 2012 году в репозиторее было 15 тысяч юнит-тестов. Запускали их в один поток командой php unit. Написали простенький скрипт, который делил все тесты на одинаковые кучки и пытался запускать их параллельно. Это был не оптимальный по мнению Ильи подход, поскольку тесты шли по 40 и более минут. Если машины разработчиков были заняты другими тестами, то этот автоматический прогон мог идти "вечно". Запускать автоматические тесты по "резолву" это большая проблема. В результате тесты запускались вручную тестировщиками. Случались моменты, когда и разработчики разработчики запускали автотесты, но такие случаи были из разряда чудес.

  8. Как автоматически запустить 25 тысяч тестов, не ожидая программистов?

    В 2013 году в Badoo стало 25 тысяч тестов. Разработали утилиту "Пускалка", которая занимается равномерным распределением тестов по потокам. 25 тысяч тестов стали проходить по 5 минут, вместо 40 минут для 15 тысяч. Это позволило запилить фичу того, чтобы тесты запускались на задачки, как только они resolved и благодаря этому когда тестировщик приходил заниматься задачей у него в числе комментариев уже были результаты прохождения тестов.

  9. Что делать с 40 тысячами тестов и неудовлетворительным временем их выполнения?

    В 2014 году встала необходимость уменьшать test suite. В это время разрабатывали новый облачный скриптовый фреймворк, который позволил запускать тесты в облаке в несколько сотен потоков. Вместо пятнадцати наборов в каждом из которых содержится большая часть репозитория стали запускать тесты в несколько сотен потоков в каждом из которых присутствует ограниченное количество файлов и кода. Это уменьшило время прохождения сорока тысяч тестов до 2-3 минут.

  10. Как в Badoo организован процесс тестирования А/Б-тестов?

    На Badoo регулярно проводится огромное количество А/Б-тестов. Тестировать функционал А/Б-тестов всегда было головной болью, поскольку никогда не знаешь в какие группы попадет пользователь, которого ты только что зарегистрировал. Сейчас используется фреймворк для А/Б-тестирования User Split, который позволяет посмотреть все группы в которые входит пользователь, а во-вторых, руками положить интересующего пользователя в нужную группу, в комбинацию групп для воспроизведения сложных ситуаций.

Запись выступления "Развитие процессов тестирования в Badoo за три года" | Профиль Ильи на Badoo Tech.

results for ""

    No results matching ""