Какие темы стоит повторить
🔹 Теория тестирования
Мы ожидаем, что вы можете объяснить, каким образом оптимизировать тестовое покрытие, используя техники тест-дизайна, какие бывают методы, этапы и метрики тестирования. А если вы знаете, что означают термины «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-контейнерах. У нас есть выделенная команда релиз-инженеров, которая занимается задачами деплоя, однако умение заглянуть в контейнер за логами может пригодиться.