Как пройти собеседование на позицию тестировщика в Яндекс
Подробный разбор собеседования QA в Яндекс. Техники тест-дизайна, задачи на алгоритмы, SQL и кейсы по автоматизации тестирования.
Введение: Особенности найма в Яндекс
Яндекс — одна из немногих компаний в СНГ, которая сохраняет академический подход к найму. Здесь не ищут просто «кликальщика» или человека, умеющего писать скрипты на Selenium. Компании нужны инженеры по качеству, способные разобраться в коде продукта, предложить улучшения в CI/CD и спрогнозировать риски еще на этапе проектирования фичи. Статья написана на основе опыта кандидатов уровней Junior+, Middle и Senior, проходивших отбор в команды Поиска, Карт и Маркета. Мы разберем каждый этап: от звонка рекрутера до финального интервью с командой.
Для кого эта статья
Этот материал будет полезен как начинающим специалистам, так и опытным автоматизаторам. Мы разберем не только базовые вопросы по техникам тест-дизайна, но и сложные алгоритмические задачи, которые часто становятся камнем преткновения для QA. Если вы подаетесь на позицию Manual QA, будьте готовы, что Яндекс все равно проверит ваши навыки программирования, хотя и в меньшем объеме, чем у SDET (Software Development Engineer in Test).
Что вы узнаете
Мы подробно остановимся на структуре секций. Вы узнаете, как отвечать на вопросы по сетям (модель OSI, протоколы HTTP/HTTPS), как решать задачи на написание SQL-запросов средней сложности, и как проходить секцию «Тестирование продукта», где нужно за 45 минут составить план проверки сложной системы, например, умной колонки или поисковой выдачи.
Этап 1: Скрининг и технический колл
Первое касание происходит с рекрутером. Это короткий звонок на 15–20 минут, где проверяется адекватность и базовое соответствие вакансии. Однако за ним часто следует технический скрининг с инженером. На этом этапе проверяют «базу»: понимание жизненного цикла разработки (SDLC) и основных определений. Важно не просто зазубрить определения, а уметь объяснить их на примерах.
Типовые вопросы на скрининге
Часто спрашивают разницу между валидацией и верификацией. Хороший ответ: «Верификация — это проверка, соответствует ли продукт спецификации. Валидация — соответствует ли он ожиданиям пользователя». Также популярны вопросы про пирамиду тестирования. В Яндексе ценят понимание того, почему юнит-тестов должно быть много, а UI-тестов — мало. Если вы скажете, что UI-тесты дорогие в поддержке и медленные, это будет жирным плюсом.
Первая задача на логику
Иногда на скрининге дают простую задачу на проверку внимательности. Например: «Есть 8 одинаковых на вид монет, одна из них фальшивая и весит меньше остальных. За какое минимальное количество взвешиваний на чашечных весах можно найти фальшивку?». Правильный ответ — 2 взвешивания (делим на группы 3, 3 и 2).
| Тип вопроса | Что проверяют | Приоритет |
|---|---|---|
| Теория тестирования | Знание техник тест-дизайна | Высокий |
| Процессы | Agile, Scrum, Kanban | Средний |
| Инструменты | Jira, TestIT, Allure | Средний |
Этап 2: Секция по тест-дизайну
Это ключевая секция для любого тестировщика. Вам предложат объект — это может быть физический предмет (лифт, карандаш) или программная фича (форма регистрации, поиск). Задача — протестировать его максимально полно, используя формальные техники. В Яндексе не любят хаотичное перечисление проверок. Нужно структурировать ответ: функциональное тестирование, нефункциональное (нагрузка, безопасность, локализация), UI/UX.
Применение техник тест-дизайна
Обязательно используйте термины: граничные значения (BVA), классы эквивалентности (EP), попарное тестирование (Pairwise). Если вам дали поле ввода возраста от 18 до 99 лет, ваши проверки: 17, 18, 19, 50, 98, 99, 100. Не забудьте про отрицательные числа, спецсимволы и пустые значения. Яндекс обращает внимание на то, как вы приоритезируете тесты. Сначала проверяем «happy path», затем негативные сценарии.
Кейс: Тестирование лифта в 100-этажном здании
Это классический вопрос. Опытный QA начнет с уточняющих вопросов: какая грузоподъемность, есть ли VIP-карты, как работает диспетчеризация. Затем разделит тесты на уровни: 1. Механика (двери, кнопки). 2. Логика (алгоритм движения). 3. Безопасность (перегруз, пожарная тревога). 4. UI (индикация этажей). Важно упомянуть стресс-тестирование: что будет, если нажать все кнопки одновременно?
// Пример структуры тест-плана для API метода
{
"method": "POST",
"endpoint": "/v1/order",
"cases": [
"Positive: Valid data, status 201",
"Negative: Missing required field, status 400",
"Negative: Invalid auth token, status 401",
"Boundary: Max items in cart (100), status 201",
"Boundary: 101 items in cart, status 422"
]
}Этап 3: Алгоритмы и программирование
В Яндексе тестировщики пишут код. Даже если вы претендуете на Manual позицию, вас попросят решить задачу на Python, Java или JS. Обычно это задачи уровня LeetCode Easy или простые Medium. Основная цель — проверить ваше понимание структур данных (массивы, строки, словари) и умение писать чистый код без синтаксических ошибок.
Работа со строками и массивами
Популярная задача — проверить, является ли строка палиндромом, или найти первый неповторяющийся символ в строке. Важно не просто решить задачу «в лоб» за O(n^2), а предложить оптимальный вариант за O(n), используя хэш-таблицу (словарь). Интервьюер будет смотреть, как вы обрабатываете крайние случаи: пустая строка, строка из одного символа, null.
Пример задачи: Слияние интервалов
Дано: список интервалов [ [1, 3], [2, 6], [8, 10] ]. Нужно объединить пересекающиеся. Это классика Яндекса. Решение требует сначала отсортировать интервалы по началу, а затем пройтись одним циклом, сравнивая текущий интервал с последним добавленным в результат. Такое задание проверяет понимание сложности алгоритмов.
def merge_intervals(intervals):
if not intervals:
return []
# Сортируем по открытию интервала
intervals.sort(key=lambda x: x[0])
merged = [intervals[0]]
for current in intervals[1:]:
prev = merged[-1]
if current[0] <= prev[1]:
# Есть пересечение, обновляем конец
prev[1] = max(prev[1], current[1])
else:
merged.append(current)
return merged
# Тестовые данные: [[1,3],[2,6],[8,10]] -> [[1,6],[8,10]]Этап 4: Базы данных и SQL
QA-инженер в Яндексе постоянно работает с данными. Вам нужно уметь писать запросы для проверки консистентности в БД. Ожидается знание операторов SELECT, JOIN (Inner, Left, Right), GROUP BY, HAVING. Часто просят найти «вторую максимальную зарплату» или «пользователей, которые не совершали покупок за последний месяц».
Сложные JOIN и агрегаты
Будьте готовы к задачам, где нужно объединить три и более таблицы. Например: есть таблицы Users, Orders и Products. Нужно вывести имена пользователей, которые купили товар категории 'Electronics' на сумму более 10 000 рублей. Здесь важно правильно использовать группировку и фильтрацию условий (WHERE vs HAVING).
Оптимизация запросов
Senior-кандидатов могут спросить про индексы: как они работают, почему замедляют запись (INSERT), но ускоряют чтение (SELECT). Стоит упомянуть про Explain Plan — инструмент для анализа того, как СУБД будет выполнять ваш запрос. В Яндексе часто используют PostgreSQL и ClickHouse, знание их специфики будет преимуществом.
| Оператор | Применение | Важный нюанс |
|---|---|---|
| LEFT JOIN | Вернуть все записи слева | NULL в правой части, если нет совпадений |
| GROUP BY | Группировка строк | Все неагрегированные поля должны быть в списке |
| HAVING | Фильтрация групп | Работает ПОСЛЕ выполнения агрегатных функций |
Этап 5: Сети и инфраструктура
Как работает интернет? Это стандартный блок вопросов. Вы должны понимать путь пакета от браузера до сервера. Что такое DNS, как устанавливается TCP-соединение (трехстороннее рукопожатие), чем отличается HTTP от HTTPS. Тестировщику это нужно, чтобы локализовать баг: он на фронтенде, на бэкенде или в сети.
Протокол HTTP и REST API
Вас спросят про методы (GET, POST, PUT, DELETE, PATCH) и коды ответов. Важно знать разницу между 401 (Unauthorized) и 403 (Forbidden), а также когда сервер возвращает 502 (Bad Gateway) и 504 (Gateway Timeout). В контексте Яндекса часто обсуждают микросервисную архитектуру и то, как тестировать взаимодействие между сервисами через gRPC или очереди сообщений (Kafka).
Инструменты отладки
Умение пользоваться Chrome DevTools (вкладка Network) и снифферами трафика типа Charles или Fiddler — обязательный навык. Расскажите, как вы подменяете ответы сервера (Rewrite/Map Local), чтобы проверить обработку ошибок на клиенте. Это показывает, что вы умеете проводить серое и черное тестирование (Gray/Black box).
Этап 6: Автоматизация тестирования
Если вы идете на позицию автоматизатора, эта секция будет основной. В Яндексе используют разные стеки: Python (Pytest), Java (JUnit/TestNG), JS/TS (Playwright). Ожидается знание паттернов проектирования автотестов: Page Object Model (POM), Data Driven Testing, Singleton. Вас могут попросить спроектировать структуру проекта для тестирования главной страницы Яндекса.
Написание автотестов на практике
Вам дадут задачу написать тест на логин. Плохой ответ — просто перечислить команды `driver.find_element`. Хороший ответ — создать базовый класс страницы, описать локаторы и методы взаимодействия. Обязательно обсудите тему ожидания (Implicit vs Explicit Waits). В Яндексе не любят `time.sleep()`, так как это делает тесты нестабильными («флакающими»).
CI/CD и пайплайны
Автоматизация не живет в вакууме. Нужно понимать, как тесты встраиваются в процесс сборки. Знание Jenkins, GitLab CI или TeamCity приветствуется. Расскажите про параллельный запуск тестов (например, через Pytest-xdist) и генерацию отчетов в Allure. Как вы будете разбирать упавшие тесты? Как отличить баг в коде от нестабильного теста?
# Пример теста на Pytest с использованием Page Object
import pytest
from pages.login_page import LoginPage
@pytest.mark.parametrize("user, password", [("valid_user", "pass"), ("admin", "admin")])
def test_login_positive(driver, user, password):
login_page = LoginPage(driver)
login_page.open()
login_page.enter_credentials(user, password)
assert login_page.is_authorized() == True, "User should be logged in"Этап 7: Системное мышление и продуктовые кейсы
На этом этапе проверяют, как вы ведете себя в неопределенности. Вам дают задачу: «Мы запускаем новый сервис аренды самокатов. Как будем тестировать?». Здесь не нужно сразу бежать писать тест-кейсы. Сначала соберите требования: какие платформы (iOS, Android), какие датчики на самокате, как работает оплата, есть ли офлайн-режим.
Риски и приоритеты
Важно показать умение оценивать риски. Что самое критичное в самокатах? Тормоза и завершение аренды (чтобы с пользователя не списывались лишние деньги). Косметические баги в профиле могут подождать. В Яндексе ценят подход «Test Early»: участие в обсуждении макетов и спецификаций, чтобы найти логические дыры до написания кода.
Тестирование больших данных
Если команда работает с поиском или рекомендациями, спросят про A/B тесты. Как понять, что новая версия алгоритма лучше старой? Нужно знать метрики качества: точность (Precision), полнота (Recall). Тестировщик здесь помогает проверять корректность сбора логов, на основе которых аналитики строят графики.
Этап 8: Поведенческое интервью (Soft Skills)
Яндекс ищет людей, которые соответствуют их культуре. Основные ценности: открытость, отсутствие бюрократии, стремление к результату. Вас спросят о конфликтах в команде: «Что вы сделаете, если разработчик отказывается фиксить баг, считая его фичей?». Правильный подход — аргументировать позицию через влияние на пользователя и бизнес, а не переходить на личности.
Рассказ о себе и своих проектах
Подготовьте рассказ по методике STAR (Situation, Task, Action, Result). Выберите самый сложный баг, который вы нашли, или процесс, который вы улучшили. Например: «Внедрил прогон тестов на pull request-ы, что сократило время регресса с 2 дней до 4 часов». Цифры всегда звучат убедительнее, чем общие фразы.
Мотивация
Почему Яндекс? Ответ «потому что это крупная компания» — слабый. Лучше сказать о конкретных технологиях или продуктах, которые вам интересны. Например: «Мне интересно поработать с высоконагруженными системами Поиска, где цена ошибки QA — миллионы пользователей».
Заключение: План подготовки
Подготовка к собеседованию в Яндекс занимает от двух недель до двух месяцев в зависимости от бэкграунда. Процесс сложный, но прозрачный. Даже если вы получите отказ, фидбек от интервьюеров Яндекса обычно очень качественный и помогает понять, куда расти дальше. Главное — не бойтесь ошибаться на доске (или в онлайн-редакторе), рассуждайте вслух, это важнее, чем идеальный синтаксис.
Чек-лист перед собеседованием
- Освежить теорию: техники тест-дизайна, уровни и типы тестирования.
- Решить 20-30 задач на LeetCode (Easy/Medium) на массивы и строки.
- Повторить SQL: JOIN, агрегатные функции, подзапросы.
- Разобраться в архитектуре HTTP и REST.
- Подготовить 2-3 истории о своих достижениях по методу STAR.
Дополнительные ресурсы
Читайте блог Яндекса на Хабре, там много пишут про внутренние инструменты тестирования. Посмотрите записи докладов с конференций Heisenbug и Podlodka QA Crew — там часто выступают лиды из Яндекса, рассказывая о своих процессах. Удачи на интервью!
Часто задаваемые вопросы
Похожие статьи
Зарплата QA Automation vs Manual в 2026 году: стоит ли переходить в автоматизацию
Подробный разбор зарплат тестировщиков в 2026 году. Сравнение доходов Manual и Automation QA, стоимость перехода и окупаемость обучения.
Зарплата тестировщика (QA) в 2026 — ручное и автоматизированное управление качеством
Подробный обзор зарплат тестировщиков в 2026 году. Сколько получают Junior, Middle и Senior QA в ручном и автоматизированном тестировании.
Зарплаты Go-разработчиков в 2026 году: Яндекс, Ozon и Avito
Детальный разбор зарплат Go-разработчиков в 2026 году. Сколько платят Middle, Senior и Lead в Яндексе, Ozon и Avito. Бонусы, опционы и налоги.
Красные флаги на HR-скрининге: что насторожит рекрутера в 2026 году
Разбор 12 критических ошибок на первичном интервью. Статистика отказов, психология рекрутинга и чек-листы для подготовки в 2026 году.
Топ-20 вопросов HR-скрининга в IT: ответы и стратегии 2026 года
Разбор 20 ключевых вопросов на HR-интервью в IT. Как отвечать про зарплату, причины увольнения и проверку soft skills в 2026 году.