worldwide биллинг badoo глазами qa

Post on 02-Jul-2015

291 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

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

● ???

● ???

● ???

● ???

● ???

● ???

● ???

● ???

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

● Не боимся!

● ???

● ???

● ???

● ???

● ???

● ???

● ???

Немного о Badoo

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

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

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

Биллинг Badoo

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

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

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

Billing cluster

Billing API

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

CreditCardserver

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Веб-визарды

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

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

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

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

Веб-визарды

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

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

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

Админка

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

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

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

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

Веб-визарды

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

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

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

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

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

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

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

Админка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Песочницы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

● Не боимся

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

● ???

● ???

● ???

● ???

● ???

● ???

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

● Не боимся

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

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

● ???

● ???

● ???

● ???

● ???

Админка

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

Админка

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

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

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

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

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

Админка

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

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

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

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

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

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

Routing Platform

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

● Не боимся

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

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

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

● ???

● ???

● ???

● ???

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

● ЧИТАЕМ КОД!

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

● ЧИТАЕМ КОД!

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

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

● ЧИТАЕМ КОД!

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

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

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

● ЧИТАЕМ КОД!

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

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

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

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

● ЧИТАЕМ КОД!

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

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

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

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

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

● ЧИТАЕМ КОД!

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

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

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

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

● QAAPI!

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

● Не боимся

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

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

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

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

● ???

● ???

● ???

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

● Много мата

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

● Не боимся

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

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

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

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

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

● ???

● ???

Авто-тесты

Авто-тесты

Модульные

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

Системные

Авто-тесты

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

Авто-тесты

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

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

Авто-тесты

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

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

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

Авто-тесты

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

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

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

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

Авто-тесты

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

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

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

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

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

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

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

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

● QAAPI

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

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

● Не боимся

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

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

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

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

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

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

● ???

Мониторинг

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

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

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

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

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

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

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

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

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

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

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

● Графики

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

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

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

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

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

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

● Графики

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

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

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

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

RRDtool

Splunk

BVM v2

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

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

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

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

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

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

● Не боимся

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

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

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

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

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

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

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

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

● Не боимся

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

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

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

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

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

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

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

Заключение

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

Кудинов ИльяКудинов Ильяi.kudinov@corp.badoo.comhttp://vk.com/relzeg http://fb.com/relzeg

top related