Оглавление:
Введение
Общая структура собеседования QA-инженера
Интервью с HR: что и зачем спрашивают
Техническое интервью
Теоретическая часть для Manual QA
Блок 1: Основы тестирования
Блок 2: Документы и отчеты
Блок 3: Основные понятия
Блок 4: Модели разработки
Блок 5: Agile и Scrum
Блок 6: Уровни и виды тестирования
Блок 7: Баги и дефекты
Блок 8: Тест-дизайн
Блок 9: Эстимация и метрики
Блок 10: API
Блок 11: Сети и протоколы
Блок 12: HTTP
Блок 13: Архитектура ПО
Блок 14: Базы данных и SQL
Блок 15: Мобильное тестирование
Блок 16: Логирование и метрики
Блок 17: Типы данных и форматы
Блок 18: Командная строка
Теоретическая часть для Automation QA (Java)
Блок 1: Основы автоматизации
Блок 2: Git
Блок 3: CI/CD
Блок 4: Тест-раннеры (JUnit / TestNG)
Блок 5: Системы сборки (Maven / Gradle)
Блок 6: Локаторы
Блок 7: Инициализация браузера и Selenium
Блок 8: Playwright
Блок 9: API-тестирование
Блок 10: Архитектура фреймворка
Блок 11: Логгеры, репортеры, метрики
Блок 12: Автоматизация мобильных приложений
Вопросы по java
Блок 1: Типы данных
Блок 2: Ключевые концепции ООП
Блок 3: Модификаторы и управление доступом
Блок 4: Операторы и циклы
Блок 5: Работа с исключениями
Блок 6: Современные API
Блок 7: Коллекции (Java Collections Framework)
Блок 8: Глубокие концепции Java
Блок 9: Структуры данных и обобщения (Generics)
Блок 10: Управление памятью и работа со ссылками
Блок 11: Фундаментальные концепции
Блок 12: Архитектурные подходы и паттерны проектирования
Лайвкодинг
Лайвкодинг Java
Блок 1: Stream API
Блок 2: Коллекции (List, Set, Map)
Блок 3: Работа со строками (String, StringBuilder)
Блок 4: Алгоритмы и логика
Блок 5: Специальные задачи
Лайвкодинг SQL
Блок 1: Базовые запросы и фильтрация (SELECT, WHERE)
Блок 2: Сортировка, группировка и агрегатные функции (ORDER BY, GROUP BY, HAVING)
Блок 3: JOINs (Работа с несколькими таблицами)
Блок 4: Подзапросы и обновление данных (Subqueries, UPDATE, DELETE)
Блок 5: Проектирование и модификация структуры (DDL)
Блок 6: Продвинутые концепции
Вопросы на логику и мышление
Вопросы от кандидата интервьюерам
Знакомство с командой
Заключение
Введение
В этой статье мы подробно разберем процесс собеседования QA-инженера в 2026 году. Материал построен на анализе десятков реальных интервью в компаниях разного масштаба — от небольших стартапов до крупных корпораций и аутсорсеров.
Если посмотреть на текущий рынок найма, картина получается неоднозначная. Джуниорам стало сложнее: компании реже готовы учить с нуля и хотят видеть хотя бы базовую подготовку. Требования к опытным специалистам растут — теперь недостаточно просто уметь писать тесты, нужно разбираться в архитектуре, CI/CD и думать о производительности. При этом работодатели все чаще ищут универсалов: чтобы и руками протестировать могли, и автотесты написать, и в базе данных разобраться. Да и кандидаты стали внимательнее выбирать — им важна не только зарплата, но и интересные задачи, нормальная атмосфера в команде и понятные перспективы.
Из-за этого часто возникает недопонимание. Кандидаты не до конца понимают, что от них хотят услышать. Интервьюеры не всегда могут правильно спросить, чтобы не отпугнуть хорошего специалиста какой-то мелочью.

Цель этой статьи — системно разобрать процесс собеседования QA-инженера и дать читателю полную картину: что будет на каждом этапе, какие вопросы могут задать и, главное, почему их задают. Что на самом деле проверяет интервьюер, когда спрашивает про разницу коллекций в Java или про то, как вы ищете ошибки в готовом продукте?
Кому будет полезно:
Джуниорам и мидлам — чтобы привести знания в систему и понять, куда расти дальше.
Сеньорам и тимлидам — как памятка для проведения собеседований или оценки своей команды.
Тем, кто переходит из manual в automation — здесь можно найти список тем, которые стоит подтянуть.
HR-ам — чтобы лучше понимать, на что обращать внимание при отборе кандидатов и как передавать обратную связь техническим специалистам.
Универсального шаблона не существует. В каждой компании свои порядки, свой стек и свои особенности. Где-то до сих пор работают с чистым Selenium без паттернов, а где-то уже вовсю используют Playwright и современные фреймворки. Но, проанализировав десятки интервью в самых разных компаниях, можно выделить общие закономерности. О них и пойдет речь.
1. Общая структура собеседования QA-инженера
Чтобы легче было ориентироваться, давайте сначала посмотрим на типичный путь кандидата. Это как карта уровней в игре — зная её, проще проходить. Сразу оговорюсь: порядок этапов может меняться, что-то могут убрать или, наоборот, добавить. Но в среднем всё выглядит так:

Отправка резюме. С этого всё начинается.
Разговор с HR (скрининг). Короткий звонок минут на 15–30. HR смотрит, адекватный ли человек, сверяет ожидания по зарплате, графику, мотивацию.
Тестовое задание (не всегда). Могут дать до или после технического собеседования. Часто практикуют для джунов или когда хотят посмотреть, как человек решает реальные задачи.
Техническое собеседование. Самый важный этап, длится обычно час-полтора. Именно здесь решают, берут вас или нет.
Интервью с командой / руководителем. Смотрят, как вы общаетесь, подходите ли команде по духу, насколько вам интересна работа.
Оффер и обсуждение деталей. Если всё хорошо — получаете предложение.
Возможные вариации:
В стартапах часто всё проще. Техническое интервью может провести технический директор, а отдельного разговора с командой может и не быть.
В крупных компаниях процесс длиннее. Могут добавить онлайн-тестирование, встречу с эйчаром из другого отдела, проверку службой безопасности (особенно в банках) и разговор с руководством.
В аутсорсе сначала вы проходите собеседование внутри компании, а потом — ещё одно с представителем заказчика. И там требования могут отличаться.
Понимание этой структуры поможет не паниковать, если процесс пойдет не по стандартному сценарию. В большинстве случаев это просто особенности конкретной компании, а не попытка вас запутать или завалить.
2. Интервью с HR: что и зачем спрашивают
HR-интервью — это не просто "разговор для галочки". У HR-а есть конкретный чек-лист:

Адекватность и коммуникабельность. Сможет ли кандидат нормально разговаривать с командой?
Соответствие формальным критериям. Ожидания по зарплате, график работы, готовность к переезду.
Мотивация. Почему уходит с текущего места? Почему хочет к нам?
Первичная проверка опыта. Сбор информации для передачи техническому интервьюеру.
Вот примеры реальных вопросов от HR-ов (имена изменены):
ВОПРОСЫ ОТ HR
Эти вопросы помогают HR-у понять, что вами движет, надолго ли вы к ним, не возникнет ли конфликтов в команде и насколько ваши ожидания совпадают с реальностью компании.
Вопрос: Почему решил(а) менять текущее место работы?
Вопрос: Почему заинтересовала именно наша компания / вакансия?
Вопрос: Если будет несколько офферов с одинаковой зарплатой — по каким критериям будешь выбирать?
Вопрос: Что для тебя самое важное в работе? А что категорически не принимаешь?
Вопрос: Что для тебя является красным флагом в будущей компании? От чего сразу хочется отказаться?
Вопрос: Какие задачи тебе не нравятся / не хотелось бы делать?
Вопрос: Бывали ли случаи, когда не успевал(а) к дедлайнам? Как выходил(а) из ситуации?
Вопрос: Какой формат работы тебе комфортнее: офис, гибрид или полная удаленка? Почему?
Вопрос: Расскажи про свой прошлый опыт: как у вас было организовано взаимодействие в команде?
Вопрос: Что для тебя важно в коллективе? В какой команде тебе работалось лучше всего и почему?
Вопрос: Проводил(а) ли время с коллегами вне работы (корпоративы, совместные активности)? Как к этому относишься?
Вопрос: Есть ли у тебя хобби, увлечения помимо работы?
Вопрос: Куда хочешь расти профессионально? Видишь себя в будущем больше в управлении, в экспертизе или в архитектуре?
Вопрос: Как представляешь себе идеальный рабочий день?
На что реально обращает внимание HR в этих вопросах:
На честность и рефлексию. Если кандидат отвечает шаблонно ("хочу развиваться", "не люблю плохих людей"), это хуже, чем конкретные формулировки ("не люблю задачи без четких критериев приемки", "важно, чтобы код проходил ревью").
На ценности. Если вы интроверт и не любите корпоративы, а компания ищет "заводного аниматора" для сплочения команды — лучше проговорить это сразу.
На зрелость. Ответы про дедлайны и красные флаги показывают, был ли у человека негативный опыт и как он его переработал.
На приоритеты. Вопрос про выбор между офферами с одинаковой зарплатой — отличный способ понять, что для человека действительно важно (проект, люди, процессы, технологии, график).
3. Техническое интервью — самый важный этап
Здесь вас будут оценивать ваши будущие коллеги или технический эксперт. Интервью может проводить один человек, а может и несколько (панельное интервью). Длительность — около часа.
Структура технического интервью обычно гибкая, но часто выглядит так:
Рассказ о себе и проектах (5-10 минут). Интервьюер слушает и задает уточняющие вопросы по резюме.
Теоретическая часть (25-30 минут). Здесь мы и разделим вопросы на manual и automation. Важно понимать: если вы идете на manual, вас не будут гонять по устройству HashMap. Но по процессам, тест-дизайну и инструментам ручного тестирования — обязательно. Для автоматизаторов же знание теории тестирования также обязательно.
Практическая часть (оставшееся время). Решение задач, написание кода, SQL-запросы.
3.1. Теоретическая часть для Manual QA

