Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Как мы приручили демона или процесс тестирования демонов в Badoo

2,188 views

Published on

Доклад Антона Волкова на конференции SQA Days-19, 20-21 мая 2016 г., Санкт-Петербург

Published in: Education
  • Be the first to comment

  • Be the first to like this

Как мы приручили демона или процесс тестирования демонов в Badoo

  1. 1. Как мы приручили демона или процесс тестирования демонов в Badoo
  2. 2. badoo - > 300 млн. пользователей
  3. 3. badoo - > 300 млн. пользователей - 46 языков
  4. 4. badoo - > 300 млн. пользователей - 46 языков - 190 стран
  5. 5. badoo - > 300 млн. пользователей - 46 языков - 190 стран С технической точки зрения это: - 3 000 000+ строк кода
  6. 6. badoo - > 300 млн. пользователей - 46 языков - 190 стран С технической точки зрения это: - 3 000 000+ строк кода - 3 000+ серверов
  7. 7. badoo - > 300 млн. пользователей - 46 языков - 190 стран С технической точки зрения это: - 3 000 000+ строк кода - 3 000+ серверов - 25+ демонов
  8. 8. badoo - > 300 млн. пользователей - 46 языков - 190 стран С технической точки зрения это: - 3 000 000+ строк кода - 3 000+ серверов - 25+ демонов - 8500+ тестов демонов
  9. 9. Роль демонов в badoo Что такое демон?
  10. 10. Роль демонов в badoo Что такое демон? бинарь
  11. 11. Роль демонов в badoo Что такое демон? бинарь конфиг
  12. 12. Роль демонов в badoo Что такое демон? бинарь конфиг расширения
  13. 13. Роль демонов в badoo Что такое демон? бинарь конфиг расширения снапшоты
  14. 14. Роль демонов в badoo Форматы общения с демоном: - текст
  15. 15. Роль демонов в badoo Форматы общения с демоном: - текст - protobuf
  16. 16. Роль демонов в badoo Форматы общения с демоном: - текст - protobuf - json
  17. 17. Роль демонов в badoo Режимы работы демонов: - multi-shards - multi-nodes
  18. 18. Роль демонов в badoo multi-shards PID-1 PID-2 <...> PID-N
  19. 19. Роль демонов в badoo multi-nodes PID-(M+1) PID-(M+2) <...> PID-1 PID-2 <...> PID-MPID-N
  20. 20. Роль демонов в badoo - Encounters
  21. 21. Роль демонов в badoo - Encounters - Asearch
  22. 22. Роль демонов в badoo - Encounters - Asearch - Bumpd
  23. 23. Роль демонов в badoo - Encounters - Asearch - Bumpd - GeoBorder
  24. 24. Роль демонов в badoo - Encounters - Asearch - Bumpd - GeoBorder - CT 1111000110 1001010010 1100000110 1110000000 0000000001
  25. 25. Роль демонов в badoo - Encounters - Asearch - Bumpd - GeoBorder - CT - Trustd-Loader
  26. 26. Роль демонов в badoo
  27. 27. Роль демонов в badoo
  28. 28. Процесс разработки и тестирования
  29. 29. Процесс разработки и тестирования
  30. 30. Процесс разработки и тестирования
  31. 31. Процесс разработки и тестирования OPEN
  32. 32. Процесс разработки и тестирования OPEN IN PROGRESS
  33. 33. Процесс разработки и тестирования OPEN IN PROGRESS
  34. 34. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW
  35. 35. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA
  36. 36. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA
  37. 37. Процесс разработки и тестирования - Демона не тестировали - Только внешние проверки
  38. 38. Процесс разработки и тестирования - Демона не тестировали - Только внешние проверки
  39. 39. Процесс разработки и тестирования - black-box
  40. 40. Процесс разработки и тестирования - black-box - конфигурационное тестирование
  41. 41. Процесс разработки и тестирования - black-box - конфигурационное тестирование - интеграционное тестирование
  42. 42. Процесс разработки и тестирования - black-box - конфигурационное тестирование - интеграционное тестирование - системное тестирование
  43. 43. Процесс разработки и тестирования - black-box - конфигурационное тестирование - интеграционное тестирование - системное тестирование - фаззинг
  44. 44. Процесс разработки и тестирования - Подготовка
  45. 45. Процесс разработки и тестирования - Подготовка - Тест
  46. 46. Процесс разработки и тестирования - Подготовка - Тест - Завершение
  47. 47. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA
  48. 48. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA Regression Tests
  49. 49. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA New Tests Regression Tests
  50. 50. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA TO MERGE New Tests Regression Tests
  51. 51. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA IN BUILD TO MERGE New Tests Regression Tests
  52. 52. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA IN BUILD - OK IN BUILD TO MERGE New Tests Regression Tests
  53. 53. Процесс разработки и тестирования OPEN IN PROGRESS ON REVIEW IN BRANCH QA IN BUILD - OK IN BUILD TO MERGE New Tests Regression Tests ON PRODUCTION
  54. 54. Процесс разработки и тестирования - Режимы - Настройки
  55. 55. Процесс разработки и тестирования - Режимы - debug
  56. 56. Процесс разработки и тестирования - Режимы - debug - docker
  57. 57. Процесс разработки и тестирования - Режимы - debug - docker - valgrind - helgrind
  58. 58. Процесс разработки и тестирования - Режимы - debug - docker - valgrind - helgrind - scripts
  59. 59. Процесс разработки и тестирования - Режимы - debug - docker - valgrind - helgrind - scripts - showcmd
  60. 60. Процесс разработки и тестирования - Режимы - debug - docker - valgrind - helgrind - scripts - showcmd - keep-daemon
  61. 61. Процесс разработки и тестирования - Режимы - debug - docker - valgrind - helgrind - scripts - showcmd - keep-daemon - use-launched-daemon
  62. 62. Процесс разработки и тестирования - Настройки - host - port
  63. 63. Процесс разработки и тестирования - Настройки - host - port - system user
  64. 64. Процесс разработки и тестирования - Настройки - host - port - system user - paths (bin, conf, proto/so, etc.)
  65. 65. Docker
  66. 66. Docker. Изолированность 1 машина для тестирования демонов
  67. 67. Docker. Изолированность 1 машина для тестирования демонов
  68. 68. Docker. Изолированность 1 машина для тестирования демонов
  69. 69. Docker. Изолированность 1 машина для тестирования демонов много демонов
  70. 70. Docker. Изолированность пример лога
  71. 71. Docker. Изолированность
  72. 72. Docker. Изолированность $ docker port <container_name> <internal_port>
  73. 73. Docker. Интеграционное тестирование 1111000110 1001010010 1100000110 1110000000 0000000001
  74. 74. Utils. Logger - действия до запуска демона
  75. 75. Utils. Logger - действия до запуска демона - действия после остановки демона
  76. 76. Utils. Logger - действия до запуска демона - действия после остановки демона
  77. 77. Utils. Logger - действия до запуска демона - действия после остановки демона чт слчлс
  78. 78. Utils. Logger - действия до запуска демона - действия после остановки демона
  79. 79. Utils. Logger - Логирование исполняемых команд
  80. 80. Utils. Logger - Логирование исполняемых команд - Логирование взаимодействия с демоном
  81. 81. Utils. Logger - Логирование исполняемых команд - Логирование взаимодействия с демоном - Логирование работы с БД
  82. 82. Utils. Scripts пример скрипта
  83. 83. Utils. Scripts - php script.php - Данные, что и при фейле - Артефакты в ТС
  84. 84. Utils. Cleaners
  85. 85. Utils. Cleaners
  86. 86. Utils. Cleaners отслеживаются брошенные демона
  87. 87. Utils. Cleaners отслеживаются брошенные демона отслеживаются брошенные контейнеры
  88. 88. Utils. Cleaners отслеживаются брошенные демона отслеживаются брошенные контейнеры удаляются старые рабочие папки
  89. 89. Utils. Cleaners отслеживаются брошенные демона отслеживаются брошенные контейнеры удаляются старые рабочие папки чистится БД
  90. 90. Utils. Failures stats
  91. 91. Utils. Failures stats
  92. 92. Utils. Documentation
  93. 93. Utils. Documentation
  94. 94. Резюмируя - Обнаруживать проблему на самых ранних этапах
  95. 95. Резюмируя - Обнаруживать проблему на самых ранних этапах - Полноценный цикл CI
  96. 96. Резюмируя - Обнаруживать проблему на самых ранних этапах - Полноценный цикл CI - Гибкий фреймворк и утилиты - Быстрое добавление новых тестов - Легкое воспроизведение проблемы
  97. 97. Спасибо за внимание Антон Волков advolkov1@gmail.com Badoo Development tech.badoo.com habrahabr.ru/company/badoo/ bit.ly/2058FhM QAApi

×