Скриптованные тесты проверяют поведение которое кто-то догадался специфицировать. Исследовательское тестирование находит баг когда выбор 200 позиций каталога, переход на другую страницу и возврат с повторным выбором отправляет изменения для 400 позиций, потому что никто не специфицировал что происходит со скрытым состоянием выборки. Здесь разобрано как сессионное управление тестированием структурирует исследование без его скриптования, какие эвристики указывают на проблемы, и три техники обхода которые стабильно обнаруживают сбои недоступные автоматизированному сьюту.

Что такое исследовательское тестирование

Определение которое выдерживает проверку временем принадлежит Джеймсу Баху и Майклу Болтону: исследовательское тестирование: одновременное обучение, проектирование тестов и их выполнение. Не последовательно. Всё сразу, в реальном времени.

При скриптованном тестировании кто-то сначала пишет тест-кейс, затем тестировщик выполняет его позже, часто с разрывом в дни или недели. Человек проектирующий тест и человек выполняющий его могут вообще быть разными людьми. В исследовательском тестировании разрыва между этими действиями нет. То что обнаруживается в первые пять минут определяет куда двигаться следующие пять. Тест развивается по мере обучения.

Это не второсортная форма тестирования. Это полностью другой когнитивный режим. Скриптованное тестирование отлично справляется с верификацией: подтверждением что известное поведение сохраняется. Исследовательское тестирование отлично справляется с обнаружением: нахождением поведения которое никто не догадался записать в скрипт.

Конкретный пример. Команда выпускает новую функцию массового редактирования каталога продуктов. Скриптованные тесты покрывают выбор позиций, применение изменений, подтверждение сохранения. Во время исследовательской сессии выбираешь 200 позиций, начинаешь редактировать, потом уходишь с страницы не сохранив. Вернувшись и снова выбрав позиции, видишь что предыдущий выбор всё ещё активен в скрытом состоянии. Отправка формы теперь применяет изменения к 400 позициям. Никто не специфицировал этот сценарий. Ни один скрипт его не проверил. Любопытство его поймало.

Исследовательское тестирование не противостоит скриптованному. Здоровая стратегия тестирования использует оба. Скриптованные тесты дают регрессионное покрытие на скорости. Исследовательское тестирование находит то что скрипты не знали как искать.

Почему скриптованное и исследовательское тестирование решают разные задачи

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

Исследовательское тестирование требует полного внимания. Формируешь гипотезы, пытаешься их опровергнуть, реагируешь на находки. «Этот dropdown загружается медленно. Интересно что происходит если отправить форму до завершения его заполнения.» Эта мысль не появляется ни в каком тест-кейсе. Она появляется потому что думаешь во время тестирования.

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

Ни один подход не превосходит другой. Умение выбрать правильный или правильную комбинацию: и есть навык.

Сессионное управление тестированием: структура без жёсткости

Неструктурированное исследование: то место где критика «просто кликать по случайным местам» справедлива. Если открыть приложение без цели, без временного ограничения и без записей о том что делалось, будешь проходить одно и то же по кругу, пропускать большие области, и в конце не иметь ничего полезного.

Сессионное управление тестированием (Session-Based Test Management, SBTM), разработанное Джонатаном и Джеймсом Бахами, решает это не превращая исследование в скриптованное тестирование.

Базовая единица: тестовая сессия. Блок непрерывного тестирования, обычно 60–90 минут, с тремя компонентами.

Чартер определяет миссию. Не тест-кейс, а сфокусированный вопрос. «Исследовать функцию экспорта счёт-фактур с вниманием к граничным случаям в заказах с несколькими валютами.» Это чартер. Он говорит откуда начать и что важно, но не диктует путь. Можно и нужно следовать интересным ниточкам по мере их появления. Таймбокс держит сессии честными. 90 минут сфокусированного исследования значительно продуктивнее четырёх часов блуждания. Ограничение заставляет расставлять приоритеты. Если есть только 90 минут, двигаешься к зонам наибольшего риска первым. Дебриф фиксирует ценность сессии. После сессии тратишь 10–15 минут на резюме: что покрыто, что найдено, что не успел, какие вопросы остались. Этот результат делает исследовательское тестирование видимым для остальной команды.

