Перейти к содержанию
Тестирование

11 вопросов по теме «QA: Тест-дизайн» на собеседовании

В этом материале — 11 вопросов из русской колоды RecallDeck по теме «QA: Тест-дизайн». Сначала сформулируйте короткий ответ сами, затем откройте подробный разбор и проверьте примеры, ограничения и отказные случаи.

8 мин чтения11 подробных ответовПроверено 24 августа 2026
Главная мысль

Начните с риска и oracle, затем выберите самый дешёвый уровень теста, который даст полезное доказательство. Название инструмента само по себе не является стратегией.

Вопросы и ответы

11 подробных ответов

01

Что такое классы эквивалентности? Разбейте на классы поле возраста 18–65.

Короткий ответ: Классы эквивалентности (equivalence partitioning) — это разбиение области входных данных на группы, внутри которых система ведёт себя одинаково, поэтому достаточно проверить одного представителя от каждого класса. Для возраста 18–65 берём один валидный класс и три-четыре невалидных.

Подробно:

  1. Идея — если 20 и 40 обрабатываются одним и тем же кодом, то тест с одним из них покрывает весь класс; перебирать все значения бессмысленно.
  2. Валидный класс — 18–65 (представитель, например, 30).
  3. Невалидные классы — обязательно несколько: слишком мало, слишком много, не число, пустое поле.
  4. Экономия — вместо перебора 48 валидных значений (и бесконечного числа невалидных) — 5 осмысленных тестов.
Класс Представитель Ожидание
Валидный 18–65 30 принято
< 18 10 ошибка
> 65 80 ошибка
Не число "abc" ошибка валидации
Пусто "" ошибка «обязательное поле»

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

02

Что такое анализ граничных значений и как он связан с классами эквивалентности?

Короткий ответ: Анализ граничных значений (boundary value analysis, BVA) — это проверка значений на краях классов эквивалентности и вокруг них, потому что дефекты кластеризуются именно на границах. BVA — прямое продолжение классов эквивалентности: сначала делим домен на классы, потом целимся в их края.

Подробно:

  1. Почему края — типичные баги живут в условиях >= vs >, off-by-one, неверная граница диапазона.
  2. Правило трёх точек — для каждой границы берём значение до неё, на ней и сразу после.
  3. Для 18–65 — нижняя граница: 17 / 18 / 19; верхняя: 64 / 65 / 66.
  4. Связь с EP — классы говорят какие группы проверять, BVA говорит где внутри группы искать ошибку.
     невалидно │ валидно 18..65 │ невалидно
   ────────────┼────────────────┼────────────
            17 │ 18          65 │ 66
           ↑нет│ ↑да      ↑да   │ ↑нет

⚠️ Частая ошибка: проверить только одну сторону границы (только 18, но не 17) или только валидную сторону — тогда off-by-one на верхней границе спокойно уедет в прод.

03

Что такое pairwise-тестирование и какую проблему оно решает?

Короткий ответ: Pairwise (попарное) тестирование — это техника, где вместо полного перебора комбинаций параметров покрываются все пары значений. Она решает комбинаторный взрыв: полная матрица параметров растёт мультипликативно, а большинство багов вызывается взаимодействием не более двух параметров.

Подробно:

  1. Проблема — 3 браузера × 3 ОС × 3 локали = 27 комбинаций; четвёртый параметр — уже 81, пятый — 243.
  2. Гипотеза — эмпирически большинство дефектов зависит от одного параметра или пары, а не от тройного стечения.
  3. Решение — набор тестов, где каждая пара значений (например, Chrome+Windows, Chrome+macOS) встречается хотя бы раз.
  4. Результат — с 27 комбинаций сжимаемся до ~9 при сохранении покрытия всех пар (генерируется инструментами вроде PICT/Allpairs).
Полный перебор Pairwise
3×3×3 27 тестов ~9 тестов
Покрытие все тройки все пары
Риск 0 пропуск дефектов от 3+ параметров

⚠️ Частая ошибка: не суметь назвать trade-off. Pairwise экономит усилия, но не ловит баги, требующие совпадения трёх и более параметров — про это нужно честно сказать интервьюеру.

04

Когда применять таблицу решений (decision table)?