Для "мануальшиков" важно показать системное мышление, понимание процессов и умение находить баги.
Сразу важное замечание: список вопросов ниже — не для заучивания, а для ориентира. На собеседовании могут спросить вообще всё что угодно, и количество возможных вопросов просто несчетное. Кто-то любит копать вглубь одной темы, кто-то — пройтись по верхам, но широко. Я постарался собрать самые частые и показательные вопросы, сгруппировав их по блокам для удобства. Если вы уверенно отвечаете на большую часть из них — скорее всего, с теорией у вас порядок.
ВОПРОСЫ ПО ТЕОРИИ ДЛЯ MANUAL QA
Блок 1: Основы тестирования
Что такое тестирование программного обеспечения? Дайте определение.
Перечислите основные цели тестирования.
В чем разница между статическим и динамическим тести��ованием?
Какие вы знаете виды тестирования по типу выполнения (ручное/автоматизированное)?
Кто может выступать в роли исполнителя тестирования (разработчик, тестировщик, пользователь)?
Назовите основные уровни тестирования.
Что такое модульное (unit) тестирование и кто его обычно выполняет?
Для чего нужно интеграционное тестирование?
Что проверяется на уровне системного тестирования?
Чем приемочное тестирование отличается от системного?
Что такое Definition of Ready (DoR) и зачем он нужен команде?
Какие критерии включает в себя Definition of Done (DoD)?
Чем DoR отличается от DoD? Приведите примеры.
Что такое Acceptance Criteria (AC) и где они используются?
Что такое Exit Criteria в контексте завершения тестирования?
Где тестировщик может найти требования и ожидаемый результат?
Перечислите основные активности в тестировании (от планирования до завершения).
Что происходит на этапе анализа тестирования?
В чем заключается проектирование тестов?
Что включает в себя реализация тестов?
Блок 2: Документы и отчеты
Что такое требования к ПО? Какие типы требований вы знаете?
Чем функциональные требования отличаются от нефункциональных? Приведите примеры.
Перечислите свойства качественных требований (акроним: например, "ПолПоПроОд").
Что значит, что требование должно быть тестируемым?
Как тестировщик может участвовать в тестировании требований?
Какие методы анализа требований вы знаете (ревью, прототипирование)?
Что такое рецензирование (review) требований?
Перечислите основные виды тестовой документации.
Что такое тест-кейс? Из каких основных атрибутов он состоит?
Что такое чек-лист и в каких случаях его удобно использовать?
В чем плюсы и минусы чек-листов по сравнению с тест-кейсами?
Для чего нужен тест-план? Какие разделы он содержит?
Чем мастер-тест-план отличается от тест-плана релиза?
Что такое отчет о тестировании и какую информацию он должен содержать?
Какие данные обязательно должны быть в баг-репорте?
Что такое тестовая стратегия и чем она отличается от тест-плана?
Для чего используется тест-сьют (набор тестов)?
Что такое тест-ран (прогон тестов)?
Какие данные являются тестовыми данными? Приведите примеры.
Что такое предусловие и постусловие в тест-кейсе?
В каком документе описываются Use Cases?
Какая документация служит источником для написания приемочных тестов?
Что такое SRS (Software Requirements Specification)?
Блок 3: Основные понятия
В чем разница между QA (Quality Assurance) и QC (Quality Control)?
Что такое верификация? На какой вопрос она отвечает?
Что такое валидация? На какой вопрос она отвечает?
Приведите примеры методов верификации и валидации.
Какие виды валидации на форме вы знаете (мгновенная, ограничивающая, отложенная)?
Что такое PSV (Process and Software Validation)? Где применяется?
Назовите и объясните 7 принципов тестирования.
Объясните принцип: "Тестирование демонстрирует наличие дефектов".
Что означает "Исчерпывающее тестирование невозможно"?
Почему раннее тестирование помогает экономить ресурсы?
В чем заключается "Парадокс пестицида"?
Что такое тестовая среда (Test Environment)? Из каких компонентов она состоит?
Какие виды тестовых сред вы знаете (DEV, QA, STAGING, PROD)?
Для чего нужна среда STAGING?
Чем тестовая среда отличается от продакшн-среды?
Дайте определения понятиям: ошибка (error), дефект (defect), отказ (failure).
Покажите цепочку возникновения проблемы: от действия человека до проявления в системе.
Что такое сбой (fault) и как он соотносится с отказом?
Перечислите этапы жизненного цикла тестирования (STLC).
Что происходит на этапе Test Closure (завершение тестирования)?
Блок 4: Модели разработки
Перечислите основные стадии разработки продукта (SDLC).
Какие модели разработки ПО вы знаете?
В чем суть водопадной модели (Waterfall)? Какие у нее плюсы и минусы?
Чем итеративная модель отличается от водопадной?
Что такое спиральная модель и для каких проектов она подходит?
В чем особенность V-модели? Как в ней отражено тестирование?
Что такое DevOps и как эта культура влияет на процессы разработки и тестирования?
Блок 5: Agile и Scrum
Назовите 4 принципа Agile-манифеста.
В чем разница между методологиями Scrum и Kanban?
Что такое спринт (Sprint) в Scrum?
Какие роли определены в Scrum?
За что отвечает Product Owner?
Какова роль Scrum Master'а?
Кто входит в Development Team?
Назовите основные артефакты Scrum.
Что такое Product Backlog и кто его ведет?
Что такое Sprint Backlog?
Что такое Increment (инкремент)?
Какие церемонии (митинги) проводятся в Scrum?
Для чего проводится Sprint Planning?
В чем цель ежедневного Daily Scrum?
Что происходит на Sprint Review (демо)?
Для чего нужна ретроспектива спринта (Retrospective)?
Что такое Velocity команды и как он рассчитывается?
Что такое Capacity команды?
Что такое релизная политика? Какие типы релизов бывают?
Что такое Semantic Versioning (
MAJOR.MINOR.PATCH)?Какие метрики DORA используются для оценки эффективности релизов?
Блок 6: Уровни и виды тестирования
Перечислите 4 основных уровня тестирования (иерархия).
Кто обычно пишет модульные тесты?
Что проверяется на интеграционном тестировании?
Какие методы интеграции вы знаете (Big Bang, Top-Down, Bottom-Up)?
Что такое системное тестирование?
Что такое приемочное тестирование? Какие у него подвиды (альфа, бета, UAT)?
Назовите 4 большие группы тестирования (по целям).
Что такое функциональное тестирование? Приведите примеры.
Что такое нефункциональное тестирование? Приведите примеры.
Что такое тестирование, связанное с изменениями?
Что такое структурное тестирование (white-box)?
Расскажите о тестировании безопасности (Security testing). Какие виды угроз ищут?
Что такое SQL-инъекция?
Что такое XSS (Cross-Site Scripting)?
Для чего проводится юзабилити-тестирование (Usability testing)?
Назовите 5 критериев юзабилити по Нильсену.
Чем UI-тестирование отличается от UX-тестирования?
Что такое тестирование доступности (Accessibility testing)?
Что такое гайдлайны WCAG?
Что проверяет тестирование совместимости (Compatibility testing)?
Чем кросс-браузерное тестирование отличается от кросс-платформенного?
Что такое тестирование локализации (Localization testing)?
Что проверяет тестирование интернационализации (Internationalization testing)?
Какие виды тестирования производительности вы знаете?
В чем разница между нагрузочным (Load) и стрессовым (Stress) тестированием?
Что такое объемное тестирование (Volume testing)?
Для чего нужно тестирование стабильности (Stability/Soak testing)?
Что такое Smoke-тестирование? Когда его проводят?
Что такое Sanity-тестирование? Чем оно отличается от Smoke?
Что такое регрессионное тестирование (Regression testing)?
Чем регрессионное тестирование отличается от ретеста (Re-testing)?
Что такое Build Verification Testing (BVT)?
Объясните концепцию пирамиды тестирования.
Что такое антипаттерн "Мороженое" (Ice Cream Cone)?
Блок 7: Баги и дефекты
Дайте определение дефекта (бага).
Опишите жизненный цикл бага (основные статусы).
Что означают статусы "Assigned", "Fixed", "Verified"?
В каких случаях баг получает статус "Reopened"?
Чем "Duplicate" отличается от "Not a Bug"?
Что такое классификация дефектов? По каким параметрам классифицируют?
Что такое Severity (серьезность) дефекта? Кто его определяет?
Перечислите градации Severity (от Blocker до Trivial).
Что такое Priority (приоритет) дефекта? Кто его назначает?
Может ли баг с High Severity иметь Low Priority? Приведите пример.
А может ли баг с Low Severity иметь High Priority? Приведите пример.
Какую серьезность обычно имеет опечатка в интерфейсе?
Что такое RCA (Root Cause Analysis) и для чего он нужен?
Расскажите о методике "5 почему" (5 Whys).
Для чего используется диаграмма Исикавы (Fishbone)?
Какие метрики качества багов вы знаете?
Что такое Defect Density?
Что показывает Defect Leakage? Почему это важная метрика для QA?
Что такое Defect Removal Efficiency (DRE)?
Какие основные атрибуты должны быть в баг-репорте?
Что должно быть в поле "Шаги к воспроизведению"?
Зачем в баг-репорте указывать окружение (Environment)?
Блок 8: Тест-дизайн
Что такое тест-дизайн?
Какие техники тест-дизайна вы знаете?
Объясните технику эквивалентного разделения (Equivalence Partitioning). Приведите пример.
Объясните технику анализа граничных значений (Boundary Value Analysis). Приведите пример.
В чем разница между этими двумя техниками?
Для чего используются таблицы принятия решений (Decision Tables)?
Что такое попарное тестирование (Pairwise Testing) и когда оно эффективно?
Опишите технику тестирования переходов состояний (State Transition Testing).
Что такое исследовательское тестирование (Exploratory Testing)?
Что такое тестирование на основе опыта (Error Guessing)? Приведите пример.
Что такое фаззинг (Fuzz Testing)?
В чем разница между тестированием "черного ящика" и "белого ящика"?
Какие техники относят к тестированию "серого ящика"?
Что такое тестирование на основе рисков (Risk-Based Testing)?
Какие типы тестовых стендов вы знаете?
Чем стенд ИФТ отличается от стенда ПСИ (в контексте финтеха)?
Для чего нужен стенд со стабами (Stab)?
Из чего состоит конфигурация тестового стенда (аппаратная/программная часть)?
Блок 9: Эстимация и метрики
Что такое эстимация в тестировании?
Какие методы оценки трудозатрат вы знаете?
Как работает метод "Planning Poker"?
Что такое метод аналогий?
Объясните метод оценки по трем точкам (PERT). Приведите формулу.
Какие факторы влияют на точность эстимации?
Какие метрики тестирования используются для отслеживания прогресса?
Что такое покрытие кода тестами?
Что такое плотность дефектов (Defect Density)?
Что такое среднее время на исправление дефекта?
Блок 10: API
Что такое API (Application Programming Interface)?
Какие виды API вы знаете (по архитектуре/протоколу)?
Что такое REST API? Какие принципы лежат в его основе (RESTful)?
Что такое SOAP API? В каком формате передаются данные?
Чем REST отличается от SOAP?
Что такое GraphQL? В чем его преимущество перед REST?
Для чего используется документация в API? Какие форматы документации знаете (OpenAPI, WSDL)?
Что такое WSDL?
Что такое OpenAPI (Swagger)?
Какие существуют токены для авторизации в API (Bearer, JWT, OAuth)?
Что такое JWT (JSON Web Token) и из каких частей он состоит?
Для чего нужен Refresh Token?
Что такое пагинация в API и зачем она нужна?
Какие параметры обычно используются для пагинации (
limit,offset,page)?Чем синхронное взаимодействие с API отличается от асинхронного?
Какие методы асинхронного взаимодействия вы знаете (Polling, WebSocket, WebHooks)?
Что такое WebHook?
Для чего нужна валидация OpenAPI спецификации в CI/CD?
Какие инструменты для валидации API вы знаете (Dredd, Spectral)?
Что такое cURL и для чего он используется?
Напишите cURL-запрос для отправки POST-данных в формате JSON.
Что такое Postman? Для чего он используется в тестировании API?
Какова иерархия (приоритет) переменных в Postman?
Что такое коллекция (Collection) в Postman и зачем она нужна?
Что такое SoapUI?
Что такое RESTful-системы?
Что такое XSD (XML Schema Definition) в контексте SOAP?
Что такое WADL?
Что такое WS-Security?
Блок 11: Сети и протоколы
Что такое сетевой протокол?
Назовите основные протоколы прикладного уровня и их порты (HTTP, HTTPS, FTP, SSH, DNS).
Для чего используется протокол SMTP?
Что такое протокол TCP? Какие у него особенности (надежность, соединение)?
Чем TCP отличается от UDP?
Что такое модель OSI? Перечислите ее 7 уровней.
Что такое модель TCP/IP? Сколько в ней уровней?
Как соотносятся уровни модели OSI и TCP/IP?
Что такое прокси-сервер? Какие виды прокси бывают (прямой, обратный)?
Для чего нужен обратный прокси (Reverse Proxy)?
Что такое VPN (Virtual Private Network) и как он работает?
Какие протоколы VPN вы знаете (OpenVPN, WireGuard)?
В чем разница между MAC-адресом и IP-адресом?
На каком уровне модели OSI работает MAC-адрес? А IP-адрес?
Что такое сниффер (анализатор трафика)? Приведите примеры (Wireshark, Fiddler).
Для чего используются снифферы в тестировании?
Что такое брандмауэр (файрвол)?
Что такое CMS (Content Management System)? Приведите примеры.
Блок 12: HTTP
Что такое HTTP? Какой порт используется по умолчанию?
Чем HTTPS отличается от HTTP? Что такое SSL/TLS?
Опишите процесс SSL/TLS Handshake.
Что такое публичный, приватный и сессионный ключи?
Какова структура HTTP-запроса?
Какова структура HTTP-ответа?
Что такое методы HTTP? Перечислите основные.
Что такое CRUD и как он соотносится с HTTP-методами?
Для чего используется метод GET? Каковы его особенности?
Для чего используется метод POST? Чем он отличается от GET?
Что означает идемпотентность метода HTTP? Какие методы идемпотентны?
Какие методы HTTP считаются безопасными (не изменяют состояние на сервере)?
Какие коды ответов HTTP вы знаете? Назовите основные группы (1xx, 2xx, 3xx, 4xx, 5xx).
Что означает код ответа 200 OK?
Что означает код ответа 201 Created?
Что означает код ответа 301 Moved Permanently?
Что означает код ответа 400 Bad Request?
Что означает код ответа 401 Unauthorized?
Что означает код ответа 403 Forbidden? Чем он отличается от 401?
Что означает код ответа 404 Not Found?
Что означает код ответа 500 Internal Server Error?
Что такое HTTP-заголовки (Headers)? Для чего они нужны?
Какие заголовки запроса вы знаете (
Host,User-Agent,Authorization)?Какие заголовки ответа вы знаете (
Content-Type,Set-Cookie,Cache-Control)?Что такое CORS (Cross-Origin Resource Sharing)? Какие проблемы он решает?
Какие заголовки связаны с CORS?
Что такое LocalStorage и SessionStorage? В чем разница?
Что такое куки (Cookies) и для чего они используются?
Какие виды куки вы знаете (сессионные, постоянные, HttpOnly)?
Чем куки отличаются от кэша браузера?
Что такое URI, URL и URN? В чем разница?
Что такое AJAX и для чего он используется?
Какие инструменты DevTools вы используете чаще всего?
Что можно увидеть на вкладке Network в DevTools?
Как с помощью DevTools эмулировать медленное соединение?
Блок 13: Архитектура ПО
Что такое монолитная архитектура? Каковы ее плюсы и минусы?
Что такое микросервисная архитектура?
В чем преимущества микросервисов перед монолитом?
Какие сложности возникают при работе с микросервисами?
Что такое клиент-серверная архитектура?
Какие виды клиент-серверной архитектуры вы знаете (2-уровневая, 3-уровневая)?
Что такое "толстый клиент" и "тонкий клиент"? Приведите примеры.
Для чего нужен балансировщик нагрузки (Load Balancer)?
Какие алгоритмы балансировки вы знаете (Round Robin, Least Connections)?
Чем отличается L4 балансировка от L7?
Дайте определения: идентификация, аутентификация, авторизация.
Чем оркестрация микросервисов отличается от хореографии?
Что такое синхронное и асинхронное взаимодействие в архитектуре?
Что такое мок (Mock) и стаб (Stub) в тестировании? Для чего они нужны?
Чем WireMock отличается от Mockito?
Что такое брокер сообщений (Message Broker)?
Для чего используются брокеры сообщений (Kafka, RabbitMQ)?
Что такое Apache Kafka? Какие ключевые понятия в ней есть (топик, партиция, продюсер, консьюмер)?
Чем Kafka отличается от RabbitMQ?
Что такое оффсет (offset) в Kafka?
Что такое EDA (Event-Driven Architecture)?
Что такое интеграционная шина (ESB)?
Что такое шлюз (API Gateway)? Какие функции он выполняет?
В чем разница между шлюзом и шиной?
Что такое виртуальная машина (VM) и для чего она используется в тестировании?
Что такое контейнеризация (Docker) и чем контейнер отличается от виртуальной машины?
Блок 14: Базы данных и SQL
Что такое база данных?
Что такое СУБД? Приведите примеры.
Какие модели баз данных вы знаете?
Что такое реляционная база данных?
Что такое NoSQL базы данных? Какие типы NoSQL БД бывают?
Назовите основные виды связей между таблицами в БД (1:1, 1:N, N:M).
Приведите пример связи "один ко многим".
Как реализуется связь "многие ко многим"?
Что такое первичный ключ (Primary Key)?
Что такое внешний ключ (Foreign Key)?
Что такое су��рогатный ключ?
Что такое индекс (Index) в БД и для чего он нужен?
Что такое транзакция? Какими свойствами (ACID) она обладает?
Что такое представление (View)?
Что такое репликация данных? Для чего она нужна?
Чем master-slave репликация отличается от master-master?
Что такое шардирование (Sharding)? Какую проблему оно решает?
Какие типы данных в SQL вы знаете (числовые, строковые, дата/время)?
Чем CHAR отличается от VARCHAR?
Что такое SQL (Structured Query Language)?
Какие группы операторов SQL вы знаете (DDL, DML, DCL, TCL)?
Что относится к операторам DDL (CREATE, ALTER, DROP)?
Что относится к операторам DML (SELECT, INSERT, UPDATE, DELETE)?
Напишите запрос SELECT для выбора всех данных из таблицы
users.Напишите запрос для выборки имени и возраста пользователей старше 18 лет.
Как отсортировать результаты запроса по какому-либо полю?
Как ограничить количество возвращаемых записей (
LIMIT)?Для чего используется оператор WHERE?
Какие операторы фильтрации вы знаете (
IN,BETWEEN,LIKE)?Для чего используется оператор JOIN?
Какие виды JOIN вы знаете (INNER, LEFT, RIGHT, FULL)?
Чем INNER JOIN отличается от LEFT JOIN?
Напишите запрос, который выведет всех пользователей и их заказы, включая пользователей без заказов.
Что такое агрегатные функции? Назовите их (
COUNT,SUM,AVG,MAX,MIN).Для чего используется оператор GROUP BY?
Чем HAVING отличается от WHERE?
Что делают операторы UNION и UNION ALL?
Для чего нужен оператор EXISTS?
Блок 15: Мобильное тестирование
Какие виды мобильных приложений существуют?
Чем нативное приложение отличается от гибридного и веб-приложения?
Что такое PWA (Progressive Web App)?
Какие элементы управления (UI controls) в мобильных приложениях вы знаете?
В чем заключаются особенности тестирования мобильных приложений?
Как влияет фрагментация устройств на стратегию тестирования?
Как тестировать поведение приложения при прерываниях (звонок, смс)?
Что такое жесты в мобильных приложениях? Какие жесты нужно проверять?
Как тестировать работу приложения при потере сети или ее переключении (Wi-Fi -> 4G)?
Что такое глубокие ссылки (Deep Links) и как их тестировать?
Как тестировать Push-уведомления?
Какие бывают состояния приложения (жизненный цикл)? Как тестировать переходы между ними?
Что такое разрешения (Permissions)? Как тестировать сценарии с разрешениями?
Что нужно проверить при тестировании установки и обновления приложения?
Как тестировать потребление батареи приложением?
Что такое гайдлайны (Apple HIG, Material Design) и зачем их знать тестировщику?
Назовите критерии выбора устройства для тестирования.
Какие способы установки приложений на устройство вы знаете (для iOS и Android)?
Что такое файлы .apk и .ipa?
Что такое кросс-платформенная разработка (React Native, Flutter)? Как это влияет на тестирование?
Чем эмулятор отличается от симулятора?
Какие плюсы и минусы тестирования на реальных устройствах?
Что такое облачные фермы устройств (BrowserStack, Firebase Test Lab)?
Что такое LogCat? Для чего он нужен тестировщику Android?
Что означают уровни логов в LogCat (V, D, I, W, E)?
Как с помощью ADB (Android Debug Bridge) установить приложение?
Напишите команду ADB для очистки данных приложения.
Как с помощью ADB эмулировать нажатие на экран?
Как с помощью ADB получить логи устройства?
Что такое жизненный цикл Activity в Android?
Какие методы жизненного цикла приложения в iOS вы знаете?
Что такое BDUI / SDUI (Backend/Server-Driven UI) и как это тестировать?
Блок 16: Логирование и метрики
Что такое логи и для чего они нужны?
Какие уровни логирования вы знаете (DEBUG, INFO, WARN, ERROR)?
На каком уровне логирования стоит фиксировать ошибку, не приводящую к падению?
Что такое ELK Stack? Из каких компонентов он состоит?
Какую роль в ELK играет Elasticsearch?
Для чего используется Logstash?
Что можно делать в Kibana?
Что такое KQL (Kibana Query Language)? Напишите пример запроса.
Как найти в Kibana все логи с уровнем ERROR за последний час?
Чем Grafana отличается от Kibana?
Блок 17: Типы данных и форматы
Что такое JSON? Опишите его структуру и типы данных.
Какие преимущества и недостатки JSON?
Что такое JSON Schema и для чего она нужна?
Что такое JSONPath? Как с его помощью получить значение поля?
Что такое XML? Чем он отличается от JSON?
Что такое YAML? Где он чаще всего используется (конфиги, CI/CD)?
Что такое CSV?
Что такое Protobuf (Protocol Buffers)? В чем его преимущество перед JSON?
Что такое Avro? Где он применяется (Kafka, Hadoop)?
Блок 18: Командная строка
Для чего нужна командная строка тестировщику?
Какие базовые команды CMD (Windows) вы знаете (
dir,cd,copy,del)?Что делает команда
ipconfig?Что делает команда
ping?Что такое PowerShell? Чем он отличается от CMD?
Что такое cmdlet в PowerShell?
Какие базовые команды Bash (Linux) вы знаете (
ls,cd,pwd,mkdir)?Что делает команда
grep? Приведите пример.Как посмотреть содержимое файла в Linux?
Как следить за изменениями в файле лога в реальном времени (
tail -f)?Как найти все процессы, запущенные пользователем (
ps aux | grep user)?Как завершить процесс по его PID (
kill)?Что делают операторы
>,>>и|в командной строке?Что такое bash-скрипт? Напишите простой скрипт для запуска тестов.
Что значит
$?в bash?Как в bash-скрипте передать параметр и обратиться к нему (
$1,$2)?Что такое
curlи как с его помощью отправить GET-запрос?Как с помощью
curlотправить POST-запрос с JSON-телом?Как передать токен авторизации в
curl?Для чего используется
xargs?
Комментарий для manual'щиков:
Обратите внимание на вопросы про локализацию бага. Тут проверяется системность. Правильный ответ — не "ну, поклацаю ещё", а четкая последовательность: проверить консоль браузера (нет ли JS-ошибок), проверить вкладку Network (ушел ли запрос, какой пришел ответ), проверить логи бекенда, попробовать на другом браузере/окружении. Интервьюер хочет видеть инженерный подход, а не "метод тыка".
3.2. Теоретическая часть для Automation QA (Java)
Здесь глубина погружения в язык и инструменты должна быть гораздо выше. Вопросы делятся на несколько больших блоков: основы Java, ООП, коллекции, инструменты автоматизации, процессы.
И сразу важный дисклеймер, даже важнее, чем для manual-раздела. В автоматизации количество возможных вопросов вообще не поддается подсчету — стек слишком широкий, и каждая компания использует свой набор инструментов. Кто-то сидит на чистом Selenium, кто-то перешел на Playwright, где-то пишут на Java, а где-то на Python или JS. Поэтому список ниже — это скорее "джентльменский набор" тем, которые стоит знать. Но особое внимание нужно уделять конкретным инструментам, библиотекам и фреймворкам, которые указаны в вакансии. Если в требованиях есть Spring — готовьтесь к вопросам по Spring. Если пишут про Kafka — значит, будут спрашивать про брокеры сообщений. По ним с очень высокой вероятностью будут вопросы, потому что интервьюеры проверяют то, с чем вам предстоит работать каждый день.
ВОПРОСЫ ПО ТЕОРИИ ДЛЯ AUTOMATION QA (JAVA)

