Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Фёдор Жирков – «Как устроено тестирование склада (WMS) в Ozon»

Ozon Tech
September 22, 2023

Фёдор Жирков – «Как устроено тестирование склада (WMS) в Ozon»

Ozon Tech

September 22, 2023
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. Ozon Tech 2023 Как устроено тестирование склада (WMS) в Ozon

    Фёдор Жирков, руководитель группы тестирования
  2. Топология команды Мобильная разработка 3 Домен 1 Разработка Backend Домен

    2 Разработка Backend Домен 3 Разработка Backend Разработка Frontend Разработка Frontend Разработка Frontend Аналитики Аналитики Аналитики QA QA QA Мобильная разработка Разработка QA
  3. Backend-тестирование 6 Ручные тесты • Их нет Автотесты • Python

    3.10 • PyTest • Максимум автоматизации • Свои собственные микросервисы и утилиты • Allure TestOps • GitLab CI
  4. 9

  5. 10

  6. Пирамида тестирования Backend-тестирование • Целиком флоу процесса • Фокус на

    проверке фронтовой части • Целиком флоу процесса (happy path + если есть отдельный негативный флоу) • Фокус на проверке взаимодействия с внешними сервисами • Все основные бизнес-сценарии процесса • Тестируются все слои сервиса, начиная клиента, на моках внешних сервисов • Интеграция с БД, Redis и пр. • Все методы репозитория, query handlers • По необходимости command handlers • Обязательно вся доменная логика • Любой нетривиальный код (command handlers, providers и т.д.) Юниты Интеграционные BDD сценарии (компонентные) UI E2E
  7. Наши микросервисы Backend-тестирование 13 • Генерирует необходимые товары • Сделан

    на FastAPI • Есть графана для мониторинга • Есть логи 2. Билдер товаров • Создает любые процессы и сущности • Сделан на Flask • Пользуются мобильные и фронт QA • Пользуются сторонние отделы 3. QA API • Создает виртуальные склады • Сделан на Flask • Есть графана для мониторинга • Есть логи 1. Билдер топологии
  8. Моки Backend-тестирование 16 • gRPC мок • Сделан на Python

    2. Marotte • Сделан разработчиками • .NET 3. Kafka мок • HTTP мок • Сделан JS • Open Source 1. Mountebank
  9. Запуски тестов Backend-тестиование 18 • Каждую ночь • В ручном

    режиме • При MR в мастер у разработчиков • Все через Gitlab CI
  10. Frontend-тестирование 24 Ручные тесты • Только на новые фичи Автотесты

    • Typescript • Playwright • Подготовка данных через Flasger • Data-test атрибуты • Allure TestOps
  11. 27 Тестовый набор Тест-кейс из предыдущего примера Для того, чтобы

    автотесты попадали в Allure, мы явно указываем в коде, где мы хотим их видеть
  12. 28

  13. Мобильное тестирование 33 Android-приложение • RxJava • Retro fi t

    • Clean Architecture Железо • Сканер штрихкодов • Принтер штихкодов
  14. Мобильное тестирование 34 Ручные тесты • Эмулятор Автотесты • Реальное

    устройство • Подготовка данных через Flasger • Kotlin • UIAutomator • Kaspresso • Marathon Test Runner • Allure TestOps
  15. Виды нагрузки 38 Читающая • GET-методы • Чтение данных Пишущая

    • POST-методы • Создание/изменение данных
  16. 43

  17. 47

  18. Топология команды нагрузочного тестирования 48 Кто пишет сценарии • Выделенный

    Load QA • Backend QA Кто следит за результатами • Выделенный Load QA • Backend QA • Команды Backend-разработки