Короткий ответ: Таблицу решений применяют, когда результат зависит от комбинации нескольких независимых условий и нужно систематически покрыть все их сочетания. Она перечисляет условия и ожидаемые действия в виде матрицы и ловит пропущенные комбинации бизнес-правил.

Подробно:

  1. Признак применимости — в требованиях появляются «если… И… ИЛИ…» с несколькими флагами (лояльность, сумма, промокод).
  2. Структура — строки условий сверху, строки действий снизу; каждый столбец — одно правило.
  3. Полнота — N булевых условий дают 2^N комбинаций (здесь 2³ = 8); «не важно» (—) схлопывает их в меньшее число правил.
  4. Ценность — визуально видно, какая комбинация в требованиях не описана.
Условие R1 R2 R3 R4 R5
Уровень лояльности Gold Да Да Да Нет Нет
Сумма > 5000 Да Нет Нет
Есть промокод Да Нет Да Нет
→ Скидка 20% 15% 10% 5% 0%

⚠️ Частая ошибка: проверять условия по отдельности вместо их комбинаций — именно на стыке правил («Gold + промокод») чаще всего и живёт баг. Типичный вопрос банковских и e-com раундов.

05

Что такое тестирование переходов состояний? Приведите пример.

Короткий ответ: Тестирование переходов состояний (state transition testing) применяют к системам, где объект проходит через набор статусов, а поведение зависит от текущего состояния. Мы проверяем валидные переходы, запрещённые переходы и краевые (начальное/терминальное) состояния.

Подробно:

  1. Модель — заказ живёт по цепочке: New → Paid → Shipped → Delivered.
  2. Валидные переходы — каждый разрешённый шаг должен работать (Paid → Shipped).
  3. Запрещённые переходы — система обязана отклонять невозможное (Delivered → New, повторная оплата Paid → Paid).
  4. Краевые состояния — что происходит в начальном (New без оплаты) и терминальном (Delivered — дальше некуда).
  New ──pay──► Paid ──ship──► Shipped ──deliver──► Delivered
   │                                                   │
   └── cancel ──► Cancelled            (Delivered ─X─► New) запрещён

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

06

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

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

Подробно:

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

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

07

Чем тест-план отличается от тест-стратегии?

Короткий ответ: Тест-стратегия — это высокоуровневый, переиспользуемый подход к тестированию уровня организации или продукта (какие виды тестирования, инструменты, стандарты). Тест-план — это конкретный документ под проект или релиз: scope, сроки, ресурсы, риски, критерии выхода.

Подробно:

  1. Уровень — стратегия задаёт принципы «как мы вообще тестируем», план приземляет их на конкретный релиз.
  2. Срок жизни — стратегия стабильна и меняется редко; план живёт от релиза к релизу.
  3. Содержимое — стратегия: подходы, типы тестов, среды, стандарты; план: что, кто, когда, чем, критерии готовности.
Критерий Тест-стратегия Тест-план
Уровень организация / продукт проект / релиз
Срок жизни долгий, стабильный короткий, под релиз
Отвечает на как тестируем в принципе что тестируем сейчас
Содержимое подходы, типы, стандарты scope, сроки, ресурсы, риски

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

08

Как приоритизировать тесты, если до релиза остался один день?

Короткий ответ: Использую risk-based подход: сначала критичные бизнес-пути и деньги, потом самые частые сценарии, потом недавно изменённый и исторически багованный код. Цель — за оставшееся время закрыть максимум риска, а не «протестировать всё».

Подробно (порядок приоритета):

  1. Критичные бизнес-пути — то, без чего продукт не приносит денег: логин, оформление заказа, оплата.
  2. Часто используемые фичи — где большинство пользователей, там дороже баг.
  3. Регуляторные и платёжные флоу — цена ошибки не только в деньгах, но и в штрафах.
  4. Недавно изменённый код — свежие правки = свежие дефекты; смотрю диф релиза.
  5. Исторически проблемные зоны — модули с прошлыми инцидентами по багтрекеру.
  6. Всё остальное — если останется время; иначе осознанный риск.
риск = вероятность дефекта × ущерб
сортируем тесты по убыванию риска ─► идём сверху вниз, пока не кончится день

