← Назад к вопросам

Что такое exploratory testing?

1.3 Junior🔥 171 комментариев
#Теория тестирования

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Exploratory Testing (Исследовательское тестирование)

Определение

Exploratory Testing — это одновременное проектирование и выполнение тестов, где тестировщик исследует приложение без предварительного плана, опираясь на интуицию, знание технологий и творческое мышление.

В отличие от плановых тестов, которые заранее спроектированы, exploratory testing — это более органичный процесс, похожий на работу хакера, пытающегося найти уязвимости.

Ключевые характеристики

  • Нет предварительного плана: тестировщик не знает, что искать
  • Одновременность: design и execution происходят параллельно
  • Творчество: используется опыт и интуиция
  • Документирование: записываю findings в реальном времени
  • Итеративность: каждый найденный баг приводит к новым идеям

Процесс Exploratory Testing

Шаг 1: Подготовка

  • Получаю требования и описание фичи
  • Понимаю, что должно работать
  • Выделяю 1-2 часа на исследование

Шаг 2: Исследование (Exploration)

  • Начинаю тестировать, как обычный пользователь
  • Кликаю везде, пытаюсь "сломать" функцию
  • Делаю неожиданные вещи
  • Документирую, что происходит

Шаг 3: Обучение (Learning)

  • Узнаю, как работает фича
  • Выявляю риски
  • Понимаю, где могут быть баги

Шаг 4: Фокусировка (Focusing)

  • На основе обучения, более целенаправленно ищу баги
  • Тестирую граничные случаи
  • Тестирую error scenarios

Шаг 5: Документирование

  • Создаю баг-репорты для найденных issues
  • Пишу регрессионные тесты, чтобы не повторился bug

Примеры Exploratory Testing в жизни

Пример 1: Form валидация

Фича: Форма регистрации пользователя

Мой процесс:

  1. Заполняю форму корректно → submit → success
  2. Оставляю поле пустым → submit → error message? Какое?
  3. Ввожу очень длинное значение → submit → что произойдет?
  4. Ввожу специальные символы → submit → обработка?
  5. Ввожу email без @ → submit → валидируется ли?
  6. Быстро кликаю submit дважды → дублирование?
  7. Отключаю JavaScript → form работает?

Из этого исследования я нашел:

  • Баг: длинные значения overflow
  • Баг: дублирование при быстром клике
  • Улучшение: нет feedback при загрузке

Пример 2: API интеграция

Фича: Загрузка товаров с внешнего сервиса

Мой процесс:

  1. Обычная загрузка → success
  2. Отключаю интернет → что произойдет? Retry?
  3. Внешний сервис медленный → timeout?
  4. Очень большой список товаров → performance issue?
  5. Загружаю дважды → дублирование в БД?
  6. Отмену загрузку в процессе → состояние согласованно?

Из этого исследования я нашел:

  • Баг: нет обработки network errors
  • Баг: дублирование при повторной загрузке
  • Риск: performance на большом объеме

Exploratory Testing vs Automated Testing

Exploratory Testing:

  • Быстро находит неожиданные баги
  • Творческий подход
  • Нельзя автоматизировать (нет плана)
  • Зависит от опыта тестировщика

Automated Testing:

  • Тестирует плановые сценарии
  • Повторяемо и надежно
  • Выполняется быстро
  • Легче масштабировать

Когда использовать Exploratory Testing

  1. Новая фича: нет понимания, что может сломаться
  2. Критичные части: payment, authentication (нужен fresh look)
  3. Перед релизом: убедиться, что ничего очевидного не пропустили
  4. После большого рефакторинга: убедиться в стабильности
  5. Нестандартные сценарии: когда плановые тесты не покрывают

Мой опыт с Exploratory Testing

В карьере я:

  • Провел 100+ часов exploratory testing
  • Нашел 30% критичных багов этим методом
  • Часто находил баги, которые плановые тесты пропустили
  • Использую это для выявления рисков в новых фичах

Tips для успешного Exploratory Testing

  1. Будь любопытным: спрашивай себя "а что если..?"
  2. Думай как хакер: как я могу сломать это?
  3. Вариируй данные: пустые, очень большие, специальные символы
  4. Проверяй edge cases: граница между valid/invalid
  5. Документируй в реальном времени: запоминать сложно
  6. Не спеши: exploratory требует времени на размышление
  7. Используй инструменты: DevTools, Charles для deeper investigation
  8. Обсуждай с разработчиком: их perspective может открыть новые идеи

Exploratory testing — это искусство найти баги, которые никто не ожидал.

Что такое exploratory testing? | PrepBro