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.
World Wide биллинг глазами QA 
Кудинов Илья, Badoo
Тестирование биллинга — 
это не (очень) страшно!
8 шагов к успешному 
тестированию биллинга 
● ??? 
● ??? 
● ??? 
● ??? 
● ??? 
● ??? 
● ??? 
● ???
8 шагов к успешному 
тестированию биллинга 
● Не боимся! 
● ??? 
● ??? 
● ??? 
● ??? 
● ??? 
● ??? 
● ???
Немного о Badoo 
● >220 млн пользователей 
● >1.5 млн пользователей онлайн в пике 
● Приложения для всех популярных платфо...
Биллинг Badoo 
● Платежи во всех странах планеты 
● ~30 активных интеграций агрегаторов (за всё 
время — больше 100) 
● ~3...
Billing cluster 
Billing API 
Скриптовые 
машины 
CreditCard 
server 
Облачные 
сервисы 
Платёжные 
системы
Задачи разработки биллинга 
● Новый функционал
Задачи разработки биллинга 
● Новый функционал 
● Новые интеграции
Задачи разработки биллинга 
● Новый функционал 
● Новые интеграции 
● Актуализация интеграций
Задачи разработки биллинга 
● Новый функционал 
● Новые интеграции 
● Актуализация интеграций 
● Исправление багов
Задачи разработки биллинга 
● Новый функционал 
● Новые интеграции 
● Актуализация интеграций 
● Исправление багов 
● Опти...
Задачи разработки биллинга 
● Новый функционал 
● Новые интеграции 
● Актуализация интеграций 
● Исправление багов 
● Опти...
Задачи разработки биллинга 
● Новый функционал 
● Новые интеграции 
● Актуализация интеграций 
● Исправление багов 
● Опти...
Что тестируем? 
Пользовательские 
интерфейсы 
Веб-визарды 
Мобильные 
визарды 
Окна настроек
Что тестируем? 
Пользовательские 
интерфейсы 
Веб-визарды 
Мобильные 
визарды 
Окна настроек 
Админка 
конфигуратор 
билли...
Что тестируем? 
Пользовательские 
интерфейсы 
Веб-визарды 
Мобильные 
визарды 
Окна настроек 
Серверная «внутрянка» 
Логик...
Пользовательские интерфейсы
Пользовательские интерфейсы 
● Корректное отображение платёжных форм
Пользовательские интерфейсы 
● Корректное отображение платёжных форм 
● Правильные цены
Пользовательские интерфейсы 
● Корректное отображение платёжных форм 
● Правильные цены 
● Условия оказания сервиса
Пользовательские интерфейсы 
● Корректное отображение платёжных форм 
● Правильные цены 
● Условия оказания сервиса 
● Поп...
Пользовательские интерфейсы 
● Корректное отображение платёжных форм 
● Правильные цены 
● Условия оказания сервиса 
● Поп...
Пользовательские интерфейсы
Песочницы 
● Тестовое окружение 
● Тестовые данные 
● Собственные тестовые заглушки 
● Но не всегда :(
Мобильные визарды 
● Недостаточно менять код биллинга
Мобильные визарды 
● Недостаточно менять код биллинга 
● Специализированные методы платежей
Мобильные визарды 
● Недостаточно менять код биллинга 
● Специализированные методы платежей 
● Не всегда удобные песочницы
Мобильные визарды 
● Недостаточно менять код биллинга 
● Специализированные методы платежей 
● Не всегда удобные песочницы...
Мобильные визарды 
● Недостаточно менять код биллинга 
● Специализированные методы платежей 
● Не всегда удобные песочницы...
Требования регуляторов 
● Дизайн платёжных окон 
● Формулировки для условий 
● Время для проведения платежей
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно! 
● ??? 
● ??? 
● ??? 
● ??...
Работа с внешними сервисами 
● Не всегда ошибки на нашей стороне
Работа с внешними сервисами 
● Не всегда ошибки на нашей стороне 
● Партнёры иногда работают не быстро
Работа с внешними сервисами 
● Не всегда ошибки на нашей стороне 
● Партнёры иногда работают не быстро 
● Не всегда уведом...
Работа с внешними сервисами 
● Не всегда ошибки на нашей стороне 
● Партнёры иногда работают не быстро 
● Не всегда уведом...
Работа с внешними сервисами 
● Не всегда ошибки на нашей стороне 
● Партнёры иногда работают не быстро 
● Не всегда уведом...
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно 
● Не верим в идеальность а...
Админка 
● Инструменты управления подписками 
пользователей
Админка 
● Инструменты управления подписками 
пользователей 
● Конфигуратор биллинга 
– Цены и доступность сервисов и мето...
Админка 
● Инструменты управления подписками 
пользователей 
● Конфигуратор биллинга 
– Цены и доступность сервисов и мето...
Routing Platform
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно 
● Не верим в идеальность а...
Самый сок — внутренняя магия
Внутренняя логика платежей
Внутренняя логика платежей 
● Обращения к платёжной системе
Внутренняя логика платежей 
● Обращения к платёжной системе 
● Нотификации от платёжной системы
Внутренняя логика платежей 
● Обращения к платёжной системе 
● Нотификации от платёжной системы 
● Оказание услуг
Внутренняя логика платежей 
● Обращения к платёжной системе 
● Нотификации от платёжной системы 
● Оказание услуг 
● Обнов...
Внутренняя логика платежей 
● Обращения к платёжной системе 
● Нотификации от платёжной системы 
● Оказание услуг 
● Обнов...
Внутренняя логика платежей 
● Обращения к платёжной системе 
● Нотификации от платёжной системы 
● Оказание услуг 
● Обнов...
Внутренняя логика платежей 
● Обращения к платёжной системе 
● Нотификации от платёжной системы 
● Оказание услуг 
● Обнов...
Внутренняя логика платежей 
● ЧИТАЕМ КОД!
Внутренняя логика платежей 
● ЧИТАЕМ КОД! 
● Пишем интеграционные тесты
Внутренняя логика платежей 
● ЧИТАЕМ КОД! 
● Пишем интеграционные тесты 
● Отключаем обращения к агрегаторам
Внутренняя логика платежей 
● ЧИТАЕМ КОД! 
● Пишем интеграционные тесты 
● Отключаем обращения к агрегаторам 
● Эмулируем ...
Внутренняя логика платежей 
● ЧИТАЕМ КОД! 
● Пишем интеграционные тесты 
● Отключаем обращения к агрегаторам 
● Эмулируем ...
Внутренняя логика платежей 
● ЧИТАЕМ КОД! 
● Пишем интеграционные тесты 
● Отключаем обращения к агрегаторам 
● Эмулируем ...
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно 
● Не верим в идеальность а...
Занимательный дебаг
Занимательный дебаг 
● Добавление дебаг-вывода
Занимательный дебаг 
● Добавление дебаг-вывода 
● Чтение логов и графиков
Занимательный дебаг 
● Добавление дебаг-вывода 
● Чтение логов и графиков 
● Контроль данных в БД
Занимательный дебаг 
● Добавление дебаг-вывода 
● Чтение логов и графиков 
● Контроль данных в БД 
● Сборка «контрольных» ...
Занимательный дебаг 
● Добавление дебаг-вывода 
● Чтение логов и графиков 
● Контроль данных в БД 
● Сборка «контрольных» ...
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно 
● Не верим в идеальность а...
Авто-тесты
Авто-тесты 
Модульные 
Интеграционные 
Системные
Авто-тесты 
● Запуск руками при разработке
Авто-тесты 
● Запуск руками при разработке 
● Автоматический запуск по готовности задачи
Авто-тесты 
● Запуск руками при разработке 
● Автоматический запуск по готовности задачи 
● Запуск руками при тестировании
Авто-тесты 
● Запуск руками при разработке 
● Автоматический запуск по готовности задачи 
● Запуск руками при тестировании...
Авто-тесты 
● Запуск руками при разработке 
● Автоматический запуск по готовности задачи 
● Запуск руками при тестировании...
Ускорение автотестов 
● Облачная пускалка 
● Селениум-ферма 
● QAAPI 
● Много агентов TeamCity
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно 
● Не верим в идеальность а...
Мониторинг 
● Контроль над состоянием системы 
● Проверка задач после релиза 
● Быстрое обнаружение аномалий
Метрики мониторинга 
● Логирование ошибок
Метрики мониторинга 
● Логирование ошибок 
● Дебаг для исследования аномалий
Метрики мониторинга 
● Логирование ошибок 
● Дебаг для исследования аномалий 
● Графики 
– Производительность и нагрузка 
...
Метрики мониторинга 
● Логирование ошибок 
● Дебаг для исследования аномалий 
● Графики 
– Производительность и нагрузка 
...
RRDtool
Splunk
BVM v2 
● Автоматическая система анализа данных 
● Наблюдение за всеми способами платежей 
● Реагирует на новые аномалии 
...
Изучение аномалий
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно 
● Не верим в идеальность а...
8 шагов к успешному 
тестированию биллинга 
● Не боимся 
● Тестируем платежи максимально полно 
● Не верим в идеальность а...
Заключение 
BBaaddoooo DDeevveellooppmmeenntt 
http://vk.com/badoocom 
http://fb.com/BadooMoscow 
http://habrahabr.ru/comp...
Upcoming SlideShare
Loading in …5
×

Worldwide биллинг Badoo глазами QA

947 views

Published on

Презентация Ильи Кудинова на SQA Days-16
14-15 ноября 2014, Санкт-Петербург, Россия
www.sqadays.com

Published in: Education
  • Be the first to comment

Worldwide биллинг Badoo глазами QA

  1. 1. World Wide биллинг глазами QA Кудинов Илья, Badoo
  2. 2. Тестирование биллинга — это не (очень) страшно!
  3. 3. 8 шагов к успешному тестированию биллинга ● ??? ● ??? ● ??? ● ??? ● ??? ● ??? ● ??? ● ???
  4. 4. 8 шагов к успешному тестированию биллинга ● Не боимся! ● ??? ● ??? ● ??? ● ??? ● ??? ● ??? ● ???
  5. 5. Немного о Badoo ● >220 млн пользователей ● >1.5 млн пользователей онлайн в пике ● Приложения для всех популярных платформ ● >140 разработчиков, >30 QA-инженеров ● 2 релиза в день ● ~30 задач в релизе
  6. 6. Биллинг Badoo ● Платежи во всех странах планеты ● ~30 активных интеграций агрегаторов (за всё время — больше 100) ● ~300 обращений в секунду ● 9 разработчиков ● 3 QA инженера
  7. 7. Billing cluster Billing API Скриптовые машины CreditCard server Облачные сервисы Платёжные системы
  8. 8. Задачи разработки биллинга ● Новый функционал
  9. 9. Задачи разработки биллинга ● Новый функционал ● Новые интеграции
  10. 10. Задачи разработки биллинга ● Новый функционал ● Новые интеграции ● Актуализация интеграций
  11. 11. Задачи разработки биллинга ● Новый функционал ● Новые интеграции ● Актуализация интеграций ● Исправление багов
  12. 12. Задачи разработки биллинга ● Новый функционал ● Новые интеграции ● Актуализация интеграций ● Исправление багов ● Оптимизация
  13. 13. Задачи разработки биллинга ● Новый функционал ● Новые интеграции ● Актуализация интеграций ● Исправление багов ● Оптимизация ● Решение проблем технической поддержки
  14. 14. Задачи разработки биллинга ● Новый функционал ● Новые интеграции ● Актуализация интеграций ● Исправление багов ● Оптимизация ● Решение проблем технической поддержки ● Технический долг
  15. 15. Что тестируем? Пользовательские интерфейсы Веб-визарды Мобильные визарды Окна настроек
  16. 16. Что тестируем? Пользовательские интерфейсы Веб-визарды Мобильные визарды Окна настроек Админка конфигуратор биллинга Инструменты для техподдержки и тестирования
  17. 17. Что тестируем? Пользовательские интерфейсы Веб-визарды Мобильные визарды Окна настроек Серверная «внутрянка» Логика платежей Отложенные события Очереди и Оказание услуг Админка конфигуратор биллинга Инструменты для техподдержки и тестирования
  18. 18. Пользовательские интерфейсы
  19. 19. Пользовательские интерфейсы ● Корректное отображение платёжных форм
  20. 20. Пользовательские интерфейсы ● Корректное отображение платёжных форм ● Правильные цены
  21. 21. Пользовательские интерфейсы ● Корректное отображение платёжных форм ● Правильные цены ● Условия оказания сервиса
  22. 22. Пользовательские интерфейсы ● Корректное отображение платёжных форм ● Правильные цены ● Условия оказания сервиса ● Попапы с сообщениями об успешной оплате или об ошибке
  23. 23. Пользовательские интерфейсы ● Корректное отображение платёжных форм ● Правильные цены ● Условия оказания сервиса ● Попапы с сообщениями об успешной оплате или об ошибке ● Соответствие требованиям регуляторов
  24. 24. Пользовательские интерфейсы
  25. 25. Песочницы ● Тестовое окружение ● Тестовые данные ● Собственные тестовые заглушки ● Но не всегда :(
  26. 26. Мобильные визарды ● Недостаточно менять код биллинга
  27. 27. Мобильные визарды ● Недостаточно менять код биллинга ● Специализированные методы платежей
  28. 28. Мобильные визарды ● Недостаточно менять код биллинга ● Специализированные методы платежей ● Не всегда удобные песочницы
  29. 29. Мобильные визарды ● Недостаточно менять код биллинга ● Специализированные методы платежей ● Не всегда удобные песочницы ● Ошибки не только на нашей стороне
  30. 30. Мобильные визарды ● Недостаточно менять код биллинга ● Специализированные методы платежей ● Не всегда удобные песочницы ● Ошибки не только на нашей стороне ● Определённая зависимость от девайса
  31. 31. Требования регуляторов ● Дизайн платёжных окон ● Формулировки для условий ● Время для проведения платежей
  32. 32. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно! ● ??? ● ??? ● ??? ● ??? ● ??? ● ???
  33. 33. Работа с внешними сервисами ● Не всегда ошибки на нашей стороне
  34. 34. Работа с внешними сервисами ● Не всегда ошибки на нашей стороне ● Партнёры иногда работают не быстро
  35. 35. Работа с внешними сервисами ● Не всегда ошибки на нашей стороне ● Партнёры иногда работают не быстро ● Не всегда уведомляют об изменениях
  36. 36. Работа с внешними сервисами ● Не всегда ошибки на нашей стороне ● Партнёры иногда работают не быстро ● Не всегда уведомляют об изменениях ● Документация может быть неполной или некорректной
  37. 37. Работа с внешними сервисами ● Не всегда ошибки на нашей стороне ● Партнёры иногда работают не быстро ● Не всегда уведомляют об изменениях ● Документация может быть неполной или некорректной ● Иногда выгоднее временно отключить, чем пытаться править :(
  38. 38. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно ● Не верим в идеальность агрегаторов! ● ??? ● ??? ● ??? ● ??? ● ???
  39. 39. Админка ● Инструменты управления подписками пользователей
  40. 40. Админка ● Инструменты управления подписками пользователей ● Конфигуратор биллинга – Цены и доступность сервисов и методов платежей – Настройки для разных flow и приложений – A/B тестирование
  41. 41. Админка ● Инструменты управления подписками пользователей ● Конфигуратор биллинга – Цены и доступность сервисов и методов платежей – Настройки для разных flow и приложений – A/B тестирование ● Промо-акции
  42. 42. Routing Platform
  43. 43. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно ● Не верим в идеальность агрегаторов ● Тестируем админку! ● ??? ● ??? ● ??? ● ???
  44. 44. Самый сок — внутренняя магия
  45. 45. Внутренняя логика платежей
  46. 46. Внутренняя логика платежей ● Обращения к платёжной системе
  47. 47. Внутренняя логика платежей ● Обращения к платёжной системе ● Нотификации от платёжной системы
  48. 48. Внутренняя логика платежей ● Обращения к платёжной системе ● Нотификации от платёжной системы ● Оказание услуг
  49. 49. Внутренняя логика платежей ● Обращения к платёжной системе ● Нотификации от платёжной системы ● Оказание услуг ● Обновление подписок
  50. 50. Внутренняя логика платежей ● Обращения к платёжной системе ● Нотификации от платёжной системы ● Оказание услуг ● Обновление подписок ● Платежи по имеющимся деталям
  51. 51. Внутренняя логика платежей ● Обращения к платёжной системе ● Нотификации от платёжной системы ● Оказание услуг ● Обновление подписок ● Платежи по имеющимся деталям ● Откат операции в случае ошибки
  52. 52. Внутренняя логика платежей ● Обращения к платёжной системе ● Нотификации от платёжной системы ● Оказание услуг ● Обновление подписок ● Платежи по имеющимся деталям ● Откат операции в случае ошибки ● And on and on and on and on...
  53. 53. Внутренняя логика платежей ● ЧИТАЕМ КОД!
  54. 54. Внутренняя логика платежей ● ЧИТАЕМ КОД! ● Пишем интеграционные тесты
  55. 55. Внутренняя логика платежей ● ЧИТАЕМ КОД! ● Пишем интеграционные тесты ● Отключаем обращения к агрегаторам
  56. 56. Внутренняя логика платежей ● ЧИТАЕМ КОД! ● Пишем интеграционные тесты ● Отключаем обращения к агрегаторам ● Эмулируем нотификации
  57. 57. Внутренняя логика платежей ● ЧИТАЕМ КОД! ● Пишем интеграционные тесты ● Отключаем обращения к агрегаторам ● Эмулируем нотификации ● Правим базы данных руками
  58. 58. Внутренняя логика платежей ● ЧИТАЕМ КОД! ● Пишем интеграционные тесты ● Отключаем обращения к агрегаторам ● Эмулируем нотификации ● Правим базы данных руками ● QAAPI!
  59. 59. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно ● Не верим в идеальность агрегаторов ● Тестируем админку ● С готовностью лезем в дебри! ● ??? ● ??? ● ???
  60. 60. Занимательный дебаг
  61. 61. Занимательный дебаг ● Добавление дебаг-вывода
  62. 62. Занимательный дебаг ● Добавление дебаг-вывода ● Чтение логов и графиков
  63. 63. Занимательный дебаг ● Добавление дебаг-вывода ● Чтение логов и графиков ● Контроль данных в БД
  64. 64. Занимательный дебаг ● Добавление дебаг-вывода ● Чтение логов и графиков ● Контроль данных в БД ● Сборка «контрольных» и «тестовых» приложений
  65. 65. Занимательный дебаг ● Добавление дебаг-вывода ● Чтение логов и графиков ● Контроль данных в БД ● Сборка «контрольных» и «тестовых» приложений ● Много мата
  66. 66. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно ● Не верим в идеальность агрегаторов ● Тестируем админку ● С готовностью лезем в дебри ● Общаемся с разработчиками! ● ??? ● ???
  67. 67. Авто-тесты
  68. 68. Авто-тесты Модульные Интеграционные Системные
  69. 69. Авто-тесты ● Запуск руками при разработке
  70. 70. Авто-тесты ● Запуск руками при разработке ● Автоматический запуск по готовности задачи
  71. 71. Авто-тесты ● Запуск руками при разработке ● Автоматический запуск по готовности задачи ● Запуск руками при тестировании
  72. 72. Авто-тесты ● Запуск руками при разработке ● Автоматический запуск по готовности задачи ● Запуск руками при тестировании ● Автоматический запуск при сборке билда
  73. 73. Авто-тесты ● Запуск руками при разработке ● Автоматический запуск по готовности задачи ● Запуск руками при тестировании ● Автоматический запуск при сборке билда ● Регулярный автоматический прогон на стейджинге
  74. 74. Ускорение автотестов ● Облачная пускалка ● Селениум-ферма ● QAAPI ● Много агентов TeamCity
  75. 75. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно ● Не верим в идеальность агрегаторов ● Тестируем админку ● С готовностью лезем в дебри ● Общаемся с разработчиками ● Пишем и гоняем тесты! ● ???
  76. 76. Мониторинг ● Контроль над состоянием системы ● Проверка задач после релиза ● Быстрое обнаружение аномалий
  77. 77. Метрики мониторинга ● Логирование ошибок
  78. 78. Метрики мониторинга ● Логирование ошибок ● Дебаг для исследования аномалий
  79. 79. Метрики мониторинга ● Логирование ошибок ● Дебаг для исследования аномалий ● Графики – Производительность и нагрузка – Размер очередей, время доставки сервиса – Успешные платежи странам, агрегаторам и т.д.
  80. 80. Метрики мониторинга ● Логирование ошибок ● Дебаг для исследования аномалий ● Графики – Производительность и нагрузка – Размер очередей, время доставки сервиса – Успешные платежи по странам и агрегаторам ● Подробное логирование каждой операции
  81. 81. RRDtool
  82. 82. Splunk
  83. 83. BVM v2 ● Автоматическая система анализа данных ● Наблюдение за всеми способами платежей ● Реагирует на новые аномалии ● Умеет учитывать сезонность графиков
  84. 84. Изучение аномалий
  85. 85. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно ● Не верим в идеальность агрегаторов ● Тестируем админку ● С готовностью лезем в дебри ● Общаемся с разработчиками ● Пишем и гоняем тесты ● Изучаем поведение системы!
  86. 86. 8 шагов к успешному тестированию биллинга ● Не боимся ● Тестируем платежи максимально полно ● Не верим в идеальность агрегаторов ● Тестируем админку ● С готовностью лезем в дебри ● Общаемся с разработчиками ● Пишем и гоняем тесты ● Изучаем поведение системы
  87. 87. Заключение BBaaddoooo DDeevveellooppmmeenntt http://vk.com/badoocom http://fb.com/BadooMoscow http://habrahabr.ru/company/badoo ККууддиинноовв ИИллььяя i.kudinov@corp.badoo.com http://vk.com/relzeg http://fb.com/relzeg

×