На практике чартер для платёжного флоу может выглядеть так: «Исследовать поведение оформления заказа когда пользователи переключают способ оплаты в середине сессии, с фокусом на обработку ошибок и управление состоянием.» Таймбокс: 60 минут. Тестируешь с намерением, затем дебриф. Итоговые заметки: твой результат. Не отчёт прошёл/упал, а карта того что узнал.

Веди простой SBTM-лог в общем документе или таблице Notion: чартер, тестировщик, дата, длительность, найденные баги, не охваченные области. Со временем это формирует картину покрытия которая честнее любого скриптованного тест-плана.

Эвристики которые направляют поиск

Опытные исследовательские тестировщики не бродят случайно. Они следуют эвристикам: ментальным сокращениям указывающим на области вероятно содержащие проблемы.

Эвристика SFDPOT (разработана Джеймсом Бахом) даёт шесть линз: Structure (Структура), Function (Функция), Data (Данные), Platform (Платформа), Operations (Операции) и Time (Время). Применённые к новой фиче, вопросы такие: создаёт ли структура модели данных какие-либо уязвимости? Что происходит на границах допустимых вводов? Меняется ли поведение на разных платформах или браузерах? Что происходит при нагрузке или при прерывании зависящего от времени процесса?

Не применяешь все шесть к каждой сессии. Используешь как подсказки когда кажется что закончились идеи.

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

Зоны риска: третий ориентир. В новом коде больше багов чем в старом. В интеграциях между системами больше багов чем в каждой системе по отдельности. В фичах со сложным состоянием (многошаговые визарды, корзины, формы с условной логикой) больше багов чем в простых CRUD-экранах. Направляй исследование туда в первую очередь.

Три техники обхода которые окупаются сразу

Цем Канер предложил применять туристические метафоры к исследовательскому тестированию, позднее расширенные Майклом Келли. Три обхода стоит знать наизусть.

Обход фич: систематическое покрытие возможностей фичи, но с любопытством а не с чеклистом. Посещаешь каждую комнату здания (каждую основную функцию, каждую точку взаимодействия) не чтобы подтвердить что она работает, а чтобы понять её достаточно хорошо для углублённого зондирования. На новом модуле отчётности это значит: генерируй каждый тип отчёта, применяй каждый фильтр, экспортируй в каждом доступном формате. Не для верификации, а для картографирования территории. Обход сложности охотится за взаимодействиями между фичами. Ищешь места где две системы соприкасаются способами которые могли быть не спроектированы совместно. Платёжная форма которая также применяет промокоды сложнее каждого элемента по отдельности. Действие в панели администратора которое триггерит email-уведомление сложнее каждого по отдельности. Тестируешь стык. В инструменте управления проектами это может быть: создай задачу, назначь её пользователю, потом сразу деактивируй этого пользователя. Что происходит с задачей? Поле назначенного пользователя корректно обрабатывает теперь невалидную ссылку? Обход прерываний тестирует устойчивость. Медленное соединение. Навигация в середине процесса. Кнопка «назад» в браузере во время отправки формы. Закрытие вкладки во время загрузки файла. Таймаут сессии в середине оформления заказа. Современные приложения хорошо обрабатывают счастливый путь. Обход прерываний ищет всё что происходит когда пользователь ведёт себя не так как предполагает счастливый путь. Трёхшаговый визард онбординга который прекрасно работает при нормальном завершении может полностью потерять состояние если пользователь кликнет «назад» в браузере между вторым и третьим шагом.

Документирование находок без нарушения потока

Худшее что можно сделать во время исследовательской сессии: остановиться чтобы написать формальный баг-репорт. Разрушаешь ментальную модель, теряешь ход мысли, проводишь остаток сессии в другом когнитивном режиме.

Решение: разделение. Захватываешь во время сессии, формализуешь после.

Во время сессии нужны заметки которые быстро делаются и легко выбрасываются. Стикеры на физическом столе. Текущая черновая запись в VS Code или Блокноте. Краткие аннотации при скриншотировании. Цель: достаточно информации чтобы восстановить что найдено, а не отполированный отчёт.

