methodology
Исследовательское тестирование (Exploratory Testing)
Около 9 мин чтения
ISTQB CTFL v4.0 — Глава 4.4 — Exploratory Testing
Источник: https://istqb.org/certifications/certified-tester-foundation-level-ctfl-v4-0/
methodology
Около 9 мин чтения
ISTQB CTFL v4.0 — Глава 4.4 — Exploratory Testing
Источник: https://istqb.org/certifications/certified-tester-foundation-level-ctfl-v4-0/
Исследовательское тестирование — это подход, при котором тестировщик одновременно проектирует и выполняет тесты, используя свой опыт, интуицию и знание продукта. Вместо следования заранее написанным тест-кейсам, тестировщик исследует систему в реальном времени, адаптируя свою стратегию по мере получения новой информации.
Ключевая идея: обучение, дизайн тестов, выполнение тестов и анализ результатов происходят параллельно, а не последовательно.
Это не «хаотичное тыканье» — это структурированная, целенаправленная деятельность с чёткими ограничениями и целями.
Исследовательское тестирование (Exploratory Testing) — стиль тестирования, при котором тестировщик одновременно обучается системе, проектирует тесты и выполняет их, используя получаемую информацию для направления дальнейшего тестирования.
По ISTQB CTFL v4.0 (глава 4.4):
«Исследовательское тестирование основано на идее параллельного обучения, проектирования и выполнения тестов. Тест-хартизы (test charters) могут использоваться для построения тестов и документирования того, что было протестировано.»
Тест-чартер (test charter) — это краткое описание цели и области исследовательской тестовой сессии. Чартер задаёт направление, но не предписывает конкретные шаги.
Исследовать <цель/область>
с использованием <подход/ресурсы/инструменты>
чтобы обнаружить <тип информации/дефектов>
| # | Чартер |
|---|---|
| 1 | Исследовать форму регистрации, используя граничные значения и некорректные данные, чтобы обнаружить проблемы валидации |
| 2 | Исследовать процесс оплаты, используя разные браузеры и устройства, чтобы обнаружить проблемы совместимости |
| 3 | Исследовать API корзины, используя Postman и автоматические генераторы данных, чтобы обнаружить проблемы с обработкой ошибок |
| 4 | Исследовать поведение системы при потере сетевого соединения во время оформления заказа |
┌─────────────────────────────────────────┐
│ Тест-чартер │
│ «Исследовать X, используя Y, │
│ чтобы узнать Z» │
└───────────────┬─────────────────────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
Заметки Баг-репорты Новые вопросы
о ходе (defects) (new charters)
сессии
Чартер направляет, но не ограничивает жёстко. Если во время тестирования обнаруживается интересная «ветка» — тестировщик может её исследовать, зафиксировав отклонение в заметках.
Session-Based Test Management — методика управления исследовательским тестированием, предложенная Джеймсом Бахом (James Bach). Она структурирует исследовательское тестирование в измеримые сессии.
=== Session Report ===
Charter: Исследовать форму логина на SQL-инъекции
Duration: 60 мин
Tester: Иванов А.
Date: 2026-07-16
Test Notes:
- Попробовал базовые SQL-инъекции в поле email: ' OR 1=1 --
- Система вернула ошибку 500 вместо сообщения об ошибке валидации
- Попробовал UNION SELECT — та же ошибка 500
- Проверил поле пароля — аналогичное поведение
- Заметил, что в ответе сервера раскрывается структура БД
Bugs Found:
- BUG-1234: SQL-инъекция в поле email (Critical)
- BUG-1235: Stack trace раскрывает структуру БД (Major)
Issues / Questions:
- Нужно ли проверять API-эндпоинты отдельно?
Next Charters:
- Исследовать API логина на injection-атаки
- Исследовать rate limiting на форме логина
| Метрика | Описание |
|---|---|
| Session coverage | % запланированных сессий от фактически проведённых |
| Bug rate | Количество багов на сессию |
| Charter vs. opportunity | % времени на чартер vs. на «побочные находки» |
| Test coverage | Какие области покрыты чартерами |
| Session duration | Фактическое vs. запланированное время |
Планирование Выполнение Отчётность
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ Чартеры │───────►│ Сессии │───────►│ Отчёты │
│ (план) │ │ (60 мин) │ │ (заметки, │
│ │ │ │ │ баги, новые │
│ │ │ │ │ чартеры) │
└──────────┘ └──────────────┘ └──────────────┘
│ │
└───────────── Ретроспектива ◄──────────────────┘
(анализ, улучшение)
| Преимущество | Пояснение |
|---|---|
| Находит неочевидные баги | Тестировщик-исследователь замечает аномалии, которые scripted-тесты пропускают |
| Быстрый старт | Не нужно тратить время на написание тест-кейсов заранее |
| Адаптивность | Легко менять направление на основе находок |
| Эффективен при отсутствии документации | Когда требований нет или они неполные |
| Развивает экспертизу | Тестировщик глубже понимает продукт |
| Находит «серые зоны» | Области, не покрытые требованиями и scripted-тестами |
| Симулирует реального пользователя | Настоящие пользователи не следуют тест-кейсам |
| Ограничение | Пояснение |
|---|---|
| Зависит от навыков | Неопытный тестировщик найдёт меньше |
| Сложно измерить покрытие | Нет точного % покрытия требований |
| Не воспроизводимо формально | Повторить точно тот же путь — сложно |
| Документация постфактум | Заметки могут быть неполными |
| Не заменяет scripted-тесты | Регрессия всё равно нужна в автоматизации |
| Субъективность результатов | Разные тестировщики найдут разное |
| Критерий | Scripted тестирование | Исследовательское тестирование |
|---|---|---|
| Подход | Тест-кейсы пишутся заранее, потом выполняются | Обучение, дизайн и выполнение — параллельно |
| Документация | Подробные тест-кейсы до выполнения | Заметки и отчёты — после сессии |
| Воспроизводимость | Высокая — шаги зафиксированы | Низкая — каждый прогон уникален |
| Покрытие | Легко измерить (traceability matrix) | Сложно измерить (оценка через SBTM) |
| Зависимость от навыков | Низкая — шаги предписаны | Высокая — эффективность = навыки тестировщика |
| Находит неочевидные баги | Слабее — только то, что предусмотрено | Сильнее — интуиция и адаптивность |
| Автоматизация | Легко автоматизировать | Не автоматизируется (но может дополнять) |
| Скорость старта | Медленнее (нужно написать тесты) | Быстрее (начинаешь сразу) |
| Соответствие стандартам | Легко показать аудитору | Требует дополнительных артефактов (SBTM) |
| Регрессия | Отлично подходит | Не подходит (не воспроизводим) |
Исследовательское и scripted тестирование не конкуренты — они дополняют друг друга:
Исследовательское → Scripted
(поиск новых багов) (защита от найденных)
1. Исследовательское находит баги
2. Для каждого типа бага создаётся scripted-тест
3. Scripted-тест автоматизируется и входит в regression suite
4. Исследовательское продолжает искать новые типы багов
Charter: Исследовать экран оформления заказа в мобильном приложении
на устройствах с маленьким экраном (iPhone SE, 320px)
с использованием медленного интернета (3G throttle)
чтобы обнаружить проблемы UI и UX
Находки:
Charter: Исследовать эндпоинты API авторизации
с использованием OWASP ZAP и ручных запросов
чтобы обнаружить уязвимости (injection, broken auth, excessive data exposure)
=== Session Report ===
Charter: Исследовать загрузку файлов в формате PDF
Duration: 45 мин
Tester: Петрова М.
Date: 2026-07-16
Environment: Chrome 126, Windows 11
Test Notes:
- Загрузил PDF 1 МБ — OK
- Загрузил PDF 50 МБ — система зависла, таймаут 30 сек
- Загрузил файл .exe переименованный в .pdf — система приняла файл
- Загрузил PDF с кириллическим именем — имя отображается как "????"
- Загрузил PDF с именем длиной 256 символов — обрезано без уведомления
- Попробовал загрузить 10 файлов одновременно — 3 из 10 загрузились
Bugs Found:
- BUG-201: Нет валидации содержимого файла (только расширение) — Critical
- BUG-202: Нет ограничения на размер файла — Major
- BUG-203: Unicode-имена не поддерживаются — Minor
- BUG-204: Нет ограничения на количество одновременных загрузок — Major
Time Breakdown:
- На чартер: 35 мин (78%)
- На побочные находки: 10 мин (22%)
| Категория | Инструменты | Назначение |
|---|---|---|
| Заметки и сессии | RapidReporter, TestBuddy, Session Tester | Ведение заметок во время сессии |
| Скринкастинг | OBS, Loom, Windows Game Bar | Запись экрана для воспроизведения находок |
| Генерация данных | Faker, Mockaroo | Создание тестовых данных на лету |
| Перехват трафика | Burp Suite, OWASP ZAP, Fiddler | Исследование API и сетевого взаимодействия |
| Управление чартерами | Jira, Notion, Google Sheets | Планирование и трекинг чартеров |
| Mind mapping | XMind, FreeMind | Визуализация областей тестирования |