Блок 1: Основы автоматизации
Что такое автоматизированное тестирование и каковы его основные цели?
Какие тесты целесообразно автоматизировать, а какие — нет? Приведите примеры.
Каковы преимущества и недостатки автоматизации по сравнению с ручным тестированием?
Какие факторы влияют на выбор сценариев для автоматизации?
Дайте определения понятиям: идентификация, аутентификация, авторизация. Приведите пример последовательности этих процессов.
Какие существуют типы тестов, подходящие для автоматизации (регрессионные, smoke, критический путь)?
Блок 2: Git
Что такое Git и для каких целей он используется в разработке и тестировании?
В чем разница между централизованными (SVN) и децентрализованными (Git) системами контроля версий?
Опишите основные концепции Git: репозиторий, коммит, ветка.
Какие основные ветки существуют в модели Git Flow? Объясните их назначение (main, develop, feature, release, hotfix).
Назовите и объясните назначение базовых команд Git:
clone,add,commit,push,pull,status,log.В чем разница между командами
git mergeиgit rebase?Что делает команда
git cherry-pick? В каких сценариях она может быть полезна?Как временно сохранить незакоммиченные изменения, не создавая коммит? Какая команда для этого используется (
git stash)?Объясните разницу между
git fetchиgit pull.Что такое
git squashи как его можно выполнить?Какими командами можно настроить имя пользователя и email в Git?
В чем отличие
git revertотgit reset? Какой из них безопаснее для использования в общей ветке?Объясните назначение флагов:
-m(дляcommit),-b(дляcheckout),--amend(дляcommit),-dи-D(дляbranch),-f(дляpush).Что такое
git blameи для чего он используется?Как с помощью Git найти коммит, который внес ошибку (
git bisect)?
Блок 3: CI/CD
Что такое CI/CD? Расшифруйте аббревиатуры и объясните концепции непрерывной интеграции, доставки и развертывания.
В чем разница между Continuous Delivery и Continuous Deployment?
Что такое пайплайн (Pipeline) в CI/CD? Опишите его типовую структуру (Source, Build, Test, Deploy).
Какие инструменты CI/CD вы знаете? (Jenkins, GitLab CI, GitHub Actions, TeamCity)
Какие преимущества дает внедрение CI/CD для команды тестирования?
Как выглядит типичный YAML-файл конфигурации для GitHub Actions или GitLab CI? Опишите его основные разделы (name, on, jobs, steps).
Что такое артефакты (artifacts) в контексте CI/CD и для чего они используются?
Как в пайплайне настроить запуск разных этапов (stages) и заданий (jobs)?
Что такое виртуализация и контейнеризация? В чем их принципиальное отличие?
Какие плюсы использования Docker для запуска автотестов?
Как Jenkins использует
Jenkinsfile? В чем разница между декларативным и скриптовым синтаксисом Pipeline?
Блок 4: Тест-раннеры (JUnit / TestNG)
Для чего нужны тест-раннеры (JUnit, TestNG) в автоматизации?
Назовите основные аннотации JUnit 5 (
@Test,@BeforeEach,@AfterAll,@DisplayName,@Disabled).Как в JUnit 5 организовать параметризованные тесты? Какие аннотации для этого используются (
@ParameterizedTest,@ValueSource,@CsvSource)?Что такое
assertв тестах? Какие основные assert-методы вы знаете в JUnit 5 (assertEquals,assertTrue,assertThrows)?Чем
Assertionsотличаются отAssumptionsв JUnit 5?Как в JUnit 5 можно сгруппировать несколько проверок так, чтобы тест упал один раз со всеми ошибками (
assertAll)?Какие основные аннотации есть в TestNG (
@Test,@BeforeMethod,@BeforeClass,@BeforeSuite)?Как в TestNG реализовать параметризацию тестов с помощью
@DataProvider?Как в TestNG задать приоритет выполнения тестов (
priority)?Как в TestNG настроить зависимости между тестами (
dependsOnMethods)?Какие существуют способы повторного запуска упавших тестов (re-run failed tests) в JUnit 5 и TestNG?
Сравните JUnit 5 и TestNG. В каких случаях какой фреймворк предпочтительнее?
Блок 5: Системы сборки (Maven / Gradle)
Для чего нужны системы сборки (Maven, Gradle) в проектах автоматизации?
Что такое файл
pom.xmlв Maven? Опишите его структуру (groupId, artifactId, version, dependencies, plugins).Что такое жизненный цикл Maven? Назовите основные фазы (clean, compile, test, package, install, deploy).
Что такое
dependencyиpluginв Maven?В чем разница между фазами (phase) и целями (goal) в Maven?
Что такое
build.gradleфайл в Gradle? На каком языке он пишется?Что такое задача (task) в Gradle?
Чем Gradle отличается от Maven с точки зрения производительности и гибкости конфигурации?
Блок 6: Локаторы
Что такое локаторы и зачем они нужны в UI-автоматизации?
Какие основные типы локаторов существуют в Selenium WebDriver?
Какой локатор считается самым быстрым и надежным? Почему?
Что такое CSS-селектор? Приведите примеры.
Что такое XPath? Какие бывают типы XPath (абсолютный и относительный)?
Что такое оси XPath? Для чего они используются? Приведите пример.
Назовите несколько полезных функций XPath (
contains(),text(),starts-with(),last(),position()).Сравните CSS-селекторы и XPath. Когда что лучше использовать?
Как написать XPath для поиска элемента по тексту, содержащему "Hello"?
Как найти элемент, который следует сразу за другим элементом, используя XPath?
Блок 7: Инициализация браузера и Selenium
Как правильно инициализировать WebDriver в автоматизированных тестах?
С какими нюансами можно столкнуться при работе с разными браузерами (Chrome, Firefox)?
Что такое WebDriverManager и зачем он нужен? Какие проблемы он решает?
Через какой паттерн проектирования чаще всего реализуется управление экземпляром WebDriver? В чем его суть (Singleton)?
Что такое JSON Wire Protocol? Какую роль он играет в Selenium?
Что такое Browser Capabilities (
ChromeOptions,FirefoxOptions)? Для чего их используют?Как запустить браузер в headless-режиме? Для чего это нужно?
Что такое неявные ожидания (Implicit Wait)? Как они задаются?
Что такое явные ожидания (Explicit Wait) и класс
WebDriverWait? В чем их преимущество?Какие Expected Conditions вы знаете (
visibilityOfElementLocated,elementToBeClickable,alertIsPresent)?Чем явные ожидания отличаются от неявных? Можно ли их смешивать?
Что такое Fluent Wait и чем он отличается от обычного явного ожидания?
Почему использование
Thread.sleep()считается плохой практикой?Какие исключения (exceptions) в Selenium вы знаете (
NoSuchElementException,StaleElementReferenceException,TimeoutException)?Когда возникает
StaleElementReferenceExceptionи как с ним бороться?Для чего нужен класс
Actionsв Selenium? Какие действия он позволяет выполнять?Как в Selenium переключиться на всплывающее окно (alert), принять или отклонить его?
Как работать с элементами внутри iframe?
Как выполнить JavaScript код через Selenium (
JavascriptExecutor)?Как переключаться между вкладками или окнами браузера (
WindowHandle)?Что такое Page Object Model? Опишите его структуру и преимущества.
Что такое Page Element / Component Object? Чем он отличается от Page Object?
Что такое Selenide? Какие задачи он упрощает по сравнению с чистым Selenium?
Что такое Selenoid? Какую инфраструктурную проблему он решает?
Блок 8: Playwright
Что такое Playwright? Кем разработан и какие браузеры поддерживает?
Каковы основные архитектурные отличия Playwright от Selenium (WebSocket vs HTTP, встроенные драйверы)?
Проведите сравнение Playwright и Selenium по ключевым параметрам: auto-waiting, изоляция тестов, скорость, работа с сетью.
Что такое Playwright Test Runner? В чем его преимущество перед использованием JUnit/TestNG для E2E-тестов?
Какие основные классы используются в Playwright Java (
Playwright,Browser,BrowserContext,Page)?В чем разница между
Browser,BrowserContextиPageв Playwright?Для чего нужен
BrowserContext? Как он помогает в изоляции тестов?Что такое локатор (Locator) в Playwright? Чем его поведение отличается от
WebElementв Selenium (ленивость, auto-waiting)?Какие встроенные методы для создания точных локаторов есть в Playwright (
page.getByRole(),page.getByText(),page.getByTestId())?Почему рекомендуется использовать
getByRoleвместо XPath/CSS?Как работает auto-waiting в Playwright? Для каких действий оно применяется?
Какие методы для ожидания условий существуют в Playwright (
waitForSelector,waitForFunction,waitForURL)?Как в Playwright перехватывать и модифицировать сетевые запросы (
page.route())?Как в Playwright замокать ответ API?
Как в Playwright работать с несколькими вкладками или страницами?
Как включить запись видео или трассировки для отладки упавших тестов в Playwright?
Что такое Trace Viewer и как он помогает в анализе причин падения тестов?
Как в Playwright эмулировать мобильное устройство или задать геолокацию?
Как работать с iframe в Playwright?
Как обрабатывать диалоговые окна (alert, confirm) в Playwright?
Какие исключения специфичны для Playwright (
TimeoutError,PlaywrightException)?Как в Playwright отслеживать необработанные ошибки JavaScript на странице (
WebError)?
Блок 9: API-тестирование
Для чего нужно тестировать API?
Что такое REST и SOAP? В чем их ключевые отличия?
Что такое сериализация и десериализация данных? Какие библиотеки для этого используются в Java (Jackson, Gson)?
Сравните Jackson и Gson. Какие аннотации из Jackson (
@JsonProperty,@JsonIgnore) вы знаете?Что такое Retrofit? Для чего он используется?
Что такое RestAssured? Какие ключевые BDD-методы он предоставляет (
given(),when(),then())?Как с помощью RestAssured проверить статус-код ответа?
Как с помощью RestAssured извлечь значение из JSON-ответа?
Что такое
RequestSpecificationиResponseSpecificationв RestAssured? Для чего они нужны?Что такое AssertJ? В чем его преимущество перед стандартными asserts JUnit?
Какие методы AssertJ для проверки коллекций (
hasSize,contains,extracting) вы знаете?Что такое Awaitility и для каких целей его используют при тестировании асинхронных операций (в т.ч. API)?
Как с помощью Awaitility дождаться выполнения определенного условия?
Блок 10: Архитектура фреймворка
Что такое паттерн Page Object? Какие проблемы он решает?
Какие уровни (layers) можно выделить в хорошо структурированном фреймворке автоматизации (тесты, бизнес-логика, core)?
Что такое MVC? Из каких компонентов состоит?
Что такое BDD и Gherkin? Для чего нужны
.featureфайлы и ключевые слова (Given, When, Then)?Какие инструменты используются для BDD-тестирования (Cucumber, SpecFlow)?
Что такое Akita? Какие основные компоненты в него входят (
akitaScenario,AkitaPage,AkitaStepDefinitions)?Как в Akita организована работа со страницами и элементами через аннотации (
@Name,@FindBy)?
Блок 11: Логгеры, репортеры, метрики
Что такое логирование и зачем оно нужно в автотестах? Какие библиотеки для логов вы знаете (Log4j, SLF4J)?
Что такое репортер и для чего он нужен? Какие репортеры вы знаете (Allure, ExtentReports)?
Какие аннотации Allure используются для улучшения отчетов (
@Epic,@Feature,@Story,@Step,@Severity,@Attachment)?Как с помощью Allure прикрепить скриншот к отчету при падении теста?
Какие метрики автоматизации вы знаете (покрытие тестами, процент прохождения, flakiness, время выполнения)?
Что такое flaky-тесты и как с ними бороться?
Блок 12: Автоматизация мобильных приложений
Что такое Appium? Для каких платформ он используется?
Каковы основные принципы работы Appium (использование WebDriver, не требует изменения кода приложения)?
Что такое Appium Inspector и для чего он используется?
Какие существуют стратегии поиска элементов в Appium (Accessibility ID, XPath, Android UIAutomator, iOS Predicate)?
В чем разница между
MobileElement,AndroidElementиIOSElement?Какие инструменты для автоматизации Android вы знаете (Espresso, UI Automator)? А для iOS (XCUITest)?
Что такое Kaspresso? Какие преимущества он дает при написании тестов для Android?
Что такое WebdriverIO и для каких платформ он может использоваться?
Какие программы и инструменты входят в "скоуп" (набор) для запуска мобильных тестов (Appium Server, эмуляторы/симуляторы, реальные устройства)?
ВОПРОСЫ ПО JAVA

