Из практики: сначала прогоняю позитивный путь для базовой стабильности, затем целенаправленно ломаю ввод и последовательность действий.
Частые ошибки
Фокус только на позитивных сценариях.
Нет явного оракула ошибок.
Дополнительные вопросы
Пример негативных сценариев для формы логина?
Как документируете ошибки?
Как вы тестируете пустые значения и null?
Middle
Пустые значения проверяю в нескольких вариантах: null, пустая строка, строка из пробелов и отсутствие поля в запросе.
Важно отдельно проверить поведение на интерфейсе, API и в базе: одинаково ли трактуются такие значения во всех слоях.
Из практики: самые неприятные дефекты появляются, когда интерфейс считает значение пустым, а сервер сохраняет его как валидное.
Частые ошибки
Неразличение null и empty string.
Игнорирование пробельных символов.
Несогласованность валидации клиент/сервер.
Дополнительные вопросы
Как тестируете каскадную валидацию?
Стратегии работы с legacy данными?
Как вы строите стратегию негативного тестирования на проекте?
Middle
Стратегию строю от рисков: определяю точки валидации (поля ввода, бизнес-правила, интеграции, ресурсные ограничения) и для каждой готовлю классы невалидных данных.
Типовые проверки для формы логина: пустые поля, неверный пароль, несуществующий пользователь, SQL-инъекции в полях, превышение лимита попыток, спецсимволы и очень длинные строки.
Из практики: негативные сценарии нахожу быстрее, когда начинаю с вопроса «что система должна отклонить» — это структурирует список лучше, чем перебор данных вслепую.
Частые ошибки
Ограничиваются проверкой только позитивного сценария.
Игнорируют аспекты безопасности.
Отсутствие проверки граничных ситуаций.
Дополнительные вопросы
Как находите идеи для негативных тестов?
Есть опыт с тестированием безопасности?
Как вы выстраиваете валидацию данных в тестировании?
Middle
Я обычно начинаю с правил валидации на уровне интерфейса, потом дублирую ключевые проверки на стороне сервера.
Обязательно проверяю граничные значения, пустые поля и ошибки формата, чтобы не было «тихих» сбоев в данных.
Из практики: лучшая защита от грязных данных — одинаковые правила проверки во всех слоях.
Частые ошибки
Пропуск валидации на одном из уровней.
Недостаточное тестирование edge cases.
Игнорирование security аспектов.
Дополнительные вопросы
Как тестируете cross-field validation?
Стратегии для сложных бизнес-правил?
Когда использовать таблицы решений и когда — попарное тестирование?
Middle
Таблица решений нужна, когда результат зависит от нескольких условий одновременно и легко запутаться в комбинациях.
Попарное тестирование сокращает количество проверок: мы покрываем все пары параметров, а не полный перебор всех комбинаций.
Из практики: для критичных бизнес-сценариев я дополняю попарный набор ручными кейсами на самые рискованные тройки параметров.
Частые ошибки
Нет валидации правил с бизнесом.
Слепое покрытие без приоритизации рисков.
Дополнительные вопросы
Когда pairwise недостаточно?
Как строите таблицу условий/действий?
Какие есть техники тест-дизайна?
Middle
Базовые техники тест-дизайна: эквивалентные классы, граничные значения, таблицы решений, переходы состояний и попарное покрытие.
Выбор техники зависит от задачи: для диапазонов лучше границы, для сложной логики — таблицы, для статусных объектов — переходы состояний.
Из практики: комбинация двух-трёх техник почти всегда даёт лучшее покрытие, чем попытка решать всё одной.
Частые ошибки
Пропускают применение системных техник, полагаясь только на интуицию (могут не протестировать важные комбинации).
Или наоборот, перегружают процесс избыточно формальными техниками там, где достаточно здравого смысла.
Дополнительные вопросы
Какие техники тест-дизайна подходят для проверки числовых диапазонов в поле ввода?
Когда может быть недостаточно одной техники (например, только эквивалентных классов) для высокого качества тестового покрытия?
Как бы вы протестировали форму регистрации?
Junior
Начинаю с позитивного сценария: корректные данные, успешная регистрация и подтверждение пользователя.
Дальше проверяю негатив: пустые поля, формат email/телефона, слабые пароли, дубликаты и повторную отправку формы.
Из практики: чаще всего дефекты находятся в валидации и в обработке повторного нажатия на кнопку регистрации.
Частые ошибки
Пропускают негативные сценарии и повторные сабмиты.
Дополнительные вопросы
Какие проверки автоматизируешь в первую очередь?
Как протестировать поле даты?
Junior
Проверяю формат ввода (ручной и через календарь), допустимые диапазоны min/max, граничные даты: 28/29/30/31 февраля, конец месяца, високосный год, переход между годами.
Добавляю негативные кейсы: невалидный формат, дата в прошлом если запрещена, дата за пределами диапазона, пустое поле.
Из практики: поле даты почти всегда ломается на 29 февраля и на переходе между месяцами с разным количеством дней — проверяю эти случаи в первую очередь.
Частые ошибки
Тестируют только один формат даты.
Дополнительные вопросы
Какие кейсы добавишь для международного продукта?
Как протестировать фильтр?
Junior
Начинаю с базового: фильтр применился, результат соответствует условиям.
Проверяю комбинации фильтров, сброс, сохранение состояния, пагинацию и сортировку вместе с фильтрами.
Из практики: чаще всего баги всплывают в комбинациях фильтров и при возврате со страницы детали.
Частые ошибки
Не проверяют комбинации условий.
Дополнительные вопросы
Что важно проверить в URL-параметрах фильтра?
Как бы вы протестировали форму логина?
Junior
Проверяю успешный вход с валидными данными, корректность редиректа и создание пользовательской сессии.
Дальше иду по негативу: пустые поля, неверные креды, блокировки, сообщения об ошибке и ограничения попыток.
Из практики: полезно сразу сверять интерфейсный результат с API и журналами, чтобы не пропустить проблемы на стыке слоёв.
Частые ошибки
Нет проверок rate limiting.
Только позитивные кейсы.
Дополнительные вопросы
Какие данные нужны заранее?
Как тестировать локализацию ошибок?
Как бы вы выполнили проверку поиска на сайте?
Junior
Функциональность: релевантность результатов по точному и частичному запросу, работа автокомплита и подсказок, поиск по разным полям (название, описание, теги), фильтры в сочетании с поиском.
Граничные случаи: пустой запрос, строка из пробелов, очень длинный запрос (>500 символов), спецсимволы (`<script>`, `" OR "1"="1`), Unicode и эмодзи, запрос без результатов (пустая выдача с понятным сообщением), нечувствительность к регистру и опечаткам.
Из практики: отдельный фокус даю релевантности (первый результат соответствует запросу), стабильности ранжирования при одинаковом запросе и поведению при XSS-символах — поле поиска часто не валидируется так строго, как форма регистрации.
Частые ошибки
Не учитывают стоп-слова/язык.
Нет проверок скоростей ответа.
Дополнительные вопросы
Как измерите качество поиска?
Как тестировать подсказки?
Как бы вы протестировали checkout в интернет-магазине?
Middle
Предварительная проверка: валидация корзины (цены, наличие, скидки, промокоды), переход к оформлению с разными состояниями корзины.
Проверяю данные пользователя (адрес доставки, способ оплаты), итоговую сумму на каждом шаге, успешный и отклонённый платёж, подтверждение заказа и уведомления.
Из практики: самые дорогие дефекты в checkout — расхождение цены между корзиной и оплатой, и двойное списание при повторной отправке формы оплаты.
Частые ошибки
Нет сверки сумм на шагах.
Отсутствует проверка писем/уведомлений.
Дополнительные вопросы
Что логируете для расследований?
Как тестировать отказ платежа?
Как вы применяете техники тест-дизайна на реальном проекте?
Middle
Я начинаю с риска: определяю, где ошибка будет самой дорогой, и под это выбираю технику тест-дизайна.
Для полей и диапазонов беру границы и эквивалентные классы, для сложной логики — таблицы решений, для статусов — переходы состояний.
Из практики: такой подход даёт компактный, но результативный набор проверок без лишнего дублирования.
Частые ошибки
Неполный набор граничных значений.
Пропуск важных комбинаций в pairwise.
Упрощение decision tables.
Дополнительные вопросы
Как выбираете технику для конкретной задачи?
Опыт с state transition тестирование?
Какие проверки сделаешь для оплаты?
Middle
Проверяю основные платёжные сценарии: успешная оплата разными методами (карта, электронный кошелёк), отклонение карты, недостаток средств, истёкшая карта.
Проверяю консистентность статусов: после успешной оплаты заказ переходит в нужный статус, чек формируется корректно, уведомление отправлено, возврат обрабатывается правильно.
Из практики: критично тестировать повторную отправку платёжной формы — двойное списание встречается именно здесь, и пользователи его замечают сразу.
Частые ошибки
Не проверяют idempotency и webhook-сценарии.
Дополнительные вопросы
Какие проверки обязательны перед релизом оплаты?
Как действуешь, если сроки горят?
Middle
Быстро пересобираю план: выделяю must-have сценарии, что можно отложить и какие риски принимаем осознанно.
Из практики: такой подход хорошо работает в сжатые сроки, когда важно не распыляться на второстепенное.
Частые ошибки
Пытаются тестировать всё подряд при дефиците времени.
Дополнительные вопросы
Какие проверки оставишь, если есть только 2 часа?
Как применять анализ граничных значений на практике?
Junior
Нахожу диапазон допустимых значений, потом проверяю минимум, минимум+1, максимум-1, максимум и выход за границы с обеих сторон.
Отдельно добавляю явно неверные значения: меньше минимума и больше максимума, а также нулевые и отрицательные если применимо.
Из практики: для поля возраста 18–65 шесть проверок (17, 18, 19, 64, 65, 66) покрывают граничную логику полностью вместо перебора всех чисел. Именно на границах ±1 чаще всего прячутся ошибки в условиях.
Частые ошибки
Проверяют только середину диапазона.
Дополнительные вопросы
Какие значения выберешь для поля от 1 до 100?
Когда лучше использовать таблицу принятия решений?
Middle
Таблица удобна, когда результат зависит сразу от нескольких условий и легко запутаться в комбинациях — выписываю условия, правила и ожидаемые действия.
После построения таблицы проверяю покрытие конфликтных веток: нет ли комбинаций, которые дают противоречивые правила или не охвачены ни одним правилом.
Из практики: таблица решений незаменима при тестировании скидочных правил — если скидка зависит от трёх условий (роль, объём, промокод), без таблицы легко пропустить критическую комбинацию.
Частые ошибки
Не согласуют правила с аналитиком и командой.
Дополнительные вопросы
Какие поля добавишь в таблицу для скидок?
Как тестировать переходы состояний?
Middle
Рисую состояния сущности и допустимые переходы между ними — получаю диаграмму состояний. Проверяю все валидные переходы, все запрещённые переходы и граничные случаи (повторное действие, откат назад).
Обязательно тестирую попытку запрещённого перехода — система должна возвращать понятную ошибку, а не молча игнорировать или делать неверный переход.
Из практики: для заказа (Создан → Оплачен → Отправлен → Доставлен) критично проверить запрещённые переходы — нельзя перевести 'Отправлен' обратно в 'Создан'. Эти кейсы пропускают чаще всего.
Частые ошибки
Тестируют только прямой счастливый путь.
Дополнительные вопросы
Какие переходы проверишь у статуса заказа?
Как применять попарное тестирование без потери качества?
Middle
Использую попарный подход когда параметров много, а полный перебор слишком дорог по времени. Сначала выделяю критичные параметры, потом строю пары через allpairs или PICT.
Дополнительно добавляю отдельные кейсы для самых рискованных комбинаций из трёх и более параметров, которые попарный метод не гарантирует покрыть.
Из практики: попарное тестирование для формы с 5 параметрами по 3 значения сокращает набор с 243 до примерно 11-15 тест-кейсов. Вручную такое не строить — использую утилиты.
Частые ошибки
Считают попарное покрытие достаточным для всех рисков.
Дополнительные вопросы
Когда попарного покрытия точно недостаточно?
Как делать классы эквивалентности для строковых полей?
Junior
Я делю входы на классы: пустая строка, строка из пробелов, слишком короткая (< min), валидная длина, граничная по максимуму, превышающая максимум, спецсимволы, Unicode/эмодзи, SQL/HTML-инъекции.
Из каждого класса беру одного-двух представителей, чтобы не раздувать набор тестов — для валидных классов один позитивный кейс, для невалидных один кейс с ожидаемой ошибкой.
Из практики: строковые поля чаще всего ломаются на спецсимволах и Unicode — проверяю их отдельно, даже если это кажется маловероятным.
Частые ошибки
Берут слишком много похожих значений без пользы.
Дополнительные вопросы
Какие группы выделишь для поля имени?
Как выбрать минимальный, но полезный набор тестов при дефиците времени?
Middle
Начинаю с риск-ориентированного подхода: беру критичные пользовательские потоки и участки с наибольшей вероятностью дефекта (новый код, сложная логика, интеграции).
Добавляю короткий набор негативных и граничных проверок для самых частых классов ошибок. Документирую, что осознанно пропущено и какой риск принят.
Из практики: приоритизирую по формуле (вероятность дефекта × цена дефекта) / время проверки. Это даёт чёткий порядок без субъективных споров и помогает объяснить команде, почему именно эти тесты.
Частые ошибки
Пытаются покрыть всё и не успевают ничего важного.
Дополнительные вопросы
Какие критерии используешь для приоритета тестов?
Как тестировать обязательные и необязательные поля формы?
Junior
Для обязательных полей проверяю: пустое значение, строку из пробелов, слишком короткое/длинное значение, невалидный формат — ожидаю понятное сообщение об ошибке и блокировку отправки.
Для необязательных полей проверяю, что форма успешно отправляется без них, значение по умолчанию корректно, и данные сохраняются правильно при заполнении и при пустом поле.
Из практики: чаще всего дефекты в обязательных полях — это пробелы, которые проходят валидацию как «заполненное поле», и поля, которые обязательны на UI, но не валидируются на бэке.
Частые ошибки
Проверяют только видимость пометки «обязательное».
Дополнительные вопросы
Как проверишь согласованность проверок интерфейса и сервера?
Что такое тест-оракул и как им пользоваться?
Middle
Тест-оракул — это источник, по которому я понимаю, правильно работает система или нет: требования, API-договор, расчётная формула, данные в базе или согласованный макет.
Без оракула нет критерия правильности — тест может проходить, но не проверять ничего значимого. Иногда оракулом служит предыдущая версия системы или параллельная реализация.
Из практики: при тестировании расчёта комиссии использую два оракула одновременно — спецификацию и независимый расчёт в Excel. Расхождение между ними — сигнал либо бага в коде, либо противоречия в требованиях.
Частые ошибки
Оценивают результат «на глаз» без чёткого ориентира.
Дополнительные вопросы
Какие оракулы используешь чаще всего?
Как тестировать комбинации фильтров и сортировки?
Middle
Проверяю каждый фильтр отдельно, потом наиболее критичные комбинации: фильтр А + фильтр Б, фильтры + сортировка, фильтры + пагинация.
Обязательно смотрю сброс фильтров (URL и состояние), возврат кнопкой браузера с сохранением фильтров, поведение при пустом результате.
Из практики: комбинации фильтров ломаются чаще одиночных — особенно при возврате со страницы детали и при взаимоисключающих условиях.
Частые ошибки
Не проверяют пересечение фильтров между собой.
Дополнительные вопросы
Какие комбинации выберешь первыми?
Как измерить эффективность выбранной техники тест-дизайна?
Middle
Смотрю на дефектоёмкость: сколько дефектов найдено на один тест и насколько критичны эти дефекты. Если набор большой, а дефектов мало — техника или фокус выбраны неверно.
Также сравниваю трудозатраты на подготовку и поддержку набора тестов с ценностью найденных проблем. Техника должна окупаться.
Из практики: если на 100 тест-кейсов приходится 2 найденных дефекта — или техника работает плохо, или зона избыточно покрыта. Пересматриваю фокус и добавляю исследовательские сессии.
Частые ошибки
Оценивают технику только по количеству тест-кейсов.
Дополнительные вопросы
Какие метрики эффективности считаешь главными?
Как применять попарное тестирование для параметров API?
Middle
Я выделяю параметры, которые реально влияют на поведение, и строю пары значений для максимального покрытия.
Потом добавляю отдельные кейсы для самых рискованных комбинаций, которые попарный метод может не поймать.
Из практики: это сильно сокращает объём тестов, но критичные сценарии всё равно проверяю отдельно.
Частые ошибки
Слепо доверяют попарному набору без риск-анализа.
Дополнительные вопросы
Какие параметры вы бы взяли в первую волну пар?
Когда лучше использовать таблицу решений, а когда диаграмму состояний?
Middle
Таблица решений хороша, когда важны комбинации условий и ожидаемых действий.
Диаграмма состояний лучше работает там, где важен порядок переходов между статусами.
Из практики: выбор техники по типу логики сразу делает тесты точнее и короче.
Частые ошибки
Используют одну технику для всех задач подряд.
Дополнительные вопросы
Какой подход выберете для жизненного цикла заказа?
Как проектировать тесты на бизнес-правила с большим числом исключений?
Middle
Сначала группирую правила и исключения по смыслу, чтобы не потеряться в деталях.
Потом строю минимальный набор кейсов, который покрывает основные ветки и самые рискованные исключения.
Из практики: без такой структуры тесты быстро разрастаются и перестают быть управляемыми.
Частые ошибки
Пишут кейсы хаотично, без группировки правил.
Дополнительные вопросы
Как решите, какие исключения проверять в первую очередь?
Как проверять инварианты системы (то, что не должно нарушаться никогда)?
Senior
Я формулирую ключевые инварианты системы и добавляю проверки на каждом критичном шаге сценария.
Такие проверки особенно полезны в интеграциях, где много промежуточных преобразований данных.
Из практики: инварианты отлично ловят редкие, но очень дорогие дефекты.
Частые ошибки
Не фиксируют инварианты явно и проверяют их случайно.
Дополнительные вопросы
Какие инварианты вы бы задали для платёжного потока?
Что такое классы эквивалентности и как их применять?
Junior
Класс эквивалентности — это группа значений, при которых система ведёт себя одинаково. Достаточно протестировать одно значение из каждого класса, чтобы покрыть всю группу.
Пример: возраст от 18 до 65 — валидный, до 18 — некорректный (несовершеннолетний), после 65 — некорректный (пенсионер). Три класса, три значения из них.
Из практики: техника позволяет сократить число тест-кейсов в разы. Часто комбинируется с граничными значениями для усиления покрытия.
Частые ошибки
Не учитывать невалидные классы — пропускают негативные кейсы.
Брать одно и то же значение для разных классов — теряется смысл.
Дополнительные вопросы
Как сочетать классы эквивалентности с граничными значениями?
В каких задачах эта техника не подходит?
Что такое граничные значения и почему их обязательно проверять?
Junior
Граничное значение — это значение на границе класса эквивалентности. Опыт показывает, что ошибки чаще всего находятся именно на границах: off-by-one, неправильное сравнение (< вместо <=), переполнение типа.
Для диапазона [1, 100] проверяют 0, 1, 100, 101. Также 2 и 99 — соседние значения. Для строк — длина 0, 1, максимум, максимум+1.
Из практики: ловит классические баги типа «при возрасте ровно 18 показывает форму для подростков», «в поле 256 символов вместо 255 теряются данные».
Частые ошибки
Тестировать только середину диапазона — пропускают off-by-one.
Забывать, что граница может быть «по обе стороны» — не только за пределами, но и на самой границе.
Дополнительные вопросы
Как искать границы, если они не явно прописаны?
Что такое 2-value vs 3-value boundary analysis?
Что такое pairwise (попарное) тестирование?
Middle
Pairwise — это техника, при которой комбинаторно проверяют все пары значений каждых двух факторов, а не все возможные комбинации. Исследования показывают, что большинство багов проявляется в парах.
Например, для 3 факторов по 3 значения полный перебор — 27 кейсов, pairwise — 9. Используют генераторы (PICT, allpairs.py).
Из практики: незаменимо там, где много параметров (платёжные методы × устройство × ОС × язык). Резко сокращает количество тест-кейсов без существенной потери покрытия.
Частые ошибки
Применять pairwise там, где есть тонкие тройные взаимодействия — могут быть пропущены.
Не учитывать, что pairwise не покрывает все одиночные значения автоматически.
Дополнительные вопросы
Что такое orthogonal array testing?
Какие генераторы pairwise бывают?
Что такое таблица решений (decision table) и когда её применять?
Middle
Таблица решений — это структурированный способ описать «если входы такие-то, то результат такой-то». В строках — условия и ожидаемые действия, в столбцах — варианты комбинаций.
Особенно полезна для бизнес-логики с несколькими условиями: например, «скидка зависит от типа клиента, объёма заказа и наличия промокода».
Из практики: помогает не упустить редкие комбинации и обсудить логику с PM. Заодно служит спецификацией для разработчика.
Частые ошибки
Раздувать таблицу до неподдерживаемого размера — для большого числа условий лучше делить.
Считать таблицу решений документом для архива — она должна обновляться вместе с правилами.
Дополнительные вопросы
Чем decision table отличается от truth table?
Как реализовать таблицу решений как тесты?
Что такое state transition testing?
Middle
State transition testing — это техника для систем с состояниями. Описывают конечный автомат: состояния и переходы между ними при определённых событиях. Тест-кейсы покрывают переходы.
Уровни покрытия: каждый переход, каждое состояние, каждый цикл, все пары переходов.
Из практики: типовая область — заказы (создан → оплачен → отгружен → доставлен → возвращён), статусы пользователя, mode'ы устройства. Помогает понять и протестировать как валидные, так и невалидные переходы.
Частые ошибки
Тестировать только happy-path переходы и пропускать невалидные («можно ли вернуть до доставки?»).
Не визуализировать автомат — без диаграммы легко упустить состояния.
Дополнительные вопросы
Что такое sneak path?
Какие инструменты помогают рисовать state-машины?
Что такое exploratory testing и в чём его сила?
Middle
Исследовательское тестирование — это одновременное обучение, проектирование тестов и их выполнение. Тестировщик не следует заранее написанному скрипту, а исследует продукт, основываясь на догадках и опыте.
Сила — в обнаружении неочевидных багов, поведения на необычных сценариях и в проверке UX. Особенно полезно для новых фич, рискованных областей, перед релизом.
Из практики: часто оформляют как session-based testing — назначают цель сессии (charter), время (60-90 минут), потом фиксируют находки и идеи. Это даёт структуру без скованности скриптами.
Частые ошибки
Считать exploratory заменой регрессии — это разные задачи.
Не записывать сессии и терять находки.
Дополнительные вопросы
Чем session-based testing отличается от обычного exploratory?
Как оценить эффективность exploratory сессии?
Что такое risk-based testing и как его планировать?
Middle
Risk-based testing — это подход, при котором приоритет проверок выбирают по риску: вероятность дефекта × ущерб от него. Чем выше риск — тем глубже тестирование.
Идентифицируют риски (новизна фичи, сложность, частота изменений, влияние на пользователей, регуляторика) и выстраивают тестовое покрытие соответственно.
Из практики: на платежи и аутентификацию выделяют больше времени, чем на «настройки уведомлений». Это структурно объясняет, почему «не всё» тестируем одинаково.
Частые ошибки
Принимать риски без обсуждения со стейкхолдерами.
Не обновлять оценку рисков при изменении продукта.
Дополнительные вопросы
Какие методы оценки рисков популярны?
Что такое heat map рисков?
Что такое тестирование на основе моделей (model-based)?
Middle
Model-based testing — это подход, где сначала строится модель системы (state machine, граф потоков, описание правил), а из неё автоматически или полуавтоматически генерируются тест-кейсы.
Модель может быть текстовой (decision table), диаграммой (state chart), или формальной (TLA+, Alloy). Инструменты: GraphWalker, Spec Explorer.
Из практики: подходит для сложных систем с большим количеством состояний и переходов. Накладные расходы на построение модели окупаются на длинной дистанции, особенно при частых изменениях.
Частые ошибки
Сделать модель слишком абстрактной — кейсы оторваны от реальности.
Поддерживать модель отдельно от продукта — рассинхрон.
Дополнительные вопросы
Что такое GraphWalker?
Когда model-based не окупается?
Что такое error guessing и как его развивать?
Middle
Error guessing — техника, основанная на опыте тестировщика: где обычно бывают ошибки. Это не формальная процедура, а интуиция, наработанная на сотнях найденных багов.
Типовые догадки: пустые поля, очень длинные строки, специальные символы, нули, отрицательные числа, отсутствие интернета, одновременные действия, отказ от прав, перезапуск в нужный момент.
Из практики: эта техника отлично дополняет формальные. Её можно «формализовать» в виде чек-листов опасных мест и постоянно расширять по мере накопления опыта в проекте.
Частые ошибки
Полагаться только на error guessing — теряется системное покрытие.
Не делиться знаниями внутри команды — error guessing остаётся в голове отдельных людей.
Дополнительные вопросы
Как превратить error guessing в чек-лист?
Какие самые частые ошибки в формах?
Что такое чек-лист и чем отличается от тест-кейса?
Junior
Чек-лист — это короткий список пунктов, что нужно проверить, без подробных шагов. Удобен для smoke-тестов, регрессии, exploratory-сессий.
Тест-кейс — подробный документ с шагами, данными, ожидаемыми результатами. Подходит для критичных и сложных сценариев, для воспроизводимости и обучения.
Из практики: для большинства проектов хороший баланс — чек-листы на повседневное и тест-кейсы на критичные сценарии (платежи, регистрация, миграции). Не нужно всё расписывать как тест-кейс.
Частые ошибки
Документировать каждое действие как тест-кейс — пишите дольше, чем тестируете.
Использовать чек-лист для сложного сценария — упускаете детали.
Дополнительные вопросы
Когда нужен подробный тест-кейс?
Как структурировать чек-лист, чтобы им было удобно пользоваться?
Что такое test oracle?
Middle
Test oracle — это источник истины: как определить, что результат теста правильный. Может быть документация, прежняя версия системы, эталонная реализация, common sense.
Не всегда очевиден. Иногда oracle сложно сформулировать — например, для AI/ML систем.
Из практики: для каждого теста важно понимать, какой именно oracle используется. Без оракула тест не имеет смысла.
Частые ошибки
Считать, что oracle всегда понятен.
Не документировать ожидаемый результат.
Дополнительные вопросы
Что такое oracle problem в ML?
Чем differential testing помогает?
Что такое экспертное тестирование?
Middle
Тестирование, опирающееся на профессиональный опыт и интуицию тестировщика. Не следует строгим скриптам, а исследует продукт глазами эксперта.
Эффективно в зрелых командах с опытными QA. Дополняет формальное тестирование.
Из практики: невозможно полностью автоматизировать. Опытные QA находят баги, которые ни в одном тест-кейсе не описаны.
Частые ошибки
Полагаться только на экспертное мнение без структурных подходов.
Не делиться знаниями — у каждого свои находки.
Дополнительные вопросы
Чем экспертное отличается от exploratory?
Как растить экспертизу в команде?
Что такое model-based vs script-based testing?
Middle
Script-based — тесты, прописанные шагами, повторяемые точно. Хорошо для регрессии, автоматизации.
Model-based — тесты, генерируемые из модели системы (state machine, decision table). Может покрывать больше комбинаций.
Из практики: большинство команд используют скрипты. Model-based — нишевое, окупается для очень сложных систем.
Частые ошибки
Делать model-based на простом продукте — overkill.