О клиенте
«Циан» — крупнейшая онлайн-платформа объявлений о продаже и аренде недвижимости в России. Платформа объединяет множество сервисов: публикацию объявлений, продвижение, оплату, аналитические инструменты и многое другое. Сервисы постоянно дорабатываются, и любое обновление должно работать без сбоев.
Мы давно сотрудничаем с «Циан» и помогаем с разработкой и тестированием. Наши специалисты участвуют в создании веб-приложений для разделов «Новостройки», «Вторичный рынок» и мобильного приложения. Кроме того, мы усиливаем команду QA, помогая обеспечивать качество продукта.
Проблема и задачи
Команда «Циан» активно развивает платформу, добавляя новые функции. Чтобы убедиться, что изменения не ломают текущую логику, необходимо тщательное интеграционное тестирование. Это особенно важно для финансовых процессов — списаний, продления услуг, смены владельца объявления и других операций.
Задача наших тестировщиков в составе команды заказчика — проверить, как взаимодействуют между собой разные сервисы платформы, и выявить возможные проблемы до выхода новых функций в продакшн.
Решение
Мы разработали и внедрили интеграционные тесты, которые автоматически проверяют корректность работы ключевых сервисов.
Для тестирования наши специалисты по качеству:
1) Написали сценарии, которые моделируют реальные пользовательские операции, например:- Создание объявления, проверка его публикации и списания денег с баланса.
- Применение услуг продвижения, проверка корректности статусов и повторного списания.
- Смена владельца объявления и проверка корректности передачи данных.
2) Интегрировали тесты в пайплайн задач в Jira — они запускаются автоматически после завершения работы разработчика или вручную по запросу.3) Организовали многопоточное выполнение тестов с использованием Kafka и нескольких consumer’ов для быстрой обработки прогонов.4) Использовали фреймворк xUnit для написания и поддержания тестов.Один из ключевых сценариев — проверка взаимодействия сервисов публикации объявлений и их продвижения.
Как работает:- Пользователь публикует объявление.
- С его счета списывается сумма за размещение.
- Он подключает услугу продвижения (например, вывод в топ-3).
- За это также списываются деньги.
- Объявление получает новый статус продвижения.
Что мы тестируем:- Корректность списаний на каждом этапе.
- Соответствие статусов объявления подключенным услугам.
- Отсутствие ошибок в логике взаимодействия сервисов.
Есть и более сложные сценарии, но суть остается той же: проверяем, как между собой взаимодействуют сервисы публикации объявлений, продвижения, смены владельца и другие.
Результат
Мы разработали и внедрили более 400 интеграционных тестов. Они стабильно работают в автоматическом режиме и позволяют команде ЦИАН с уверенностью выпускать обновления.
Для бизнеса это значит:
- Меньше критических ошибок в продакшне.
- Быстрее выходят новые функции.
- Улучшенное качество платформы, а значит, довольные пользователи.
Для команды «Циан» это значит:
- Автоматизированный контроль сложных процессов.
- Снижение нагрузки на QA-специалистов.
- Повышенная стабильность сервисов.
Наши тестировщики не просто писали тесты, а помогли выстроить надежную систему автоматизированного контроля качества.
Стек
С#, Entity Framework Core, Docker, Kafka, Xunit