Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дмитрий Лихачев (Badoo)
РИФ 2016, Внедрение контроля качества в большом...
Transcript of РИФ 2016, Внедрение контроля качества в большом...
![Page 1: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/1.jpg)
Внедрение контроля качества в большом web-проекте
на примере Badoo
![Page 2: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/2.jpg)
Badoo - сайт знакомств с новыми людьми, крупнейшая интернет-компания Западной Европы.
• 300 000 000+ пользователей
• 190 стран
• 46 языков
Badoo в наши дни
![Page 3: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/3.jpg)
С технической точки зрения это
• 150+ разработчиков и 50+ QA инженеров
• 3 000 000+ строк кода
• 60000+ юнит-тестам
• 600+ selenium-тестам
• 2 ежедневных релиза
Badoo в наши дни
![Page 4: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/4.jpg)
Как это было?
Feature1Feature2
Feature3Bugfix1
Bugfix2
Разработка
trunk
commits
release releasesvn
![Page 5: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/5.jpg)
Переводы, тестирование и выкладка
svn
Staging
QA + Translation Production
Deploy
Как это было?
Devel
![Page 6: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/6.jpg)
Преимущества
Как это было?
![Page 7: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/7.jpg)
Преимущества
• Скорость обсуждения задачи
Как это было?
![Page 8: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/8.jpg)
Преимущества
• Скорость обсуждения задачи
• Скорость разработки
Как это было?
![Page 9: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/9.jpg)
Преимущества
• Скорость обсуждения задачи
• Скорость разработки
• Проверенные инструменты
Как это было?
![Page 10: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/10.jpg)
Преимущества
• Скорость обсуждения задачи
• Скорость разработки
• Проверенные инструменты
• Тесное общение
Как это было?
![Page 11: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/11.jpg)
Недостатки
Как это было?
![Page 12: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/12.jpg)
Недостатки
• Незавершенные задачи в выкладке
Как это было?
![Page 13: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/13.jpg)
Недостатки
• Незавершенные задачи в выкладке
• Тяжело отслеживать состояние кода
Как это было?
![Page 14: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/14.jpg)
Недостатки
• Незавершенные задачи в выкладке
• Тяжело отслеживать состояние кода
• Невозможно откатить задачу
Как это было?
![Page 15: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/15.jpg)
Недостатки
• Незавершенные задачи в выкладке
• Тяжело отслеживать состояние кода
• Невозможно откатить задачу
• Работа отделов волнообразно зависит от выкладки
Как это было?
![Page 16: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/16.jpg)
Еще недостатки
• Выкладка задач тормозится
Как это было?
![Page 17: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/17.jpg)
Еще недостатки
• Выкладка задач тормозится
• Выкладка 1-2 раза в неделю
Как это было?
![Page 18: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/18.jpg)
Еще недостатки
• Выкладка задач тормозится
• Выкладка 1-2 раза в неделю
• Тяжелый процесс выкладки
Как это было?
![Page 19: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/19.jpg)
Еще недостатки
• Выкладка задач тормозится
• Выкладка 1-2 раза в неделю
• Тяжелый процесс выкладки
• С ростом команды растут проблемы с качеством
Как это было?
![Page 20: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/20.jpg)
Глобальные требования
• Формализовать процесс разработки
![Page 21: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/21.jpg)
Глобальные требования
• Формализовать процесс разработки
• Внедрить контроль качества на всех этапах
![Page 22: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/22.jpg)
Глобальные требования
• Формализовать процесс разработки
• Внедрить контроль качества на всех этапах
• Внедрить автоматизированное тестирование
![Page 23: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/23.jpg)
Глобальные требования
• Формализовать процесс разработки
• Внедрить контроль качества на всех этапах
• Внедрить автоматизированное тестирование
• Не потерять в скорости разработки
![Page 24: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/24.jpg)
Этап первый: упрощаем разработку
Задача: спроектировать удобный процесс параллельной разработки?
![Page 25: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/25.jpg)
Этап первый: упрощаем разработку
Задача: спроектировать удобный процесс параллельной разработки
Решение: заменить svn на git, который позволяет удобно осуществлять разработку в собственной версии кода каждому разработчику
?
!
![Page 26: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/26.jpg)
master
build_2016_03_21_11am
SRV-10637_add_sf_support
build_2016_03_21_4pm
BD-1786_spp_in_spain B0-435_cs_improvements
release release
Этап первый: упрощаем разработку
git
![Page 27: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/27.jpg)
Проектируем и пробуем
Этап первый: упрощаем разработку
+
![Page 28: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/28.jpg)
Проектируем и пробуем
• Используем оба хранилища - и svn, и git
Этап первый: упрощаем разработку
+
![Page 29: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/29.jpg)
Проектируем и пробуем
• Используем оба хранилища - и svn, и git
• Синхронизация кода при помощи git svn
Этап первый: упрощаем разработку
+
![Page 30: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/30.jpg)
Проектируем и пробуем
• Используем оба хранилища - и svn, и git
• Синхронизация кода при помощи git svn
Переводим на новую схему одну из команд
Этап первый: упрощаем разработку
+
![Page 31: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/31.jpg)
Анализируем и дополняем
Этап первый: упрощаем разработку
+
![Page 32: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/32.jpg)
Анализируем и дополняем
• Базовая инструкция дополнена четкими шагами
Этап первый: упрощаем разработку
+
![Page 33: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/33.jpg)
Анализируем и дополняем
• Базовая инструкция дополнена четкими шагами
• Разработан прототип системы сборки релиза
Этап первый: упрощаем разработку
+
![Page 34: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/34.jpg)
Анализируем и дополняем
• Базовая инструкция дополнена четкими шагами
• Разработан прототип системы сборки релиза
Начинаем перевод остальных отделов
Этап первый: упрощаем разработку
+
![Page 35: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/35.jpg)
Переходим полностью
Этап первый: упрощаем разработку
+
![Page 36: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/36.jpg)
Переходим полностью
• Презентация об основах работы с git
Этап первый: упрощаем разработку
+
![Page 37: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/37.jpg)
Переходим полностью
• Презентация об основах работы с git
• Помощь в переходный период
Этап первый: упрощаем разработку
+
![Page 38: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/38.jpg)
Переходим полностью
• Презентация об основах работы с git
• Помощь в переходный период
• Специальная страничка в Confluence
Этап первый: упрощаем разработку
+
![Page 39: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/39.jpg)
Переходим полностью
• Презентация об основах работы с git
• Помощь в переходный период
• Специальная страничка в Confluence
Торжественное закрытие svn
Этап первый: упрощаем разработку
+
![Page 40: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/40.jpg)
Этап второй: unit-тесты
Задача: дать разработчику быстрый ответ о качестве кода на ранних этапах разработки?
![Page 41: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/41.jpg)
Этап второй: unit-тесты
Задача: дать разработчику быстрый ответ о качестве кода на ранних этапах разработки
Решение: unit-тесты, написанные самим разработчиком + регрессионные тесты, написанные коллегами ранее
?
!
![Page 42: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/42.jpg)
Внедрение культуры написания юнит-тестов
Этап второй: unit-тесты
+
![Page 43: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/43.jpg)
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
Этап второй: unit-тесты
+
![Page 44: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/44.jpg)
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
• Организация семинаров
Этап второй: unit-тесты
+
![Page 45: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/45.jpg)
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
• Организация семинаров
• Показательная демонстрация полезности
Этап второй: unit-тесты
+
![Page 46: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/46.jpg)
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
• Организация семинаров
• Показательная демонстрация полезности
• Поощрение первопроходцев
Этап второй: unit-тесты
+
![Page 47: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/47.jpg)
Стимулируем процесс
Этап второй: unit-тесты
+
![Page 48: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/48.jpg)
Стимулируем процесс
• Добавление инструментов
Этап второй: unit-тесты
+
![Page 49: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/49.jpg)
Стимулируем процесс
• Добавление инструментов
• Добавление обязательного прогона unit-тестов
Этап второй: unit-тесты
+
![Page 50: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/50.jpg)
Стимулируем процесс
• Добавление инструментов
• Добавление обязательного прогона unit-тестов
Как результат - резкий рост количества юнит-тестов: с пары десятков до более 3000.
Этап второй: unit-тесты
+
![Page 51: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/51.jpg)
Этап третий: code review
Задача: повысить читаемость кода, добавив процесс ревью кода и удобный интрумент для него
?
![Page 52: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/52.jpg)
Этап третий: code review
Задача: повысить читаемость кода, добавив процесс ревью кода и удобный интрумент для него
Решение: gitphp с надстройками для ревью и интеграцией с Jira
?
!
![Page 53: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/53.jpg)
Процесс - обязательный. Способ - вольный:
Этап третий: code review
+
![Page 54: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/54.jpg)
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
Этап третий: code review
+
![Page 55: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/55.jpg)
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
• code review - внутри группы
Этап третий: code review
+
![Page 56: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/56.jpg)
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
• code review - внутри группы
• задачи попадают в общую очередь на review
Этап третий: code review
+
![Page 57: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/57.jpg)
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
• code review - внутри группы
• задачи попадают в общую очередь на review
• review проводят от каждого отдела
Этап третий: code review
+
![Page 58: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/58.jpg)
Этап четвертый: автоматизация процессов
Задача: ускорить выкладку новых фич, не потеряв в качестве?
![Page 59: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/59.jpg)
Этап четвертый: автоматизация процессов
Задача: ускорить выкладку новых фич, не потеряв в качестве
Решение: специальная команда release-инженеров для автоматизации сборки и выкладки билда
?
!
![Page 60: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/60.jpg)
Внедрение автоматизации
Автовыкладка на стейджинг
Code freeze
git hooks
AIDA
CI + CDSelenium
Шоты
Этап четвертый: автоматизация процессов
![Page 61: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/61.jpg)
Подзадача: автоматизировать часть code review
Этап четвертый: автоматизация процессов
?
![Page 62: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/62.jpg)
Подзадача: автоматизировать часть code review
Решение: добавляются новые git-хуки, использующие в том числе анализаторы кода
Этап четвертый: автоматизация процессов
?
!
![Page 63: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/63.jpg)
Что начинаем проверять+
Этап четвертый: автоматизация процессов
![Page 64: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/64.jpg)
Что начинаем проверять
• Каждая ветка начинается с номера задачи
+
Этап четвертый: автоматизация процессов
![Page 65: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/65.jpg)
Что начинаем проверять
• Каждая ветка начинается с номера задачи
• Наличие сопровождающего для кода
+
Этап четвертый: автоматизация процессов
![Page 66: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/66.jpg)
Что начинаем проверять
• Каждая ветка начинается с номера задачи
• Наличие сопровождающего для кода
• Состояние задачи
+
Этап четвертый: автоматизация процессов
![Page 67: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/67.jpg)
Что начинаем проверять
• Каждая ветка начинается с номера задачи
• Наличие сопровождающего для кода
• Состояние задачи
• Соответствие кода принятым стандартам
+
Этап четвертый: автоматизация процессов
![Page 68: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/68.jpg)
Подзадача: разумно организовать сборку билда
Этап четвертый: автоматизация процессов
?
![Page 69: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/69.jpg)
Подзадача: разумно организовать сборку билда
Решение: уменьшаем человеческий фактор в процессе сборки
Этап четвертый: автоматизация процессов
?
!
![Page 70: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/70.jpg)
Разгружаем релиз-инженеров+
Этап четвертый: автоматизация процессов
![Page 71: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/71.jpg)
Разгружаем релиз-инженеров
• В помощь написана AIDA
+
Этап четвертый: автоматизация процессов
![Page 72: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/72.jpg)
Разгружаем релиз-инженеров
• В помощь написана AIDA
• Автомерж каждые 5 минут
+
Этап четвертый: автоматизация процессов
![Page 73: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/73.jpg)
Разгружаем релиз-инженеров
• В помощь написана AIDA
• Автомерж каждые 5 минут
• Вводится code freeze перед выкладками
+
Этап четвертый: автоматизация процессов
![Page 74: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/74.jpg)
Разгружаем релиз-инженеров
• В помощь написана AIDA
• Автомерж каждые 5 минут
• Вводится code freeze перед выкладками
Два релиза в день!
+
Этап четвертый: автоматизация процессов
![Page 75: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/75.jpg)
Подзадача: ускорить unit-тесты (написано уже более 25000!)
Этап четвертый: автоматизация процессов
?
![Page 76: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/76.jpg)
Подзадача: ускорить unit-тесты (написано уже более 25000!)
Решение: разделение unit-тестов на группы для асинхронного прогона на нескольких серверах
Этап четвертый: автоматизация процессов
?
!
![Page 77: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/77.jpg)
Этап четвертый: автоматизация процессов
Common suite
+
![Page 78: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/78.jpg)
suite 1
suite 3
suite 2
suite 4suite 5
suite 6
Этап четвертый: автоматизация процессов
Common suite
+
![Page 79: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/79.jpg)
suite 1
suite 3
suite 2
suite 4suite 5
suite 6
Cloud computing
Этап четвертый: автоматизация процессов
Common suite
+
![Page 80: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/80.jpg)
Подзадача: упростить повторные проверки сложных сценариев
Этап четвертый: автоматизация процессов
?
![Page 81: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/81.jpg)
Подзадача: упростить повторные проверки сложных сценариев
Решение: подключить к написанию selenium-тестов всех QA-инженеров
Этап четвертый: автоматизация процессов
?
!
![Page 82: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/82.jpg)
Реализуем
Этап четвертый: автоматизация процессов
+
![Page 83: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/83.jpg)
Реализуем
• Команда автоматизаторов тестов
Этап четвертый: автоматизация процессов
+
![Page 84: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/84.jpg)
Реализуем
• Команда автоматизаторов тестов
• Цикл cеминаров
Этап четвертый: автоматизация процессов
+
![Page 85: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/85.jpg)
Реализуем
• Команда автоматизаторов тестов
• Цикл cеминаров
• Когда можно и нужно писать selenium-тесты
Этап четвертый: автоматизация процессов
+
![Page 86: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/86.jpg)
Реализуем
• Команда автоматизаторов тестов
• Цикл cеминаров
• Когда можно и нужно писать selenium-тесты
Участвует каждый QA-инженер!
Этап четвертый: автоматизация процессов
+
![Page 87: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/87.jpg)
Подзадача: уметь проверять задачу на боевых данных до выкладки.
Этап четвертый: автоматизация процессов
?
![Page 88: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/88.jpg)
Подзадача: уметь проверять задачу на боевых данных до выкладки.
Решение: шоты - создание “стейджинга” для отдельной ветки (бонус - генерация шаблонов).
Этап четвертый: автоматизация процессов
?
!
![Page 89: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/89.jpg)
Подзадача: дополнить автоматизированные проверки составных задач
Этап четвертый: автоматизация процессов
?
![Page 90: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/90.jpg)
Подзадача: дополнить автоматизированные проверки составных задач
Решение: AIDA приобретает дополнительные возможности
Этап четвертый: автоматизация процессов
?
!
![Page 91: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/91.jpg)
Дополнительные возможности
Этап четвертый: автоматизация процессов
+
![Page 92: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/92.jpg)
Дополнительные возможности
• Проверка дополнительных маркеров
Этап четвертый: автоматизация процессов
+
![Page 93: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/93.jpg)
Дополнительные возможности
• Проверка дополнительных маркеров
• Запуск smoke-тестов
Этап четвертый: автоматизация процессов
+
![Page 94: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/94.jpg)
Дополнительные возможности
• Проверка дополнительных маркеров
• Запуск smoke-тестов
• Пересборка билда при откате проблемной задачи
Этап четвертый: автоматизация процессов
+
![Page 95: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/95.jpg)
Дополнительные возможности
• Проверка дополнительных маркеров
• Запуск smoke-тестов
• Пересборка билда при откате проблемной задачи
• Нотификации разработчику и QA-инженеру
Этап четвертый: автоматизация процессов
+
![Page 96: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/96.jpg)
Подзадача: уметь быстро определять и решать проблемы при выкладке
Этап четвертый: автоматизация процессов
?
![Page 97: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/97.jpg)
Подзадача: уметь быстро определять и решать проблемы при выкладке
Решение: расширение мониторинга и карантин на завершение выкладки
Этап четвертый: автоматизация процессов
?
!
![Page 98: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/98.jpg)
Контроль выкладки
Этап четвертый: автоматизация процессов
+
![Page 99: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/99.jpg)
Контроль выкладки
• Асинхронная выкладка, атомарное переключение
Этап четвертый: автоматизация процессов
+
![Page 100: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/100.jpg)
Контроль выкладки
• Асинхронная выкладка, атомарное переключение
• Мониторинг ключевых показателей
Этап четвертый: автоматизация процессов
+
![Page 101: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/101.jpg)
Контроль выкладки
• Асинхронная выкладка, атомарное переключение
• Мониторинг ключевых показателей
• Быстрый “откат” при проблемах
Этап четвертый: автоматизация процессов
+
![Page 102: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/102.jpg)
• Набирать высококлассных QA-инженеров
• Подобные задачи требуют времени
• Искать пути оптимизации
Что же ещё?
![Page 103: РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo](https://reader038.fdocuments.net/reader038/viewer/2022103010/58e9a2a91a28ab9c318b5037/html5/thumbnails/103.jpg)
Александр Свинцов [email protected]
Badoo Development
tech.badoo.com habrahabr.ru/company/badoo/
Спасибо за внимание!
?