Блок 1: Типы данных
Какие типы данных существуют в Java? В чем разница между примитивными и ссылочными типами?
Перечислите все примитивные типы в Java, их размер в памяти и диапазоны значений.
Где хранятся примитивные типы, а где — ссылочные?
Что такое мутабельные и иммутабельные классы? Приведите примеры.
Почему класс
Stringсделан иммутабельным? Какие преимущества это дает?Какие классы-обертки (wrapper classes) вы знаете? Для чего они нужны?
Что такое автоупаковка (autoboxing) и распаковка (unboxing)? Приведите пример.
Какие проблемы могут возникнуть при использовании автоупаковки?
Чем отличается
StringBuilderотString? В каких случаях какой использовать?Объясните понятие "пул строк" (String Pool). Как в него попадают строки?
Что произойдет при сравнении строк через
==и через методequals()?Для чего используется метод
intern()у строк?
Блок 2: Ключевые концепции ООП
Что такое ООП? Назовите и объясните его основные принципы.
Что такое инкапсуляция? Как она реализуется в Java?
Что такое наследование? Какое ключевое слово используется для наследования?
Что такое полиморфизм? Объясните разницу между статическим и динамическим полиморфизмом.
Что такое абстракция? Чем она отличается от инкапсуляции?
Что такое переопределение (override) методов? Какие правила нужно соблюдать?
Что такое перегрузка (overload) методов? Чем она отличается от переопределения?
Можно ли перегрузить метод, изменив только тип возвращаемого значения?
Что такое абстрактный класс? Когда его следует использовать?
Что такое интерфейс? Какие изменения произошли в интерфейсах начиная с Java 8?
Чем абстрактный класс отличается от интерфейса? Проведите сравнительный анализ.
Можно ли создать объект абстрактного класса?
Может ли класс реализовывать несколько интерфейсов? А наследоваться от нескольких классов?
Что такое "методы по умолчанию" (default methods) в интерфейсах? Для чего они нужны?
Какие проблемы решает введение статических методов в интерфейсах?
Что такое множественное наследование и почему Java не поддерживает его для классов? Как интерфейсы обходят эту проблему?
Блок 3: Модификаторы и управление доступом
Какие модификаторы доступа существуют в Java? Опишите уровень доступа для каждого.
Что означает модификатор
protected? Кто имеет доступ кprotectedчленам?Что такое package-private (доступ по умолчанию)?
Что означает ключевое слово
final? Где его можно применять (класс, метод, переменная)?Какие ограничения накладывает
finalна класс, метод и переменную?Можно ли изменить значение
finalпеременной-ссылки? А состояние объекта, на который она указывает?Что означает ключевое слово
static? Где его можно применять?В чем разница между статическим и нестатическим методом?
Можно ли обратиться к нестатическому методу из статического контекста? Почему?
Для чего используются статические блоки инициализации?
Объясните разницу между
final,finallyиfinalize().Что такое
superиthis? Где они используются?
Блок 4: Операторы и циклы
Какие условные операторы вы знаете? Напишите синтаксис
if-elseиswitch.Какие типы поддерживает оператор
switch? (до Java 7, Java 7+, Java 14+)Какие циклы существуют в Java? В чем разница между
whileиdo-while?Опишите синтаксис цикла
forи циклаfor-each.Когда удобнее использовать цикл
for-each, а когда обычныйfor?Что такое
breakиcontinue? Для чего они используются в циклах?Можно ли использовать
breakс меткой? Приведите пример.Какие операторы сравнения вы знаете? В чем разница между
==иequals()?
Блок 5: Работа с исключениями
Что такое исключение в Java? Для чего нужен механизм исключений?
Опишите иерархию классов исключений (
Throwable,Error,Exception).В чем разница между проверяемыми (checked) и непроверяемыми (unchecked) исключениями?
Приведите примеры checked и unchecked исключений.
Какие ключевые слова используются для обработки исключений?
Опишите конструкцию
try-catch-finally. В каком порядке должны следовать блоки?Может ли блок
catchперехватывать несколько типов исключений?Для чего нужен блок
finally? Всегда ли он выполняется?В чем разница между
throwиthrows?Что произойдет, если в блоке
finallyвыбросить исключение?Что такое
try-with-resources? Какое условие должно выполняться для ресурса?Какие преимущества дает
try-with-resources?Что такое "подавленные исключения" (suppressed exceptions)?
Блок 6: Современные API
Что такое лямбда-выражения? Какова их цель в Java?
Что такое функциональный интерфейс? Приведите примеры встроенных функциональных интерфейсов (
Predicate,Consumer,Function,Supplier).Как аннотация
@FunctionalInterfaceпомогает при создании функционального интерфейса?Что такое Stream API? Для чего он используется?
Какие существуют типы операций в Stream API (промежуточные и терминальные)? Приведите примеры.
Что означает "ленивость" (laziness) Stream API?
В чем разница между
mapиflatMap?Что такое метод
collect? Какие встроенные коллекторы (Collectors) вы знаете (toList,groupingBy)?Как создать параллельный стрим? Какие могут быть подводные камни при его использовании?
Что такое
Optional? Для чего он нужен? Как избежатьNullPointerExceptionс его помощью?
Блок 7: Коллекции (Java Collections Framework)
Что такое Java Collections Framework? Какие основные интерфейсы в него входят?
Опишите иерархию интерфейсов
CollectionиMap.В чем разница между
List,SetиQueue?Расскажите о реализации
ArrayList. Как он устроен внутри? Каковы его временные сложности основных операций?Расскажите о реализации
LinkedList. Каковы его временные сложности? Когда его лучше использовать вместоArrayList?Проведите сравнение
ArrayListиLinkedList.Расскажите о реализации
HashSet. Как он обеспечивает уникальность элементов?Как работает
HashMapвнутри? Опишите его структуру (массив buckets, связный список/дерево).Что такое коллизия в
HashMapи как она разрешается?Что произойдет, если в
HashMapдобавить элемент с уже существующим ключом?Как работает метод
put()вHashMap?Как работает метод
get()вHashMap?Что такое capacity (емкость) и load factor (коэффициент загрузки) в
HashMap? Как они влияют на производительность?В чем разница между
HashMap,LinkedHashMapиTreeMap?Что такое
ConcurrentHashMap? Чем он отличается отHashtable?Какие методы для работы с коллекциями вы знаете (
sort,reverse,shuffle)?Как получить синхронизированную коллекцию?
Что такое fail-fast и fail-safe итераторы?
Блок 8: Глубокие концепции Java
Что такое коллизия в контексте хэш-таблиц?
Что такое рефлексия (reflection)? Для чего она используется? Каковы ее недостатки?
Какие основные классы и пакеты используются для рефлексии (
java.lang.reflect,Class)?Можно ли с помощью рефлексии изменить значение
private static finalполя?Что такое хэш-таблица? Из каких ключевых элементов она состоит?
Что такое стек и очередь? В чем разница между ними (LIFO vs FIFO)?
Блок 9: Структуры данных и обобщения (Generics)
Что такое
hashCode()иequals()? Какие правила существуют для их переопределения?Почему при переопределении
equals()всегда нужно переопределятьhashCode()?Что произойдет, если переопределить
equals(), но не переопределитьhashCode(), и использовать объект вHashMap?Какие требования к хэш-функции для эффективной работы хэш-таблицы?
Что такое generics (обобщения) в Java? Для чего они нужны?
Как работают generics под капотом? Что такое стирание типов (type erasure)?
Какие преимущества дает использование generics?
Что такое "сырые типы" (raw types)? Почему их использование не рекомендуется?
Что такое
List<?>? Чем он отличается отList<Object>?Объясните понятия ковариантности, контравариантности и инвариантности в контексте generics.
Что такое wildcards (
? extends Tи? super T)? Когда какой использовать? (PECS - Producer Extends, Consumer Super).
Блок 10: Управление памятью и работа со ссылками
Опишите структуру памяти JVM (Heap, Stack, Method Area). Что хранится в каждой области?
В чем разница между памятью стека (Stack) и кучи (Heap)?
Что такое сборщик мусора (Garbage Collector)? Как он работает?
Какие существуют типы ссылок в Java (Strong, Soft, Weak, Phantom)?
Для чего нужны мягкие (SoftReference) и слабые (WeakReference) ссылки?
Что такое метод
finalize()? В чем его недостатки? Почему он считается устаревшим?Какие есть альтернативы
finalize()для очистки ресурсов (AutoCloseable,try-with-resources,Cleaner)?Что такое утечка памяти (memory leak) в Java? Приведите примеры.
В чем разница между передачей параметров по значению (call-by-value) и по ссылке (call-by-reference)? Какой подход используется в Java?
Блок 11: Фундаментальные концепции
Какие методы есть у класса
Object? Назовите и кратко опишите их.Что такое JVM, JRE и JDK? В чем разница между ними?
Что такое точка входа в программу на Java? Опишите сигнатуру метода
main.Что такое пакет (package) в Java? Для чего он нужен?
Что такое модификатор
native?Что такое
strictfp?Что такое
transientиvolatile?Расскажите о типах классов: обычный, абстрактный, вложенный, анонимный, final.
Что такое метод? Из каких частей состоит объявление метода?
Какие существуют типы методов? (статические, экземплярные, абстрактные, default, private в интерфейсах и т.д.)
Что такое конструктор? Чем он отличается от метода?
Можно ли вызвать конструктор явно после создания объекта?
Что такое блоки инициализации (instance initializers) и статические блоки инициализации?
Блок 12: Архитектурные подходы и паттерны проектирования
На какие группы делятся паттерны проектирования? Приведите примеры из каждой группы.
Что такое паттерн Singleton? Какие способы его реализации в Java вы знаете?
Какие проблемы паттерна Singleton вы знаете?
Что такое паттерн Factory Method?
Что такое паттерн Builder? Где он применяется?
Назовите и кратко объясните принципы SOLID.
Приведите пример нарушения и соблюдения принципа единственной ответственности (Single Responsibility).
Что означает принцип открытости/закрытости (Open/Closed)?
Объясните принцип подстановки Барбары Лисков (Liskov Substitution) своими словами.
Для чего нужен принцип разделения интерфейсов (Interface Segregation)?
Что такое инверсия зависимостей (Dependency Inversion) и внедрение зависимостей (Dependency Injection)?
Что означают принципы DRY, KISS, YAGNI?
Комментарий для automation'щиков:
Обратите внимание на глубину вопросов по коллекциям. Интервьюеру важно понять, не заучивали ли вы поверхностно. Вопрос про константный hashCode в HashMap — это классика. Он проверяет понимание, что в этом случае все объекты попадут в одну корзину, и HashMap деградирует до списка, что убивает весь смысл её использования (скорость поиска станет O(n)).
Также важны вопросы про процессы и инструменты. Показать, что вы не просто пишете тесты, но и думаете над архитектурой, настройкой CI, выбором инструментов — это путь к сильному сеньору.
4. Лайвкодинг: чего ожидать
Для автоматизаторов это обязательный этап. Обычно это шаринг экрана и написание кода в простом онлайн-редакторе или реже вашей IDE. Интервьюер смотрит не только на результат, но и на ход мыслей.
ВОПРОСЫ И ЗАДАЧИ ПО ЛАЙВКОДИНГУ JAVA

