Направление

Подготовка к собеседованию — Java-автоматизатор тестирования (AQA)

Колода из 349+ карточек с вопросами для собеседования по направлению «Java-автоматизатор тестирования (AQA)» — по темам и уровню сложности, с повторениями по вашим оценкам. Посмотрите несколько карточек ниже, затем выберите доступ, чтобы учить всё направление по расписанию в стиле Anki (SM-2).

349 карточек14 тем
Посмотреть цены и начать

Новым подписчикам месяца или года может быть доступен бесплатный пробный период 7 дней. Условия и сумму подтвердит страница оплаты.

С чего начать

Нужны основы ручного тестирования и умение читать Java. Перед автоматизацией идёт короткий модуль Java Core: это повторение, а не курс. Часть общих карточек по автоматизации использует pytest, а в общих алгоритмах примеры на Python; отрабатывайте эти идеи на Java.

Первый проход: Теория тестирования → Техники тест-дизайна. Начните с базовых вопросов в этих модулях, затем продолжайте по плану. К сложным и senior-вопросам возвращайтесь по требованиям вакансии; все карточки доступны с самого начала.

Общие темы могут входить в несколько направлений и сохраняют одну историю повторений. План ниже отмечает общие основы и профильные модули; выбирайте глубину под свою вакансию.

Что внутри

Все темы направления, сгруппированные так, как вы будете их учить.

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

15 карточек

Профильный модуль

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

Техники тест-дизайна

12 карточек

Профильный модуль

Тест-дизайн

Баг-репорты и процессы

19 карточек

Профильный модуль

Баги и процессы

HTTP, API и клиент-сервер

20 карточек

Профильный модуль

HTTP и API

Веб, мобильное и безопасность

14 карточек

Профильный модуль

Веб, мобильное и безопасность

Java Core для автоматизатора

15 карточек

Профильный модуль

Java Core

Базы данных

44 карточки

Общие основы

Основы SQL

Основы CS

53 карточки

Общие основы

Структуры данных и алгоритмы

Selenium и Playwright

28 карточек

Профильный модуль

Selenium и Playwright

Паттерны и фреймворки автоматизации

30 карточек

Профильный модуль

Паттерны автоматизации

DevOps и инфраструктура

47 карточек

Общие основы

Docker, CI/CD и LinuxGit

Практические кейсы и задачи

14 карточек

Профильный модуль

Кейсы и задачи

Поведенческое интервью

38 карточек

Общие основы

Поведенческое интервью

Примеры вопросов

Несколько карточек из колоды — откройте ответ, затем выберите доступ, чтобы учить весь набор по расписанию.

В чём разница между верификацией и валидацией?

Короткий ответ: Верификация отвечает на вопрос «делаем ли мы продукт правильно» — соответствует ли он спецификации и требованиям. Валидация отвечает «делаем ли мы правильный продукт» — решает ли он реальную задачу пользователя. Verification — про соответствие документам, validation — про соответствие ожиданиям.

Подробно:

  1. Верификация — проверка соответствия артефакта его спецификации. Часто статическая: ревью требований, инспекция кода, сверка с ТЗ. Отвечает: «построили ли по чертежу?».
  2. Валидация — проверка, что готовая система закрывает потребность пользователя. Обычно динамическая: реальное выполнение, приёмочное тестирование, демо заказчику. Отвечает: «а нужен ли был этот чертёж?».
  3. Порядок — верификация раньше и дешевле, валидация ближе к релизу.
Критерий Верификация Валидация
Вопрос делаем правильно? делаем правильное?
Эталон спецификация нужды пользователя
Тип чаще статическая чаще динамическая
Пример ревью, инспекция приёмочный тест, демо

⚠️ Частая ошибка: сыпать примерами («ревью — это верификация») без двух чеканных формулировок «делаем ли правильно» / «делаем ли правильное». Именно их слушает интервьюер.

Когда достаточно лёгкого списка проверок вместо полноценных тест-кейсов?

Короткий ответ: Полноценный тест-кейс с предусловиями, шагами и ожидаемым результатом нужен там, где важна воспроизводимость и трассируемость: аудит, комплаенс, сложные многошаговые флоу. Лёгкий чек-лист достаточен для регрессии по стабильным фичам и exploratory-сессий, где важнее скорость.

Подробно:

  1. Тест-кейс — формальный документ, любой может повторить шаг в шаг; дорого писать и поддерживать.
  2. Чек-лист — список того, что проверить, без детальных шагов; быстро составить, гибко использовать.
  3. Критерий выбора — цена поддержки против требований к строгости и аудируемости.