Скриншоты нужно аннотировать сразу с одной стрелкой-указателем прежде чем двигаться дальше. Аннотация скажет через два дня почему был сделан этот скриншот. Без неё скриншот сломанного фильтра dropdown: просто скриншот.

Loom (или любой записывающий экран инструмент) стоит использовать для всего что включает последовательность шагов. Записываешь шаги, рассказываешь что делаешь и почему это неожиданно, сохраняешь ссылку в черновых заметках. 90-секундный Loom воспроизведения стоит больше 400-словного баг-репорта и создаётся быстрее.

После сессии просматриваешь черновые заметки и решаешь какие находки требуют формальных баг-репортов. Большинство исследовательских сессий даёт смесь подтверждённых багов, вопросов к разработчику, поведенческих наблюдений и вещей для follow-up. Формальный отчёт составляется после сессии, не во время.

Не позволяй идеальной документации быть врагом хорошего исследования. Если тратишь больше 30 секунд на документирование чего-то во время сессии, прерываешь поток. Сделай скриншот и одну строку заметки, потом продолжай.

Почему ИИ не может этого сделать

Аргумент за замену исследовательского тестирования ИИ обычно звучит так: «ИИ может генерировать тест-кейсы, учиться на прошлых багах и интеллектуально исследовать приложение.» Часть этого уже происходит. Инструменты на базе ИИ обходят приложения, генерируют тестовые скрипты, флагируют визуальные регрессии. Это полезно.

Но это не исследовательское тестирование.

Исследовательское тестирование опирается на доменную интуицию: знание о том как пользователи реально ведут себя в конкретном контексте конкретного продукта. Тестировщик проработавший три месяца на e-commerce платформе знает что пользователи с большими вишлистами ведут себя по-другому при оформлении заказа. Что поле промокода привлекает попытки инъекций. Что валидация адресов ломается специфическим образом для не-американских адресов которые разработчики с американским мышлением стабильно упускают. Это не в каком-либо обучающем датасете в пригодной к использованию форме. Это накопленный контекст.

Фундаментальнее: исследовательское тестирование зависит от любопытства движимого смыслом. Когда видишь медленный dropdown, задаёшься вопросом что происходит во время этого окна медлительности потому что понимаешь что пользователь пытается сделать и почему задержка создаёт риск. ИИ видит метрику производительности. Ты видишь режим отказа.

ИИ-инструменты отлично выполняют известные пути в масштабе, идентифицируют регрессии относительно базовой линии, обнаруживают аномалии в логах и метриках. Вопрос «чем мне следует здесь интересоваться?» не тот, на который модель обученная на прошлых тест-кейсах хорошо отвечает для системы которую не встречала в контексте которого не видела.

Задача исследовательского тестировщика: найти то что никто не догадался специфицировать. Для этого нужно задавать вопросы которые никто не додумался задать. А для этого нужно понимать домен, пользователей и продукт достаточно глубоко чтобы знать какие вопросы важны. Это не автоматизация. Это экспертиза.

Как применить это в понедельник утром

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

Выбери одну фичу которая недавно изменилась или недавно вышла. Напиши чартер в одном предложении: «Исследовать [фичу] с фокусом на [область интереса].» Потрать на это 60 минут. Делай заметки в черновом документе по ходу. В конце потрать 10 минут на просмотр заметок и подачу найденных багов.

Это одна исследовательская сессия. Делай стабильно (одну-две в спринт) и начнёшь ловить то что автоматизированный сьют никогда бы не нашёл.

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

И последнее: делай дебриф поделившись заметками сессии с командой, даже неформально. Быстрое сообщение в Slack («провёл исследовательскую сессию по bulk-edit флоу, нашёл два бага, заметил что обработка ошибок для частичных сбоев неясная») строит видимость для работы которая иначе происходит незаметно. И делает исследовательское тестирование командной практикой а не привычкой одиночки.

Исследовательское тестирование не дополнение к «настоящей» стратегии тестирования. Это часть стратегии которая ловит то что всё остальное пропускает. Команды которые делают это стабильно выпускают меньше регрессий и ловят больше критических багов до продакшна. Навык можно выработать, улучшить, и он полностью твой.

→ See also: Как писать тест-кейсы: формат, примеры и частые ошибки | Что такое ручное тестирование: полное руководство для 2026 года