Блок 1: Stream API
Дан список чисел
List.of(5, 6, 10, 67, 8, 4, 3). Найти максимальное число, используя Stream API.Из того же списка чисел найти общее количество элементов.
Из того же списка чисел найти сумму всех нечетных чисел.
Дан список чисел
List.of(1, 2, 3, 4, 5). Преобразовать его так, чтобы четные числа умножить на 100, а от нечетных отнять 100.Дан список чисел
List.of(1, 2, 3, -4, 5). Преобразовать все отрицательные числа в положительные.Дан список имен
List.of("Андрей", "Максим", "Антон", "Павел", "Егор"). Отфильтровать имена, начинающиеся на букву "А".Дан список чисел
List.of(1, 2, 2, 3, 4, 4, 4, 5, 5, 7, 8, 8, 9, 9, 10). Удалить все дубликаты, используя Stream.Дан массив чисел
int[] sortedList = {1, 2, 2, 3, 4, 4, 4, 5, 5, 7, 8, 8, 9, 9, 10};. Удалить все дубликаты, используя коллекции (HashSet).Дан список чисел
List.of(45, 15, 24, 12, 95). Отсортировать его в натуральном порядке и вывести в консоль через пробел.Дан список чисел
List.of(5, 7, 3, 6, 2). Найти сумму четных и сумму нечетных чисел отдельно.Дан список чисел
List.of(-10, 85, -6, -3, 8). Найти максимальное число и сумму нечетных чисел.Дан список чисел
List.of(45, 15, 24, 12, 95). Найти минимальное число.Дан список строк
List.of("I", "am", "a", "tester"). Собрать все строки в одну, разделяя их пробелом, используяCollectors.joining().
Блок 2: Коллекции (List, Set, Map)
Создать
ArrayListстрок, содержащий несколько дубликатов ("Portugal","Spain","France","Portugal"). Вывести список без повторений, используяHashSet.Дан
HashMap<Integer, Integer>. Посчитать сумму всех ключей и всех значений. (Решить цикломforи через Stream API).Дан
HashMap<Integer, List<Integer>>. Посчитать сумму всех ключей и всех целых чисел, содержащихся во всех списках-значениях.Дан
HashMap<Integer, String>. Поменять местами ключи и значения, чтобы получитьHashMap<String, Integer>(учесть возможные коллизии ключей). Решить цикломforи через Stream API.Дан массив целых чисел. С помощью
HashMapподсчитать, сколько раз встречается каждое число.Дан массив строк. С помощью
HashMapподсчитать, сколько раз встречается каждое слово.Есть список чисел
List.of(1, 2, 2, 3, 4, 4, 4, 5, 6, 7, 8, 8, 9, 9, 10). Удалить дубликаты, сохранив порядок элементов.Дан список строк
List.of("яблоко", "банан", "киви", "апельсин", "груша"). Отсортировать список по длине строки.
Блок 3: Работа со строками (String, StringBuilder)
Перевернуть строку: "раз два три четыре пять". Написать минимум 3 способа (цикл
forс двумя индексами, циклforсо счетчиком, черезStringBuilder).Реализовать метод, который принимает строку и символ, и возвращает количество вхождений этого символа в строку (без учета регистра). Пример:
method("Aligator", 'a') -> 2.Реализовать метод, который проверяет, является ли строка палиндромом (учитывая пробелы и регистр). Пример:
"Аргентина манит негра" -> true.Разделить строку
"I love photo"на отдельные слова и вывести каждое слово на новой строке.Реализовать метод, который принимает строку и возвращает самую длинную подстроку, состоящую из повторяющихся символов. Если таких несколько, вернуть самую левую. Пример:
"11225553377755544411" -> "555".Удалить все пробелы из строки
"Мы готовимся к интервью".Напишите программу, которая выводит заданную строку
nраз, разделяя каждое повторение заданным разделителем (например,\n).Заменить в строке каждое второе вхождение подстроки. Пример: Заменить
"Object-oriented programming"на"OOP"в большом тексте.
Блок 4: Алгоритмы и логика
Реализовать метод, проверяющий корректность скобочной последовательности для скобок
(),[],{}. Пример:"([{}])" -> true,"([{)]}" -> false.Реализовать метод, вычисляющий факториал числа. Написать две версии: итеративную (циклом) и рекурсивную.
Реализовать метод, который проверяет, являются ли две строки анаграммами. Пример:
"канонада"и"анаконда" -> true,"стол"и"стул" -> false.Вывести в консоль первые
nчисел последовательности Фибоначчи (гдеnзадано). Подсчитать их сумму.Реализовать метод, который находит максимальное число в массиве целых чисел (не используя
Collections.maxили Stream API).Дан массив целых чисел. Найти среднее арифметическое всех элементов.
Реализовать метод, который принимает
HashMap<Integer, String>и ключ, и возвращает строку с информацией о студенте или сообщение"no such student", если ключ не найден.Написать программу, которая принимает строку и выводит ее "задом наперед", используя
Scannerдля ввода.Дан список чисел
List.of(1, 2, 2, 3, 4, 4, 4, 5, 6, 7, 8, 8, 9, 9, 10). Создать из него список только с уникальными значениями, но без использования методаdistinct()и без создания промежуточногоSet. (Подсказка: можно использовать циклы и проверки, но это неэффективно. Цель - понять алгоритм).
Блок 5: Специальные задачи
Проверка email. Дан массив строк с email-адресами. Проверить, какие из них соответствуют шаблону email (например, содержат
@, домен и т.д.) с помощью регулярного выражения.Enum. Создать
enumSeasonс временами года. Написать метод, который принимаетSeasonи выводит его русскоязычное название, используяswitch.Разворот строки рекурсивно. Реализовать метод
public static String reverseRecursively(String str), который разворачивает строку с помощью рекурсии.Циклический сдвиг. Написать метод, который циклически сдвигает элементы массива вправо на
kпозиций. Пример:[1,2,3,4,5]иk=2->[4,5,1,2,3].Поиск элемента. Реализовать бинарный поиск элемента в отсортированном массиве целых чисел.
5. SQL на собеседовании QA
SQL нужен всем. И manual, и automation. Умение написать запрос для проверки данных или подготовки тестовых данных — must-have.