Тест-кейс Лёгкий список проверок
Детализация шаги + ожидаемый результат пункты «что проверить»
Когда аудит, комплаенс, сложные флоу регрессия по стабильному, exploratory
Цена высокая низкая
Повторяемость точная зависит от инженера

⚠️ Частая ошибка: тянуть тяжёлые формальные тест-кейсы туда, где хватает списка проверок, и утонуть в поддержке документации вместо реального тестирования. Интервьюер хочет услышать обоснование выбора при нехватке времени.

Опишите жизненный цикл бага: какие статусы проходит дефект?

Короткий ответ: New → Assigned → In Progress → Fixed → Retest → Closed. Это основной поток, но у него есть важные ветвления: Reopened (баг вернулся после фикса), Rejected (не баг), Duplicate (уже заведён), Deferred (отложен). Ключ в ответе — назвать не только линию, но и ветки, и кто выполняет каждый переход.

Подробно:

  1. New — тестировщик завёл баг.
  2. Assigned → In Progress — лид назначил разработчика, тот взял в работу.
  3. Fixed — разработчик починил и передал на проверку.
  4. Retest → Closed — тестировщик перепроверил на новом билде и закрыл.
  5. Ветки — Reopened (тестировщик), Rejected/Duplicate (разработчик или лид), Deferred (PM отложил на потом).
 New ──► Assigned ──► In Progress ──► Fixed ──► Retest ──► Closed
 (QA)     (лид)         (dev)         (dev)     (QA)       (QA)
           │                                      │ не прошёл
           ▼                                      ▼
 Rejected / Duplicate (dev, лид)           Reopened ──► снова в работу
 Deferred (PM отложил)

⚠️ Частая ошибка: назвать только прямую линию New→Closed и забыть про ветки Reopened/Rejected/Duplicate/Deferred — именно они показывают, что вы работали с реальным трекером.

Опишите клиент-серверную архитектуру. Почему нельзя полагаться на валидацию только на клиенте?

Короткий ответ: Клиент (браузер, мобильное приложение) отправляет запрос, сервер обрабатывает его и возвращает ответ — модель request/response поверх HTTP. Полагаться на клиентскую валидацию нельзя, потому что клиент полностью под контролем пользователя: форму можно обойти через curl, Postman или DevTools и отправить на сервер любые данные. Поэтому сервер обязан валидировать сам, а QA проверяет оба слоя независимо.

Подробно:

  1. Клиент — рисует UI, делает первичную валидацию для удобства (быстрый фидбек, без лишнего трафика), хранит токен.
  2. Сервер — источник правды: проверяет права, валидирует тело, пишет в БД. Это единственный слой, которому можно доверять.
  3. Что делает QA — не только кликает по UI, но и бьёт прямо в API в обход клиента: отправляет пустые/невалидные поля, чужой id, инъекции — и смотрит, что сервер их отбил (400/403), а не сохранил.
  КЛИЕНТ                         СЕРВЕР
 ┌────────┐   request  (HTTP)  ┌─────────┐
 │  UI    │ ─────────────────► │  API    │
 │ ✔ UX-  │                    │ ✔ обяза-│
 │ валид. │ ◄───────────────── │ тельная │──► БД
 └────────┘   response         │ валид.  │
     ▲  можно обойти:          └─────────┘
     └── curl / Postman / DevTools

⚠️ Частая ошибка: считать, что раз кнопка «Отправить» блокируется на форме, невалидные данные до сервера не дойдут. UI обходится за секунду — надёжная система проверяет всё на сервере.

Какие команды adb и xcrun simctl нужны мобильному тестировщику и как собрать логи для баг-репорта?

Короткий ответ: adb управляет Android-устройством или эмулятором: установка сборки, сброс данных, deep links, скриншоты и logcat — системный лог, который фильтруют по процессу приложения. xcrun simctl делает то же для iOS-симулятора (macOS с Xcode): установка, запуск, openurl, симулированный push, скриншот и log stream. В баг-репорт идёт лог вокруг момента сбоя, а не весь поток за час.

Подробно:

  1. Чистый старт — pm clear сбрасывает данные приложения, logcat -c очищает буфер перед воспроизведением.
  2. Лог только приложения — фильтр --pid по процессу; краши Android лежат в буфере crash, для ANR и системных проблем есть adb bugreport (zip-архив).
  3. Сценарии — deep link через am start -a VIEW -d, гибель процесса в фоне через am kill, разрешения через install -g или pm grant.
  4. iOS — simctl push проверяет обработку push без APNs, simctl privacy выдаёт и сбрасывает разрешения; логи и отчёты о крашах реального iPhone берут в Xcode (Devices and Simulators) или в Console.app.
