5. Немного о Badoo
● >220 млн пользователей
● >1.5 млн пользователей онлайн в пике
● Приложения для всех популярных платформ
● >140 разработчиков, >30 QA-инженеров
● 2 релиза в день
● ~30 задач в релизе
6. Биллинг Badoo
● Платежи во всех странах планеты
● ~30 активных интеграций агрегаторов (за всё
время — больше 100)
● ~300 обращений в секунду
● 9 разработчиков
● 3 QA инженера
7. Billing cluster
Billing API
Скриптовые
машины
CreditCard
server
Облачные
сервисы
Платёжные
системы
11. Задачи разработки биллинга
● Новый функционал
● Новые интеграции
● Актуализация интеграций
● Исправление багов
12. Задачи разработки биллинга
● Новый функционал
● Новые интеграции
● Актуализация интеграций
● Исправление багов
● Оптимизация
13. Задачи разработки биллинга
● Новый функционал
● Новые интеграции
● Актуализация интеграций
● Исправление багов
● Оптимизация
● Решение проблем технической поддержки
14. Задачи разработки биллинга
● Новый функционал
● Новые интеграции
● Актуализация интеграций
● Исправление багов
● Оптимизация
● Решение проблем технической поддержки
● Технический долг
16. Что тестируем?
Пользовательские
интерфейсы
Веб-визарды
Мобильные
визарды
Окна настроек
Админка
конфигуратор
биллинга
Инструменты для
техподдержки
и тестирования
17. Что тестируем?
Пользовательские
интерфейсы
Веб-визарды
Мобильные
визарды
Окна настроек
Серверная «внутрянка»
Логика
платежей
Отложенные
события
Очереди и
Оказание услуг
Админка
конфигуратор
биллинга
Инструменты для
техподдержки
и тестирования
22. Пользовательские интерфейсы
● Корректное отображение платёжных форм
● Правильные цены
● Условия оказания сервиса
● Попапы с сообщениями об успешной оплате
или об ошибке
23. Пользовательские интерфейсы
● Корректное отображение платёжных форм
● Правильные цены
● Условия оказания сервиса
● Попапы с сообщениями об успешной оплате
или об ошибке
● Соответствие требованиям регуляторов
27. Мобильные визарды
● Недостаточно менять код биллинга
● Специализированные методы платежей
28. Мобильные визарды
● Недостаточно менять код биллинга
● Специализированные методы платежей
● Не всегда удобные песочницы
29. Мобильные визарды
● Недостаточно менять код биллинга
● Специализированные методы платежей
● Не всегда удобные песочницы
● Ошибки не только на нашей стороне
30. Мобильные визарды
● Недостаточно менять код биллинга
● Специализированные методы платежей
● Не всегда удобные песочницы
● Ошибки не только на нашей стороне
● Определённая зависимость от девайса
31. Требования регуляторов
● Дизайн платёжных окон
● Формулировки для условий
● Время для проведения платежей
32. 8 шагов к успешному
тестированию биллинга
● Не боимся
● Тестируем платежи максимально полно!
● ???
● ???
● ???
● ???
● ???
● ???
34. Работа с внешними сервисами
● Не всегда ошибки на нашей стороне
● Партнёры иногда работают не быстро
35. Работа с внешними сервисами
● Не всегда ошибки на нашей стороне
● Партнёры иногда работают не быстро
● Не всегда уведомляют об изменениях
36. Работа с внешними сервисами
● Не всегда ошибки на нашей стороне
● Партнёры иногда работают не быстро
● Не всегда уведомляют об изменениях
● Документация может быть неполной или
некорректной
37. Работа с внешними сервисами
● Не всегда ошибки на нашей стороне
● Партнёры иногда работают не быстро
● Не всегда уведомляют об изменениях
● Документация может быть неполной или
некорректной
● Иногда выгоднее временно отключить, чем
пытаться править :(
38. 8 шагов к успешному
тестированию биллинга
● Не боимся
● Тестируем платежи максимально полно
● Не верим в идеальность агрегаторов!
● ???
● ???
● ???
● ???
● ???
40. Админка
● Инструменты управления подписками
пользователей
● Конфигуратор биллинга
– Цены и доступность сервисов и методов
платежей
– Настройки для разных flow и приложений
– A/B тестирование
41. Админка
● Инструменты управления подписками
пользователей
● Конфигуратор биллинга
– Цены и доступность сервисов и методов
платежей
– Настройки для разных flow и приложений
– A/B тестирование
● Промо-акции
48. Внутренняя логика платежей
● Обращения к платёжной системе
● Нотификации от платёжной системы
● Оказание услуг
49. Внутренняя логика платежей
● Обращения к платёжной системе
● Нотификации от платёжной системы
● Оказание услуг
● Обновление подписок
50. Внутренняя логика платежей
● Обращения к платёжной системе
● Нотификации от платёжной системы
● Оказание услуг
● Обновление подписок
● Платежи по имеющимся деталям
51. Внутренняя логика платежей
● Обращения к платёжной системе
● Нотификации от платёжной системы
● Оказание услуг
● Обновление подписок
● Платежи по имеющимся деталям
● Откат операции в случае ошибки
52. Внутренняя логика платежей
● Обращения к платёжной системе
● Нотификации от платёжной системы
● Оказание услуг
● Обновление подписок
● Платежи по имеющимся деталям
● Откат операции в случае ошибки
● And on and on and on and on...
63. Занимательный дебаг
● Добавление дебаг-вывода
● Чтение логов и графиков
● Контроль данных в БД
64. Занимательный дебаг
● Добавление дебаг-вывода
● Чтение логов и графиков
● Контроль данных в БД
● Сборка «контрольных» и «тестовых»
приложений
65. Занимательный дебаг
● Добавление дебаг-вывода
● Чтение логов и графиков
● Контроль данных в БД
● Сборка «контрольных» и «тестовых»
приложений
● Много мата
66. 8 шагов к успешному
тестированию биллинга
● Не боимся
● Тестируем платежи максимально полно
● Не верим в идеальность агрегаторов
● Тестируем админку
● С готовностью лезем в дебри
● Общаемся с разработчиками!
● ???
● ???
70. Авто-тесты
● Запуск руками при разработке
● Автоматический запуск по готовности задачи
71. Авто-тесты
● Запуск руками при разработке
● Автоматический запуск по готовности задачи
● Запуск руками при тестировании
72. Авто-тесты
● Запуск руками при разработке
● Автоматический запуск по готовности задачи
● Запуск руками при тестировании
● Автоматический запуск при сборке билда
73. Авто-тесты
● Запуск руками при разработке
● Автоматический запуск по готовности задачи
● Запуск руками при тестировании
● Автоматический запуск при сборке билда
● Регулярный автоматический прогон на
стейджинге
75. 8 шагов к успешному
тестированию биллинга
● Не боимся
● Тестируем платежи максимально полно
● Не верим в идеальность агрегаторов
● Тестируем админку
● С готовностью лезем в дебри
● Общаемся с разработчиками
● Пишем и гоняем тесты!
● ???
76. Мониторинг
● Контроль над состоянием системы
● Проверка задач после релиза
● Быстрое обнаружение аномалий
79. Метрики мониторинга
● Логирование ошибок
● Дебаг для исследования аномалий
● Графики
– Производительность и нагрузка
– Размер очередей, время доставки сервиса
– Успешные платежи странам, агрегаторам и т.д.
80. Метрики мониторинга
● Логирование ошибок
● Дебаг для исследования аномалий
● Графики
– Производительность и нагрузка
– Размер очередей, время доставки сервиса
– Успешные платежи по странам и агрегаторам
● Подробное логирование каждой операции
83. BVM v2
● Автоматическая система анализа данных
● Наблюдение за всеми способами платежей
● Реагирует на новые аномалии
● Умеет учитывать сезонность графиков
85. 8 шагов к успешному
тестированию биллинга
● Не боимся
● Тестируем платежи максимально полно
● Не верим в идеальность агрегаторов
● Тестируем админку
● С готовностью лезем в дебри
● Общаемся с разработчиками
● Пишем и гоняем тесты
● Изучаем поведение системы!
86. 8 шагов к успешному
тестированию биллинга
● Не боимся
● Тестируем платежи максимально полно
● Не верим в идеальность агрегаторов
● Тестируем админку
● С готовностью лезем в дебри
● Общаемся с разработчиками
● Пишем и гоняем тесты
● Изучаем поведение системы