ЗАДАЧИ ПО SQL
Блок 1: Базовые запросы и фильтрация (SELECT, WHERE)
Задача: Есть таблица
Employeesс колонкамиname,department,salary. Напиши запрос, который выведет имена и зарплаты всех сотрудников.Задача: Есть таблица
Employeesс колонкамиname,department,salary. Выведи всех сотрудников из отдела 'IT'.Задача: Есть таблица
Employeesс колонкамиname,salary. Найди сотрудников с зарплатой больше 5000.Задача: Есть таблица
Employeesс колонкамиname,hire_date. Выведи сотрудников, которые были наняты после 1 января 2020 года.Задача: Есть таблица
Employeesс колонкамиname,department. Найди сотрудников из отделов 'HR' или 'Sales'.Задача: Есть таблица
Employeesс колонкамиname,salary. Выведи сотрудников, у которых зарплата находится в диапазоне от 3000 до 7000.Задача: Есть таблица
Employeesс колонкамиname. Найди сотрудников, чье имя начинается на букву 'А'.
Блок 2: Сортировка, группировка и агрегатные функции (ORDER BY, GROUP BY, HAVING)
Задача: Есть таблица
Employeesс колонкамиname,salary. Выведи список сотрудников, отсортированный по зарплате от самой высокой к самой низкой.Задача: Есть таблица
Employeesс колонкамиname,department. Посчитай общее количество сотрудников.Задача: Есть таблица
Employeesс колонкамиname,department. Посчитай количество сотрудников в каждом отделе.Задача: Есть таблица
Employeesс колонкамиdepartment,salary. Найди среднюю зарплату по отделу 'Sales'.Задача: Есть таблица
Employeesс колонкамиdepartment,salary. Посчитай максимальную и минимальную зарплату по каждому отделу.Задача: Есть таблица
Employeesс колонкамиdepartment,salary. Найди отделы, в которых средняя зарплата превышает 6000.Задача: Есть таблица
Ordersс колонкамиcustomer_id,order_amount. Выведиcustomer_idи общую сумму его заказов только для тех клиентов, у которых общая сумма заказов больше 1000.
Блок 3: JOINs (Работа с несколькими таблицами)
Задача: Есть таблица
Employees(id,name) и таблицаDepartments(id,department_name). Напиши запрос, который выведет имя сотрудника и название его отдела, используяINNER JOIN.Задача: Есть таблица
Customers(id,name) и таблицаOrders(id,customer_id,amount). Выведи всех клиентов и их заказы. Клиенты без заказов также должны быть выведены (сNULLв полях заказа).Задача: Есть таблица
Students(id,name) и таблицаCourses(id,title), а также таблица-связкаStudentCourses(student_id,course_id). Напиши запрос, который выведет имена студентов и названия курсов, на которые они записаны.Задача: Есть таблица
Employees(id,name,manager_id), гдеmanager_idссылается наidдругого сотрудника (начальника). Выведи список сотрудников с именами их непосредственных начальников. (SELF JOIN)
Блок 4: Подзапросы и обновление данных (Subqueries, UPDATE, DELETE)
Задача: Есть таблица
Employees(name,department,salary). Найди сотрудников, чья зарплата выше средней зарплаты по компании. (Использовать подзапрос).Задача: Есть таблица
Products(product_name,price,category_id). Найди название продукта с самой высокой ценой в каждой категории. (Коррелированный подзапрос или оконная функция).Задача: Есть таблица
Orders(customer_id,order_date). Найди клиентов, у которых нет ни одного заказа. (ИспользоватьNOT EXISTSилиLEFT JOIN).Задача: Есть таблица
Employees(name,department,salary). Увеличь зарплату на 10% всем сотрудникам из отдела 'IT'. (UPDATE).Задача: Есть таблица
Logs(created_at). Удали все записи из таблицы логов, которые старше 2023 года. (DELETE).
Блок 5: Проектирование и модификация структуры (DDL)
Задача: Создай таблицу
Usersс колонкамиid(автоинкремент, первичный ключ),username(уникальный, не пустой),emailиcreated_at(дата создания по умолчанию — текущая дата).Задача: В уже существующую таблицу
Employeesдобавь колонкуphone_numberтипаVARCHAR(20).Задача: Измени тип данных колонки
salaryв таблицеEmployeesсINTнаDECIMAL(10,2).Задача: Добавь ограничение внешнего ключа в таблицу
Orders, чтобы колонкаcustomer_idссылалась на колонкуidв таблицеCustomers.Задача: Удали таблицу
OldLogsиз базы данных.
Блок 6: Продвинутые концепции
Задача: Есть таблица
Employees(name,department,salary). Напиши запрос, который присвоит ранг (rank) каждому сотруднику внутри его отдела на основе размера зарплаты (самая высокая зарплата — ранг 1). (Использовать оконную функциюRANK()илиDENSE_RANK()).Задача: Есть таблица
Orders(id,customer_id,amount,order_date). Напиши запрос, который выведет для каждого заказа его сумму, дату и накопительную сумму заказов по данному клиенту. (Использовать оконную функциюSUM() OVER (PARTITION BY ... ORDER BY ...)).Задача: Есть таблица
Products(product_name,price). Напиши запрос, который выведет название продукта и его цену, а также разницу в цене между этим продуктом и предыдущим (в порядке возрастания цены). (Использовать функциюLAG()).Задача: Напиши транзакцию (
BEGIN TRANSACTION...COMMIT), которая переводит 100 единиц со счетаaccount_id = 1на счетaccount_id = 2в таблицеAccounts, гарантируя, что в случае ошибки ни одно изменение не сохранится.Задача: Есть таблица
Employees(name,department,salary). Создай представление (View)HighEarners, которое показывает сотрудников с зарплатой выше 8000.
6. Вопросы на логику и мышление
Иногда интервьюеры любят задавать "задачки на подумать". Не для того, чтобы завалить, а чтобы увидеть, как вы рассуждаете. Это может быть классика вроде "почему люки круглые" или что-то около-техническое, например: "Как бы ты тестировал лифт?" или "Как проверить, что стилус работает на всей площади экрана планшета?".
Совет: Рассуждайте вслух, задавайте уточняющие вопросы, не бойтесь ошибиться. Ход мыслей важнее ответа.
7. Вопросы от кандидата интервьюерам
Отсутствие вопросов на собеседовании — это плохой сигнал. Это показывает низкую заинтересованность. Обязательно подготовьте 3-5 вопросов заранее.

