Москва
QA. Подготовка к интервью
Какие темы стоит повторить

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

Мы ожидаем, что вы можете объяснить, каким образом оптимизировать тестовое покрытие, используя техники тест-дизайна, какие бывают методы, этапы и метрики тестирования. А если вы знаете, что означают термины «flaky-тесты», «shift-left testing» и какой стороной нужно повернуть пирамиду тестирования, то нам будет проще разговаривать на одном языке :)

❗️ В зависимости от задач на конкретной позиции мы можем спрашивать вас по backend-, frontend- и mobile-тестированию.

🔹 Backend-тестирование

Бэкенд Ozon — это микросервисная архитектура со сложной бизнес-логикой, поэтому для нас важно, чтобы вы представляли:

  • как работают сетевые протоколы (у нас используется HTTP/GRPC);

  • что происходит в тот момент, когда вы вбиваете в поисковую строку браузера запрос, и куда он отправляется дальше, как устроено взаимодействие между клиентом и сервером;

  • какие существуют методы и коды ответов;

  • что такое cookie.

🔹 Frontend-тестирование

Основной сайт ozon.ru — это нагруженное приложение, написанное на Node.js и Vue, реализующее множество пользовательских механик. Кроме него, есть не уступающий ему по сложности B2C кабинет для наших селлеров и десятки других проектов. Мы ожидаем:

  • навыки кроссбраузерного тестирования;

  • умение заглянуть в консоль разработчика в браузере и найти там нужную для воспроизведения информацию;

  • hands-on в автоматизации: уверенное использование локаторов, декомпозиции кода с использованием Page Object и понимания, какие возможности дают и чем отличаются Chrome DevTools и WebDriver протоколы.


🔹 Mobile-тестирование


На мобильные приложения приходится большинство заказов в Ozon, поэтому мы много внимания уделяем как их разработке, так и тестированию. От вас мы ожидаем понимание:

  • как проверять UI в мобильном приложении;

  • почему баги могут встречаться на специфических устройствах;

  • как работать с трафиком, который проходит через мобильное устройство;

  • какие есть полезные для тестирования возможности от платформ;

  • как получить артефакты, которые помогут в исправлении багов.


🔹 Программирование

От каждого тестировщика в Ozon мы ждём участия в написании автотестов. Для бэкенда мы пишем автотесты на языке сервиса (Go, С#) или на Python. Но если вы имеете опыт написания тестов на другом языке и готовы разобраться с нашим стеком, мы поделимся своим опытом. На интервью мы спрашиваем о структурах данных и методах работы с ними, проверяем знание стандартной библиотеки. Также важно умение работать с фреймворком для написания тестов и его инструментарием. Например, для Python это обязательно будут Pytest и фикстуры: важно понимать, как их запускать, отлаживать и настраивать.


🔹 Базы данных

В Ozon используются разнообразные базы данных: PostgreSQL, ClickHouse, Cassandra, Redis и другие. Необязательно разбираться в специфике каждой из них (у разных команд свои требования), однако наверняка потребуется знание основных концепций и умение выполнить SQL-запрос как минимум с запросом данных из нескольких таблиц. Важно понимать, что такое индекс, зачем нужны транзакции и почему не нужно делать count(*) на больших таблицах.


🔹 CI/CD

Большой объём релизов Ozon был бы невозможен без налаженного конвейера доставки релизов в production-окружение. Принципы, которых мы придерживаемся, позволяют нам поддерживать высокий уровень качества. QA активно участвуют в этом процессе, поэтому для нас важно, чтобы вы:

  • умели работать с Git. Все тесты должны быть написаны с тем расчётом, что они рано или поздно будут запускаться в пайплайне, а работа с кодом обязательно подразумевает работу с системой контроля версий. Как минимум нужно уметь отличать push от pull, знать, как создать/переключиться на новую ветку и уметь решать конфликты, возникающие при слиянии;

  • умели работать с консолью как минимум на уровне взаимодействия с папками и директориями;

  • вся наша инфраструктура живёт в docker-контейнерах. У нас есть выделенная команда релиз-инженеров, которая занимается задачами деплоя, однако умение заглянуть в контейнер за логами может пригодиться.