⚠️ Частая ошибка: ответить «протестирую всё важное» без фреймворка. Интервьюер ждёт именно критерий приоритизации (риск = вероятность × ущерб) и осознанное решение, что НЕ тестируем.

09

Какие тесты стоит автоматизировать, а какие оставить ручными?

Короткий ответ: Автоматизировать стоит стабильные, повторяемые и критичные проверки с высоким ROI — регрессию, smoke, API. Ручными оставить то, что автоматизировать дорого или бессмысленно: быстро меняющийся UI, разовые exploratory-проверки, оценку визуальных нюансов и юзабилити.

Подробно:

  1. Кандидаты на автоматизацию — прогоняются часто, стабильный интерфейс, детерминированный результат, дорогой ручной прогон.
  2. Оставить руками — новый или нестабильный UI (автотест сломается раньше, чем окупится), exploratory, визуал и UX.
  3. Критерий — ROI: экономия от повторных прогонов минус стоимость написания и поддержки теста.
Автоматизировать Оставить ручным
Регрессия, smoke Exploratory-сессии
API- и бэкенд-проверки Разовые проверки
Стабильные критичные пути Быстро меняющийся UI
Нагрузочное, data-driven Визуал, юзабилити, вёрстка

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

10

Что такое позитивные и негативные тесты? Приведите примеры для поля email.

Короткий ответ: Позитивные тесты проверяют, что система работает на валидных данных (happy path). Негативные проверяют, что система корректно обрабатывает невалидный ввод — не падает, не пропускает мусор, а показывает внятную ошибку.

Подробно:

  1. Позитивные — валидный ввод даёт ожидаемый результат: user@mail.com принимается.
  2. Негативные — невалидный ввод отклоняется с понятной ошибкой, а не 500-й: пустое, без @, инъекция.
  3. Баланс — негативных сценариев обычно больше, чем позитивных: невалидных состояний всегда больше, чем валидных.
Тип Значение Ожидание
Позитив user@mail.com принято
Негатив usermail.com (нет @) ошибка формата
Негатив "" (пусто) «обязательное поле»
Негатив строка в 300 символов отклонено по длине
Негатив a@b.com' OR 1=1-- экранировано, не выполнено

⚠️ Частая ошибка: покрыть только happy path и отчитаться «работает». Реальные баги и уязвимости живут в негативных сценариях — пустой ввод, спецсимволы, инъекции.

11

Что такое use case и чем он отличается от тест-кейса?

Короткий ответ: Use case описывает, как актор достигает цели во взаимодействии с системой: основной поток плюс альтернативные и исключительные. Тест-кейс — это конкретная проверка с шагами и ожидаемым результатом. Из одного use case выводится множество тест-кейсов.

Подробно:

  1. Use case — уровень требований: актор, предусловия, основной поток, альтернативы, исключения. Отвечает «что должна уметь система».
  2. Тест-кейс — уровень проверки: конкретные данные, шаги, ожидаемый результат. Отвечает «как убедиться, что работает».
  3. Связь — один use case «Оплатить заказ» порождает тест-кейсы: успешная оплата, недостаточно средств, истёкшая карта, таймаут шлюза.
   Use case «Оплатить заказ»

   ┌────────┼─────────┬──────────────┐
   ▼        ▼         ▼              ▼
 успех   нет денег  карта истекла  таймаут
 (TC-1)   (TC-2)     (TC-3)        (TC-4)

⚠️ Частая ошибка: считать use case и тест-кейс одним документом под разными названиями. Use case описывает поведение, тест-кейс его проверяет; из одного сценария всегда рождается веер проверок, включая негативные.

Источники

Источники и редакционная политика

Материалы RecallDeck сопоставлены с официальной документацией и открытыми публикациями компаний, когда первичный источник доступен. Мы не связаны с упомянутыми работодателями, не публикуем конфиденциальные задания и не продаём места в подборках. Формат найма может меняться — уточняйте его у рекрутера.

От чтения к воспроизведению

Отрепетируйте полный цикл интервью.

RecallDeck возвращает сложные темы по расписанию и помогает удерживать в памяти язык, SQL, архитектуру и поведенческие истории.

Начать подготовку

Продолжить подготовку

Библиотека собеседований RecallDeck

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

RSS