Что можно спросить:
О процессе: Как у вас выстроен процесс code review для автотестов?
О команде: С какими трудностями сейчас сталкивается команда тестирования?
О задачах: Как распределяются задачи между manual и automation инженерами? Есть ли у нас pure manual?
О развитии: Есть ли возможность менторинга или обучения за счет компании?
Обратная связь: Увидели ли вы в нашем разговоре моменты, которые вас смущают, чтобы я мог их прояснить?
8. Знакомство с командой

Финальный этап перед оффером. Здесь уже не проверяют технические скиллы (если только случайно). Оценивают soft skills: насколько вы комфортны в общении, разделяете ли ценности, как реагируете на обратную связь. Будьте собой, но старайтесь быть открытыми и позитивными. Именно после этого этапа иногда отказывают сильным технарям, которые показались высокомерными или "сложными" в общении.
9. Заключение

Собеседование — это всегда дорога с двусторонним движением. Компания выбирает вас, а вы — компанию. Не бойтесь уточнять детали, задавать вопросы и отказываться, если что-то не устраивает.
Рынок ищет баланс между хардами и софтами. Глубокие знания по специальности, подкрепленные адекватностью и горящими глазами, — вот ваш главный пропуск в любую команду.
Готовьтесь, но не заучивайте. Систематизируйте знания, вспомните свои проекты, и всё получится. Удачи на собеседованиях и щедрых офферов!

🎁 Бонус для тех, кто дошел до конца
Если вы осилили эту статью до последней строчки — вы настоящий QA-красавчик) Для вас — заслуженный бонус.

Помните, я говорил, что собирал эти вопросы из десятков реальных собеседований? Так вот, все это время рядом со статьей рос еще один проект — GitHub-репозиторий, в котором есть ответы на ВСЕ вопросы из этой статьи (и даже больше).
👉 github.com/makurea/Testing-Literature
Это мой личный проект, который рос параллельно со статьей. Последний коммит был literally вчера 😉 Считайте это моим подарком тем, кто хочет копнуть глубже.
