Ad-hoc и exploratory тестирование
Sovetkali B.В этом посте расскажу как на практике используются два очень похожих типа тестирования: ad-hoc и исследовательское тестирование.
Ad-hoc - тестирование с общим знанием продукта (но не глубоким), а exploratory тестирование - тестирование в ходе которого получаешь знания о продукте (на основе конкретных источников, например, ТЗ). Важно отметить, что ad-hoc тестирование не предполагает составление документации или плана-тестирования, когда в exploratory оставляем до/после себя артефакты (кейсы, чек-листы, тест-планы и т.п.). Также отличительная черта ad-hoc в том, что тестируем без конкретной цели, т.е. угадываем ошибки (кстати это техника тестирования, о ней поговорим позже). В исследовательском тестировании у нас есть цели (ставим их опираясь на требования, гайды, спецификации и т.п.), т.е. ищем конкретные ошибки. И последнее различие: ad-hoc отличный инструмент найти баги, которые не могут быть найдены автотестами или регрессионным тестированием, а исследовательское тестирование это инструмент для поиска багов до этапа автоматизации или регресса.
Характеристики методов

Небольшие пояснения по таблице:
- Масштаб тестирования - это значит что в случае исследовательского тестирования четко представляем где остановиться. Например, проверяем у музыкального плеера плей-лист. Все что за списком или несвязанное с ним нас не интересует. В случае ad-hoc, чаще всего, нет никаких ограничений. Тестируем все возможные кейсы.
- Проверки в рамках процесса - это тестирование по установленным правилам в команде. Например, у в твоей команде есть правило проверять перевод интерфейса. В таком случае начинаешь исследовать перевод, но в сочетании с темной темой и т.п.
Когда использовать ad-hoc и exploratory
Исследовательское тестирование отлично подходит, когда:
- Только получаем продукт/фичу в тестирование, т.е. первый цикл разработки. Или если ты новенький на проекте.
- Будем проводить регресс, писать автотесты на проверенный функционал.
- Тестируем сложный функционал. Особенно если комбинируем exploratory с белым ящиком.
Ad-hoc тестирование подходит, когда:
- Нет времени на составление документации, планирования и т.п.
- Нужно убедиться, что ничего не пропустили после регресса и автотестов. Не путать со смок-тестированием ;)
- Проверяем относительно простой функционал. Например, форма авторизации или регистрации и т.п.
Хочу добавить, что на практике ad-hoc'ом чаще всего пользуются все кроме тестировщиков. Например, на демо коллеги из других отделом тыкают реализованное ПО и находят баги. Но тестирование тоже использует этот подход. Им пользуются тим-лиды, которые знают продукт в общем, но хотят на основе своего опыта подсказать, что могло сломаться при добавлении нового функционала.