Ответ
Да, исследовательское тестирование — это ключевая методика, которую я использую для одновременного изучения продукта, проектирования тестов и их выполнения.
Суть подхода: Тестировщик не следует строгому, заранее написанному сценарию, а активно исследует приложение, основываясь на знаниях, опыте и интуиции, чтобы обнаружить неочевидные дефекты.
Пример процесса:
- Определение области: «Протестировать новую функцию „Быстрая оплата“ в мобильном приложении».
- Исследование и тестирование:
- Проверка основного хэппи-паса.
- Исследование граничных условий: что будет, если во время оплаты пропадет сеть? Если быстро нажать кнопку дважды?
- Проверка интеграций: корректно ли обновляется баланс после списания?
- Документирование: Фиксация найденных багов, интересных наблюдений и новых идей для тестов.
Преимущества:
- Эффективность в поиске сложных, контекстно-зависимых багов.
- Гибкость и быстрая адаптация к изменениям в продукте.
- Глубокое понимание продукта тестировщиком.
Недостатки и как их нивелировать:
- Сложность оценки покрытия. Решение: комбинировать с сессионным тестированием, где сессии ограничены по времени и цели, а результаты структурированно записываются.
- Зависимость от навыков тестировщика. Решение: проводить попарное исследовательское тестирование и делиться находками в команде.
Исследовательское тестирование идеально дополняет сценарное (scripted) тестирование, покрывая области, которые сложно формализовать заранее.
Ответ 18+ 🔞
А, ну это же та самая магия, когда ты не как робот по бумажке идешь, а включаешь голову и начинаешь шарить! Исследовательское тестирование — это, блядь, как быть детективом в мире кода. Ты не знаешь, где спрятана хуйня, но по запаху, по опыту и по наитию начинаешь её вынюхивать.
В чём соль, блядь? Ты не тупо выполняешь список «нажми сюда, получишь то». Ты берешь фичу, вроде этой новой «Быстрой оплаты», и начинаешь её щупать со всех сторон. Одновременно изучаешь, как она работает, придумываешь, как её сломать, и тут же ломаешь. Это три в одном, как шампунь, ёпта!
Как это выглядит на практике, сука:
- Ставишь цель: «Щас я обламаю эту вашу быструю оплату, будьте уверены».
- Начинаешь ковырять:
- Сначала по-человечески: оплатил — прошло, молодцы.
- А потом включается волнение ебать: «А что если в самый момент списания в роутер ногой ебануть? Баланс уйдёт в минус? Или в космос?». «А если я, хитрая жопа, кнопку оплаты со скоростью пулемёта тыкать начну? Одно списание будет или десять?».
- Идешь дальше: «А куда, сука, данные улетели? В бухгалтерскую систему? А там всё сошлось? Или там теперь у меня овердохуища денег?».
- Фиксируешь пиздец: Записываешь, что сломал, как сломал и почему это, блядь, не должно так работать. И заодно в голове рождаются идеи, как ещё можно поиздеваться.
Почему это охуенно:
- Находишь такие подколы и косяки, которые ни один заранее придуманный сценарий в жизни не предугадает. Это как найти иголку в стоге сена, предварительно подбросив туда эту иголку самому.
- Гибкость пиздец! Выкатили новую фичу — ты уже её тестируешь, а не неделю тест-кейсы пишешь.
- Сам начинаешь понимать продукт на уровне «я знаю, где тут косяки зашиты, я их туда сам мысленно закладывал».
Но и хуйня тоже есть, куда без неё:
- Непонятно, сколько уже наковырял. Решение — сессионное тестирование. Ставишь таймер на час-два, конкретную цель («протестить только смену валют») и по окончании пишешь, что нашёл. Всё, уже не «поматросил и бросил», а структурированный пиздец.
- Всё упирается в твою смекалку. Если тестировщик — пень, то и исследование будет на уровне пня. Решение — попарное тестирование. Садишься с коллегой, один ковыряет, второй смотрит и подкидывает идеи. А потом меняетесь. И мозги проветриваются, и находками делитесь.
Короче, это не замена обычному тестированию, а его злой и находчивый брат-близнец. Скрипты проверяют, что всё работает как задумано. А исследовательское тестирование выясняет, как всё разъёбывается самым неожиданным образом. Без этого — никуда, товарищи!