# Android: устройство или эмулятор
adb devices                                  # подключено?
adb install -r -g app-debug.apk              # переустановить, выдать права
adb shell pm clear com.example.shop          # сбросить данные
adb logcat -c                                # очистить лог перед шагами
adb logcat --pid=$(adb shell pidof -s com.example.shop) > app.log
adb logcat -b crash -d                       # стеки последних крашей
adb shell am start -a android.intent.action.VIEW -d "shop://orders/42"
adb exec-out screencap -p > screen.png

# iOS Simulator (macOS + Xcode)
xcrun simctl install booted Shop.app
xcrun simctl launch booted com.example.shop
xcrun simctl openurl booted "shop://orders/42"
xcrun simctl push booted com.example.shop push.json
xcrun simctl io booted screenshot screen.png
xcrun simctl spawn booted log stream --predicate 'process == "Shop"'

⚠️ Частая ошибка: прикладывать к баг-репорту весь logcat без фильтра или скриншот без лога. Разработчику нужны точное время, PID и стек исключения — очистите буфер, воспроизведите и сохраните лог процесса.

Чем примитивные типы Java отличаются от ссылочных, где они хранятся и является ли Java pass-by-value?

Короткий ответ: Примитив хранит само значение, а переменная ссылочного типа хранит ссылку на объект. Локальные переменные лежат в стеке потока, объекты в куче. Аргументы в Java всегда передаются по значению: для объекта копируется ссылка, а не сам объект.

Подробно:

  1. Примитивы — byte, short, int, long, float, double, char, boolean. Не бывают null, == сравнивает значения.
  2. Ссылочные типы — классы, интерфейсы, массивы. Переменная может быть null, == сравнивает ссылки.
  3. Где лежат — зависит от места объявления: локальный int находится в кадре стека, поле int внутри объекта в куче. JIT может убрать аллокацию объекта, но поведение программы от этого не меняется.
  4. Передача в метод — метод получает копию. Через копию ссылки можно изменить общий объект: хелпер с users.add(...) меняет тестовые данные и у вызывающего теста. А вот перенаправить его переменную на другой объект нельзя.
static void change(int count, List<String> users) {
    count++;                     // копия числа
    users.add("bob");            // копия ссылки, объект тот же
    users = new ArrayList<>();   // меняется только локальная копия
}

int count = 1;
List<String> users = new ArrayList<>(List.of("ann"));
change(count, users);
System.out.println(count);       // 1
System.out.println(users);       // [ann, bob]

⚠️ Частая ошибка: говорить, что объекты передаются по ссылке. Тогда users = new ArrayList<>() заменил бы список и у вызывающего кода, а этого не происходит.

Готовы лучше запоминать?

Посмотрите пример, выберите направление и настройте регулярную практику под свою подготовку.

Вопросы об этом направлении

Как готовиться к собеседованию на «Java-автоматизатор тестирования (AQA)»?

Учите концепции, которые придётся объяснять, а не только те, что умеете кодить. Направление «Java-автоматизатор тестирования (AQA)» в RecallDeck даёт 349+ отобранных вопросов и возвращает каждый по расписанию в стиле Anki (SM-2), основанному на ваших оценках — чтобы тренировать вспоминание и объяснение. Дополняйте повторения кодингом и пробными собеседованиями.

Какие темы охватывает направление «Java-автоматизатор тестирования (AQA)»?

Направление «Java-автоматизатор тестирования (AQA)» разбито на ключевые области, которые реально проверяют на таких собеседованиях, — по темам и уровню сложности (Concept, Junior, Middle, Senior). Полный план и примеры вопросов можно посмотреть выше до входа.

Помогает ли интервальное повторение в подготовке к «Java-автоматизатор тестирования (AQA)»?

Да. Активное вспоминание и честная самооценка помогают закреплять знания. RecallDeck назначает повторения карт по направлению «Java-автоматизатор тестирования (AQA)» на основе ваших оценок: знакомые карты возвращаются реже, а сложные получают больше практики.

Можно попробовать направление «Java-автоматизатор тестирования (AQA)» до оплаты?

Новым подписчикам месячного или годового тарифа может быть доступен пробный период 7 дней со всем направлением «Java-автоматизатор тестирования (AQA)» и всеми функциями. Право на него и сумму подтвердит страница оплаты; при повторной подписке списание может быть сразу. Отмените подписку онлайн до конца пробного периода, чтобы избежать первого списания. У вечного доступа пробного периода нет.

Другие направления