Exploratory Testing (исследовательское тестирование) — это одновременный процесс изучения системы, проектирования тестов и их выполнения, где тестировщик активно контролирует процесс тестирования, принимая решения о следующих шагах на основе полученных результатов.
Свободный, но структурированный подход:
Ориентированность на открытия:
Зависимость от экспертизы тестировщика:
# Пример структуры сессии exploratory testing
exploratory_session = {
"charter": "Проверить поведение корзины при нестабильном соединении",
"timebox": "45 минут",
"areas": ["Добавление товаров", "Обновление количества", "Оформление заказа"],
"tools": ["Charles Proxy", "Network Throttling"],
"found_issues": ["#1234", "#1235"]
}
✔ Выявляет неожиданные дефекты
✔ Эффективно на ранних этапах разработки
✔ Хорошо дополняет автоматизированное тестирование
✔ Позволяет быстро адаптироваться к изменениям
✖ Трудно воспроизвести некоторые дефекты
✖ Требует опытных тестировщиков
✖ Сложно измерить покрытие
Сессионное тестирование:
Использование техник:
Документирование:
// Пример чартера для сессии
public class ExploratoryCharter {
String title = "Payment gateway error handling";
String scope = "Failed transactions flow";
String techniques = "Network disruption, invalid inputs";
String duration = "60 minutes";
}
Критерий | Exploratory Testing | Scripted Testing |
---|---|---|
Гибкость | Высокая | Низкая |
Креативность | Поощряется | Ограничена |
Документация | После тестирования | До тестирования |
Покрытие | Глубина | Ширина |
Exploratory Testing — это мощный подход, который:
Идеальные сценарии применения: