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

87
World Wide биллинг глазами QA Кудинов Илья, Badoo

description

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

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

Page 1: Worldwide биллинг Badoo глазами QA

World Wide биллинг глазами QAКудинов Илья, Badoo

Page 2: Worldwide биллинг Badoo глазами QA

Тестирование биллинга —это не (очень) страшно!

Page 3: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● ???

● ???

● ???

● ???

● ???

● ???

● ???

● ???

Page 4: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся!

● ???

● ???

● ???

● ???

● ???

● ???

● ???

Page 5: Worldwide биллинг Badoo глазами QA

Немного о Badoo

● >220 млн пользователей● >1.5 млн пользователей онлайн в пике

● Приложения для всех популярных платформ

● >140 разработчиков, >30 QA-инженеров● 2 релиза в день● ~30 задач в релизе

Page 6: Worldwide биллинг Badoo глазами QA

Биллинг Badoo

● Платежи во всех странах планеты● ~30 активных интеграций агрегаторов (за всё время — больше 100)

● ~300 обращений в секунду

● 9 разработчиков● 3 QA инженера

Page 7: Worldwide биллинг Badoo глазами QA

Billing cluster

Billing API

Скриптовые машины

CreditCardserver

Облачные сервисы

Платёжныесистемы

Page 8: Worldwide биллинг Badoo глазами QA

Задачи разработки биллинга

● Новый функционал

Page 9: Worldwide биллинг Badoo глазами QA

Задачи разработки биллинга

● Новый функционал

● Новые интеграции

Page 10: Worldwide биллинг Badoo глазами QA

Задачи разработки биллинга

● Новый функционал

● Новые интеграции

● Актуализация интеграций

Page 11: Worldwide биллинг Badoo глазами QA

Задачи разработки биллинга

● Новый функционал

● Новые интеграции

● Актуализация интеграций

● Исправление багов

Page 12: Worldwide биллинг Badoo глазами QA

Задачи разработки биллинга

● Новый функционал

● Новые интеграции

● Актуализация интеграций

● Исправление багов

● Оптимизация

Page 13: Worldwide биллинг Badoo глазами QA

Задачи разработки биллинга

● Новый функционал

● Новые интеграции

● Актуализация интеграций

● Исправление багов

● Оптимизация

● Решение проблем технической поддержки

Page 14: Worldwide биллинг Badoo глазами QA

Задачи разработки биллинга

● Новый функционал

● Новые интеграции

● Актуализация интеграций

● Исправление багов

● Оптимизация

● Решение проблем технической поддержки

● Технический долг

Page 15: Worldwide биллинг Badoo глазами QA

Что тестируем?

Веб-визарды

Пользовательскиеинтерфейсы

Мобильныевизарды

Окна настроек

Page 16: Worldwide биллинг Badoo глазами QA

Что тестируем?

Веб-визарды

Пользовательскиеинтерфейсы

Мобильныевизарды

Окна настроек

Админка

конфигураторбиллинга

Инструменты для техподдержки

и тестирования

Page 17: Worldwide биллинг Badoo глазами QA

Что тестируем?

Веб-визарды

Пользовательскиеинтерфейсы

Мобильныевизарды

Окна настроек

Серверная «внутрянка»

Логикаплатежей

Отложенныесобытия

Очереди иОказание услуг

Админка

конфигураторбиллинга

Инструменты для техподдержки

и тестирования

Page 18: Worldwide биллинг Badoo глазами QA

Пользовательские интерфейсы

Page 19: Worldwide биллинг Badoo глазами QA

Пользовательские интерфейсы

● Корректное отображение платёжных форм

Page 20: Worldwide биллинг Badoo глазами QA

Пользовательские интерфейсы

● Корректное отображение платёжных форм

● Правильные цены

Page 21: Worldwide биллинг Badoo глазами QA

Пользовательские интерфейсы

● Корректное отображение платёжных форм

● Правильные цены

● Условия оказания сервиса

Page 22: Worldwide биллинг Badoo глазами QA

Пользовательские интерфейсы

● Корректное отображение платёжных форм

● Правильные цены

● Условия оказания сервиса

● Попапы с сообщениями об успешной оплате или об ошибке

Page 23: Worldwide биллинг Badoo глазами QA

Пользовательские интерфейсы

● Корректное отображение платёжных форм

● Правильные цены

● Условия оказания сервиса

● Попапы с сообщениями об успешной оплате или об ошибке

● Соответствие требованиям регуляторов

Page 24: Worldwide биллинг Badoo глазами QA

Пользовательские интерфейсы

Page 25: Worldwide биллинг Badoo глазами QA

Песочницы

● Тестовое окружение

● Тестовые данные

● Собственные тестовые заглушки

● Но не всегда :(

Page 26: Worldwide биллинг Badoo глазами QA

Мобильные визарды

● Недостаточно менять код биллинга

Page 27: Worldwide биллинг Badoo глазами QA

Мобильные визарды

● Недостаточно менять код биллинга

● Специализированные методы платежей

Page 28: Worldwide биллинг Badoo глазами QA

Мобильные визарды

● Недостаточно менять код биллинга

● Специализированные методы платежей

● Не всегда удобные песочницы

Page 29: Worldwide биллинг Badoo глазами QA

Мобильные визарды

● Недостаточно менять код биллинга

● Специализированные методы платежей

● Не всегда удобные песочницы

● Ошибки не только на нашей стороне

Page 30: Worldwide биллинг Badoo глазами QA

Мобильные визарды

● Недостаточно менять код биллинга

● Специализированные методы платежей

● Не всегда удобные песочницы

● Ошибки не только на нашей стороне

● Определённая зависимость от девайса

Page 31: Worldwide биллинг Badoo глазами QA

Требования регуляторов

● Дизайн платёжных окон● Формулировки для условий● Время для проведения платежей

Page 32: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно!

● ???

● ???

● ???

● ???

● ???

● ???

Page 33: Worldwide биллинг Badoo глазами QA

Работа с внешними сервисами

● Не всегда ошибки на нашей стороне

Page 34: Worldwide биллинг Badoo глазами QA

Работа с внешними сервисами

● Не всегда ошибки на нашей стороне

● Партнёры иногда работают не быстро

Page 35: Worldwide биллинг Badoo глазами QA

Работа с внешними сервисами

● Не всегда ошибки на нашей стороне

● Партнёры иногда работают не быстро

● Не всегда уведомляют об изменениях

Page 36: Worldwide биллинг Badoo глазами QA

Работа с внешними сервисами

● Не всегда ошибки на нашей стороне

● Партнёры иногда работают не быстро

● Не всегда уведомляют об изменениях

● Документация может быть неполной или некорректной

Page 37: Worldwide биллинг Badoo глазами QA

Работа с внешними сервисами

● Не всегда ошибки на нашей стороне

● Партнёры иногда работают не быстро

● Не всегда уведомляют об изменениях

● Документация может быть неполной или некорректной

● Иногда выгоднее временно отключить, чем пытаться править :(

Page 38: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно

● Не верим в идеальность агрегаторов!

● ???

● ???

● ???

● ???

● ???

Page 39: Worldwide биллинг Badoo глазами QA

Админка

● Инструменты управления подписками пользователей

Page 40: Worldwide биллинг Badoo глазами QA

Админка

● Инструменты управления подписками пользователей

● Конфигуратор биллинга

– Цены и доступность сервисов и методов платежей

– Настройки для разных flow и приложений

– A/B тестирование

Page 41: Worldwide биллинг Badoo глазами QA

Админка

● Инструменты управления подписками пользователей

● Конфигуратор биллинга

– Цены и доступность сервисов и методов платежей

– Настройки для разных flow и приложений

– A/B тестирование

● Промо-акции

Page 42: Worldwide биллинг Badoo глазами QA

Routing Platform

Page 43: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно

● Не верим в идеальность агрегаторов

● Тестируем админку!

● ???

● ???

● ???

● ???

Page 44: Worldwide биллинг Badoo глазами QA

Самый сок — внутренняя магия

Page 45: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

Page 46: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● Обращения к платёжной системе

Page 47: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● Обращения к платёжной системе

● Нотификации от платёжной системы

Page 48: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● Обращения к платёжной системе

● Нотификации от платёжной системы

● Оказание услуг

Page 49: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● Обращения к платёжной системе

● Нотификации от платёжной системы

● Оказание услуг

● Обновление подписок

Page 50: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● Обращения к платёжной системе

● Нотификации от платёжной системы

● Оказание услуг

● Обновление подписок

● Платежи по имеющимся деталям

Page 51: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● Обращения к платёжной системе

● Нотификации от платёжной системы

● Оказание услуг

● Обновление подписок

● Платежи по имеющимся деталям

● Откат операции в случае ошибки

Page 52: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● Обращения к платёжной системе

● Нотификации от платёжной системы

● Оказание услуг

● Обновление подписок

● Платежи по имеющимся деталям

● Откат операции в случае ошибки

● And on and on and on and on...

Page 53: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● ЧИТАЕМ КОД!

Page 54: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● ЧИТАЕМ КОД!

● Пишем интеграционные тесты

Page 55: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● ЧИТАЕМ КОД!

● Пишем интеграционные тесты

● Отключаем обращения к агрегаторам

Page 56: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● ЧИТАЕМ КОД!

● Пишем интеграционные тесты

● Отключаем обращения к агрегаторам

● Эмулируем нотификации

Page 57: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● ЧИТАЕМ КОД!

● Пишем интеграционные тесты

● Отключаем обращения к агрегаторам

● Эмулируем нотификации

● Правим базы данных руками

Page 58: Worldwide биллинг Badoo глазами QA

Внутренняя логика платежей

● ЧИТАЕМ КОД!

● Пишем интеграционные тесты

● Отключаем обращения к агрегаторам

● Эмулируем нотификации

● Правим базы данных руками

● QAAPI!

Page 59: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно

● Не верим в идеальность агрегаторов

● Тестируем админку

● С готовностью лезем в дебри!

● ???

● ???

● ???

Page 60: Worldwide биллинг Badoo глазами QA

Занимательный дебаг

Page 61: Worldwide биллинг Badoo глазами QA

Занимательный дебаг

● Добавление дебаг-вывода

Page 62: Worldwide биллинг Badoo глазами QA

Занимательный дебаг

● Добавление дебаг-вывода

● Чтение логов и графиков

Page 63: Worldwide биллинг Badoo глазами QA

Занимательный дебаг

● Добавление дебаг-вывода

● Чтение логов и графиков

● Контроль данных в БД

Page 64: Worldwide биллинг Badoo глазами QA

Занимательный дебаг

● Добавление дебаг-вывода

● Чтение логов и графиков

● Контроль данных в БД

● Сборка «контрольных» и «тестовых» приложений

Page 65: Worldwide биллинг Badoo глазами QA

Занимательный дебаг

● Добавление дебаг-вывода

● Чтение логов и графиков

● Контроль данных в БД

● Сборка «контрольных» и «тестовых» приложений

● Много мата

Page 66: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно

● Не верим в идеальность агрегаторов

● Тестируем админку

● С готовностью лезем в дебри

● Общаемся с разработчиками!

● ???

● ???

Page 67: Worldwide биллинг Badoo глазами QA

Авто-тесты

Page 68: Worldwide биллинг Badoo глазами QA

Авто-тесты

Модульные

Интеграционные

Системные

Page 69: Worldwide биллинг Badoo глазами QA

Авто-тесты

● Запуск руками при разработке

Page 70: Worldwide биллинг Badoo глазами QA

Авто-тесты

● Запуск руками при разработке

● Автоматический запуск по готовности задачи

Page 71: Worldwide биллинг Badoo глазами QA

Авто-тесты

● Запуск руками при разработке

● Автоматический запуск по готовности задачи

● Запуск руками при тестировании

Page 72: Worldwide биллинг Badoo глазами QA

Авто-тесты

● Запуск руками при разработке

● Автоматический запуск по готовности задачи

● Запуск руками при тестировании

● Автоматический запуск при сборке билда

Page 73: Worldwide биллинг Badoo глазами QA

Авто-тесты

● Запуск руками при разработке

● Автоматический запуск по готовности задачи

● Запуск руками при тестировании

● Автоматический запуск при сборке билда

● Регулярный автоматический прогон на стейджинге

Page 74: Worldwide биллинг Badoo глазами QA

Ускорение автотестов

● Облачная пускалка

● Селениум-ферма

● QAAPI

● Много агентов TeamCity

Page 75: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно

● Не верим в идеальность агрегаторов

● Тестируем админку

● С готовностью лезем в дебри

● Общаемся с разработчиками

● Пишем и гоняем тесты!

● ???

Page 76: Worldwide биллинг Badoo глазами QA

Мониторинг

● Контроль над состоянием системы

● Проверка задач после релиза

● Быстрое обнаружение аномалий

Page 77: Worldwide биллинг Badoo глазами QA

Метрики мониторинга

● Логирование ошибок

Page 78: Worldwide биллинг Badoo глазами QA

Метрики мониторинга

● Логирование ошибок

● Дебаг для исследования аномалий

Page 79: Worldwide биллинг Badoo глазами QA

Метрики мониторинга

● Логирование ошибок

● Дебаг для исследования аномалий

● Графики

– Производительность и нагрузка

– Размер очередей, время доставки сервиса

– Успешные платежи странам, агрегаторам и т.д.

Page 80: Worldwide биллинг Badoo глазами QA

Метрики мониторинга

● Логирование ошибок

● Дебаг для исследования аномалий

● Графики

– Производительность и нагрузка

– Размер очередей, время доставки сервиса

– Успешные платежи по странам и агрегаторам

● Подробное логирование каждой операции

Page 81: Worldwide биллинг Badoo глазами QA

RRDtool

Page 82: Worldwide биллинг Badoo глазами QA

Splunk

Page 83: Worldwide биллинг Badoo глазами QA

BVM v2

● Автоматическая система анализа данных

● Наблюдение за всеми способами платежей

● Реагирует на новые аномалии

● Умеет учитывать сезонность графиков

Page 84: Worldwide биллинг Badoo глазами QA

Изучение аномалий

Page 85: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно

● Не верим в идеальность агрегаторов

● Тестируем админку

● С готовностью лезем в дебри

● Общаемся с разработчиками

● Пишем и гоняем тесты

● Изучаем поведение системы!

Page 86: Worldwide биллинг Badoo глазами QA

8 шагов к успешному тестированию биллинга

● Не боимся

● Тестируем платежи максимально полно

● Не верим в идеальность агрегаторов

● Тестируем админку

● С готовностью лезем в дебри

● Общаемся с разработчиками

● Пишем и гоняем тесты

● Изучаем поведение системы

Page 87: Worldwide биллинг Badoo глазами QA

Заключение

Badoo DevelopmentBadoo Developmenthttp://vk.com/badoocomhttp://fb.com/BadooMoscow http://habrahabr.ru/company/badoo

Кудинов ИльяКудинов Илья[email protected]://vk.com/relzeg http://fb.com/relzeg