Примеры вопросов теста QA: Что спрашивать при технических интервью
Почему стандартные QA вопросы fail найму
Большинство вопросов QA интервью падают в две ловушки: они либо так generic («Какая разница между тестированием и QA?»), что кто-то, проходящий экзамен сертификации, может ответить, или так специфичны вашему tech stack, что они тестируют знание framework вместо мышления. Кандидаты, которые заучивают test словарь, звучат компетентно. Те, кто действительно ломает программное обеспечение и исправляет процессы, невидимы.
Хорошие QA вопросы меряют test стратегия, не терминология. Они обнажают что кандидаты действительно делают, когда они не имеют план тестирования следовать.
Пример вопрос #1: Сценарий отчёта бага
«Вы тестируете e-commerce checkout flow. Payment gateway иногда принимает дублирующие транзакции — одинаковый order ID, одинаковая сумма, в течение 5 секунд. Это происходит примерно 1 из 50 раз. Пройдите мне через как вы бы исследовали и документировали это».
Что вы меряете:
- Они спрашивают уточняющие вопросы (какой payment метод? какой браузер? сетевые условия)?
- Они различают bug воспроизведение, root cause и объём (это в их коде или gateway?)?
- Они могут артикулировать test case, которое ловит это снова?
- Они бы эскалировали или попробовали воспроизвести это сами сначала?
Это раскрывает, думают ли они как инженеры (root cause, объём, предотвращение) или просто как reporters (симптом, screenshot, тикет).
Пример вопрос #2: Trade-off автоматизация
«Вы имеете test suite, которая бегает в 2 часа end-to-end. Ваша коллектив бегает это один раз дневной. Teammate предлагает автоматизировать UI flow для image uploads — примерно 40 строк Selenium и 15 минут поддержки в квартал. Вы делаете это? Пройдите мне через ваше рассуждение».
Что вы меряете:
- Они думают о ROI (стоимость автоматизировать vs. стоимость manual retesting)?
- Они знают когда автоматизация overhead, не efficiency?
- Они могут оценить burden поддержки честно?
- Они рассматривают brittleness и false positives?
Кандидаты, которые говорят «да, автоматизировать всё» или «нет, UI тесты flaky», пропускают точку. Правильный ответ обычно «зависит от что это ловит и как часто это ломается».
Пример вопрос #3: Вызов дизайна теста
«Мы строим функцию, которая экспортирует user данные в CSV. Файл может иметь 10 к 100,000 рядов. Что бы вы тестировали? Что бы вы не тестировали и почему?»
Что вы меряете:
- Они могут приоритизировать (CSV формат, row count edge cases, специальные символы) vs. noise (делает ли кнопка цвет имеет значение)?
- Они знают что стоит автоматизировать vs. spot-check?
- Они могут артикулировать риск (data leakage, форматирование corruption) vs. предпочтение?
Хорошие QA инженеры ruthless об объёме. Они не тестируют всё; они тестируют что может ранить бизнес.
Пример вопрос #4: Риск регрессия
«Ваша коллектив только refactored database queries на странице user profile. Были нет schema изменения, просто code cleanup. Какова ваша стратегия тестирования? Какова ваша уверенность level?»
Что вы меряет:
- Они хотят бегать полный regression suite или думают критически сначала?
- Они могут выявить что может сломаться (N+1 queries, неправильная data binding)?
- Они понимают разница между «код изменился» и «риск изменился»?
Это отделяет аналитиков от инженеров. Инженеры спрашивают «что изменилось и что имеет значение?» Аналитики бегут полный suite regardless.
Пример вопрос #5: Cross-browser вопрос (с twist)
«Вы тестируете новый UI компонент на Chrome, Firefox и Safari. Это рендерит правильно везде. Вы тестируете это на IE11? На мобильном Chrome? На Chromium-основанных браузерах как Edge? Делайте trade-off вызов».
Что вы меряет:
- Они знают их user базу (не все продукты нуждаются в IE11 поддержке)?
- Они могут оценить browser coverage vs. testing стоимость?
- Они знают разница между реальными браузерами и fake coverage?
Это где мнение имеет значение. «Мы не поддерживаем IE11, поэтому нет» сильнее, чем «мы должны тестировать всё».
Пример вопрос #6: Live coding интервью (кратко)
«Напишите test case в любом framework, который вы знаете лучше всего. Я дам вам простую функцию: validateEmail(email). Return true, если это валидный email, false в противном случае. Напишите тест — не напишите функцию».
Что вы меряет:
- Они могут думать о edge cases (пустая строка, нет @, множество @s, пробелы)?
- Они пишут тесты, которые читаемы или cryptic?
- Они знают их testing framework (assertions, setup/teardown)?
- Они тестируют поведение или implementation?
Это live coding интервью, которое берёт 10 минут и выхватывает fluency языка, structure теста и мышление.
Паттерн, который работает
Все шесть этих вопросов имеют одну структуру: представьте реальную (или реалистичную) ситуацию, спросите кандидата рассуждать через это и слушайте для суждения, не recall ключевого слова. Ответы не правильные или неправильные. Они раскрывающие.
Интервью, которые вы помните, те где кандидат спрашивает вас уточняющий вопрос, который заставляет вас паузировать. Это сигнал. Это hire.
Когда использовать письменные оценки вместо
Не каждый QA hire нужен записанное live coding интервью. Take-home test case назначение может быть столь же раскрывающее: «Вот spec функции. Напишите 10-15 test cases, которые вы бы предложили вашей коллективе. Объясните ваш приоритет». Потом спросите follow-up вопросы в следующем раунде про их рассуждение. Это объединяет качество артефакта с вербальной защитой.
Для масштабирования найма, платформы оценки, которые могут грейдировать test case coverage, assertion качество и edge-case мышление, делают live раунды более efficient.
Counter-рассмотрение
Некоторые коллективы предпочитают behavior-first интервью без testing терминологии вообще: «Расскажите о баге, который вы нашли, который удивил вас» или «Пройдите мне через последний раз вы pushed back на дедлайн, потому что тестирование не было сделано». Это работает тоже, особенно если вы нанимаете люди, которые владеют качеством, вместо люди, которые являются тестировщиками.
Вопросы имеют значение менее, чем философия: вы меряете мышление, не память. Всё остальное следует.