Процесс и управление тестированием
Планирование и управление тестированием — стратегия против плана, анализ против дизайна, покрытие и трассировка, модели SDLC и релизные виды тестирования.
12 вопросов
MiddleТеорияОчень частоКак понять, что покрытие тестами достаточно (матрица трассировки)?
Как понять, что покрытие тестами достаточно (матрица трассировки)?
Привязывайте покрытие к требованиям, а не только к строкам кода. Матрица трассировки сопоставляет каждое требование с проверяющими его тест-кейсами, так что требование без связанного кейса — видимая дыра. Сочетайте это с риском: сперва покрывайте высокорисковые области. Покрытие достаточно, когда каждое требование протрассировано и остаточный риск приемлем.
Типичные ошибки
- ✗Приравнивать покрытие строк кода к покрытию требований
- ✗Считать кейсы вместо привязки их к требованиям
- ✗Игнорировать риск при выборе, что покрывать первым
Уточняющие вопросы
- →О чём говорит строка с требованием, но без тест-кейса?
- →Почему 100% покрытие кода — не то же, что полное покрытие?
MiddleТеорияОчень частоЧем тест продукта с документацией отличается от теста без неё?
Чем тест продукта с документацией отличается от теста без неё?
С документацией вы тестируете по спецификации — выводя кейсы из требований и проверяя соответствие. Без неё опираетесь на исследовательское тестирование: изучаете продукт, используя его, строите ментальную модель и судите поведение по здравому смыслу и аналогичным продуктам. На незадокументированное поведение не считайте его багом — пометьте, спросите аналитика или PO и подтвердите ожидание до заведения.
Типичные ошибки
- ✗Заводить незадокументированное поведение как баг без подтверждения
- ✗Думать, что без спеки тест невозможен
- ✗Игнорировать исследовательское тестирование и построение ментальной модели
Уточняющие вопросы
- →Что делать, найдя поведение, не описанное в спеке?
- →Как решить, что функция готова к отгрузке без документации?
SeniorТеорияОчень частоЧто такое пирамида тестирования и как применять её на проекте?
Что такое пирамида тестирования и как применять её на проекте?
Пирамида тестирования предписывает много быстрых, дешёвых unit-тестов в основании, меньше интеграционных/сервисных в середине и мало медленных, хрупких UI/e2e-тестов наверху. Она балансирует скорость, стоимость и уверенность. Применять её — значит толкать каждую проверку на самый низкий уровень, способный поймать баг, и избегать антипаттерна-рожка со слишком многими UI-тестами и слишком малым числом unit.
Типичные ошибки
- ✗Переворачивать пирамиду (больше всего UI-тестов в основании)
- ✗Не толкать проверки на самый низкий уровень, ловящий баг
- ✗Не называть антипаттерн-рожок
Уточняющие вопросы
- →Почему форма-рожок считается антипаттерном?
- →Как решить, на каком уровне должна быть данная проверка?
JuniorТеорияЧастоЧем различаются модели разработки Waterfall, Scrum и Kanban?
Чем различаются модели разработки Waterfall, Scrum и Kanban?
Waterfall идёт последовательными фазами (требования → дизайн → разработка → тестирование → релиз) с малым перекрытием и поздним тестированием. Scrum итеративен: спринты фиксированной длины дают инкременты, роли — Product Owner, Scrum Master и команда разработки. Kanban — непрерывный поток без спринтов: работу тянут по доске под лимитами WIP (work-in-progress, незавершённая работа).
Типичные ошибки
- ✗Путать, какая модель последовательная, а какая итеративная
- ✗Приписывать спринты Kanban или лимиты WIP — Scrum
- ✗Забывать три роли Scrum (PO, SM, команда разработки)
Уточняющие вопросы
- →Где находится тестирование в Waterfall против Scrum?
- →Какую проблему решают лимиты WIP в Kanban?
MiddleТеорияЧастоЧто такое A/B-тестирование и чем оно отличается от функционального?
Что такое A/B-тестирование и чем оно отличается от функционального?
A/B-тестирование делит живой трафик между двумя вариантами (A и B) и измеряет, какой лучше по метрике — например, даёт ли зелёная кнопка «Купить» больше конверсии, чем красная? Это техника экспериментов/оптимизации, а не поиска дефектов: оно сравнивает результаты статистически, а не сверяет поведение с требованиями, как функциональное тестирование.
Типичные ошибки
- ✗Считать A/B-тестирование техникой поиска дефектов (функциональной)
- ✗Путать его с прогоном одного кейса дважды или кросс-браузерным
- ✗Забывать, что нужна измеримая метрика на живом трафике
Уточняющие вопросы
- →Какую метрику вы выберете для A/B-теста кнопки оформления заказа?
- →Почему A/B-тесту нужна статистически значимая выборка?
MiddleТеорияЧастоВ чём разница между alpha- и beta-тестированием?
В чём разница между alpha- и beta-тестированием?
Alpha-тестирование проходит внутри компании, до релиза, на стороне разработчика — силами внутренних сотрудников (часто QA или выбранных работников) в контролируемой среде. Beta-тестирование проходит снаружи, позже в цикле, в реальной среде настоящих конечных пользователей, которые сообщают о проблемах из почти-боевого использования. Alpha — внутри и раньше, beta — в реальном мире и позже.
Типичные ошибки
- ✗Переворачивать, что внутри/раньше (alpha), а что снаружи/позже (beta)
- ✗Говорить, что beta никогда не вовлекает реальных пользователей
- ✗Думать, что оба происходят только внутри компании
Уточняющие вопросы
- →Зачем прогонять alpha до показа сборки beta-пользователям?
- →Какую обратную связь даёт только beta-тестирование?
MiddleТеорияЧастоЧем статическое тестирование отличается от динамического и где здесь ревью?
Чем статическое тестирование отличается от динамического и где здесь ревью?
Статическое тестирование изучает артефакты без запуска кода — ревью, walkthrough, инспекции и статический анализ. Динамическое выполняет ПО и проверяет его поведение. Статическое находит дефекты раньше и дешевле всего, до появления кода. Ревью — его основная ручная форма: peer review тест-кейсов или требований ловит неоднозначность, которую динамический прогон не вскрыл бы дёшево.
Типичные ошибки
- ✗Менять местами, какой тип выполняет код
- ✗Исключать ревью и инспекции из статического тестирования
- ✗Упускать, что статическое ловит дефекты ещё до появления кода
Уточняющие вопросы
- →Какие дефекты ловит ревью требований, а динамическое тестирование — недёшево?
- →Назовите две проверки статического анализа, которые инструмент делает без запуска кода.
MiddleТеорияЧастоВ чём разница между тестовой стратегией и тест-планом?
В чём разница между тестовой стратегией и тест-планом?
Тестовая стратегия — высокоуровневый, часто общий для организации или продукта документ, описывающий общий подход к тестированию — уровни, виды, инструменты, стандарты — и меняется редко. Тест-план привязан к проекту или релизу и выводится из стратегии: задаёт объём, сроки, ресурсы, окружения, критерии входа/выхода и риски конкретной работы.
Типичные ошибки
- ✗Переворачивать, какой документ широкий/стабильный, а какой — под проект
- ✗Считать стратегию и план полностью взаимозаменяемыми
- ✗Думать, что план выводится независимо от стратегии
Уточняющие вопросы
- →Назовите три раздела, ожидаемых только в тест-плане.
- →Почему стратегия меняется реже, чем план?
MiddleТеорияИногдаВ чём разница между тест-анализом и тест-дизайном?
В чём разница между тест-анализом и тест-дизайном?
Тест-анализ отвечает на вопрос ЧТО тестировать: изучить тестовый базис (требования, спецификации, риски) и вывести тестовые условия для покрытия. Тест-дизайн отвечает КАК тестировать: превратить эти условия в конкретные тест-кейсы техниками вроде классов эквивалентности, граничных значений и таблиц решений. Анализ выявляет, дизайн производит кейсы.
Типичные ошибки
- ✗Менять местами, какой шаг ЧТО (анализ), а какой КАК (дизайн)
- ✗Пропускать анализ и сразу прыгать к написанию кейсов
- ✗Думать, что техники дизайна относятся к анализу
Уточняющие вопросы
- →Назовите две техники тест-дизайна, применяемые после анализа.
- →Что такое тестовый базис, используемый при анализе?
MiddleТеорияИногдаЧто такое тест-чартер в session-based тестировании и какова структура сессии?
Что такое тест-чартер в session-based тестировании и какова структура сессии?
Session-based тестирование дробит исследовательское тестирование на тайм-боксовые сессии (обычно 60–120 мин), каждую ведёт чартер — короткая миссия, что исследовать, какие области или риски и на каких данных. Тестировщик фиксирует находки и покрытие в session sheet, затем проводит дебриф. Так исследование становится учитываемым и отчётным без прописывания каждого шага заранее.
Типичные ошибки
- ✗Считать чартер полностью прописанными пошаговыми кейсами
- ✗Прогонять сессии без тайм-бокса, session sheet или дебрифа
- ✗Путать чартер с финальным отчётом-сводкой
Уточняющие вопросы
- →Что входит в хороший чартер сессии против скриптового тест-кейса?
- →Как дебриф делает исследовательское покрытие отчётным?
MiddleДизайнИногдаВаша команда постоянно ловит баги, которые появляются только в проде и никогда в тестовом окружении: платёжный поток проходит все тесты, но падает у реальных пользователей, а отчёт, который рендерится на staging, отваливается по таймауту в проде. Тестовое окружение работает на меньшей базе, замоканных сторонних сервисах, других версиях ОС и библиотек и без продоподобного трафика. Спроектируйте, как вы приведёте тестовое окружение в паритет с продом и как будете управлять его конфигурацией: какие измерения должны совпадать (объём данных, версии сервисов, сеть, секреты, фиче-флаги), как держать их в синхроне при изменениях прода, что намеренно оставляете иным и почему, и как докажете, что данное окружение — верное зеркало, прежде чем доверять релизному решению, принятому на нём.
Ваша команда постоянно ловит баги, которые появляются только в проде и никогда в тестовом окружении: платёжный поток проходит все тесты, но падает у реальных пользователей, а отчёт, который рендерится на staging, отваливается по таймауту в проде. Тестовое окружение работает на меньшей базе, замоканных сторонних сервисах, других версиях ОС и библиотек и без продоподобного трафика. Спроектируйте, как вы приведёте тестовое окружение в паритет с продом и как будете управлять его конфигурацией: какие измерения должны совпадать (объём данных, версии сервисов, сеть, секреты, фиче-флаги), как держать их в синхроне при изменениях прода, что намеренно оставляете иным и почему, и как докажете, что данное окружение — верное зеркало, прежде чем доверять релизному решению, принятому на нём.
Совпадать должны измерения, меняющие поведение: объём данных, версии сервисов и библиотек, сеть, конфигурация, флаги, продоподобная нагрузка. Синхронизируйте через infrastructure-as-code, чтобы окружения не дрейфовали с эволюцией прода. Отличайтесь лишь ради безопасности — маскированные данные, sandbox-креды. Докажите паритет, сверив версии и конфигурацию и прогнав smoke рисковых потоков.
Типичные ошибки
- ✗Игнорировать объём данных, версии и нагрузку как измерения, меняющие поведение
- ✗Клонировать реальные данные прода вместо маскировки или синтеза
- ✗Позволять окружению расходиться по мере эволюции прода
Уточняющие вопросы
- →Какое одно отличие окружения чаще всего вызывает баг только в проде?
- →Как бы вы доказали, что окружение верно зеркалит продакшн?
SeniorДизайнИногдаВы пришли в новую команду, где нет процесса тестирования: нет тест-кейсов, нет задокументированных критериев входа/выхода, нет workflow для багов, а релизы сейчас уходят на основе интуиции разработчиков. Опишите, как бы вы выстроили процесс тестирования с нуля. Затроньте, как вы оцените продукт и его риски, какую документацию введёте первой, как решите, какие наборы строить (smoke, regression, исследовательское), workflow репорта багов и как встроите тестирование в релизный цикл и измерите, что процесс работает.
Вы пришли в новую команду, где нет процесса тестирования: нет тест-кейсов, нет задокументированных критериев входа/выхода, нет workflow для багов, а релизы сейчас уходят на основе интуиции разработчиков. Опишите, как бы вы выстроили процесс тестирования с нуля. Затроньте, как вы оцените продукт и его риски, какую документацию введёте первой, как решите, какие наборы строить (smoke, regression, исследовательское), workflow репорта багов и как встроите тестирование в релизный цикл и измерите, что процесс работает.
Начните с продукта, его пользователей и рисков — риск-ориентированный подход решает, куда вкладываться. Введите сперва лёгкую документацию (чек-листы, затем кейсы для критичных потоков) и определите критерии входа/выхода. Постройте smoke-набор для приёмки сборки и растущий regression-набор, а исследовательское тестирование применяйте там, где спеки тонкие. Заведите workflow багов: репорт → триаж по severity/priority → фикс → проверка. Встройте его в релизный цикл с CI-гейтами и отслеживайте метрики (просочившиеся дефекты, покрытие, время цикла), доказывающие, что процесс работает.
Типичные ошибки
- ✗Прыгать к полной автоматизации до оценки продукта и рисков
- ✗Пропускать критерии входа/выхода и заданный workflow багов
- ✗Не определять метрики, показывающие, работает ли процесс
Уточняющие вопросы
- →Что построите первым — smoke или полный regression, и почему?
- →Какая одна метрика лучше всего покажет, что процесс улучшается?