Собеседование QA-инженера в 2026: От HR до оффера. Гайд по этапам и вопросам для manual и automation
Оглавление:
Введение
Общая структура собеседования 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 вчера 😉 Считайте это моим подарком тем, кто хочет копнуть глубже.
Автор: makurea

